516 lines
273 KiB
JavaScript
516 lines
273 KiB
JavaScript
/*
|
|
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
* This devtool is neither made for production nor for readable output files.
|
|
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
* or disable the default devtool with "devtool: false".
|
|
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
*/
|
|
(() => {
|
|
var exports = {};
|
|
exports.id = "app/page";
|
|
exports.ids = ["app/page"];
|
|
exports.modules = {
|
|
|
|
/***/ "./action-async-storage.external":
|
|
/*!****************************************************************************!*\
|
|
!*** external "next/dist/client/components/action-async-storage.external" ***!
|
|
\****************************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("next/dist/client/components/action-async-storage.external");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "../../client/components/action-async-storage.external":
|
|
/*!*******************************************************************************!*\
|
|
!*** external "next/dist/client/components/action-async-storage.external.js" ***!
|
|
\*******************************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("next/dist/client/components/action-async-storage.external.js");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./request-async-storage.external":
|
|
/*!*****************************************************************************!*\
|
|
!*** external "next/dist/client/components/request-async-storage.external" ***!
|
|
\*****************************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("next/dist/client/components/request-async-storage.external");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "../../client/components/request-async-storage.external":
|
|
/*!********************************************************************************!*\
|
|
!*** external "next/dist/client/components/request-async-storage.external.js" ***!
|
|
\********************************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("next/dist/client/components/request-async-storage.external.js");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "./static-generation-async-storage.external":
|
|
/*!***************************************************************************************!*\
|
|
!*** external "next/dist/client/components/static-generation-async-storage.external" ***!
|
|
\***************************************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("next/dist/client/components/static-generation-async-storage.external");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "../../client/components/static-generation-async-storage.external":
|
|
/*!******************************************************************************************!*\
|
|
!*** external "next/dist/client/components/static-generation-async-storage.external.js" ***!
|
|
\******************************************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("next/dist/client/components/static-generation-async-storage.external.js");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "next/dist/compiled/next-server/app-page.runtime.dev.js":
|
|
/*!*************************************************************************!*\
|
|
!*** external "next/dist/compiled/next-server/app-page.runtime.dev.js" ***!
|
|
\*************************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("next/dist/compiled/next-server/app-page.runtime.dev.js");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "buffer":
|
|
/*!*************************!*\
|
|
!*** external "buffer" ***!
|
|
\*************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("buffer");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "crypto":
|
|
/*!*************************!*\
|
|
!*** external "crypto" ***!
|
|
\*************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("crypto");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "events":
|
|
/*!*************************!*\
|
|
!*** external "events" ***!
|
|
\*************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("events");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "http":
|
|
/*!***********************!*\
|
|
!*** external "http" ***!
|
|
\***********************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("http");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "https":
|
|
/*!************************!*\
|
|
!*** external "https" ***!
|
|
\************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("https");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "node:crypto":
|
|
/*!******************************!*\
|
|
!*** external "node:crypto" ***!
|
|
\******************************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("node:crypto");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "util":
|
|
/*!***********************!*\
|
|
!*** external "util" ***!
|
|
\***********************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("util");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "zlib":
|
|
/*!***********************!*\
|
|
!*** external "zlib" ***!
|
|
\***********************/
|
|
/***/ ((module) => {
|
|
|
|
"use strict";
|
|
module.exports = require("zlib");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!":
|
|
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
!*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***!
|
|
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GlobalError: () => (/* reexport default from dynamic */ next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default.a),\n/* harmony export */ __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */ originalPathname: () => (/* binding */ originalPathname),\n/* harmony export */ pages: () => (/* binding */ pages),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ tree: () => (/* binding */ tree)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?9d97\");\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/client/components/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/app-render/entry-base */ \"(rsc)/./node_modules/next/dist/server/app-render/entry-base.js\");\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"originalPathname\",\"__next_app__\",\"routeModule\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\"TURBOPACK { transition: next-ssr }\";\n\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\nconst tree = {\n children: [\n '',\n {\n children: ['__PAGE__', {}, {\n page: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/page.tsx */ \"(rsc)/./src/app/page.tsx\")), \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\"],\n metadata: {\n icon: [],\n apple: [],\n openGraph: [],\n twitter: [],\n manifest: \"/manifest.webmanifest\"\n }\n }]\n },\n {\n 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/layout.tsx */ \"(rsc)/./src/app/layout.tsx\")), \"/home/robin/AI/Coding/Whisky/src/app/layout.tsx\"],\n'not-found': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/not-found-error */ \"(rsc)/./node_modules/next/dist/client/components/not-found-error.js\", 23)), \"next/dist/client/components/not-found-error\"],\n metadata: {\n icon: [],\n apple: [],\n openGraph: [],\n twitter: [],\n manifest: \"/manifest.webmanifest\"\n }\n }\n ]\n }.children;\nconst pages = [\"/home/robin/AI/Coding/Whisky/src/app/page.tsx\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/page\";\nconst __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__\n};\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/page\",\n pathname: \"/\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\",\n appPaths: []\n },\n userland: {\n loaderTree: tree\n }\n});\n\n//# sourceMappingURL=app-page.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZwYWdlJnBhZ2U9JTJGcGFnZSZhcHBQYXRocz0lMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGcGFnZS50c3gmYXBwRGlyPSUyRmhvbWUlMkZyb2JpbiUyRkFJJTJGQ29kaW5nJTJGV2hpc2t5JTJGc3JjJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZob21lJTJGcm9iaW4lMkZBSSUyRkNvZGluZyUyRldoaXNreSZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmJhc2VQYXRoPSZhc3NldFByZWZpeD0mbmV4dENvbmZpZ091dHB1dD0mcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGFBQWEsc0JBQXNCO0FBQ2lFO0FBQ3JDO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQyx1QkFBdUIsZ0pBQWtGO0FBQ3pHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBLHlCQUF5QixvSkFBb0Y7QUFDN0csb0JBQW9CLDBOQUFnRjtBQUNwRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDdUI7QUFDNkQ7QUFDcEYsNkJBQTZCLG1CQUFtQjtBQUNoRDtBQUNPO0FBQ0E7QUFDUDtBQUNBO0FBQ0E7QUFDdUQ7QUFDdkQ7QUFDTyx3QkFBd0IsOEdBQWtCO0FBQ2pEO0FBQ0EsY0FBYyx5RUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCIsInNvdXJjZXMiOlsid2VicGFjazovL3doaXNreS12YXVsdC8/MzRmZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcIlRVUkJPUEFDSyB7IHRyYW5zaXRpb246IG5leHQtc3NyIH1cIjtcbmltcG9ydCB7IEFwcFBhZ2VSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL21vZHVsZS5jb21waWxlZFwiO1xuaW1wb3J0IHsgUm91dGVLaW5kIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLWtpbmRcIjtcbi8vIFdlIGluamVjdCB0aGUgdHJlZSBhbmQgcGFnZXMgaGVyZSBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlbSBpbiB0aGUgcm91dGVcbi8vIG1vZHVsZS5cbmNvbnN0IHRyZWUgPSB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICcnLFxuICAgICAgICB7XG4gICAgICAgIGNoaWxkcmVuOiBbJ19fUEFHRV9fJywge30sIHtcbiAgICAgICAgICBwYWdlOiBbKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvaG9tZS9yb2Jpbi9BSS9Db2RpbmcvV2hpc2t5L3NyYy9hcHAvcGFnZS50c3hcIiksIFwiL2hvbWUvcm9iaW4vQUkvQ29kaW5nL1doaXNreS9zcmMvYXBwL3BhZ2UudHN4XCJdLFxuICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgaWNvbjogW10sXG4gICAgYXBwbGU6IFtdLFxuICAgIG9wZW5HcmFwaDogW10sXG4gICAgdHdpdHRlcjogW10sXG4gICAgbWFuaWZlc3Q6IFwiL21hbmlmZXN0LndlYm1hbmlmZXN0XCJcbiAgfVxuICAgICAgICB9XVxuICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAnbGF5b3V0JzogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2hvbWUvcm9iaW4vQUkvQ29kaW5nL1doaXNreS9zcmMvYXBwL2xheW91dC50c3hcIiksIFwiL2hvbWUvcm9iaW4vQUkvQ29kaW5nL1doaXNreS9zcmMvYXBwL2xheW91dC50c3hcIl0sXG4nbm90LWZvdW5kJzogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1lcnJvclwiKSwgXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWVycm9yXCJdLFxuICAgICAgICBtZXRhZGF0YToge1xuICAgIGljb246IFtdLFxuICAgIGFwcGxlOiBbXSxcbiAgICBvcGVuR3JhcGg6IFtdLFxuICAgIHR3aXR0ZXI6IFtdLFxuICAgIG1hbmlmZXN0OiBcIi9tYW5pZmVzdC53ZWJtYW5pZmVzdFwiXG4gIH1cbiAgICAgIH1cbiAgICAgIF1cbiAgICAgIH0uY2hpbGRyZW47XG5jb25zdCBwYWdlcyA9IFtcIi9ob21lL3JvYmluL0FJL0NvZGluZy9XaGlza3kvc3JjL2FwcC9wYWdlLnRzeFwiXTtcbmV4cG9ydCB7IHRyZWUsIHBhZ2VzIH07XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdsb2JhbEVycm9yIH0gZnJvbSBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9lcnJvci1ib3VuZGFyeVwiO1xuY29uc3QgX19uZXh0X2FwcF9yZXF1aXJlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fXG5jb25zdCBfX25leHRfYXBwX2xvYWRfY2h1bmtfXyA9ICgpID0+IFByb21pc2UucmVzb2x2ZSgpXG5leHBvcnQgY29uc3Qgb3JpZ2luYWxQYXRobmFtZSA9IFwiL3BhZ2VcIjtcbmV4cG9ydCBjb25zdCBfX25leHRfYXBwX18gPSB7XG4gICAgcmVxdWlyZTogX19uZXh0X2FwcF9yZXF1aXJlX18sXG4gICAgbG9hZENodW5rOiBfX25leHRfYXBwX2xvYWRfY2h1bmtfX1xufTtcbmV4cG9ydCAqIGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvZW50cnktYmFzZVwiO1xuLy8gQ3JlYXRlIGFuZCBleHBvcnQgdGhlIHJvdXRlIG1vZHVsZSB0aGF0IHdpbGwgYmUgY29uc3VtZWQuXG5leHBvcnQgY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgQXBwUGFnZVJvdXRlTW9kdWxlKHtcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGtpbmQ6IFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgcGFnZTogXCIvcGFnZVwiLFxuICAgICAgICBwYXRobmFtZTogXCIvXCIsXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlbid0IHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgICAgYnVuZGxlUGF0aDogXCJcIixcbiAgICAgICAgZmlsZW5hbWU6IFwiXCIsXG4gICAgICAgIGFwcFBhdGhzOiBbXVxuICAgIH0sXG4gICAgdXNlcmxhbmQ6IHtcbiAgICAgICAgbG9hZGVyVHJlZTogdHJlZVxuICAgIH1cbn0pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHAtcGFnZS5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(action-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fservices%2Fanalyze-bottle.ts%22%2C%5B%22analyzeBottle%22%5D%5D%2C%5B%22%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fservices%2Fsave-bottle.ts%22%2C%5B%22saveBottle%22%5D%5D%5D&__client_imported__=true!":
|
|
/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fservices%2Fanalyze-bottle.ts%22%2C%5B%22analyzeBottle%22%5D%5D%2C%5B%22%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fservices%2Fsave-bottle.ts%22%2C%5B%22saveBottle%22%5D%5D%5D&__client_imported__=true! ***!
|
|
\*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
|
|
eval("\nconst actions = {\n'af8f7c7b0fe98b99031bb1c9e8ef0ed13b2eae40': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/services/analyze-bottle.ts */ \"(action-browser)/./src/services/analyze-bottle.ts\")).then(mod => mod[\"analyzeBottle\"]),\n'9cc2ffbf85f4e72220537b4253faa867d3a48bad': () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/services/save-bottle.ts */ \"(action-browser)/./src/services/save-bottle.ts\")).then(mod => mod[\"saveBottle\"]),\n}\n\nasync function endpoint(id, ...args) {\n const action = await actions[id]()\n return action.apply(null, args)\n}\n\n// Using CJS to avoid this to be tree-shaken away due to unused exports.\nmodule.exports = {\n 'af8f7c7b0fe98b99031bb1c9e8ef0ed13b2eae40': endpoint.bind(null, 'af8f7c7b0fe98b99031bb1c9e8ef0ed13b2eae40'),\n '9cc2ffbf85f4e72220537b4253faa867d3a48bad': endpoint.bind(null, '9cc2ffbf85f4e72220537b4253faa867d3a48bad'),\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWFjdGlvbi1lbnRyeS1sb2FkZXIuanM/YWN0aW9ucz0lNUIlNUIlMjIlMkZob21lJTJGcm9iaW4lMkZBSSUyRkNvZGluZyUyRldoaXNreSUyRnNyYyUyRnNlcnZpY2VzJTJGYW5hbHl6ZS1ib3R0bGUudHMlMjIlMkMlNUIlMjJhbmFseXplQm90dGxlJTIyJTVEJTVEJTJDJTVCJTIyJTJGaG9tZSUyRnJvYmluJTJGQUklMkZDb2RpbmclMkZXaGlza3klMkZzcmMlMkZzZXJ2aWNlcyUyRnNhdmUtYm90dGxlLnRzJTIyJTJDJTVCJTIyc2F2ZUJvdHRsZSUyMiU1RCU1RCU1RCZfX2NsaWVudF9pbXBvcnRlZF9fPXRydWUhIiwibWFwcGluZ3MiOiI7QUFDQTtBQUNBLGtEQUFrRCx1TEFBZ0c7QUFDbEosa0RBQWtELGlMQUE2RjtBQUMvSTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vd2hpc2t5LXZhdWx0Lz85NDhlIl0sInNvdXJjZXNDb250ZW50IjpbIlxuY29uc3QgYWN0aW9ucyA9IHtcbidhZjhmN2M3YjBmZTk4Yjk5MDMxYmIxYzllOGVmMGVkMTNiMmVhZTQwJzogKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvaG9tZS9yb2Jpbi9BSS9Db2RpbmcvV2hpc2t5L3NyYy9zZXJ2aWNlcy9hbmFseXplLWJvdHRsZS50c1wiKS50aGVuKG1vZCA9PiBtb2RbXCJhbmFseXplQm90dGxlXCJdKSxcbic5Y2MyZmZiZjg1ZjRlNzIyMjA1MzdiNDI1M2ZhYTg2N2QzYTQ4YmFkJzogKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvaG9tZS9yb2Jpbi9BSS9Db2RpbmcvV2hpc2t5L3NyYy9zZXJ2aWNlcy9zYXZlLWJvdHRsZS50c1wiKS50aGVuKG1vZCA9PiBtb2RbXCJzYXZlQm90dGxlXCJdKSxcbn1cblxuYXN5bmMgZnVuY3Rpb24gZW5kcG9pbnQoaWQsIC4uLmFyZ3MpIHtcbiAgY29uc3QgYWN0aW9uID0gYXdhaXQgYWN0aW9uc1tpZF0oKVxuICByZXR1cm4gYWN0aW9uLmFwcGx5KG51bGwsIGFyZ3MpXG59XG5cbi8vIFVzaW5nIENKUyB0byBhdm9pZCB0aGlzIHRvIGJlIHRyZWUtc2hha2VuIGF3YXkgZHVlIHRvIHVudXNlZCBleHBvcnRzLlxubW9kdWxlLmV4cG9ydHMgPSB7XG4gICdhZjhmN2M3YjBmZTk4Yjk5MDMxYmIxYzllOGVmMGVkMTNiMmVhZTQwJzogZW5kcG9pbnQuYmluZChudWxsLCAnYWY4ZjdjN2IwZmU5OGI5OTAzMWJiMWM5ZThlZjBlZDEzYjJlYWU0MCcpLFxuICAnOWNjMmZmYmY4NWY0ZTcyMjIwNTM3YjQyNTNmYWE4NjdkM2E0OGJhZCc6IGVuZHBvaW50LmJpbmQobnVsbCwgJzljYzJmZmJmODVmNGU3MjIyMDUzN2I0MjUzZmFhODY3ZDNhNDhiYWQnKSxcbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(action-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-action-entry-loader.js?actions=%5B%5B%22%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fservices%2Fanalyze-bottle.ts%22%2C%5B%22analyzeBottle%22%5D%5D%2C%5B%22%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fservices%2Fsave-bottle.ts%22%2C%5B%22saveBottle%22%5D%5D%5D&__client_imported__=true!\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true!":
|
|
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true! ***!
|
|
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
|
|
eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/app-router.js */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/layout-router.js */ \"(ssr)/./node_modules/next/dist/client/components/layout-router.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/not-found-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/render-from-template-context.js */ \"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js\", 23));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js */ \"(ssr)/./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.js\", 23))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTJGaG9tZSUyRnJvYmluJTJGQUklMkZDb2RpbmclMkZXaGlza3klMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZhcHAtcm91dGVyLmpzJm1vZHVsZXM9JTJGaG9tZSUyRnJvYmluJTJGQUklMkZDb2RpbmclMkZXaGlza3klMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZlcnJvci1ib3VuZGFyeS5qcyZtb2R1bGVzPSUyRmhvbWUlMkZyb2JpbiUyRkFJJTJGQ29kaW5nJTJGV2hpc2t5JTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbGF5b3V0LXJvdXRlci5qcyZtb2R1bGVzPSUyRmhvbWUlMkZyb2JpbiUyRkFJJTJGQ29kaW5nJTJGV2hpc2t5JTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbm90LWZvdW5kLWJvdW5kYXJ5LmpzJm1vZHVsZXM9JTJGaG9tZSUyRnJvYmluJTJGQUklMkZDb2RpbmclMkZXaGlza3klMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZyZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzJm1vZHVsZXM9JTJGaG9tZSUyRnJvYmluJTJGQUklMkZDb2RpbmclMkZXaGlza3klMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZzdGF0aWMtZ2VuZXJhdGlvbi1zZWFyY2hwYXJhbXMtYmFpbG91dC1wcm92aWRlci5qcyZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQXdIO0FBQ3hILDBPQUE0SDtBQUM1SCx3T0FBMkg7QUFDM0gsa1BBQWdJO0FBQ2hJLHNRQUEwSTtBQUMxSSIsInNvdXJjZXMiOlsid2VicGFjazovL3doaXNreS12YXVsdC8/ZTM3NyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL3JvYmluL0FJL0NvZGluZy9XaGlza3kvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvaG9tZS9yb2Jpbi9BSS9Db2RpbmcvV2hpc2t5L25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanNcIik7XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL3JvYmluL0FJL0NvZGluZy9XaGlza3kvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyLmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvaG9tZS9yb2Jpbi9BSS9Db2RpbmcvV2hpc2t5L25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWJvdW5kYXJ5LmpzXCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvaG9tZS9yb2Jpbi9BSS9Db2RpbmcvV2hpc2t5L25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qc1wiKTtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2hvbWUvcm9iaW4vQUkvQ29kaW5nL1doaXNreS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLXNlYXJjaHBhcmFtcy1iYWlsb3V0LXByb3ZpZGVyLmpzXCIpIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fstatic-generation-searchparams-bailout-provider.js&server=true!\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fapp%2Fglobals.css&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fcomponents%2FOfflineIndicator.tsx&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fcomponents%2FPWARegistration.tsx&server=true!":
|
|
/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
|
|
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fapp%2Fglobals.css&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fcomponents%2FOfflineIndicator.tsx&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fcomponents%2FPWARegistration.tsx&server=true! ***!
|
|
\******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
|
|
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
|
|
eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/OfflineIndicator.tsx */ \"(ssr)/./src/components/OfflineIndicator.tsx\"));\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/PWARegistration.tsx */ \"(ssr)/./src/components/PWARegistration.tsx\"))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTJGaG9tZSUyRnJvYmluJTJGQUklMkZDb2RpbmclMkZXaGlza3klMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZm9udCUyRmdvb2dsZSUyRnRhcmdldC5jc3MlM0YlN0IlMjJwYXRoJTIyJTNBJTIyc3JjJTJGYXBwJTJGbGF5b3V0LnRzeCUyMiUyQyUyMmltcG9ydCUyMiUzQSUyMkludGVyJTIyJTJDJTIyYXJndW1lbnRzJTIyJTNBJTVCJTdCJTIyc3Vic2V0cyUyMiUzQSU1QiUyMmxhdGluJTIyJTVEJTdEJTVEJTJDJTIydmFyaWFibGVOYW1lJTIyJTNBJTIyaW50ZXIlMjIlN0QmbW9kdWxlcz0lMkZob21lJTJGcm9iaW4lMkZBSSUyRkNvZGluZyUyRldoaXNreSUyRnNyYyUyRmFwcCUyRmdsb2JhbHMuY3NzJm1vZHVsZXM9JTJGaG9tZSUyRnJvYmluJTJGQUklMkZDb2RpbmclMkZXaGlza3klMkZzcmMlMkZjb21wb25lbnRzJTJGT2ZmbGluZUluZGljYXRvci50c3gmbW9kdWxlcz0lMkZob21lJTJGcm9iaW4lMkZBSSUyRkNvZGluZyUyRldoaXNreSUyRnNyYyUyRmNvbXBvbmVudHMlMkZQV0FSZWdpc3RyYXRpb24udHN4JnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSxzTEFBcUc7QUFDckciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly93aGlza3ktdmF1bHQvPzBiY2YiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvaG9tZS9yb2Jpbi9BSS9Db2RpbmcvV2hpc2t5L3NyYy9jb21wb25lbnRzL09mZmxpbmVJbmRpY2F0b3IudHN4XCIpO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvaG9tZS9yb2Jpbi9BSS9Db2RpbmcvV2hpc2t5L3NyYy9jb21wb25lbnRzL1BXQVJlZ2lzdHJhdGlvbi50c3hcIikiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fnode_modules%2Fnext%2Ffont%2Fgoogle%2Ftarget.css%3F%7B%22path%22%3A%22src%2Fapp%2Flayout.tsx%22%2C%22import%22%3A%22Inter%22%2C%22arguments%22%3A%5B%7B%22subsets%22%3A%5B%22latin%22%5D%7D%5D%2C%22variableName%22%3A%22inter%22%7D&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fapp%2Fglobals.css&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fcomponents%2FOfflineIndicator.tsx&modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fcomponents%2FPWARegistration.tsx&server=true!\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fapp%2Fpage.tsx&server=true!":
|
|
/*!****************************************************************************************************************************************************************************!*\
|
|
!*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fapp%2Fpage.tsx&server=true! ***!
|
|
\****************************************************************************************************************************************************************************/
|
|
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
|
|
|
|
eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/page.tsx */ \"(ssr)/./src/app/page.tsx\"))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTJGaG9tZSUyRnJvYmluJTJGQUklMkZDb2RpbmclMkZXaGlza3klMkZzcmMlMkZhcHAlMkZwYWdlLnRzeCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly93aGlza3ktdmF1bHQvPzM5YjgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvaG9tZS9yb2Jpbi9BSS9Db2RpbmcvV2hpc2t5L3NyYy9hcHAvcGFnZS50c3hcIikiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fapp%2Fpage.tsx&server=true!\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./src/app/page.tsx":
|
|
/*!**************************!*\
|
|
!*** ./src/app/page.tsx ***!
|
|
\**************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Home)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @supabase/auth-helpers-nextjs */ \"(ssr)/./node_modules/@supabase/auth-helpers-nextjs/dist/index.js\");\n/* harmony import */ var _supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _components_CameraCapture__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/CameraCapture */ \"(ssr)/./src/components/CameraCapture.tsx\");\n/* harmony import */ var _components_BottleGrid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/BottleGrid */ \"(ssr)/./src/components/BottleGrid.tsx\");\n/* harmony import */ var _components_AuthForm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/AuthForm */ \"(ssr)/./src/components/AuthForm.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n\nfunction Home() {\n const supabase = (0,_supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__.createClientComponentClient)();\n const [bottles, setBottles] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [isLoading, setIsLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [user, setUser] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null); // Added user state\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n // Check session\n const checkUser = async ()=>{\n const { data: { session } } = await supabase.auth.getSession();\n setUser(session?.user ?? null);\n if (session?.user) {\n fetchCollection();\n } else {\n setIsLoading(false);\n }\n };\n checkUser();\n // Listen for auth changes\n const { data: { subscription } } = supabase.auth.onAuthStateChange((_event, session)=>{\n setUser(session?.user ?? null);\n if (session?.user) {\n fetchCollection();\n } else {\n setBottles([]);\n }\n });\n return ()=>subscription.unsubscribe();\n }, []);\n const fetchCollection = async ()=>{\n setIsLoading(true);\n try {\n // Fetch bottles with their latest tasting date\n const { data, error } = await supabase.from(\"bottles\").select(`\n *,\n tastings (\n created_at\n )\n `).order(\"created_at\", {\n ascending: false\n });\n if (error) throw error;\n // Process data to get the absolute latest tasting date for each bottle\n const processedBottles = (data || []).map((bottle)=>{\n const lastTasted = bottle.tastings && bottle.tastings.length > 0 ? bottle.tastings.reduce((latest, current)=>new Date(current.created_at) > new Date(latest) ? current.created_at : latest, bottle.tastings[0].created_at) : null;\n return {\n ...bottle,\n last_tasted: lastTasted\n };\n });\n setBottles(processedBottles);\n } catch (err) {\n console.error(\"Error fetching collection:\", err);\n } finally{\n setIsLoading(false);\n }\n };\n const handleLogout = async ()=>{\n await supabase.auth.signOut();\n };\n if (!user) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"flex min-h-screen flex-col items-center justify-center p-6 bg-zinc-50 dark:bg-black\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-12 text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-5xl font-black text-zinc-900 dark:text-white tracking-tighter mb-4\",\n children: [\n \"WHISKY\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-600\",\n children: \"VAULT\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 90,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 89,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-zinc-500 max-w-sm mx-auto\",\n children: \"Scanne deine Flaschen, tracke deine Tastings und verwalte deinen Keller.\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 92,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 88,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_AuthForm__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 94,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 87,\n columnNumber: 13\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"flex min-h-screen flex-col items-center gap-12 p-6 md:p-24 bg-zinc-50 dark:bg-black\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"z-10 max-w-5xl w-full flex flex-col items-center gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"w-full flex justify-between items-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-4xl font-black text-zinc-900 dark:text-white tracking-tighter\",\n children: [\n \"WHISKY\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-600\",\n children: \"VAULT\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 104,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 103,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handleLogout,\n className: \"text-sm font-medium text-zinc-500 hover:text-zinc-800 dark:hover:text-zinc-300 transition-colors\",\n children: \"Abmelden\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 106,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 102,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_CameraCapture__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n onSaveComplete: fetchCollection\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 114,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full mt-12\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-2xl font-bold mb-6 text-zinc-800 dark:text-zinc-100 flex items-center gap-3\",\n children: [\n \"Deine Sammlung\",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-normal text-zinc-500 bg-zinc-100 dark:bg-zinc-800 px-3 py-1 rounded-full\",\n children: bottles.length\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 119,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 117,\n columnNumber: 21\n }, this),\n isLoading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center py-12\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-spin rounded-full h-8 w-8 border-b-2 border-amber-600\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 126,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 125,\n columnNumber: 25\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_BottleGrid__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n bottles: bottles\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 129,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 116,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 101,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/page.tsx\",\n lineNumber: 100,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUNFOzRCQUFHRixXQUFVOztnQ0FBcUU7OENBQ3pFLDhEQUFDRztvQ0FBS0gsV0FBVTs4Q0FBaUI7Ozs7Ozs7Ozs7OztzQ0FFM0MsOERBQUNNOzRCQUNHQyxTQUFTVjs0QkFDVEcsV0FBVTtzQ0FDYjs7Ozs7Ozs7Ozs7OzhCQUtMLDhEQUFDM0MsaUVBQWFBO29CQUFDbUQsZ0JBQWdCbkM7Ozs7Ozs4QkFFL0IsOERBQUM0QjtvQkFBSUQsV0FBVTs7c0NBQ1gsOERBQUNTOzRCQUFHVCxXQUFVOztnQ0FBbUY7OENBRTdGLDhEQUFDRztvQ0FBS0gsV0FBVTs4Q0FDWHRDLFFBQVEwQixNQUFNOzs7Ozs7Ozs7Ozs7d0JBSXRCeEIsMEJBQ0csOERBQUNxQzs0QkFBSUQsV0FBVTtzQ0FDWCw0RUFBQ0M7Z0NBQUlELFdBQVU7Ozs7Ozs7Ozs7aURBR25CLDhEQUFDMUMsOERBQVVBOzRCQUFDSSxTQUFTQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNN0MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly93aGlza3ktdmF1bHQvLi9zcmMvYXBwL3BhZ2UudHN4P2Y2OGEiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgY3JlYXRlQ2xpZW50Q29tcG9uZW50Q2xpZW50IH0gZnJvbSAnQHN1cGFiYXNlL2F1dGgtaGVscGVycy1uZXh0anMnO1xuaW1wb3J0IENhbWVyYUNhcHR1cmUgZnJvbSBcIkAvY29tcG9uZW50cy9DYW1lcmFDYXB0dXJlXCI7XG5pbXBvcnQgQm90dGxlR3JpZCBmcm9tIFwiQC9jb21wb25lbnRzL0JvdHRsZUdyaWRcIjtcbmltcG9ydCBBdXRoRm9ybSBmcm9tIFwiQC9jb21wb25lbnRzL0F1dGhGb3JtXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEhvbWUoKSB7XG4gICAgY29uc3Qgc3VwYWJhc2UgPSBjcmVhdGVDbGllbnRDb21wb25lbnRDbGllbnQoKTtcbiAgICBjb25zdCBbYm90dGxlcywgc2V0Qm90dGxlc10gPSB1c2VTdGF0ZTxhbnlbXT4oW10pO1xuICAgIGNvbnN0IFtpc0xvYWRpbmcsIHNldElzTG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbdXNlciwgc2V0VXNlcl0gPSB1c2VTdGF0ZTxhbnk+KG51bGwpOyAvLyBBZGRlZCB1c2VyIHN0YXRlXG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAvLyBDaGVjayBzZXNzaW9uXG4gICAgICAgIGNvbnN0IGNoZWNrVXNlciA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgZGF0YTogeyBzZXNzaW9uIH0gfSA9IGF3YWl0IHN1cGFiYXNlLmF1dGguZ2V0U2Vzc2lvbigpO1xuICAgICAgICAgICAgc2V0VXNlcihzZXNzaW9uPy51c2VyID8/IG51bGwpO1xuICAgICAgICAgICAgaWYgKHNlc3Npb24/LnVzZXIpIHtcbiAgICAgICAgICAgICAgICBmZXRjaENvbGxlY3Rpb24oKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBjaGVja1VzZXIoKTtcblxuICAgICAgICAvLyBMaXN0ZW4gZm9yIGF1dGggY2hhbmdlc1xuICAgICAgICBjb25zdCB7IGRhdGE6IHsgc3Vic2NyaXB0aW9uIH0gfSA9IHN1cGFiYXNlLmF1dGgub25BdXRoU3RhdGVDaGFuZ2UoKF9ldmVudCwgc2Vzc2lvbikgPT4ge1xuICAgICAgICAgICAgc2V0VXNlcihzZXNzaW9uPy51c2VyID8/IG51bGwpO1xuICAgICAgICAgICAgaWYgKHNlc3Npb24/LnVzZXIpIHtcbiAgICAgICAgICAgICAgICBmZXRjaENvbGxlY3Rpb24oKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0Qm90dGxlcyhbXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBmZXRjaENvbGxlY3Rpb24gPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIHNldElzTG9hZGluZyh0cnVlKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIEZldGNoIGJvdHRsZXMgd2l0aCB0aGVpciBsYXRlc3QgdGFzdGluZyBkYXRlXG4gICAgICAgICAgICBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCBzdXBhYmFzZVxuICAgICAgICAgICAgICAgIC5mcm9tKCdib3R0bGVzJylcbiAgICAgICAgICAgICAgICAuc2VsZWN0KGBcbiAgICAgICAgICAqLFxuICAgICAgICAgIHRhc3RpbmdzIChcbiAgICAgICAgICAgIGNyZWF0ZWRfYXRcbiAgICAgICAgICApXG4gICAgICAgIGApXG4gICAgICAgICAgICAgICAgLm9yZGVyKCdjcmVhdGVkX2F0JywgeyBhc2NlbmRpbmc6IGZhbHNlIH0pO1xuXG4gICAgICAgICAgICBpZiAoZXJyb3IpIHRocm93IGVycm9yO1xuXG4gICAgICAgICAgICAvLyBQcm9jZXNzIGRhdGEgdG8gZ2V0IHRoZSBhYnNvbHV0ZSBsYXRlc3QgdGFzdGluZyBkYXRlIGZvciBlYWNoIGJvdHRsZVxuICAgICAgICAgICAgY29uc3QgcHJvY2Vzc2VkQm90dGxlcyA9IChkYXRhIHx8IFtdKS5tYXAoYm90dGxlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXN0VGFzdGVkID0gYm90dGxlLnRhc3RpbmdzICYmIGJvdHRsZS50YXN0aW5ncy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgICAgID8gYm90dGxlLnRhc3RpbmdzLnJlZHVjZSgobGF0ZXN0OiBzdHJpbmcsIGN1cnJlbnQ6IGFueSkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBEYXRlKGN1cnJlbnQuY3JlYXRlZF9hdCkgPiBuZXcgRGF0ZShsYXRlc3QpID8gY3VycmVudC5jcmVhdGVkX2F0IDogbGF0ZXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgYm90dGxlLnRhc3RpbmdzWzBdLmNyZWF0ZWRfYXRcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICA6IG51bGw7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5ib3R0bGUsXG4gICAgICAgICAgICAgICAgICAgIGxhc3RfdGFzdGVkOiBsYXN0VGFzdGVkXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBzZXRCb3R0bGVzKHByb2Nlc3NlZEJvdHRsZXMpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGNvbGxlY3Rpb246JywgZXJyKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTG9nb3V0ID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCBzdXBhYmFzZS5hdXRoLnNpZ25PdXQoKTtcbiAgICB9O1xuXG4gICAgaWYgKCF1c2VyKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8bWFpbiBjbGFzc05hbWU9XCJmbGV4IG1pbi1oLXNjcmVlbiBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcC02IGJnLXppbmMtNTAgZGFyazpiZy1ibGFja1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItMTIgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInRleHQtNXhsIGZvbnQtYmxhY2sgdGV4dC16aW5jLTkwMCBkYXJrOnRleHQtd2hpdGUgdHJhY2tpbmctdGlnaHRlciBtYi00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBXSElTS1k8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWFtYmVyLTYwMFwiPlZBVUxUPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXppbmMtNTAwIG1heC13LXNtIG14LWF1dG9cIj5TY2FubmUgZGVpbmUgRmxhc2NoZW4sIHRyYWNrZSBkZWluZSBUYXN0aW5ncyB1bmQgdmVyd2FsdGUgZGVpbmVuIEtlbGxlci48L3A+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPEF1dGhGb3JtIC8+XG4gICAgICAgICAgICA8L21haW4+XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPG1haW4gY2xhc3NOYW1lPVwiZmxleCBtaW4taC1zY3JlZW4gZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC0xMiBwLTYgbWQ6cC0yNCBiZy16aW5jLTUwIGRhcms6YmctYmxhY2tcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiei0xMCBtYXgtdy01eGwgdy1mdWxsIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC04XCI+XG4gICAgICAgICAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9XCJ3LWZ1bGwgZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTR4bCBmb250LWJsYWNrIHRleHQtemluYy05MDAgZGFyazp0ZXh0LXdoaXRlIHRyYWNraW5nLXRpZ2h0ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIFdISVNLWTxzcGFuIGNsYXNzTmFtZT1cInRleHQtYW1iZXItNjAwXCI+VkFVTFQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUxvZ291dH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC16aW5jLTUwMCBob3Zlcjp0ZXh0LXppbmMtODAwIGRhcms6aG92ZXI6dGV4dC16aW5jLTMwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFibWVsZGVuXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgICAgICAgICAgPENhbWVyYUNhcHR1cmUgb25TYXZlQ29tcGxldGU9e2ZldGNoQ29sbGVjdGlvbn0gLz5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy1mdWxsIG10LTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGQgbWItNiB0ZXh0LXppbmMtODAwIGRhcms6dGV4dC16aW5jLTEwMCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgRGVpbmUgU2FtbWx1bmdcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1ub3JtYWwgdGV4dC16aW5jLTUwMCBiZy16aW5jLTEwMCBkYXJrOmJnLXppbmMtODAwIHB4LTMgcHktMSByb3VuZGVkLWZ1bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ym90dGxlcy5sZW5ndGh9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvaDI+XG5cbiAgICAgICAgICAgICAgICAgICAge2lzTG9hZGluZyA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWNlbnRlciBweS0xMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYW5pbWF0ZS1zcGluIHJvdW5kZWQtZnVsbCBoLTggdy04IGJvcmRlci1iLTIgYm9yZGVyLWFtYmVyLTYwMFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Qm90dGxlR3JpZCBib3R0bGVzPXtib3R0bGVzfSAvPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWFpbj5cbiAgICApO1xufVxuIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiY3JlYXRlQ2xpZW50Q29tcG9uZW50Q2xpZW50IiwiQ2FtZXJhQ2FwdHVyZSIsIkJvdHRsZUdyaWQiLCJBdXRoRm9ybSIsIkhvbWUiLCJzdXBhYmFzZSIsImJvdHRsZXMiLCJzZXRCb3R0bGVzIiwiaXNMb2FkaW5nIiwic2V0SXNMb2FkaW5nIiwidXNlciIsInNldFVzZXIiLCJjaGVja1VzZXIiLCJkYXRhIiwic2Vzc2lvbiIsImF1dGgiLCJnZXRTZXNzaW9uIiwiZmV0Y2hDb2xsZWN0aW9uIiwic3Vic2NyaXB0aW9uIiwib25BdXRoU3RhdGVDaGFuZ2UiLCJfZXZlbnQiLCJ1bnN1YnNjcmliZSIsImVycm9yIiwiZnJvbSIsInNlbGVjdCIsIm9yZGVyIiwiYXNjZW5kaW5nIiwicHJvY2Vzc2VkQm90dGxlcyIsIm1hcCIsImJvdHRsZSIsImxhc3RUYXN0ZWQiLCJ0YXN0aW5ncyIsImxlbmd0aCIsInJlZHVjZSIsImxhdGVzdCIsImN1cnJlbnQiLCJEYXRlIiwiY3JlYXRlZF9hdCIsImxhc3RfdGFzdGVkIiwiZXJyIiwiY29uc29sZSIsImhhbmRsZUxvZ291dCIsInNpZ25PdXQiLCJtYWluIiwiY2xhc3NOYW1lIiwiZGl2IiwiaDEiLCJzcGFuIiwicCIsImhlYWRlciIsImJ1dHRvbiIsIm9uQ2xpY2siLCJvblNhdmVDb21wbGV0ZSIsImgyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/app/page.tsx\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./src/components/AuthForm.tsx":
|
|
/*!*************************************!*\
|
|
!*** ./src/components/AuthForm.tsx ***!
|
|
\*************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ AuthForm)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @supabase/auth-helpers-nextjs */ \"(ssr)/./node_modules/@supabase/auth-helpers-nextjs/dist/index.js\");\n/* harmony import */ var _supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Loader2_Lock_LogIn_Mail_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Loader2,Lock,LogIn,Mail,UserPlus!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/log-in.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Loader2_Lock_LogIn_Mail_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Loader2,Lock,LogIn,Mail,UserPlus!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/user-plus.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Loader2_Lock_LogIn_Mail_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Loader2,Lock,LogIn,Mail,UserPlus!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/mail.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Loader2_Lock_LogIn_Mail_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Loader2,Lock,LogIn,Mail,UserPlus!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/lock.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Loader2_Lock_LogIn_Mail_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Loader2,Lock,LogIn,Mail,UserPlus!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/alert-circle.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Loader2_Lock_LogIn_Mail_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Loader2,Lock,LogIn,Mail,UserPlus!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/loader-2.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\nfunction AuthForm() {\n const supabase = (0,_supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__.createClientComponentClient)();\n const [isLogin, setIsLogin] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [email, setEmail] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [password, setPassword] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [message, setMessage] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const handleSubmit = async (e)=>{\n e.preventDefault();\n setLoading(true);\n setError(null);\n setMessage(null);\n try {\n if (isLogin) {\n const { error } = await supabase.auth.signInWithPassword({\n email,\n password\n });\n if (error) throw error;\n } else {\n const { error } = await supabase.auth.signUp({\n email,\n password,\n options: {\n emailRedirectTo: `${window.location.origin}/auth/callback`\n }\n });\n if (error) throw error;\n setMessage(\"Checke deine E-Mails, um dein Konto zu best\\xe4tigen!\");\n }\n } catch (err) {\n setError(err instanceof Error ? err.message : \"Ein Fehler ist aufgetreten\");\n } finally{\n setLoading(false);\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full max-w-md p-8 bg-white dark:bg-zinc-900 rounded-3xl shadow-2xl border border-zinc-200 dark:border-zinc-800\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center mb-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-16 h-16 bg-amber-100 dark:bg-amber-900/30 rounded-2xl flex items-center justify-center mb-4\",\n children: isLogin ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Loader2_Lock_LogIn_Mail_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"text-amber-600\",\n size: 32\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 48,\n columnNumber: 32\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Loader2_Lock_LogIn_Mail_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"text-amber-600\",\n size: 32\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 48,\n columnNumber: 81\n }, this)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 47,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-3xl font-black text-zinc-900 dark:text-white tracking-tight\",\n children: isLogin ? \"Willkommen zur\\xfcck\" : \"Vault erstellen\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 50,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-zinc-500 dark:text-zinc-400 mt-2 text-center text-sm\",\n children: isLogin ? \"Logge dich ein, um auf deine Sammlung zuzugreifen.\" : \"Starte heute mit deinem digitalen Whisky-Vault.\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 53,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 46,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleSubmit,\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"text-sm font-semibold text-zinc-700 dark:text-zinc-300 ml-1\",\n children: \"E-Mail\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 62,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Loader2_Lock_LogIn_Mail_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"absolute left-3 top-1/2 -translate-y-1/2 text-zinc-400\",\n size: 18\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 64,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"email\",\n value: email,\n onChange: (e)=>setEmail(e.target.value),\n placeholder: \"name@beispiel.de\",\n required: true,\n className: \"w-full pl-10 pr-4 py-3 bg-zinc-50 dark:bg-zinc-800 border border-zinc-200 dark:border-zinc-700 rounded-xl focus:ring-2 focus:ring-amber-500 focus:border-transparent outline-none transition-all dark:text-white\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 65,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 63,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 61,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"text-sm font-semibold text-zinc-700 dark:text-zinc-300 ml-1\",\n children: \"Passwort\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 77,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Loader2_Lock_LogIn_Mail_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"absolute left-3 top-1/2 -translate-y-1/2 text-zinc-400\",\n size: 18\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 79,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"password\",\n value: password,\n onChange: (e)=>setPassword(e.target.value),\n placeholder: \"••••••••\",\n required: true,\n className: \"w-full pl-10 pr-4 py-3 bg-zinc-50 dark:bg-zinc-800 border border-zinc-200 dark:border-zinc-700 rounded-xl focus:ring-2 focus:ring-amber-500 focus:border-transparent outline-none transition-all dark:text-white\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 80,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 78,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 76,\n columnNumber: 17\n }, this),\n error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 p-3 bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 text-sm rounded-lg border border-red-100 dark:border-red-900/50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Loader2_Lock_LogIn_Mail_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n size: 16\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 93,\n columnNumber: 25\n }, this),\n error\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 92,\n columnNumber: 21\n }, this),\n message && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 bg-green-50 dark:bg-green-900/20 text-green-600 dark:text-green-400 text-sm rounded-lg border border-green-100 dark:border-green-900/50\",\n children: message\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 99,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n disabled: loading,\n className: \"w-full py-4 bg-amber-600 hover:bg-amber-700 text-white font-bold rounded-xl shadow-lg shadow-amber-600/20 transition-all active:scale-[0.98] disabled:opacity-50 flex items-center justify-center gap-2\",\n children: loading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Loader2_Lock_LogIn_Mail_UserPlus_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"animate-spin\",\n size: 20\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 109,\n columnNumber: 32\n }, this) : isLogin ? \"Einloggen\" : \"Konto erstellen\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 104,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 60,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-6 text-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setIsLogin(!isLogin),\n className: \"text-sm font-medium text-amber-600 hover:text-amber-700 transition-colors\",\n children: isLogin ? \"Noch kein Konto? Registrieren\" : \"Bereits ein Konto? Einloggen\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 114,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 113,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/AuthForm.tsx\",\n lineNumber: 45,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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WUFBWVEsRUFBRXdCLE1BQU0sQ0FBQ0YsS0FBSzt3Q0FDM0NHLGFBQVk7d0NBQ1pDLFFBQVE7d0NBQ1JiLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7OztvQkFLckJsQix1QkFDRyw4REFBQ2lCO3dCQUFJQyxXQUFVOzswQ0FDWCw4REFBQzdCLHdIQUFXQTtnQ0FBQzhCLE1BQU07Ozs7Ozs0QkFDbEJuQjs7Ozs7OztvQkFJUkUseUJBQ0csOERBQUNlO3dCQUFJQyxXQUFVO2tDQUNWaEI7Ozs7OztrQ0FJVCw4REFBQzhCO3dCQUNHTixNQUFLO3dCQUNMTyxVQUFVbkM7d0JBQ1ZvQixXQUFVO2tDQUVUcEIsd0JBQVUsOERBQUNWLHdIQUFPQTs0QkFBQzhCLFdBQVU7NEJBQWVDLE1BQU07Ozs7O21DQUFVM0IsVUFBVSxjQUFjOzs7Ozs7Ozs7Ozs7MEJBSTdGLDhEQUFDeUI7Z0JBQUlDLFdBQVU7MEJBQ1gsNEVBQUNjO29CQUNHRSxTQUFTLElBQU16QyxXQUFXLENBQUNEO29CQUMzQjBCLFdBQVU7OEJBRVQxQixVQUFVLGtDQUFrQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLakUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly93aGlza3ktdmF1bHQvLi9zcmMvY29tcG9uZW50cy9BdXRoRm9ybS50c3g/M2M4YyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZUNsaWVudENvbXBvbmVudENsaWVudCB9IGZyb20gJ0BzdXBhYmFzZS9hdXRoLWhlbHBlcnMtbmV4dGpzJztcbmltcG9ydCB7IExvZ0luLCBVc2VyUGx1cywgTWFpbCwgTG9jaywgTG9hZGVyMiwgQWxlcnRDaXJjbGUgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBBdXRoRm9ybSgpIHtcbiAgICBjb25zdCBzdXBhYmFzZSA9IGNyZWF0ZUNsaWVudENvbXBvbmVudENsaWVudCgpO1xuICAgIGNvbnN0IFtpc0xvZ2luLCBzZXRJc0xvZ2luXSA9IHVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFtlbWFpbCwgc2V0RW1haWxdID0gdXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IFtwYXNzd29yZCwgc2V0UGFzc3dvcmRdID0gdXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IFttZXNzYWdlLCBzZXRNZXNzYWdlXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gICAgY29uc3QgaGFuZGxlU3VibWl0ID0gYXN5bmMgKGU6IFJlYWN0LkZvcm1FdmVudCkgPT4ge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgIHNldEVycm9yKG51bGwpO1xuICAgICAgICBzZXRNZXNzYWdlKG51bGwpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoaXNMb2dpbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3IgfSA9IGF3YWl0IHN1cGFiYXNlLmF1dGguc2lnbkluV2l0aFBhc3N3b3JkKHsgZW1haWwsIHBhc3N3b3JkIH0pO1xuICAgICAgICAgICAgICAgIGlmIChlcnJvcikgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3IgfSA9IGF3YWl0IHN1cGFiYXNlLmF1dGguc2lnblVwKHtcbiAgICAgICAgICAgICAgICAgICAgZW1haWwsXG4gICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbWFpbFJlZGlyZWN0VG86IGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59L2F1dGgvY2FsbGJhY2tgLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB0aHJvdyBlcnJvcjtcbiAgICAgICAgICAgICAgICBzZXRNZXNzYWdlKCdDaGVja2UgZGVpbmUgRS1NYWlscywgdW0gZGVpbiBLb250byB6dSBiZXN0w6R0aWdlbiEnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBzZXRFcnJvcihlcnIgaW5zdGFuY2VvZiBFcnJvciA/IGVyci5tZXNzYWdlIDogJ0VpbiBGZWhsZXIgaXN0IGF1ZmdldHJldGVuJyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbCBtYXgtdy1tZCBwLTggYmctd2hpdGUgZGFyazpiZy16aW5jLTkwMCByb3VuZGVkLTN4bCBzaGFkb3ctMnhsIGJvcmRlciBib3JkZXItemluYy0yMDAgZGFyazpib3JkZXItemluYy04MDBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgbWItOFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0xNiBoLTE2IGJnLWFtYmVyLTEwMCBkYXJrOmJnLWFtYmVyLTkwMC8zMCByb3VuZGVkLTJ4bCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtYi00XCI+XG4gICAgICAgICAgICAgICAgICAgIHtpc0xvZ2luID8gPExvZ0luIGNsYXNzTmFtZT1cInRleHQtYW1iZXItNjAwXCIgc2l6ZT17MzJ9IC8+IDogPFVzZXJQbHVzIGNsYXNzTmFtZT1cInRleHQtYW1iZXItNjAwXCIgc2l6ZT17MzJ9IC8+fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LTN4bCBmb250LWJsYWNrIHRleHQtemluYy05MDAgZGFyazp0ZXh0LXdoaXRlIHRyYWNraW5nLXRpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgIHtpc0xvZ2luID8gJ1dpbGxrb21tZW4genVyw7xjaycgOiAnVmF1bHQgZXJzdGVsbGVuJ31cbiAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtemluYy01MDAgZGFyazp0ZXh0LXppbmMtNDAwIG10LTIgdGV4dC1jZW50ZXIgdGV4dC1zbVwiPlxuICAgICAgICAgICAgICAgICAgICB7aXNMb2dpblxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnTG9nZ2UgZGljaCBlaW4sIHVtIGF1ZiBkZWluZSBTYW1tbHVuZyB6dXp1Z3JlaWZlbi4nXG4gICAgICAgICAgICAgICAgICAgICAgICA6ICdTdGFydGUgaGV1dGUgbWl0IGRlaW5lbSBkaWdpdGFsZW4gV2hpc2t5LVZhdWx0Lid9XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxmb3JtIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9IGNsYXNzTmFtZT1cInNwYWNlLXktNFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC16aW5jLTcwMCBkYXJrOnRleHQtemluYy0zMDAgbWwtMVwiPkUtTWFpbDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxNYWlsIGNsYXNzTmFtZT1cImFic29sdXRlIGxlZnQtMyB0b3AtMS8yIC10cmFuc2xhdGUteS0xLzIgdGV4dC16aW5jLTQwMFwiIHNpemU9ezE4fSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZW1haWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRFbWFpbChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJuYW1lQGJlaXNwaWVsLmRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBwbC0xMCBwci00IHB5LTMgYmctemluYy01MCBkYXJrOmJnLXppbmMtODAwIGJvcmRlciBib3JkZXItemluYy0yMDAgZGFyazpib3JkZXItemluYy03MDAgcm91bmRlZC14bCBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1hbWJlci01MDAgZm9jdXM6Ym9yZGVyLXRyYW5zcGFyZW50IG91dGxpbmUtbm9uZSB0cmFuc2l0aW9uLWFsbCBkYXJrOnRleHQtd2hpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtemluYy03MDAgZGFyazp0ZXh0LXppbmMtMzAwIG1sLTFcIj5QYXNzd29ydDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxMb2NrIGNsYXNzTmFtZT1cImFic29sdXRlIGxlZnQtMyB0b3AtMS8yIC10cmFuc2xhdGUteS0xLzIgdGV4dC16aW5jLTQwMFwiIHNpemU9ezE4fSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17cGFzc3dvcmR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRQYXNzd29yZChlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLigKLigKLigKLigKLigKLigKLigKLigKJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHBsLTEwIHByLTQgcHktMyBiZy16aW5jLTUwIGRhcms6YmctemluYy04MDAgYm9yZGVyIGJvcmRlci16aW5jLTIwMCBkYXJrOmJvcmRlci16aW5jLTcwMCByb3VuZGVkLXhsIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWFtYmVyLTUwMCBmb2N1czpib3JkZXItdHJhbnNwYXJlbnQgb3V0bGluZS1ub25lIHRyYW5zaXRpb24tYWxsIGRhcms6dGV4dC13aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIHtlcnJvciAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgcC0zIGJnLXJlZC01MCBkYXJrOmJnLXJlZC05MDAvMjAgdGV4dC1yZWQtNjAwIGRhcms6dGV4dC1yZWQtNDAwIHRleHQtc20gcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXJlZC0xMDAgZGFyazpib3JkZXItcmVkLTkwMC81MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEFsZXJ0Q2lyY2xlIHNpemU9ezE2fSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAge2Vycm9yfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAge21lc3NhZ2UgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtMyBiZy1ncmVlbi01MCBkYXJrOmJnLWdyZWVuLTkwMC8yMCB0ZXh0LWdyZWVuLTYwMCBkYXJrOnRleHQtZ3JlZW4tNDAwIHRleHQtc20gcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLWdyZWVuLTEwMCBkYXJrOmJvcmRlci1ncmVlbi05MDAvNTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHttZXNzYWdlfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2xvYWRpbmd9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBweS00IGJnLWFtYmVyLTYwMCBob3ZlcjpiZy1hbWJlci03MDAgdGV4dC13aGl0ZSBmb250LWJvbGQgcm91bmRlZC14bCBzaGFkb3ctbGcgc2hhZG93LWFtYmVyLTYwMC8yMCB0cmFuc2l0aW9uLWFsbCBhY3RpdmU6c2NhbGUtWzAuOThdIGRpc2FibGVkOm9wYWNpdHktNTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTJcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2xvYWRpbmcgPyA8TG9hZGVyMiBjbGFzc05hbWU9XCJhbmltYXRlLXNwaW5cIiBzaXplPXsyMH0gLz4gOiAoaXNMb2dpbiA/ICdFaW5sb2dnZW4nIDogJ0tvbnRvIGVyc3RlbGxlbicpfVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9mb3JtPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTYgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldElzTG9naW4oIWlzTG9naW4pfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtYW1iZXItNjAwIGhvdmVyOnRleHQtYW1iZXItNzAwIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtpc0xvZ2luID8gJ05vY2gga2VpbiBLb250bz8gUmVnaXN0cmllcmVuJyA6ICdCZXJlaXRzIGVpbiBLb250bz8gRWlubG9nZ2VuJ31cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlU3RhdGUiLCJjcmVhdGVDbGllbnRDb21wb25lbnRDbGllbnQiLCJMb2dJbiIsIlVzZXJQbHVzIiwiTWFpbCIsIkxvY2siLCJMb2FkZXIyIiwiQWxlcnRDaXJjbGUiLCJBdXRoRm9ybSIsInN1cGFiYXNlIiwiaXNMb2dpbiIsInNldElzTG9naW4iLCJlbWFpbCIsInNldEVtYWlsIiwicGFzc3dvcmQiLCJzZXRQYXNzd29yZCIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiZXJyb3IiLCJzZXRFcnJvciIsIm1lc3NhZ2UiLCJzZXRNZXNzYWdlIiwiaGFuZGxlU3VibWl0IiwiZSIsInByZXZlbnREZWZhdWx0IiwiYXV0aCIsInNpZ25JbldpdGhQYXNzd29yZCIsInNpZ25VcCIsIm9wdGlvbnMiLCJlbWFpbFJlZGlyZWN0VG8iLCJ3aW5kb3ciLCJsb2NhdGlvbiIsIm9yaWdpbiIsImVyciIsIkVycm9yIiwiZGl2IiwiY2xhc3NOYW1lIiwic2l6ZSIsImgyIiwicCIsImZvcm0iLCJvblN1Ym1pdCIsImxhYmVsIiwiaW5wdXQiLCJ0eXBlIiwidmFsdWUiLCJvbkNoYW5nZSIsInRhcmdldCIsInBsYWNlaG9sZGVyIiwicmVxdWlyZWQiLCJidXR0b24iLCJkaXNhYmxlZCIsIm9uQ2xpY2siXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/components/AuthForm.tsx\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./src/components/BottleGrid.tsx":
|
|
/*!***************************************!*\
|
|
!*** ./src/components/BottleGrid.tsx ***!
|
|
\***************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ BottleGrid)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"(ssr)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Clock,FlaskConical,Ghost,Lock,Search,Unlock,X!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/unlock.js\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Clock,FlaskConical,Ghost,Lock,Search,Unlock,X!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/flask-conical.js\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Clock,FlaskConical,Ghost,Lock,Search,Unlock,X!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/ghost.js\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Clock,FlaskConical,Ghost,Lock,Search,Unlock,X!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/lock.js\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Clock,FlaskConical,Ghost,Lock,Search,Unlock,X!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/clock.js\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Clock,FlaskConical,Ghost,Lock,Search,Unlock,X!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/calendar.js\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Clock,FlaskConical,Ghost,Lock,Search,Unlock,X!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/search.js\");\n/* harmony import */ var _barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=Calendar,Clock,FlaskConical,Ghost,Lock,Search,Unlock,X!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/x.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\nfunction BottleCard({ bottle }) {\n const statusConfig = {\n open: {\n icon: _barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n color: \"bg-amber-500/80 border-amber-400/50\",\n label: \"Offen\"\n },\n sampled: {\n icon: _barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n color: \"bg-purple-500/80 border-purple-400/50\",\n label: \"Sample\"\n },\n empty: {\n icon: _barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n color: \"bg-zinc-500/80 border-zinc-400/50\",\n label: \"Leer\"\n },\n sealed: {\n icon: _barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n color: \"bg-blue-600/80 border-blue-400/50\",\n label: \"Versiegelt\"\n }\n };\n const StatusIcon = statusConfig[bottle.status]?.icon || _barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\n const statusStyle = statusConfig[bottle.status] || statusConfig.sealed;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: `/bottles/${bottle.id}`,\n className: \"block h-full group\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full bg-white dark:bg-zinc-900 rounded-[2rem] overflow-hidden border border-zinc-200 dark:border-zinc-800 shadow-sm transition-all duration-300 hover:shadow-2xl hover:shadow-amber-900/10 hover:-translate-y-1 group-hover:border-amber-500/30\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"aspect-[4/3] overflow-hidden bg-zinc-100 dark:bg-zinc-800 relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: bottle.image_url,\n alt: bottle.name,\n className: \"w-full h-full object-cover transition-transform duration-700 group-hover:scale-110\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 26,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-gradient-to-t from-black/40 via-transparent to-transparent opacity-0 group-hover:opacity-100 transition-opacity\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 31,\n columnNumber: 21\n }, this),\n bottle.last_tasted && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute top-3 right-3 bg-zinc-900/80 backdrop-blur-md text-white text-[9px] font-black px-2 py-1 rounded-lg flex items-center gap-1 border border-white/10 ring-1 ring-black/5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n size: 10\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 35,\n columnNumber: 29\n }, this),\n new Date(bottle.last_tasted).toLocaleDateString(\"de-DE\")\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 34,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `absolute bottom-3 left-3 px-3 py-1.5 rounded-xl text-[10px] font-black uppercase flex items-center gap-2 backdrop-blur-md border shadow-lg ${statusStyle.color}`,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(StatusIcon, {\n size: 12\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 41,\n columnNumber: 25\n }, this),\n statusStyle.label\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 40,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 25,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-5 space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-[10px] font-black text-amber-600 uppercase tracking-[0.2em] mb-1 leading-none\",\n children: bottle.distillery\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 48,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-black text-xl text-zinc-900 dark:text-zinc-100 leading-tight group-hover:text-amber-600 transition-colors line-clamp-2 min-h-[3.5rem] flex items-center\",\n children: bottle.name\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 49,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 47,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-wrap gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"px-2.5 py-1 bg-zinc-100 dark:bg-zinc-800 text-zinc-600 dark:text-zinc-400 text-[10px] font-black uppercase tracking-widest rounded-lg border border-zinc-200/50 dark:border-zinc-700/50\",\n children: bottle.category\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 55,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"px-2.5 py-1 bg-amber-50 dark:bg-amber-900/20 text-amber-700 dark:text-amber-400 text-[10px] font-black uppercase tracking-widest rounded-lg border border-amber-200/50 dark:border-amber-800/20\",\n children: [\n bottle.abv,\n \"% VOL\"\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 58,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 54,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pt-2 flex items-center gap-2 text-[10px] font-bold text-zinc-400 uppercase tracking-wider border-t border-zinc-100 dark:border-zinc-800\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n size: 12,\n className: \"text-zinc-300\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 64,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"opacity-70 text-[9px]\",\n children: \"Hinzugef\\xfcgt am\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 65,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-500 dark:text-zinc-300\",\n children: new Date(bottle.created_at).toLocaleDateString(\"de-DE\")\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 66,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 63,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 46,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 24,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 23,\n columnNumber: 9\n }, this);\n}\nfunction BottleGrid({ bottles }) {\n const [searchQuery, setSearchQuery] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"\");\n const [selectedCategory, setSelectedCategory] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [selectedDistillery, setSelectedDistillery] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [selectedStatus, setSelectedStatus] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [sortBy, setSortBy] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"created_at\");\n const categories = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const cats = new Set(bottles.map((b)=>b.category).filter(Boolean));\n return Array.from(cats).sort();\n }, [\n bottles\n ]);\n const distilleries = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const dists = new Set(bottles.map((b)=>b.distillery).filter(Boolean));\n return Array.from(dists).sort();\n }, [\n bottles\n ]);\n const filteredBottles = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n let result = bottles.filter((bottle)=>{\n const matchesSearch = bottle.name?.toLowerCase().includes(searchQuery.toLowerCase()) || bottle.distillery?.toLowerCase().includes(searchQuery.toLowerCase());\n const matchesCategory = !selectedCategory || bottle.category === selectedCategory;\n const matchesDistillery = !selectedDistillery || bottle.distillery === selectedDistillery;\n const matchesStatus = !selectedStatus || bottle.status === selectedStatus;\n return matchesSearch && matchesCategory && matchesDistillery && matchesStatus;\n });\n // Sorting logic\n return result.sort((a, b)=>{\n if (sortBy === \"name\") {\n return (a.name || \"\").localeCompare(b.name || \"\");\n } else if (sortBy === \"last_tasted\") {\n const dateA = a.last_tasted ? new Date(a.last_tasted).getTime() : 0;\n const dateB = b.last_tasted ? new Date(b.last_tasted).getTime() : 0;\n return dateB - dateA;\n } else {\n return new Date(b.created_at).getTime() - new Date(a.created_at).getTime();\n }\n });\n }, [\n bottles,\n searchQuery,\n selectedCategory,\n selectedDistillery,\n sortBy\n ]);\n if (!bottles || bottles.length === 0) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center py-12 p-8 bg-zinc-50 dark:bg-zinc-900/50 rounded-3xl border-2 border-dashed border-zinc-200 dark:border-zinc-800\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-zinc-500\",\n children: \"Noch keine Flaschen im Vault. Zeit f\\xfcr den ersten Scan! \\uD83E\\uDD43\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 125,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 124,\n columnNumber: 13\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full space-y-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full max-w-6xl mx-auto px-4 space-y-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col md:flex-row gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative flex-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"absolute left-3 top-1/2 -translate-y-1/2 text-zinc-400\",\n size: 18\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 136,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n placeholder: \"Suchen nach Name oder Distille...\",\n value: searchQuery,\n onChange: (e)=>setSearchQuery(e.target.value),\n className: \"w-full pl-10 pr-4 py-3 bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-xl focus:ring-2 focus:ring-amber-500 outline-none transition-all\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 137,\n columnNumber: 25\n }, this),\n searchQuery && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setSearchQuery(\"\"),\n className: \"absolute right-3 top-1/2 -translate-y-1/2 text-zinc-400 hover:text-zinc-600\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Calendar_Clock_FlaskConical_Ghost_Lock_Search_Unlock_X_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n size: 16\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 149,\n columnNumber: 33\n }, this)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 145,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 135,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n value: sortBy,\n onChange: (e)=>setSortBy(e.target.value),\n className: \"px-4 py-3 bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 rounded-xl text-sm font-medium focus:ring-2 focus:ring-amber-500 outline-none cursor-pointer\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"created_at\",\n children: \"Neueste zuerst\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 159,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"last_tasted\",\n children: \"Zuletzt verkostet\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 160,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: \"name\",\n children: \"Alphabetisch\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 161,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 154,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 134,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[10px] font-black uppercase tracking-widest text-zinc-400 px-1\",\n children: \"Kategorie\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 168,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-2 overflow-x-auto pb-2 scrollbar-hide\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setSelectedCategory(null),\n className: `px-4 py-2 rounded-xl text-xs font-bold whitespace-nowrap transition-all border ${selectedCategory === null ? \"bg-amber-600 border-amber-600 text-white shadow-lg shadow-amber-600/20\" : \"bg-white dark:bg-zinc-900 border-zinc-200 dark:border-zinc-800 text-zinc-600 dark:text-zinc-400\"}`,\n children: \"ALLE\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 170,\n columnNumber: 29\n }, this),\n categories.map((cat)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setSelectedCategory(cat),\n className: `px-4 py-2 rounded-xl text-xs font-bold whitespace-nowrap transition-all border ${selectedCategory === cat ? \"bg-amber-600 border-amber-600 text-white shadow-lg shadow-amber-600/20\" : \"bg-white dark:bg-zinc-900 border-zinc-200 dark:border-zinc-800 text-zinc-600 dark:text-zinc-400\"}`,\n children: cat.toUpperCase()\n }, cat, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 180,\n columnNumber: 33\n }, this))\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 169,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 167,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[10px] font-black uppercase tracking-widest text-zinc-400 px-1\",\n children: \"Distillery\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 196,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-2 overflow-x-auto pb-2 scrollbar-hide\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setSelectedDistillery(null),\n className: `px-4 py-2 rounded-xl text-xs font-bold whitespace-nowrap transition-all border ${selectedDistillery === null ? \"bg-zinc-900 dark:bg-white text-white dark:text-zinc-900 border-zinc-900 dark:border-white\" : \"bg-white dark:bg-zinc-900 border-zinc-200 dark:border-zinc-800 text-zinc-600 dark:text-zinc-400\"}`,\n children: \"ALLE\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 198,\n columnNumber: 29\n }, this),\n distilleries.map((dist)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setSelectedDistillery(dist),\n className: `px-4 py-2 rounded-xl text-xs font-bold whitespace-nowrap transition-all border ${selectedDistillery === dist ? \"bg-zinc-900 dark:bg-white text-white dark:text-zinc-900 border-zinc-900 dark:border-white\" : \"bg-white dark:bg-zinc-900 border-zinc-200 dark:border-zinc-800 text-zinc-600 dark:text-zinc-400\"}`,\n children: dist.toUpperCase()\n }, dist, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 208,\n columnNumber: 33\n }, this))\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 197,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 195,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[10px] font-black uppercase tracking-widest text-zinc-400 px-1\",\n children: \"Status\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 224,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-2 overflow-x-auto pb-2 scrollbar-hide\",\n children: [\n \"sealed\",\n \"open\",\n \"sampled\",\n \"empty\"\n ].map((status)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setSelectedStatus(selectedStatus === status ? null : status),\n className: `px-4 py-2 rounded-xl text-xs font-bold whitespace-nowrap transition-all border ${selectedStatus === status ? status === \"open\" ? \"bg-amber-500 border-amber-500 text-white\" : status === \"sampled\" ? \"bg-purple-500 border-purple-500 text-white\" : status === \"empty\" ? \"bg-zinc-500 border-zinc-500 text-white\" : \"bg-blue-600 border-blue-600 text-white\" : \"bg-white dark:bg-zinc-900 border-zinc-200 dark:border-zinc-800 text-zinc-600 dark:text-zinc-400\"}`,\n children: status.toUpperCase()\n }, status, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 227,\n columnNumber: 33\n }, this))\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 225,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 223,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 165,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 133,\n columnNumber: 13\n }, this),\n filteredBottles.length > 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 w-full max-w-6xl mx-auto px-4\",\n children: filteredBottles.map((bottle)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(BottleCard, {\n bottle: bottle\n }, bottle.id, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 247,\n columnNumber: 25\n }, this))\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 245,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center py-12\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-zinc-500 italic\",\n children: \"Keine Flaschen gefunden, die deinen Filtern entsprechen. \\uD83D\\uDD0E\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 252,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 251,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/BottleGrid.tsx\",\n lineNumber: 131,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,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YUFBYVAsR0FBRyxDQUFDLENBQUNvQyxxQkFDZiw4REFBQ047b0RBRUdDLFNBQVMsSUFBTXZDLHNCQUFzQjRDO29EQUNyQ3JFLFdBQVcsQ0FBQywrRUFBK0UsRUFBRXdCLHVCQUF1QjZDLE9BQzlHLDhGQUNBLGtHQUNELENBQUM7OERBRUxBLEtBQUtELFdBQVc7bURBUFpDOzs7Ozs7Ozs7Ozs7Ozs7OzswQ0FjckIsOERBQUNwRTtnQ0FBSUQsV0FBVTs7a0RBQ1gsOERBQUNjO3dDQUFLZCxXQUFVO2tEQUFzRTs7Ozs7O2tEQUN0Riw4REFBQ0M7d0NBQUlELFdBQVU7a0RBQ1Y7NENBQUM7NENBQVU7NENBQVE7NENBQVc7eUNBQVEsQ0FBQ2lDLEdBQUcsQ0FBQyxDQUFDckMsdUJBQ3pDLDhEQUFDbUU7Z0RBRUdDLFNBQVMsSUFBTXJDLGtCQUFrQkQsbUJBQW1COUIsU0FBUyxPQUFPQTtnREFDcEVJLFdBQVcsQ0FBQywrRUFBK0UsRUFBRTBCLG1CQUFtQjlCLFNBQzFHQSxXQUFXLFNBQVMsNkNBQTZDQSxXQUFXLFlBQVksK0NBQStDQSxXQUFXLFVBQVUsMkNBQTJDLDJDQUN2TSxrR0FDRCxDQUFDOzBEQUVMQSxPQUFPd0UsV0FBVzsrQ0FQZHhFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBZ0I1QjhDLGdCQUFnQmEsTUFBTSxHQUFHLGtCQUN0Qiw4REFBQ3REO2dCQUFJRCxXQUFVOzBCQUNWMEMsZ0JBQWdCVCxHQUFHLENBQUMsQ0FBQy9DLHVCQUNsQiw4REFBQ0Q7d0JBQTJCQyxRQUFRQTt1QkFBbkJBLE9BQU9hLEVBQUU7Ozs7Ozs7OztxQ0FJbEMsOERBQUNFO2dCQUFJRCxXQUFVOzBCQUNYLDRFQUFDVztvQkFBRVgsV0FBVTs4QkFBdUI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBS3hEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vd2hpc2t5LXZhdWx0Ly4vc3JjL2NvbXBvbmVudHMvQm90dGxlR3JpZC50c3g/NjJiOSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBMaW5rIGZyb20gJ25leHQvbGluayc7XG5pbXBvcnQgeyBTZWFyY2gsIEZpbHRlciwgWCwgQ2FsZW5kYXIsIENsb2NrLCBQYWNrYWdlLCBMb2NrLCBVbmxvY2ssIEdob3N0LCBGbGFza0NvbmljYWwgfSBmcm9tICdsdWNpZGUtcmVhY3QnO1xuXG5pbnRlcmZhY2UgQm90dGxlQ2FyZFByb3BzIHtcbiAgICBib3R0bGU6IGFueTtcbn1cblxuZnVuY3Rpb24gQm90dGxlQ2FyZCh7IGJvdHRsZSB9OiBCb3R0bGVDYXJkUHJvcHMpIHtcbiAgICBjb25zdCBzdGF0dXNDb25maWcgPSB7XG4gICAgICAgIG9wZW46IHsgaWNvbjogVW5sb2NrLCBjb2xvcjogJ2JnLWFtYmVyLTUwMC84MCBib3JkZXItYW1iZXItNDAwLzUwJywgbGFiZWw6ICdPZmZlbicgfSxcbiAgICAgICAgc2FtcGxlZDogeyBpY29uOiBGbGFza0NvbmljYWwsIGNvbG9yOiAnYmctcHVycGxlLTUwMC84MCBib3JkZXItcHVycGxlLTQwMC81MCcsIGxhYmVsOiAnU2FtcGxlJyB9LFxuICAgICAgICBlbXB0eTogeyBpY29uOiBHaG9zdCwgY29sb3I6ICdiZy16aW5jLTUwMC84MCBib3JkZXItemluYy00MDAvNTAnLCBsYWJlbDogJ0xlZXInIH0sXG4gICAgICAgIHNlYWxlZDogeyBpY29uOiBMb2NrLCBjb2xvcjogJ2JnLWJsdWUtNjAwLzgwIGJvcmRlci1ibHVlLTQwMC81MCcsIGxhYmVsOiAnVmVyc2llZ2VsdCcgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgU3RhdHVzSWNvbiA9IHN0YXR1c0NvbmZpZ1tib3R0bGUuc3RhdHVzIGFzIGtleW9mIHR5cGVvZiBzdGF0dXNDb25maWddPy5pY29uIHx8IExvY2s7XG4gICAgY29uc3Qgc3RhdHVzU3R5bGUgPSBzdGF0dXNDb25maWdbYm90dGxlLnN0YXR1cyBhcyBrZXlvZiB0eXBlb2Ygc3RhdHVzQ29uZmlnXSB8fCBzdGF0dXNDb25maWcuc2VhbGVkO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPExpbmsgaHJlZj17YC9ib3R0bGVzLyR7Ym90dGxlLmlkfWB9IGNsYXNzTmFtZT1cImJsb2NrIGgtZnVsbCBncm91cFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLWZ1bGwgYmctd2hpdGUgZGFyazpiZy16aW5jLTkwMCByb3VuZGVkLVsycmVtXSBvdmVyZmxvdy1oaWRkZW4gYm9yZGVyIGJvcmRlci16aW5jLTIwMCBkYXJrOmJvcmRlci16aW5jLTgwMCBzaGFkb3ctc20gdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIGhvdmVyOnNoYWRvdy0yeGwgaG92ZXI6c2hhZG93LWFtYmVyLTkwMC8xMCBob3ZlcjotdHJhbnNsYXRlLXktMSBncm91cC1ob3Zlcjpib3JkZXItYW1iZXItNTAwLzMwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhc3BlY3QtWzQvM10gb3ZlcmZsb3ctaGlkZGVuIGJnLXppbmMtMTAwIGRhcms6YmctemluYy04MDAgcmVsYXRpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXtib3R0bGUuaW1hZ2VfdXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgYWx0PXtib3R0bGUubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBoLWZ1bGwgb2JqZWN0LWNvdmVyIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTcwMCBncm91cC1ob3ZlcjpzY2FsZS0xMTBcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgYmctZ3JhZGllbnQtdG8tdCBmcm9tLWJsYWNrLzQwIHZpYS10cmFuc3BhcmVudCB0by10cmFuc3BhcmVudCBvcGFjaXR5LTAgZ3JvdXAtaG92ZXI6b3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1vcGFjaXR5XCIgLz5cblxuICAgICAgICAgICAgICAgICAgICB7Ym90dGxlLmxhc3RfdGFzdGVkICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgdG9wLTMgcmlnaHQtMyBiZy16aW5jLTkwMC84MCBiYWNrZHJvcC1ibHVyLW1kIHRleHQtd2hpdGUgdGV4dC1bOXB4XSBmb250LWJsYWNrIHB4LTIgcHktMSByb3VuZGVkLWxnIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xIGJvcmRlciBib3JkZXItd2hpdGUvMTAgcmluZy0xIHJpbmctYmxhY2svNVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDbG9jayBzaXplPXsxMH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bmV3IERhdGUoYm90dGxlLmxhc3RfdGFzdGVkKS50b0xvY2FsZURhdGVTdHJpbmcoJ2RlLURFJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YGFic29sdXRlIGJvdHRvbS0zIGxlZnQtMyBweC0zIHB5LTEuNSByb3VuZGVkLXhsIHRleHQtWzEwcHhdIGZvbnQtYmxhY2sgdXBwZXJjYXNlIGZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGJhY2tkcm9wLWJsdXItbWQgYm9yZGVyIHNoYWRvdy1sZyAke3N0YXR1c1N0eWxlLmNvbG9yfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFN0YXR1c0ljb24gc2l6ZT17MTJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB7c3RhdHVzU3R5bGUubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTUgc3BhY2UteS00XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LVsxMHB4XSBmb250LWJsYWNrIHRleHQtYW1iZXItNjAwIHVwcGVyY2FzZSB0cmFja2luZy1bMC4yZW1dIG1iLTEgbGVhZGluZy1ub25lXCI+e2JvdHRsZS5kaXN0aWxsZXJ5fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJmb250LWJsYWNrIHRleHQteGwgdGV4dC16aW5jLTkwMCBkYXJrOnRleHQtemluYy0xMDAgbGVhZGluZy10aWdodCBncm91cC1ob3Zlcjp0ZXh0LWFtYmVyLTYwMCB0cmFuc2l0aW9uLWNvbG9ycyBsaW5lLWNsYW1wLTIgbWluLWgtWzMuNXJlbV0gZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ym90dGxlLm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC13cmFwIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJweC0yLjUgcHktMSBiZy16aW5jLTEwMCBkYXJrOmJnLXppbmMtODAwIHRleHQtemluYy02MDAgZGFyazp0ZXh0LXppbmMtNDAwIHRleHQtWzEwcHhdIGZvbnQtYmxhY2sgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdCByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItemluYy0yMDAvNTAgZGFyazpib3JkZXItemluYy03MDAvNTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ym90dGxlLmNhdGVnb3J5fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicHgtMi41IHB5LTEgYmctYW1iZXItNTAgZGFyazpiZy1hbWJlci05MDAvMjAgdGV4dC1hbWJlci03MDAgZGFyazp0ZXh0LWFtYmVyLTQwMCB0ZXh0LVsxMHB4XSBmb250LWJsYWNrIHVwcGVyY2FzZSB0cmFja2luZy13aWRlc3Qgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLWFtYmVyLTIwMC81MCBkYXJrOmJvcmRlci1hbWJlci04MDAvMjBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ym90dGxlLmFidn0lIFZPTFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInB0LTIgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC1bMTBweF0gZm9udC1ib2xkIHRleHQtemluYy00MDAgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIGJvcmRlci10IGJvcmRlci16aW5jLTEwMCBkYXJrOmJvcmRlci16aW5jLTgwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPENhbGVuZGFyIHNpemU9ezEyfSBjbGFzc05hbWU9XCJ0ZXh0LXppbmMtMzAwXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm9wYWNpdHktNzAgdGV4dC1bOXB4XVwiPkhpbnp1Z2Vmw7xndCBhbTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtemluYy01MDAgZGFyazp0ZXh0LXppbmMtMzAwXCI+e25ldyBEYXRlKGJvdHRsZS5jcmVhdGVkX2F0KS50b0xvY2FsZURhdGVTdHJpbmcoJ2RlLURFJyl9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L0xpbms+XG4gICAgKTtcbn1cblxuaW50ZXJmYWNlIEJvdHRsZUdyaWRQcm9wcyB7XG4gICAgYm90dGxlczogYW55W107XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEJvdHRsZUdyaWQoeyBib3R0bGVzIH06IEJvdHRsZUdyaWRQcm9wcykge1xuICAgIGNvbnN0IFtzZWFyY2hRdWVyeSwgc2V0U2VhcmNoUXVlcnldID0gdXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IFtzZWxlY3RlZENhdGVnb3J5LCBzZXRTZWxlY3RlZENhdGVnb3J5XSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZERpc3RpbGxlcnksIHNldFNlbGVjdGVkRGlzdGlsbGVyeV0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRTdGF0dXMsIHNldFNlbGVjdGVkU3RhdHVzXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IFtzb3J0QnksIHNldFNvcnRCeV0gPSB1c2VTdGF0ZTwnbmFtZScgfCAnbGFzdF90YXN0ZWQnIHwgJ2NyZWF0ZWRfYXQnPignY3JlYXRlZF9hdCcpO1xuXG4gICAgY29uc3QgY2F0ZWdvcmllcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBjb25zdCBjYXRzID0gbmV3IFNldChib3R0bGVzLm1hcChiID0+IGIuY2F0ZWdvcnkpLmZpbHRlcihCb29sZWFuKSk7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKGNhdHMpLnNvcnQoKSBhcyBzdHJpbmdbXTtcbiAgICB9LCBbYm90dGxlc10pO1xuXG4gICAgY29uc3QgZGlzdGlsbGVyaWVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRpc3RzID0gbmV3IFNldChib3R0bGVzLm1hcChiID0+IGIuZGlzdGlsbGVyeSkuZmlsdGVyKEJvb2xlYW4pKTtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oZGlzdHMpLnNvcnQoKSBhcyBzdHJpbmdbXTtcbiAgICB9LCBbYm90dGxlc10pO1xuXG4gICAgY29uc3QgZmlsdGVyZWRCb3R0bGVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCByZXN1bHQgPSBib3R0bGVzLmZpbHRlcigoYm90dGxlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVzU2VhcmNoID1cbiAgICAgICAgICAgICAgICBib3R0bGUubmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hRdWVyeS50b0xvd2VyQ2FzZSgpKSB8fFxuICAgICAgICAgICAgICAgIGJvdHRsZS5kaXN0aWxsZXJ5Py50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFF1ZXJ5LnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgICAgICAgICBjb25zdCBtYXRjaGVzQ2F0ZWdvcnkgPSAhc2VsZWN0ZWRDYXRlZ29yeSB8fCBib3R0bGUuY2F0ZWdvcnkgPT09IHNlbGVjdGVkQ2F0ZWdvcnk7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVzRGlzdGlsbGVyeSA9ICFzZWxlY3RlZERpc3RpbGxlcnkgfHwgYm90dGxlLmRpc3RpbGxlcnkgPT09IHNlbGVjdGVkRGlzdGlsbGVyeTtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXNTdGF0dXMgPSAhc2VsZWN0ZWRTdGF0dXMgfHwgYm90dGxlLnN0YXR1cyA9PT0gc2VsZWN0ZWRTdGF0dXM7XG5cbiAgICAgICAgICAgIHJldHVybiBtYXRjaGVzU2VhcmNoICYmIG1hdGNoZXNDYXRlZ29yeSAmJiBtYXRjaGVzRGlzdGlsbGVyeSAmJiBtYXRjaGVzU3RhdHVzO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTb3J0aW5nIGxvZ2ljXG4gICAgICAgIHJldHVybiByZXN1bHQuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgaWYgKHNvcnRCeSA9PT0gJ25hbWUnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChhLm5hbWUgfHwgJycpLmxvY2FsZUNvbXBhcmUoYi5uYW1lIHx8ICcnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoc29ydEJ5ID09PSAnbGFzdF90YXN0ZWQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZUEgPSBhLmxhc3RfdGFzdGVkID8gbmV3IERhdGUoYS5sYXN0X3Rhc3RlZCkuZ2V0VGltZSgpIDogMDtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlQiA9IGIubGFzdF90YXN0ZWQgPyBuZXcgRGF0ZShiLmxhc3RfdGFzdGVkKS5nZXRUaW1lKCkgOiAwO1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlQiAtIGRhdGVBO1xuICAgICAgICAgICAgfSBlbHNlIHsgLy8gc29ydEJ5ID09PSAnY3JlYXRlZF9hdCdcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUoYi5jcmVhdGVkX2F0KS5nZXRUaW1lKCkgLSBuZXcgRGF0ZShhLmNyZWF0ZWRfYXQpLmdldFRpbWUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSwgW2JvdHRsZXMsIHNlYXJjaFF1ZXJ5LCBzZWxlY3RlZENhdGVnb3J5LCBzZWxlY3RlZERpc3RpbGxlcnksIHNvcnRCeV0pO1xuXG4gICAgaWYgKCFib3R0bGVzIHx8IGJvdHRsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHB5LTEyIHAtOCBiZy16aW5jLTUwIGRhcms6YmctemluYy05MDAvNTAgcm91bmRlZC0zeGwgYm9yZGVyLTIgYm9yZGVyLWRhc2hlZCBib3JkZXItemluYy0yMDAgZGFyazpib3JkZXItemluYy04MDBcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXppbmMtNTAwXCI+Tm9jaCBrZWluZSBGbGFzY2hlbiBpbSBWYXVsdC4gWmVpdCBmw7xyIGRlbiBlcnN0ZW4gU2NhbiEg8J+lgzwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy1mdWxsIHNwYWNlLXktOFwiPlxuICAgICAgICAgICAgey8qIFNlYXJjaCBhbmQgRmlsdGVycyAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy1mdWxsIG1heC13LTZ4bCBteC1hdXRvIHB4LTQgc3BhY2UteS02XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC00XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U2VhcmNoIGNsYXNzTmFtZT1cImFic29sdXRlIGxlZnQtMyB0b3AtMS8yIC10cmFuc2xhdGUteS0xLzIgdGV4dC16aW5jLTQwMFwiIHNpemU9ezE4fSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU3VjaGVuIG5hY2ggTmFtZSBvZGVyIERpc3RpbGxlLi4uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2VhcmNoUXVlcnl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRTZWFyY2hRdWVyeShlLnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHBsLTEwIHByLTQgcHktMyBiZy13aGl0ZSBkYXJrOmJnLXppbmMtOTAwIGJvcmRlciBib3JkZXItemluYy0yMDAgZGFyazpib3JkZXItemluYy04MDAgcm91bmRlZC14bCBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1hbWJlci01MDAgb3V0bGluZS1ub25lIHRyYW5zaXRpb24tYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoUXVlcnkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2VhcmNoUXVlcnkoJycpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSByaWdodC0zIHRvcC0xLzIgLXRyYW5zbGF0ZS15LTEvMiB0ZXh0LXppbmMtNDAwIGhvdmVyOnRleHQtemluYy02MDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFggc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c29ydEJ5fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRTb3J0QnkoZS50YXJnZXQudmFsdWUgYXMgYW55KX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInB4LTQgcHktMyBiZy13aGl0ZSBkYXJrOmJnLXppbmMtOTAwIGJvcmRlciBib3JkZXItemluYy0yMDAgZGFyazpib3JkZXItemluYy04MDAgcm91bmRlZC14bCB0ZXh0LXNtIGZvbnQtbWVkaXVtIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWFtYmVyLTUwMCBvdXRsaW5lLW5vbmUgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiY3JlYXRlZF9hdFwiPk5ldWVzdGUgenVlcnN0PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibGFzdF90YXN0ZWRcIj5adWxldHp0IHZlcmtvc3RldDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm5hbWVcIj5BbHBoYWJldGlzY2g8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktNFwiPlxuICAgICAgICAgICAgICAgICAgICB7LyogQ2F0ZWdvcnkgRmlsdGVyICovfVxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtWzEwcHhdIGZvbnQtYmxhY2sgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdCB0ZXh0LXppbmMtNDAwIHB4LTFcIj5LYXRlZ29yaWU8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTIgb3ZlcmZsb3cteC1hdXRvIHBiLTIgc2Nyb2xsYmFyLWhpZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNlbGVjdGVkQ2F0ZWdvcnkobnVsbCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHB4LTQgcHktMiByb3VuZGVkLXhsIHRleHQteHMgZm9udC1ib2xkIHdoaXRlc3BhY2Utbm93cmFwIHRyYW5zaXRpb24tYWxsIGJvcmRlciAke3NlbGVjdGVkQ2F0ZWdvcnkgPT09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2JnLWFtYmVyLTYwMCBib3JkZXItYW1iZXItNjAwIHRleHQtd2hpdGUgc2hhZG93LWxnIHNoYWRvdy1hbWJlci02MDAvMjAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdiZy13aGl0ZSBkYXJrOmJnLXppbmMtOTAwIGJvcmRlci16aW5jLTIwMCBkYXJrOmJvcmRlci16aW5jLTgwMCB0ZXh0LXppbmMtNjAwIGRhcms6dGV4dC16aW5jLTQwMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUxMRVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yaWVzLm1hcCgoY2F0KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y2F0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2VsZWN0ZWRDYXRlZ29yeShjYXQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcHgtNCBweS0yIHJvdW5kZWQteGwgdGV4dC14cyBmb250LWJvbGQgd2hpdGVzcGFjZS1ub3dyYXAgdHJhbnNpdGlvbi1hbGwgYm9yZGVyICR7c2VsZWN0ZWRDYXRlZ29yeSA9PT0gY2F0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnYmctYW1iZXItNjAwIGJvcmRlci1hbWJlci02MDAgdGV4dC13aGl0ZSBzaGFkb3ctbGcgc2hhZG93LWFtYmVyLTYwMC8yMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdiZy13aGl0ZSBkYXJrOmJnLXppbmMtOTAwIGJvcmRlci16aW5jLTIwMCBkYXJrOmJvcmRlci16aW5jLTgwMCB0ZXh0LXppbmMtNjAwIGRhcms6dGV4dC16aW5jLTQwMCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NhdC50b1VwcGVyQ2FzZSgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICB7LyogRGlzdGlsbGVyeSBGaWx0ZXIgKi99XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1bMTBweF0gZm9udC1ibGFjayB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0IHRleHQtemluYy00MDAgcHgtMVwiPkRpc3RpbGxlcnk8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTIgb3ZlcmZsb3cteC1hdXRvIHBiLTIgc2Nyb2xsYmFyLWhpZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFNlbGVjdGVkRGlzdGlsbGVyeShudWxsKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcHgtNCBweS0yIHJvdW5kZWQteGwgdGV4dC14cyBmb250LWJvbGQgd2hpdGVzcGFjZS1ub3dyYXAgdHJhbnNpdGlvbi1hbGwgYm9yZGVyICR7c2VsZWN0ZWREaXN0aWxsZXJ5ID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdiZy16aW5jLTkwMCBkYXJrOmJnLXdoaXRlIHRleHQtd2hpdGUgZGFyazp0ZXh0LXppbmMtOTAwIGJvcmRlci16aW5jLTkwMCBkYXJrOmJvcmRlci13aGl0ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ2JnLXdoaXRlIGRhcms6YmctemluYy05MDAgYm9yZGVyLXppbmMtMjAwIGRhcms6Ym9yZGVyLXppbmMtODAwIHRleHQtemluYy02MDAgZGFyazp0ZXh0LXppbmMtNDAwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTExFXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2Rpc3RpbGxlcmllcy5tYXAoKGRpc3QpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtkaXN0fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2VsZWN0ZWREaXN0aWxsZXJ5KGRpc3QpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcHgtNCBweS0yIHJvdW5kZWQteGwgdGV4dC14cyBmb250LWJvbGQgd2hpdGVzcGFjZS1ub3dyYXAgdHJhbnNpdGlvbi1hbGwgYm9yZGVyICR7c2VsZWN0ZWREaXN0aWxsZXJ5ID09PSBkaXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnYmctemluYy05MDAgZGFyazpiZy13aGl0ZSB0ZXh0LXdoaXRlIGRhcms6dGV4dC16aW5jLTkwMCBib3JkZXItemluYy05MDAgZGFyazpib3JkZXItd2hpdGUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnYmctd2hpdGUgZGFyazpiZy16aW5jLTkwMCBib3JkZXItemluYy0yMDAgZGFyazpib3JkZXItemluYy04MDAgdGV4dC16aW5jLTYwMCBkYXJrOnRleHQtemluYy00MDAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtkaXN0LnRvVXBwZXJDYXNlKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIHsvKiBTdGF0dXMgRmlsdGVyICovfVxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtWzEwcHhdIGZvbnQtYmxhY2sgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdCB0ZXh0LXppbmMtNDAwIHB4LTFcIj5TdGF0dXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTIgb3ZlcmZsb3cteC1hdXRvIHBiLTIgc2Nyb2xsYmFyLWhpZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7WydzZWFsZWQnLCAnb3BlbicsICdzYW1wbGVkJywgJ2VtcHR5J10ubWFwKChzdGF0dXMpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtzdGF0dXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTZWxlY3RlZFN0YXR1cyhzZWxlY3RlZFN0YXR1cyA9PT0gc3RhdHVzID8gbnVsbCA6IHN0YXR1cyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BweC00IHB5LTIgcm91bmRlZC14bCB0ZXh0LXhzIGZvbnQtYm9sZCB3aGl0ZXNwYWNlLW5vd3JhcCB0cmFuc2l0aW9uLWFsbCBib3JkZXIgJHtzZWxlY3RlZFN0YXR1cyA9PT0gc3RhdHVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBzdGF0dXMgPT09ICdvcGVuJyA/ICdiZy1hbWJlci01MDAgYm9yZGVyLWFtYmVyLTUwMCB0ZXh0LXdoaXRlJyA6IHN0YXR1cyA9PT0gJ3NhbXBsZWQnID8gJ2JnLXB1cnBsZS01MDAgYm9yZGVyLXB1cnBsZS01MDAgdGV4dC13aGl0ZScgOiBzdGF0dXMgPT09ICdlbXB0eScgPyAnYmctemluYy01MDAgYm9yZGVyLXppbmMtNTAwIHRleHQtd2hpdGUnIDogJ2JnLWJsdWUtNjAwIGJvcmRlci1ibHVlLTYwMCB0ZXh0LXdoaXRlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ2JnLXdoaXRlIGRhcms6YmctemluYy05MDAgYm9yZGVyLXppbmMtMjAwIGRhcms6Ym9yZGVyLXppbmMtODAwIHRleHQtemluYy02MDAgZGFyazp0ZXh0LXppbmMtNDAwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3RhdHVzLnRvVXBwZXJDYXNlKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIHsvKiBHcmlkICovfVxuICAgICAgICAgICAge2ZpbHRlcmVkQm90dGxlcy5sZW5ndGggPiAwID8gKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBzbTpncmlkLWNvbHMtMiBsZzpncmlkLWNvbHMtMyBnYXAtNiB3LWZ1bGwgbWF4LXctNnhsIG14LWF1dG8gcHgtNFwiPlxuICAgICAgICAgICAgICAgICAgICB7ZmlsdGVyZWRCb3R0bGVzLm1hcCgoYm90dGxlKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8Qm90dGxlQ2FyZCBrZXk9e2JvdHRsZS5pZH0gYm90dGxlPXtib3R0bGV9IC8+XG4gICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHB5LTEyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtemluYy01MDAgaXRhbGljXCI+S2VpbmUgRmxhc2NoZW4gZ2VmdW5kZW4sIGRpZSBkZWluZW4gRmlsdGVybiBlbnRzcHJlY2hlbi4g8J+UjjwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsInVzZU1lbW8iLCJMaW5rIiwiU2VhcmNoIiwiWCIsIkNhbGVuZGFyIiwiQ2xvY2siLCJMb2NrIiwiVW5sb2NrIiwiR2hvc3QiLCJGbGFza0NvbmljYWwiLCJCb3R0bGVDYXJkIiwiYm90dGxlIiwic3RhdHVzQ29uZmlnIiwib3BlbiIsImljb24iLCJjb2xvciIsImxhYmVsIiwic2FtcGxlZCIsImVtcHR5Iiwic2VhbGVkIiwiU3RhdHVzSWNvbiIsInN0YXR1cyIsInN0YXR1c1N0eWxlIiwiaHJlZiIsImlkIiwiY2xhc3NOYW1lIiwiZGl2IiwiaW1nIiwic3JjIiwiaW1hZ2VfdXJsIiwiYWx0IiwibmFtZSIsImxhc3RfdGFzdGVkIiwic2l6ZSIsIkRhdGUiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJwIiwiZGlzdGlsbGVyeSIsImgzIiwic3BhbiIsImNhdGVnb3J5IiwiYWJ2IiwiY3JlYXRlZF9hdCIsIkJvdHRsZUdyaWQiLCJib3R0bGVzIiwic2VhcmNoUXVlcnkiLCJzZXRTZWFyY2hRdWVyeSIsInNlbGVjdGVkQ2F0ZWdvcnkiLCJzZXRTZWxlY3RlZENhdGVnb3J5Iiwic2VsZWN0ZWREaXN0aWxsZXJ5Iiwic2V0U2VsZWN0ZWREaXN0aWxsZXJ5Iiwic2VsZWN0ZWRTdGF0dXMiLCJzZXRTZWxlY3RlZFN0YXR1cyIsInNvcnRCeSIsInNldFNvcnRCeSIsImNhdGVnb3JpZXMiLCJjYXRzIiwiU2V0IiwibWFwIiwiYiIsImZpbHRlciIsIkJvb2xlYW4iLCJBcnJheSIsImZyb20iLCJzb3J0IiwiZGlzdGlsbGVyaWVzIiwiZGlzdHMiLCJmaWx0ZXJlZEJvdHRsZXMiLCJyZXN1bHQiLCJtYXRjaGVzU2VhcmNoIiwidG9Mb3dlckNhc2UiLCJpbmNsdWRlcyIsIm1hdGNoZXNDYXRlZ29yeSIsIm1hdGNoZXNEaXN0aWxsZXJ5IiwibWF0Y2hlc1N0YXR1cyIsImEiLCJsb2NhbGVDb21wYXJlIiwiZGF0ZUEiLCJnZXRUaW1lIiwiZGF0ZUIiLCJsZW5ndGgiLCJpbnB1dCIsInR5cGUiLCJwbGFjZWhvbGRlciIsInZhbHVlIiwib25DaGFuZ2UiLCJlIiwidGFyZ2V0IiwiYnV0dG9uIiwib25DbGljayIsInNlbGVjdCIsIm9wdGlvbiIsImNhdCIsInRvVXBwZXJDYXNlIiwiZGlzdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/components/BottleGrid.tsx\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./src/components/CameraCapture.tsx":
|
|
/*!******************************************!*\
|
|
!*** ./src/components/CameraCapture.tsx ***!
|
|
\******************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ CameraCapture)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Camera,CheckCircle2,Sparkles,Upload!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/camera.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Camera,CheckCircle2,Sparkles,Upload!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/check-circle-2.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Camera,CheckCircle2,Sparkles,Upload!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/upload.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Camera,CheckCircle2,Sparkles,Upload!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/alert-circle.js\");\n/* harmony import */ var _barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=AlertCircle,Camera,CheckCircle2,Sparkles,Upload!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/sparkles.js\");\n/* harmony import */ var _supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @supabase/auth-helpers-nextjs */ \"(ssr)/./node_modules/@supabase/auth-helpers-nextjs/dist/index.js\");\n/* harmony import */ var _supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _services_analyze_bottle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/services/analyze-bottle */ \"(ssr)/./src/services/analyze-bottle.ts\");\n/* harmony import */ var _services_save_bottle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/services/save-bottle */ \"(ssr)/./src/services/save-bottle.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n\nfunction CameraCapture({ onImageCaptured, onAnalysisComplete, onSaveComplete }) {\n const supabase = (0,_supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__.createClientComponentClient)();\n const fileInputRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const [isProcessing, setIsProcessing] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [isSaving, setIsSaving] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [previewUrl, setPreviewUrl] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const [analysisResult, setAnalysisResult] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(null);\n const handleCapture = async (event)=>{\n const file = event.target.files?.[0];\n if (!file) return;\n setIsProcessing(true);\n setError(null);\n setAnalysisResult(null);\n try {\n const compressedBase64 = await compressImage(file);\n setPreviewUrl(compressedBase64);\n if (onImageCaptured) {\n onImageCaptured(compressedBase64);\n }\n const response = await (0,_services_analyze_bottle__WEBPACK_IMPORTED_MODULE_3__.analyzeBottle)(compressedBase64);\n if (response.success && response.data) {\n setAnalysisResult(response.data);\n if (onAnalysisComplete) {\n onAnalysisComplete(response.data);\n }\n } else {\n setError(response.error || \"Analyse fehlgeschlagen.\");\n }\n } catch (err) {\n console.error(\"Processing failed:\", err);\n setError(\"Verarbeitung fehlgeschlagen. Bitte erneut versuchen.\");\n } finally{\n setIsProcessing(false);\n }\n };\n const handleSave = async ()=>{\n if (!analysisResult || !previewUrl) return;\n setIsSaving(true);\n setError(null);\n try {\n // Get current user (simple check for now, can be improved with Auth)\n const { data: { user } } = await supabase.auth.getUser();\n if (!user) {\n throw new Error(\"Bitte melde dich an, um Flaschen zu speichern.\");\n }\n const response = await (0,_services_save_bottle__WEBPACK_IMPORTED_MODULE_4__.saveBottle)(analysisResult, previewUrl, user.id);\n if (response.success) {\n setPreviewUrl(null);\n setAnalysisResult(null);\n if (onSaveComplete) onSaveComplete();\n // Optionale Erfolgsmeldung oder Redirect\n } else {\n setError(response.error || \"Speichern fehlgeschlagen.\");\n }\n } catch (err) {\n console.error(\"Save failed:\", err);\n setError(err instanceof Error ? err.message : \"Speichern fehlgeschlagen.\");\n } finally{\n setIsSaving(false);\n }\n };\n const compressImage = (file)=>{\n return new Promise((resolve, reject)=>{\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = (event)=>{\n const img = new Image();\n img.src = event.target?.result;\n img.onload = ()=>{\n const canvas = document.createElement(\"canvas\");\n const MAX_WIDTH = 1024;\n let width = img.width;\n let height = img.height;\n if (width > MAX_WIDTH) {\n height = height * MAX_WIDTH / width;\n width = MAX_WIDTH;\n }\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n reject(new Error(\"Canvas context not available\"));\n return;\n }\n ctx.drawImage(img, 0, 0, width, height);\n const base64 = canvas.toDataURL(\"image/jpeg\", 0.8);\n resolve(base64);\n };\n img.onerror = reject;\n };\n reader.onerror = reject;\n });\n };\n const triggerUpload = ()=>{\n fileInputRef.current?.click();\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center gap-6 w-full max-w-md mx-auto p-6 bg-white dark:bg-zinc-900 rounded-3xl shadow-2xl border border-zinc-200 dark:border-zinc-800 transition-all hover:shadow-whisky-amber/20\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-2xl font-bold text-zinc-800 dark:text-zinc-100 italic\",\n children: \"Magic Shot\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 133,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative group cursor-pointer w-full aspect-square rounded-2xl border-2 border-dashed border-zinc-300 dark:border-zinc-700 overflow-hidden flex items-center justify-center bg-zinc-50 dark:bg-zinc-800/50 hover:border-amber-500 transition-colors\",\n onClick: triggerUpload,\n children: [\n previewUrl ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"img\", {\n src: previewUrl,\n alt: \"Preview\",\n className: \"w-full h-full object-cover\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 140,\n columnNumber: 21\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col items-center gap-2 text-zinc-400 group-hover:text-amber-500 transition-colors\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n size: 48,\n strokeWidth: 1.5\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 143,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-medium\",\n children: \"Flasche scannen\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 144,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 142,\n columnNumber: 21\n }, this),\n isProcessing && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-black/50 backdrop-blur-sm flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-spin rounded-full h-12 w-12 border-b-2 border-white\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 150,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 149,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 135,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"file\",\n accept: \"image/*\",\n capture: \"environment\",\n ref: fileInputRef,\n onChange: handleCapture,\n className: \"hidden\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 155,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: previewUrl && analysisResult ? handleSave : triggerUpload,\n disabled: isProcessing || isSaving,\n className: \"w-full py-4 px-6 bg-amber-600 hover:bg-amber-700 text-white rounded-xl font-semibold flex items-center justify-center gap-2 transition-all active:scale-[0.98] shadow-lg shadow-amber-600/20 disabled:opacity-50\",\n children: isSaving ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"animate-spin rounded-full h-5 w-5 border-b-2 border-white\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 171,\n columnNumber: 25\n }, this),\n \"Wird gespeichert...\"\n ]\n }, void 0, true) : previewUrl && analysisResult ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n size: 20\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 176,\n columnNumber: 25\n }, this),\n \"Im Vault speichern\"\n ]\n }, void 0, true) : previewUrl ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n size: 20\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 181,\n columnNumber: 25\n }, this),\n \"Neu aufnehmen\"\n ]\n }, void 0, true) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n size: 20\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 186,\n columnNumber: 25\n }, this),\n \"Kamera \\xf6ffnen\"\n ]\n }, void 0, true)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 164,\n columnNumber: 13\n }, this),\n error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 text-red-500 text-sm bg-red-50 dark:bg-red-900/10 p-3 rounded-lg w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n size: 16\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 194,\n columnNumber: 21\n }, this),\n error\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 193,\n columnNumber: 17\n }, this),\n previewUrl && !isProcessing && !error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col gap-3 w-full animate-in fade-in slide-in-from-top-4 duration-500\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 text-green-500 text-sm bg-green-50 dark:bg-green-900/10 p-3 rounded-lg w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n size: 16\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 202,\n columnNumber: 25\n }, this),\n \"Bild erfolgreich analysiert\"\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 201,\n columnNumber: 21\n }, this),\n analysisResult && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-4 bg-zinc-50 dark:bg-zinc-800/50 rounded-2xl border border-zinc-200 dark:border-zinc-700\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 mb-3 text-amber-600 dark:text-amber-500\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_AlertCircle_Camera_CheckCircle2_Sparkles_Upload_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n size: 18\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 209,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-bold text-sm uppercase tracking-wider\",\n children: \"Ergebnisse\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 210,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 208,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-500\",\n children: \"Name:\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 214,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: analysisResult.name || \"-\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 215,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 213,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-500\",\n children: \"Distille:\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 218,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: analysisResult.distillery || \"-\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 219,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 217,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-500\",\n children: \"Kategorie:\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 222,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: analysisResult.category || \"-\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 223,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 221,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-500\",\n children: \"ABV:\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 226,\n columnNumber: 37\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: analysisResult.abv ? `${analysisResult.abv}%` : \"-\"\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 227,\n columnNumber: 37\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 225,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 212,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 207,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 200,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/CameraCapture.tsx\",\n lineNumber: 132,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9DYW1lcmFDYXB0dXJlLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFZ0Q7QUFDbUM7QUFDUDtBQUNsQjtBQUNOO0FBU3JDLFNBQVNXLGNBQWMsRUFBRUMsZUFBZSxFQUFFQyxrQkFBa0IsRUFBRUMsY0FBYyxFQUFzQjtJQUM3RyxNQUFNQyxXQUFXUCwwRkFBMkJBO0lBQzVDLE1BQU1RLGVBQWVmLDZDQUFNQSxDQUFtQjtJQUM5QyxNQUFNLENBQUNnQixjQUFjQyxnQkFBZ0IsR0FBR2hCLCtDQUFRQSxDQUFDO0lBQ2pELE1BQU0sQ0FBQ2lCLFVBQVVDLFlBQVksR0FBR2xCLCtDQUFRQSxDQUFDO0lBQ3pDLE1BQU0sQ0FBQ21CLFlBQVlDLGNBQWMsR0FBR3BCLCtDQUFRQSxDQUFnQjtJQUM1RCxNQUFNLENBQUNxQixPQUFPQyxTQUFTLEdBQUd0QiwrQ0FBUUEsQ0FBZ0I7SUFDbEQsTUFBTSxDQUFDdUIsZ0JBQWdCQyxrQkFBa0IsR0FBR3hCLCtDQUFRQSxDQUF3QjtJQUU1RSxNQUFNeUIsZ0JBQWdCLE9BQU9DO1FBQ3pCLE1BQU1DLE9BQU9ELE1BQU1FLE1BQU0sQ0FBQ0MsS0FBSyxFQUFFLENBQUMsRUFBRTtRQUNwQyxJQUFJLENBQUNGLE1BQU07UUFFWFgsZ0JBQWdCO1FBQ2hCTSxTQUFTO1FBQ1RFLGtCQUFrQjtRQUVsQixJQUFJO1lBQ0EsTUFBTU0sbUJBQW1CLE1BQU1DLGNBQWNKO1lBQzdDUCxjQUFjVTtZQUVkLElBQUlwQixpQkFBaUI7Z0JBQ2pCQSxnQkFBZ0JvQjtZQUNwQjtZQUVBLE1BQU1FLFdBQVcsTUFBTXpCLHVFQUFhQSxDQUFDdUI7WUFFckMsSUFBSUUsU0FBU0MsT0FBTyxJQUFJRCxTQUFTRSxJQUFJLEVBQUU7Z0JBQ25DVixrQkFBa0JRLFNBQVNFLElBQUk7Z0JBQy9CLElBQUl2QixvQkFBb0I7b0JBQ3BCQSxtQkFBbUJxQixTQUFTRSxJQUFJO2dCQUNwQztZQUNKLE9BQU87Z0JB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MERBQWdCOzs7Ozs7MERBQ2hDLDhEQUFDTTtnREFBS04sV0FBVTswREFBaUJoRCxlQUFlK0QsSUFBSSxJQUFJOzs7Ozs7Ozs7Ozs7a0RBRTVELDhEQUFDaEI7d0NBQUlDLFdBQVU7OzBEQUNYLDhEQUFDTTtnREFBS04sV0FBVTswREFBZ0I7Ozs7OzswREFDaEMsOERBQUNNO2dEQUFLTixXQUFVOzBEQUFpQmhELGVBQWVnRSxVQUFVLElBQUk7Ozs7Ozs7Ozs7OztrREFFbEUsOERBQUNqQjt3Q0FBSUMsV0FBVTs7MERBQ1gsOERBQUNNO2dEQUFLTixXQUFVOzBEQUFnQjs7Ozs7OzBEQUNoQyw4REFBQ007Z0RBQUtOLFdBQVU7MERBQWlCaEQsZUFBZWlFLFFBQVEsSUFBSTs7Ozs7Ozs7Ozs7O2tEQUVoRSw4REFBQ2xCO3dDQUFJQyxXQUFVOzswREFDWCw4REFBQ007Z0RBQUtOLFdBQVU7MERBQWdCOzs7Ozs7MERBQ2hDLDhEQUFDTTtnREFBS04sV0FBVTswREFBaUJoRCxlQUFla0UsR0FBRyxHQUFHLENBQUMsRUFBRWxFLGVBQWVrRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNySCIsInNvdXJjZXMiOlsid2VicGFjazovL3doaXNreS12YXVsdC8uL3NyYy9jb21wb25lbnRzL0NhbWVyYUNhcHR1cmUudHN4PzFjMzQiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnO1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENhbWVyYSwgVXBsb2FkLCBDaGVja0NpcmNsZTIsIEFsZXJ0Q2lyY2xlLCBTcGFya2xlcyB9IGZyb20gJ2x1Y2lkZS1yZWFjdCc7XG5pbXBvcnQgeyBjcmVhdGVDbGllbnRDb21wb25lbnRDbGllbnQgfSBmcm9tICdAc3VwYWJhc2UvYXV0aC1oZWxwZXJzLW5leHRqcyc7XG5pbXBvcnQgeyBhbmFseXplQm90dGxlIH0gZnJvbSAnQC9zZXJ2aWNlcy9hbmFseXplLWJvdHRsZSc7XG5pbXBvcnQgeyBzYXZlQm90dGxlIH0gZnJvbSAnQC9zZXJ2aWNlcy9zYXZlLWJvdHRsZSc7XG5pbXBvcnQgeyBCb3R0bGVNZXRhZGF0YSB9IGZyb20gJ0AvdHlwZXMvd2hpc2t5JztcblxuaW50ZXJmYWNlIENhbWVyYUNhcHR1cmVQcm9wcyB7XG4gICAgb25JbWFnZUNhcHR1cmVkPzogKGJhc2U2NEltYWdlOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgb25BbmFseXNpc0NvbXBsZXRlPzogKGRhdGE6IEJvdHRsZU1ldGFkYXRhKSA9PiB2b2lkO1xuICAgIG9uU2F2ZUNvbXBsZXRlPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ2FtZXJhQ2FwdHVyZSh7IG9uSW1hZ2VDYXB0dXJlZCwgb25BbmFseXNpc0NvbXBsZXRlLCBvblNhdmVDb21wbGV0ZSB9OiBDYW1lcmFDYXB0dXJlUHJvcHMpIHtcbiAgICBjb25zdCBzdXBhYmFzZSA9IGNyZWF0ZUNsaWVudENvbXBvbmVudENsaWVudCgpO1xuICAgIGNvbnN0IGZpbGVJbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbaXNQcm9jZXNzaW5nLCBzZXRJc1Byb2Nlc3NpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtpc1NhdmluZywgc2V0SXNTYXZpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtwcmV2aWV3VXJsLCBzZXRQcmV2aWV3VXJsXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICAgIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgW2FuYWx5c2lzUmVzdWx0LCBzZXRBbmFseXNpc1Jlc3VsdF0gPSB1c2VTdGF0ZTxCb3R0bGVNZXRhZGF0YSB8IG51bGw+KG51bGwpO1xuXG4gICAgY29uc3QgaGFuZGxlQ2FwdHVyZSA9IGFzeW5jIChldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICAgICAgY29uc3QgZmlsZSA9IGV2ZW50LnRhcmdldC5maWxlcz8uWzBdO1xuICAgICAgICBpZiAoIWZpbGUpIHJldHVybjtcblxuICAgICAgICBzZXRJc1Byb2Nlc3NpbmcodHJ1ZSk7XG4gICAgICAgIHNldEVycm9yKG51bGwpO1xuICAgICAgICBzZXRBbmFseXNpc1Jlc3VsdChudWxsKTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgY29tcHJlc3NlZEJhc2U2NCA9IGF3YWl0IGNvbXByZXNzSW1hZ2UoZmlsZSk7XG4gICAgICAgICAgICBzZXRQcmV2aWV3VXJsKGNvbXByZXNzZWRCYXNlNjQpO1xuXG4gICAgICAgICAgICBpZiAob25JbWFnZUNhcHR1cmVkKSB7XG4gICAgICAgICAgICAgICAgb25JbWFnZUNhcHR1cmVkKGNvbXByZXNzZWRCYXNlNjQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFuYWx5emVCb3R0bGUoY29tcHJlc3NlZEJhc2U2NCk7XG5cbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICAgICAgICBzZXRBbmFseXNpc1Jlc3VsdChyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgICAgICBpZiAob25BbmFseXNpc0NvbXBsZXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uQW5hbHlzaXNDb21wbGV0ZShyZXNwb25zZS5kYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldEVycm9yKHJlc3BvbnNlLmVycm9yIHx8ICdBbmFseXNlIGZlaGxnZXNjaGxhZ2VuLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1Byb2Nlc3NpbmcgZmFpbGVkOicsIGVycik7XG4gICAgICAgICAgICBzZXRFcnJvcignVmVyYXJiZWl0dW5nIGZlaGxnZXNjaGxhZ2VuLiBCaXR0ZSBlcm5ldXQgdmVyc3VjaGVuLicpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgc2V0SXNQcm9jZXNzaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTYXZlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoIWFuYWx5c2lzUmVzdWx0IHx8ICFwcmV2aWV3VXJsKSByZXR1cm47XG5cbiAgICAgICAgc2V0SXNTYXZpbmcodHJ1ZSk7XG4gICAgICAgIHNldEVycm9yKG51bGwpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBHZXQgY3VycmVudCB1c2VyIChzaW1wbGUgY2hlY2sgZm9yIG5vdywgY2FuIGJlIGltcHJvdmVkIHdpdGggQXV0aClcbiAgICAgICAgICAgIGNvbnN0IHsgZGF0YTogeyB1c2VyIH0gfSA9IGF3YWl0IHN1cGFiYXNlLmF1dGguZ2V0VXNlcigpO1xuICAgICAgICAgICAgaWYgKCF1c2VyKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdCaXR0ZSBtZWxkZSBkaWNoIGFuLCB1bSBGbGFzY2hlbiB6dSBzcGVpY2hlcm4uJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgc2F2ZUJvdHRsZShhbmFseXNpc1Jlc3VsdCwgcHJldmlld1VybCwgdXNlci5pZCk7XG5cbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgc2V0UHJldmlld1VybChudWxsKTtcbiAgICAgICAgICAgICAgICBzZXRBbmFseXNpc1Jlc3VsdChudWxsKTtcbiAgICAgICAgICAgICAgICBpZiAob25TYXZlQ29tcGxldGUpIG9uU2F2ZUNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgLy8gT3B0aW9uYWxlIEVyZm9sZ3NtZWxkdW5nIG9kZXIgUmVkaXJlY3RcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgc2V0RXJyb3IocmVzcG9uc2UuZXJyb3IgfHwgJ1NwZWljaGVybiBmZWhsZ2VzY2hsYWdlbi4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdTYXZlIGZhaWxlZDonLCBlcnIpO1xuICAgICAgICAgICAgc2V0RXJyb3IoZXJyIGluc3RhbmNlb2YgRXJyb3IgPyBlcnIubWVzc2FnZSA6ICdTcGVpY2hlcm4gZmVobGdlc2NobGFnZW4uJyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBzZXRJc1NhdmluZyhmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgY29tcHJlc3NJbWFnZSA9IChmaWxlOiBGaWxlKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcbiAgICAgICAgICAgICAgICBpbWcuc3JjID0gZXZlbnQudGFyZ2V0Py5yZXN1bHQgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBNQVhfV0lEVEggPSAxMDI0O1xuICAgICAgICAgICAgICAgICAgICBsZXQgd2lkdGggPSBpbWcud2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGxldCBoZWlnaHQgPSBpbWcuaGVpZ2h0O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aCA+IE1BWF9XSURUSCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0ID0gKGhlaWdodCAqIE1BWF9XSURUSCkgLyB3aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoID0gTUFYX1dJRFRIO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY2FudmFzLndpZHRoID0gd2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY3R4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdDYW52YXMgY29udGV4dCBub3QgYXZhaWxhYmxlJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWcsIDAsIDAsIHdpZHRoLCBoZWlnaHQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiYXNlNjQgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9qcGVnJywgMC44KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShiYXNlNjQpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaW1nLm9uZXJyb3IgPSByZWplY3Q7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSByZWplY3Q7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCB0cmlnZ2VyVXBsb2FkID0gKCkgPT4ge1xuICAgICAgICBmaWxlSW5wdXRSZWYuY3VycmVudD8uY2xpY2soKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAtNiB3LWZ1bGwgbWF4LXctbWQgbXgtYXV0byBwLTYgYmctd2hpdGUgZGFyazpiZy16aW5jLTkwMCByb3VuZGVkLTN4bCBzaGFkb3ctMnhsIGJvcmRlciBib3JkZXItemluYy0yMDAgZGFyazpib3JkZXItemluYy04MDAgdHJhbnNpdGlvbi1hbGwgaG92ZXI6c2hhZG93LXdoaXNreS1hbWJlci8yMFwiPlxuICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LXppbmMtODAwIGRhcms6dGV4dC16aW5jLTEwMCBpdGFsaWNcIj5NYWdpYyBTaG90PC9oMj5cblxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIGdyb3VwIGN1cnNvci1wb2ludGVyIHctZnVsbCBhc3BlY3Qtc3F1YXJlIHJvdW5kZWQtMnhsIGJvcmRlci0yIGJvcmRlci1kYXNoZWQgYm9yZGVyLXppbmMtMzAwIGRhcms6Ym9yZGVyLXppbmMtNzAwIG92ZXJmbG93LWhpZGRlbiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBiZy16aW5jLTUwIGRhcms6YmctemluYy04MDAvNTAgaG92ZXI6Ym9yZGVyLWFtYmVyLTUwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgb25DbGljaz17dHJpZ2dlclVwbG9hZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7cHJldmlld1VybCA/IChcbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9e3ByZXZpZXdVcmx9IGFsdD1cIlByZXZpZXdcIiBjbGFzc05hbWU9XCJ3LWZ1bGwgaC1mdWxsIG9iamVjdC1jb3ZlclwiIC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXppbmMtNDAwIGdyb3VwLWhvdmVyOnRleHQtYW1iZXItNTAwIHRyYW5zaXRpb24tY29sb3JzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2FtZXJhIHNpemU9ezQ4fSBzdHJva2VXaWR0aD17MS41fSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LW1lZGl1bVwiPkZsYXNjaGUgc2Nhbm5lbjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICAgIHtpc1Byb2Nlc3NpbmcgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgYmctYmxhY2svNTAgYmFja2Ryb3AtYmx1ci1zbSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhbmltYXRlLXNwaW4gcm91bmRlZC1mdWxsIGgtMTIgdy0xMiBib3JkZXItYi0yIGJvcmRlci13aGl0ZVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgICBhY2NlcHQ9XCJpbWFnZS8qXCJcbiAgICAgICAgICAgICAgICBjYXB0dXJlPVwiZW52aXJvbm1lbnRcIlxuICAgICAgICAgICAgICAgIHJlZj17ZmlsZUlucHV0UmVmfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDYXB0dXJlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImhpZGRlblwiXG4gICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgb25DbGljaz17cHJldmlld1VybCAmJiBhbmFseXNpc1Jlc3VsdCA/IGhhbmRsZVNhdmUgOiB0cmlnZ2VyVXBsb2FkfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtpc1Byb2Nlc3NpbmcgfHwgaXNTYXZpbmd9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHB5LTQgcHgtNiBiZy1hbWJlci02MDAgaG92ZXI6YmctYW1iZXItNzAwIHRleHQtd2hpdGUgcm91bmRlZC14bCBmb250LXNlbWlib2xkIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yIHRyYW5zaXRpb24tYWxsIGFjdGl2ZTpzY2FsZS1bMC45OF0gc2hhZG93LWxnIHNoYWRvdy1hbWJlci02MDAvMjAgZGlzYWJsZWQ6b3BhY2l0eS01MFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2lzU2F2aW5nID8gKFxuICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhbmltYXRlLXNwaW4gcm91bmRlZC1mdWxsIGgtNSB3LTUgYm9yZGVyLWItMiBib3JkZXItd2hpdGVcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIFdpcmQgZ2VzcGVpY2hlcnQuLi5cbiAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKSA6IHByZXZpZXdVcmwgJiYgYW5hbHlzaXNSZXN1bHQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2hlY2tDaXJjbGUyIHNpemU9ezIwfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgSW0gVmF1bHQgc3BlaWNoZXJuXG4gICAgICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICAgICkgOiBwcmV2aWV3VXJsID8gKFxuICAgICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFVwbG9hZCBzaXplPXsyMH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIE5ldSBhdWZuZWhtZW5cbiAgICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxDYW1lcmEgc2l6ZT17MjB9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICBLYW1lcmEgw7ZmZm5lblxuICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIHtlcnJvciAmJiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiB0ZXh0LXJlZC01MDAgdGV4dC1zbSBiZy1yZWQtNTAgZGFyazpiZy1yZWQtOTAwLzEwIHAtMyByb3VuZGVkLWxnIHctZnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICA8QWxlcnRDaXJjbGUgc2l6ZT17MTZ9IC8+XG4gICAgICAgICAgICAgICAgICAgIHtlcnJvcn1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHtwcmV2aWV3VXJsICYmICFpc1Byb2Nlc3NpbmcgJiYgIWVycm9yICYmIChcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgZ2FwLTMgdy1mdWxsIGFuaW1hdGUtaW4gZmFkZS1pbiBzbGlkZS1pbi1mcm9tLXRvcC00IGR1cmF0aW9uLTUwMFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHRleHQtZ3JlZW4tNTAwIHRleHQtc20gYmctZ3JlZW4tNTAgZGFyazpiZy1ncmVlbi05MDAvMTAgcC0zIHJvdW5kZWQtbGcgdy1mdWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2hlY2tDaXJjbGUyIHNpemU9ezE2fSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgQmlsZCBlcmZvbGdyZWljaCBhbmFseXNpZXJ0XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIHthbmFseXNpc1Jlc3VsdCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtNCBiZy16aW5jLTUwIGRhcms6YmctemluYy04MDAvNTAgcm91bmRlZC0yeGwgYm9yZGVyIGJvcmRlci16aW5jLTIwMCBkYXJrOmJvcmRlci16aW5jLTcwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgbWItMyB0ZXh0LWFtYmVyLTYwMCBkYXJrOnRleHQtYW1iZXItNTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTcGFya2xlcyBzaXplPXsxOH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1ib2xkIHRleHQtc20gdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyXCI+RXJnZWJuaXNzZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHRleHQtc21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtemluYy01MDBcIj5OYW1lOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGRcIj57YW5hbHlzaXNSZXN1bHQubmFtZSB8fCAnLSd9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXppbmMtNTAwXCI+RGlzdGlsbGU6PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZFwiPnthbmFseXNpc1Jlc3VsdC5kaXN0aWxsZXJ5IHx8ICctJ308L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHRleHQtc21cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtemluYy01MDBcIj5LYXRlZ29yaWU6PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1zZW1pYm9sZFwiPnthbmFseXNpc1Jlc3VsdC5jYXRlZ29yeSB8fCAnLSd9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXppbmMtNTAwXCI+QUJWOjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGRcIj57YW5hbHlzaXNSZXN1bHQuYWJ2ID8gYCR7YW5hbHlzaXNSZXN1bHQuYWJ2fSVgIDogJy0nfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIkNhbWVyYSIsIlVwbG9hZCIsIkNoZWNrQ2lyY2xlMiIsIkFsZXJ0Q2lyY2xlIiwiU3BhcmtsZXMiLCJjcmVhdGVDbGllbnRDb21wb25lbnRDbGllbnQiLCJhbmFseXplQm90dGxlIiwic2F2ZUJvdHRsZSIsIkNhbWVyYUNhcHR1cmUiLCJvbkltYWdlQ2FwdHVyZWQiLCJvbkFuYWx5c2lzQ29tcGxldGUiLCJvblNhdmVDb21wbGV0ZSIsInN1cGFiYXNlIiwiZmlsZUlucHV0UmVmIiwiaXNQcm9jZXNzaW5nIiwic2V0SXNQcm9jZXNzaW5nIiwiaXNTYXZpbmciLCJzZXRJc1NhdmluZyIsInByZXZpZXdVcmwiLCJzZXRQcmV2aWV3VXJsIiwiZXJyb3IiLCJzZXRFcnJvciIsImFuYWx5c2lzUmVzdWx0Iiwic2V0QW5hbHlzaXNSZXN1bHQiLCJoYW5kbGVDYXB0dXJlIiwiZXZlbnQiLCJmaWxlIiwidGFyZ2V0IiwiZmlsZXMiLCJjb21wcmVzc2VkQmFzZTY0IiwiY29tcHJlc3NJbWFnZSIsInJlc3BvbnNlIiwic3VjY2VzcyIsImRhdGEiLCJlcnIiLCJjb25zb2xlIiwiaGFuZGxlU2F2ZSIsInVzZXIiLCJhdXRoIiwiZ2V0VXNlciIsIkVycm9yIiwiaWQiLCJtZXNzYWdlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJyZWFkZXIiLCJGaWxlUmVhZGVyIiwicmVhZEFzRGF0YVVSTCIsIm9ubG9hZCIsImltZyIsIkltYWdlIiwic3JjIiwicmVzdWx0IiwiY2FudmFzIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiTUFYX1dJRFRIIiwid2lkdGgiLCJoZWlnaHQiLCJjdHgiLCJnZXRDb250ZXh0IiwiZHJhd0ltYWdlIiwiYmFzZTY0IiwidG9EYXRhVVJMIiwib25lcnJvciIsInRyaWdnZXJVcGxvYWQiLCJjdXJyZW50IiwiY2xpY2siLCJkaXYiLCJjbGFzc05hbWUiLCJoMiIsIm9uQ2xpY2siLCJhbHQiLCJzaXplIiwic3Ryb2tlV2lkdGgiLCJzcGFuIiwiaW5wdXQiLCJ0eXBlIiwiYWNjZXB0IiwiY2FwdHVyZSIsInJlZiIsIm9uQ2hhbmdlIiwiYnV0dG9uIiwiZGlzYWJsZWQiLCJuYW1lIiwiZGlzdGlsbGVyeSIsImNhdGVnb3J5IiwiYWJ2Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/CameraCapture.tsx\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./src/components/OfflineIndicator.tsx":
|
|
/*!*********************************************!*\
|
|
!*** ./src/components/OfflineIndicator.tsx ***!
|
|
\*********************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ OfflineIndicator)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _barrel_optimize_names_WifiOff_lucide_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! __barrel_optimize__?names=WifiOff!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/wifi-off.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\nfunction OfflineIndicator() {\n const [isOffline, setIsOffline] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n setIsOffline(!navigator.onLine);\n const handleOnline = ()=>setIsOffline(false);\n const handleOffline = ()=>setIsOffline(true);\n window.addEventListener(\"online\", handleOnline);\n window.addEventListener(\"offline\", handleOffline);\n return ()=>{\n window.removeEventListener(\"online\", handleOnline);\n window.removeEventListener(\"offline\", handleOffline);\n };\n }, []);\n if (!isOffline) return null;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed top-0 left-0 w-full bg-red-600 text-white text-[10px] font-black uppercase tracking-widest py-1 flex items-center justify-center gap-2 z-[9999] animate-pulse\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_WifiOff_lucide_react__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n size: 12\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/OfflineIndicator.tsx\",\n lineNumber: 28,\n columnNumber: 13\n }, this),\n \"Offline-Modus: Du siehst eine gespeicherte Version\"\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/components/OfflineIndicator.tsx\",\n lineNumber: 27,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9PZmZsaW5lSW5kaWNhdG9yLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBRW1EO0FBQ1o7QUFFeEIsU0FBU0k7SUFDcEIsTUFBTSxDQUFDQyxXQUFXQyxhQUFhLEdBQUdMLCtDQUFRQSxDQUFDO0lBRTNDQyxnREFBU0EsQ0FBQztRQUNOSSxhQUFhLENBQUNDLFVBQVVDLE1BQU07UUFFOUIsTUFBTUMsZUFBZSxJQUFNSCxhQUFhO1FBQ3hDLE1BQU1JLGdCQUFnQixJQUFNSixhQUFhO1FBRXpDSyxPQUFPQyxnQkFBZ0IsQ0FBQyxVQUFVSDtRQUNsQ0UsT0FBT0MsZ0JBQWdCLENBQUMsV0FBV0Y7UUFFbkMsT0FBTztZQUNIQyxPQUFPRSxtQkFBbUIsQ0FBQyxVQUFVSjtZQUNyQ0UsT0FBT0UsbUJBQW1CLENBQUMsV0FBV0g7UUFDMUM7SUFDSixHQUFHLEVBQUU7SUFFTCxJQUFJLENBQUNMLFdBQVcsT0FBTztJQUV2QixxQkFDSSw4REFBQ1M7UUFBSUMsV0FBVTs7MEJBQ1gsOERBQUNaLG1GQUFPQTtnQkFBQ2EsTUFBTTs7Ozs7O1lBQU07Ozs7Ozs7QUFJakMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly93aGlza3ktdmF1bHQvLi9zcmMvY29tcG9uZW50cy9PZmZsaW5lSW5kaWNhdG9yLnRzeD80MjIyIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBXaWZpT2ZmIH0gZnJvbSAnbHVjaWRlLXJlYWN0JztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gT2ZmbGluZUluZGljYXRvcigpIHtcbiAgICBjb25zdCBbaXNPZmZsaW5lLCBzZXRJc09mZmxpbmVdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgc2V0SXNPZmZsaW5lKCFuYXZpZ2F0b3Iub25MaW5lKTtcblxuICAgICAgICBjb25zdCBoYW5kbGVPbmxpbmUgPSAoKSA9PiBzZXRJc09mZmxpbmUoZmFsc2UpO1xuICAgICAgICBjb25zdCBoYW5kbGVPZmZsaW5lID0gKCkgPT4gc2V0SXNPZmZsaW5lKHRydWUpO1xuXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvbmxpbmUnLCBoYW5kbGVPbmxpbmUpO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb2ZmbGluZScsIGhhbmRsZU9mZmxpbmUpO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignb25saW5lJywgaGFuZGxlT25saW5lKTtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgaGFuZGxlT2ZmbGluZSk7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgaWYgKCFpc09mZmxpbmUpIHJldHVybiBudWxsO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaXhlZCB0b3AtMCBsZWZ0LTAgdy1mdWxsIGJnLXJlZC02MDAgdGV4dC13aGl0ZSB0ZXh0LVsxMHB4XSBmb250LWJsYWNrIHVwcGVyY2FzZSB0cmFja2luZy13aWRlc3QgcHktMSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMiB6LVs5OTk5XSBhbmltYXRlLXB1bHNlXCI+XG4gICAgICAgICAgICA8V2lmaU9mZiBzaXplPXsxMn0gLz5cbiAgICAgICAgICAgIE9mZmxpbmUtTW9kdXM6IER1IHNpZWhzdCBlaW5lIGdlc3BlaWNoZXJ0ZSBWZXJzaW9uXG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIldpZmlPZmYiLCJPZmZsaW5lSW5kaWNhdG9yIiwiaXNPZmZsaW5lIiwic2V0SXNPZmZsaW5lIiwibmF2aWdhdG9yIiwib25MaW5lIiwiaGFuZGxlT25saW5lIiwiaGFuZGxlT2ZmbGluZSIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZGl2IiwiY2xhc3NOYW1lIiwic2l6ZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/components/OfflineIndicator.tsx\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./src/components/PWARegistration.tsx":
|
|
/*!********************************************!*\
|
|
!*** ./src/components/PWARegistration.tsx ***!
|
|
\********************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ PWARegistration)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ default auto */ \nfunction PWARegistration() {\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{\n if (\"serviceWorker\" in navigator && window.location.hostname !== \"localhost\") {\n window.addEventListener(\"load\", ()=>{\n navigator.serviceWorker.register(\"/sw.js\").then((registration)=>{\n console.log(\"SW registered: \", registration);\n }).catch((registrationError)=>{\n console.log(\"SW registration failed: \", registrationError);\n });\n });\n }\n }, []);\n return null;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9QV0FSZWdpc3RyYXRpb24udHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs2REFFa0M7QUFFbkIsU0FBU0M7SUFDcEJELGdEQUFTQSxDQUFDO1FBQ04sSUFBSSxtQkFBbUJFLGFBQWFDLE9BQU9DLFFBQVEsQ0FBQ0MsUUFBUSxLQUFLLGFBQWE7WUFDMUVGLE9BQU9HLGdCQUFnQixDQUFDLFFBQVE7Z0JBQzVCSixVQUFVSyxhQUFhLENBQ2xCQyxRQUFRLENBQUMsVUFDVEMsSUFBSSxDQUFDLENBQUNDO29CQUNIQyxRQUFRQyxHQUFHLENBQUMsbUJBQW1CRjtnQkFDbkMsR0FDQ0csS0FBSyxDQUFDLENBQUNDO29CQUNKSCxRQUFRQyxHQUFHLENBQUMsNEJBQTRCRTtnQkFDNUM7WUFDUjtRQUNKO0lBQ0osR0FBRyxFQUFFO0lBRUwsT0FBTztBQUNYIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vd2hpc2t5LXZhdWx0Ly4vc3JjL2NvbXBvbmVudHMvUFdBUmVnaXN0cmF0aW9uLnRzeD9kODZhIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcblxuaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQV0FSZWdpc3RyYXRpb24oKSB7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCdzZXJ2aWNlV29ya2VyJyBpbiBuYXZpZ2F0b3IgJiYgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICE9PSAnbG9jYWxob3N0Jykge1xuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXJcbiAgICAgICAgICAgICAgICAgICAgLnJlZ2lzdGVyKCcvc3cuanMnKVxuICAgICAgICAgICAgICAgICAgICAudGhlbigocmVnaXN0cmF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnU1cgcmVnaXN0ZXJlZDogJywgcmVnaXN0cmF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChyZWdpc3RyYXRpb25FcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1NXIHJlZ2lzdHJhdGlvbiBmYWlsZWQ6ICcsIHJlZ2lzdHJhdGlvbkVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiBudWxsO1xufVxuIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsIlBXQVJlZ2lzdHJhdGlvbiIsIm5hdmlnYXRvciIsIndpbmRvdyIsImxvY2F0aW9uIiwiaG9zdG5hbWUiLCJhZGRFdmVudExpc3RlbmVyIiwic2VydmljZVdvcmtlciIsInJlZ2lzdGVyIiwidGhlbiIsInJlZ2lzdHJhdGlvbiIsImNvbnNvbGUiLCJsb2ciLCJjYXRjaCIsInJlZ2lzdHJhdGlvbkVycm9yIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/PWARegistration.tsx\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./src/services/analyze-bottle.ts":
|
|
/*!****************************************!*\
|
|
!*** ./src/services/analyze-bottle.ts ***!
|
|
\****************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
/* harmony export */ analyzeBottle: () => (/* binding */ analyzeBottle)
|
|
/* harmony export */ });
|
|
/* harmony import */ var next_dist_client_app_call_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/client/app-call-server */ "(ssr)/./node_modules/next/dist/client/app-call-server.js");
|
|
/* harmony import */ var next_dist_client_app_call_server__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_app_call_server__WEBPACK_IMPORTED_MODULE_0__);
|
|
/* harmony import */ var private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! private-next-rsc-action-client-wrapper */ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-client-wrapper.js");
|
|
|
|
|
|
|
|
function __build_action__(action, args) {
|
|
return (0,next_dist_client_app_call_server__WEBPACK_IMPORTED_MODULE_0__.callServer)(action.$$id, args)
|
|
}
|
|
|
|
/* __next_internal_action_entry_do_not_use__ {"af8f7c7b0fe98b99031bb1c9e8ef0ed13b2eae40":"analyzeBottle"} */ var analyzeBottle = (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__.createServerReference)("af8f7c7b0fe98b99031bb1c9e8ef0ed13b2eae40");
|
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(ssr)/./src/services/save-bottle.ts":
|
|
/*!*************************************!*\
|
|
!*** ./src/services/save-bottle.ts ***!
|
|
\*************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
/* harmony export */ saveBottle: () => (/* binding */ saveBottle)
|
|
/* harmony export */ });
|
|
/* harmony import */ var next_dist_client_app_call_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/client/app-call-server */ "(ssr)/./node_modules/next/dist/client/app-call-server.js");
|
|
/* harmony import */ var next_dist_client_app_call_server__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_app_call_server__WEBPACK_IMPORTED_MODULE_0__);
|
|
/* harmony import */ var private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! private-next-rsc-action-client-wrapper */ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-client-wrapper.js");
|
|
|
|
|
|
|
|
function __build_action__(action, args) {
|
|
return (0,next_dist_client_app_call_server__WEBPACK_IMPORTED_MODULE_0__.callServer)(action.$$id, args)
|
|
}
|
|
|
|
/* __next_internal_action_entry_do_not_use__ {"9cc2ffbf85f4e72220537b4253faa867d3a48bad":"saveBottle"} */ var saveBottle = (0,private_next_rsc_action_client_wrapper__WEBPACK_IMPORTED_MODULE_1__.createServerReference)("9cc2ffbf85f4e72220537b4253faa867d3a48bad");
|
|
|
|
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(rsc)/./src/app/globals.css":
|
|
/*!*****************************!*\
|
|
!*** ./src/app/globals.css ***!
|
|
\*****************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"955ec95b3e6f\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2dsb2JhbHMuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksS0FBVSxFQUFFLEVBQXVCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vd2hpc2t5LXZhdWx0Ly4vc3JjL2FwcC9nbG9iYWxzLmNzcz81NWFiIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiOTU1ZWM5NWIzZTZmXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/app/globals.css\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(rsc)/./src/app/layout.tsx":
|
|
/*!****************************!*\
|
|
!*** ./src/app/layout.tsx ***!
|
|
\****************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ RootLayout),\n/* harmony export */ metadata: () => (/* binding */ metadata),\n/* harmony export */ viewport: () => (/* binding */ viewport)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/./node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/font/google/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"} */ \"(rsc)/./node_modules/next/font/google/target.css?{\\\"path\\\":\\\"src/app/layout.tsx\\\",\\\"import\\\":\\\"Inter\\\",\\\"arguments\\\":[{\\\"subsets\\\":[\\\"latin\\\"]}],\\\"variableName\\\":\\\"inter\\\"}\");\n/* harmony import */ var next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./src/app/globals.css\");\n/* harmony import */ var _components_PWARegistration__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/PWARegistration */ \"(rsc)/./src/components/PWARegistration.tsx\");\n/* harmony import */ var _components_OfflineIndicator__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/OfflineIndicator */ \"(rsc)/./src/components/OfflineIndicator.tsx\");\n\n\n\n\n\nconst metadata = {\n title: {\n default: \"Whisky Vault\",\n template: \"%s | Whisky Vault\"\n },\n description: \"Dein pers\\xf6nlicher Whisky-Begleiter zum Scannen und Verkosten.\",\n manifest: \"/manifest.json\",\n appleWebApp: {\n capable: true,\n statusBarStyle: \"default\",\n title: \"Whisky Vault\"\n },\n formatDetection: {\n telephone: false\n }\n};\nconst viewport = {\n themeColor: \"#000000\",\n width: \"device-width\",\n initialScale: 1,\n maximumScale: 1,\n userScalable: false\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"de\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n className: (next_font_google_target_css_path_src_app_layout_tsx_import_Inter_arguments_subsets_latin_variableName_inter___WEBPACK_IMPORTED_MODULE_4___default().className),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_PWARegistration__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {}, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/layout.tsx\",\n lineNumber: 42,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_OfflineIndicator__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/layout.tsx\",\n lineNumber: 43,\n columnNumber: 17\n }, this),\n children\n ]\n }, void 0, true, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/layout.tsx\",\n lineNumber: 41,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/robin/AI/Coding/Whisky/src/app/layout.tsx\",\n lineNumber: 40,\n columnNumber: 9\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2xheW91dC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFNTUE7QUFKaUI7QUFDb0M7QUFDRTtBQUl0RCxNQUFNRyxXQUFxQjtJQUM5QkMsT0FBTztRQUNIQyxTQUFTO1FBQ1RDLFVBQVU7SUFDZDtJQUNBQyxhQUFhO0lBQ2JDLFVBQVU7SUFDVkMsYUFBYTtRQUNUQyxTQUFTO1FBQ1RDLGdCQUFnQjtRQUNoQlAsT0FBTztJQUNYO0lBQ0FRLGlCQUFpQjtRQUNiQyxXQUFXO0lBQ2Y7QUFDSixFQUFFO0FBRUssTUFBTUMsV0FBVztJQUNwQkMsWUFBWTtJQUNaQyxPQUFPO0lBQ1BDLGNBQWM7SUFDZEMsY0FBYztJQUNkQyxjQUFjO0FBQ2xCLEVBQUU7QUFFYSxTQUFTQyxXQUFXLEVBQy9CQyxRQUFRLEVBR1Y7SUFDRSxxQkFDSSw4REFBQ0M7UUFBS0MsTUFBSztrQkFDUCw0RUFBQ0M7WUFBS0MsV0FBV3pCLCtKQUFlOzs4QkFDNUIsOERBQUNDLG1FQUFlQTs7Ozs7OEJBQ2hCLDhEQUFDQyxvRUFBZ0JBOzs7OztnQkFDaEJtQjs7Ozs7Ozs7Ozs7O0FBSWpCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vd2hpc2t5LXZhdWx0Ly4vc3JjL2FwcC9sYXlvdXQudHN4PzU3YTkiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBNZXRhZGF0YSB9IGZyb20gXCJuZXh0XCI7XG5pbXBvcnQgeyBJbnRlciB9IGZyb20gXCJuZXh0L2ZvbnQvZ29vZ2xlXCI7XG5pbXBvcnQgXCIuL2dsb2JhbHMuY3NzXCI7XG5pbXBvcnQgUFdBUmVnaXN0cmF0aW9uIGZyb20gXCJAL2NvbXBvbmVudHMvUFdBUmVnaXN0cmF0aW9uXCI7XG5pbXBvcnQgT2ZmbGluZUluZGljYXRvciBmcm9tIFwiQC9jb21wb25lbnRzL09mZmxpbmVJbmRpY2F0b3JcIjtcblxuY29uc3QgaW50ZXIgPSBJbnRlcih7IHN1YnNldHM6IFtcImxhdGluXCJdIH0pO1xuXG5leHBvcnQgY29uc3QgbWV0YWRhdGE6IE1ldGFkYXRhID0ge1xuICAgIHRpdGxlOiB7XG4gICAgICAgIGRlZmF1bHQ6IFwiV2hpc2t5IFZhdWx0XCIsXG4gICAgICAgIHRlbXBsYXRlOiBcIiVzIHwgV2hpc2t5IFZhdWx0XCJcbiAgICB9LFxuICAgIGRlc2NyaXB0aW9uOiBcIkRlaW4gcGVyc8O2bmxpY2hlciBXaGlza3ktQmVnbGVpdGVyIHp1bSBTY2FubmVuIHVuZCBWZXJrb3N0ZW4uXCIsXG4gICAgbWFuaWZlc3Q6IFwiL21hbmlmZXN0Lmpzb25cIixcbiAgICBhcHBsZVdlYkFwcDoge1xuICAgICAgICBjYXBhYmxlOiB0cnVlLFxuICAgICAgICBzdGF0dXNCYXJTdHlsZTogXCJkZWZhdWx0XCIsXG4gICAgICAgIHRpdGxlOiBcIldoaXNreSBWYXVsdFwiLFxuICAgIH0sXG4gICAgZm9ybWF0RGV0ZWN0aW9uOiB7XG4gICAgICAgIHRlbGVwaG9uZTogZmFsc2UsXG4gICAgfSxcbn07XG5cbmV4cG9ydCBjb25zdCB2aWV3cG9ydCA9IHtcbiAgICB0aGVtZUNvbG9yOiBcIiMwMDAwMDBcIixcbiAgICB3aWR0aDogXCJkZXZpY2Utd2lkdGhcIixcbiAgICBpbml0aWFsU2NhbGU6IDEsXG4gICAgbWF4aW11bVNjYWxlOiAxLFxuICAgIHVzZXJTY2FsYWJsZTogZmFsc2UsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBSb290TGF5b3V0KHtcbiAgICBjaGlsZHJlbixcbn06IFJlYWRvbmx5PHtcbiAgICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufT4pIHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8aHRtbCBsYW5nPVwiZGVcIj5cbiAgICAgICAgICAgIDxib2R5IGNsYXNzTmFtZT17aW50ZXIuY2xhc3NOYW1lfT5cbiAgICAgICAgICAgICAgICA8UFdBUmVnaXN0cmF0aW9uIC8+XG4gICAgICAgICAgICAgICAgPE9mZmxpbmVJbmRpY2F0b3IgLz5cbiAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICA8L2JvZHk+XG4gICAgICAgIDwvaHRtbD5cbiAgICApO1xufVxuIl0sIm5hbWVzIjpbImludGVyIiwiUFdBUmVnaXN0cmF0aW9uIiwiT2ZmbGluZUluZGljYXRvciIsIm1ldGFkYXRhIiwidGl0bGUiLCJkZWZhdWx0IiwidGVtcGxhdGUiLCJkZXNjcmlwdGlvbiIsIm1hbmlmZXN0IiwiYXBwbGVXZWJBcHAiLCJjYXBhYmxlIiwic3RhdHVzQmFyU3R5bGUiLCJmb3JtYXREZXRlY3Rpb24iLCJ0ZWxlcGhvbmUiLCJ2aWV3cG9ydCIsInRoZW1lQ29sb3IiLCJ3aWR0aCIsImluaXRpYWxTY2FsZSIsIm1heGltdW1TY2FsZSIsInVzZXJTY2FsYWJsZSIsIlJvb3RMYXlvdXQiLCJjaGlsZHJlbiIsImh0bWwiLCJsYW5nIiwiYm9keSIsImNsYXNzTmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./src/app/layout.tsx\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(rsc)/./src/app/page.tsx":
|
|
/*!**************************!*\
|
|
!*** ./src/app/page.tsx ***!
|
|
\**************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
/* harmony export */ $$typeof: () => (/* binding */ $$typeof),
|
|
/* harmony export */ __esModule: () => (/* binding */ __esModule),
|
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
/* harmony export */ });
|
|
/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js");
|
|
|
|
const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/home/robin/AI/Coding/Whisky/src/app/page.tsx`)
|
|
|
|
// Accessing the __esModule property and exporting $$typeof are required here.
|
|
// The __esModule getter forces the proxy target to create the default export
|
|
// and the $$typeof value is for rendering logic to determine if the module
|
|
// is a client boundary.
|
|
const { __esModule, $$typeof } = proxy;
|
|
const __default__ = proxy.default;
|
|
|
|
|
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__default__);
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(rsc)/./src/components/OfflineIndicator.tsx":
|
|
/*!*********************************************!*\
|
|
!*** ./src/components/OfflineIndicator.tsx ***!
|
|
\*********************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
/* harmony export */ $$typeof: () => (/* binding */ $$typeof),
|
|
/* harmony export */ __esModule: () => (/* binding */ __esModule),
|
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
/* harmony export */ });
|
|
/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js");
|
|
|
|
const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/home/robin/AI/Coding/Whisky/src/components/OfflineIndicator.tsx`)
|
|
|
|
// Accessing the __esModule property and exporting $$typeof are required here.
|
|
// The __esModule getter forces the proxy target to create the default export
|
|
// and the $$typeof value is for rendering logic to determine if the module
|
|
// is a client boundary.
|
|
const { __esModule, $$typeof } = proxy;
|
|
const __default__ = proxy.default;
|
|
|
|
|
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__default__);
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(rsc)/./src/components/PWARegistration.tsx":
|
|
/*!********************************************!*\
|
|
!*** ./src/components/PWARegistration.tsx ***!
|
|
\********************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
__webpack_require__.r(__webpack_exports__);
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
/* harmony export */ $$typeof: () => (/* binding */ $$typeof),
|
|
/* harmony export */ __esModule: () => (/* binding */ __esModule),
|
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
/* harmony export */ });
|
|
/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js");
|
|
|
|
const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/home/robin/AI/Coding/Whisky/src/components/PWARegistration.tsx`)
|
|
|
|
// Accessing the __esModule property and exporting $$typeof are required here.
|
|
// The __esModule getter forces the proxy target to create the default export
|
|
// and the $$typeof value is for rendering logic to determine if the module
|
|
// is a client boundary.
|
|
const { __esModule, $$typeof } = proxy;
|
|
const __default__ = proxy.default;
|
|
|
|
|
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (__default__);
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(action-browser)/./src/lib/gemini.ts":
|
|
/*!***************************!*\
|
|
!*** ./src/lib/gemini.ts ***!
|
|
\***************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SYSTEM_INSTRUCTION: () => (/* binding */ SYSTEM_INSTRUCTION),\n/* harmony export */ geminiModel: () => (/* binding */ geminiModel)\n/* harmony export */ });\n/* harmony import */ var _google_generative_ai__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @google/generative-ai */ \"(action-browser)/./node_modules/@google/generative-ai/dist/index.mjs\");\n\nconst apiKey = process.env.GEMINI_API_KEY;\nconst genAI = new _google_generative_ai__WEBPACK_IMPORTED_MODULE_0__.GoogleGenerativeAI(apiKey);\nconst geminiModel = genAI.getGenerativeModel({\n model: \"gemini-3-flash-preview\",\n generationConfig: {\n responseMimeType: \"application/json\"\n }\n});\nconst SYSTEM_INSTRUCTION = `\nYou are a sommelier and database clerk. Analyze the whisky bottle image. Extract precise metadata. \nIf a value is not visible, use null. \nInfer the 'Category' (e.g., Islay Single Malt) based on the Distillery if possible. \nSearch specifically for a \"Whiskybase ID\" or \"WB ID\" on the label. \nOutput raw JSON matching the following schema:\n{\n \"name\": string | null,\n \"distillery\": string | null,\n \"category\": string | null,\n \"abv\": number | null,\n \"age\": number | null,\n \"vintage\": string | null,\n \"bottleCode\": string | null,\n \"whiskybaseId\": string | null\n}\n`;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL3NyYy9saWIvZ2VtaW5pLnRzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUEyRDtBQUUzRCxNQUFNQyxTQUFTQyxRQUFRQyxHQUFHLENBQUNDLGNBQWM7QUFFekMsTUFBTUMsUUFBUSxJQUFJTCxxRUFBa0JBLENBQUNDO0FBRTlCLE1BQU1LLGNBQWNELE1BQU1FLGtCQUFrQixDQUFDO0lBQ2xEQyxPQUFPO0lBQ1BDLGtCQUFrQjtRQUNoQkMsa0JBQWtCO0lBQ3BCO0FBQ0YsR0FBRztBQUVJLE1BQU1DLHFCQUFxQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JuQyxDQUFDLENBQUMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly93aGlza3ktdmF1bHQvLi9zcmMvbGliL2dlbWluaS50cz85OTRmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdvb2dsZUdlbmVyYXRpdmVBSSB9IGZyb20gJ0Bnb29nbGUvZ2VuZXJhdGl2ZS1haSc7XG5cbmNvbnN0IGFwaUtleSA9IHByb2Nlc3MuZW52LkdFTUlOSV9BUElfS0VZITtcblxuY29uc3QgZ2VuQUkgPSBuZXcgR29vZ2xlR2VuZXJhdGl2ZUFJKGFwaUtleSk7XG5cbmV4cG9ydCBjb25zdCBnZW1pbmlNb2RlbCA9IGdlbkFJLmdldEdlbmVyYXRpdmVNb2RlbCh7XG4gIG1vZGVsOiAnZ2VtaW5pLTMtZmxhc2gtcHJldmlldycsXG4gIGdlbmVyYXRpb25Db25maWc6IHtcbiAgICByZXNwb25zZU1pbWVUeXBlOiAnYXBwbGljYXRpb24vanNvbicsXG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IFNZU1RFTV9JTlNUUlVDVElPTiA9IGBcbllvdSBhcmUgYSBzb21tZWxpZXIgYW5kIGRhdGFiYXNlIGNsZXJrLiBBbmFseXplIHRoZSB3aGlza3kgYm90dGxlIGltYWdlLiBFeHRyYWN0IHByZWNpc2UgbWV0YWRhdGEuIFxuSWYgYSB2YWx1ZSBpcyBub3QgdmlzaWJsZSwgdXNlIG51bGwuIFxuSW5mZXIgdGhlICdDYXRlZ29yeScgKGUuZy4sIElzbGF5IFNpbmdsZSBNYWx0KSBiYXNlZCBvbiB0aGUgRGlzdGlsbGVyeSBpZiBwb3NzaWJsZS4gXG5TZWFyY2ggc3BlY2lmaWNhbGx5IGZvciBhIFwiV2hpc2t5YmFzZSBJRFwiIG9yIFwiV0IgSURcIiBvbiB0aGUgbGFiZWwuIFxuT3V0cHV0IHJhdyBKU09OIG1hdGNoaW5nIHRoZSBmb2xsb3dpbmcgc2NoZW1hOlxue1xuICBcIm5hbWVcIjogc3RyaW5nIHwgbnVsbCxcbiAgXCJkaXN0aWxsZXJ5XCI6IHN0cmluZyB8IG51bGwsXG4gIFwiY2F0ZWdvcnlcIjogc3RyaW5nIHwgbnVsbCxcbiAgXCJhYnZcIjogbnVtYmVyIHwgbnVsbCxcbiAgXCJhZ2VcIjogbnVtYmVyIHwgbnVsbCxcbiAgXCJ2aW50YWdlXCI6IHN0cmluZyB8IG51bGwsXG4gIFwiYm90dGxlQ29kZVwiOiBzdHJpbmcgfCBudWxsLFxuICBcIndoaXNreWJhc2VJZFwiOiBzdHJpbmcgfCBudWxsXG59XG5gO1xuIl0sIm5hbWVzIjpbIkdvb2dsZUdlbmVyYXRpdmVBSSIsImFwaUtleSIsInByb2Nlc3MiLCJlbnYiLCJHRU1JTklfQVBJX0tFWSIsImdlbkFJIiwiZ2VtaW5pTW9kZWwiLCJnZXRHZW5lcmF0aXZlTW9kZWwiLCJtb2RlbCIsImdlbmVyYXRpb25Db25maWciLCJyZXNwb25zZU1pbWVUeXBlIiwiU1lTVEVNX0lOU1RSVUNUSU9OIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(action-browser)/./src/lib/gemini.ts\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(action-browser)/./src/services/analyze-bottle.ts":
|
|
/*!****************************************!*\
|
|
!*** ./src/services/analyze-bottle.ts ***!
|
|
\****************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ analyzeBottle: () => (/* binding */ analyzeBottle)\n/* harmony export */ });\n/* harmony import */ var private_next_rsc_action_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! private-next-rsc-action-proxy */ \"(action-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-proxy.js\");\n/* harmony import */ var private_next_rsc_action_encryption__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! private-next-rsc-action-encryption */ \"(action-browser)/./node_modules/next/dist/server/app-render/action-encryption.js\");\n/* harmony import */ var private_next_rsc_action_encryption__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(private_next_rsc_action_encryption__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_gemini__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/gemini */ \"(action-browser)/./src/lib/gemini.ts\");\n/* harmony import */ var _types_whisky__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/types/whisky */ \"(action-browser)/./src/types/whisky.ts\");\n/* harmony import */ var _supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @supabase/auth-helpers-nextjs */ \"(action-browser)/./node_modules/@supabase/auth-helpers-nextjs/dist/index.js\");\n/* harmony import */ var _supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var next_headers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/headers */ \"(action-browser)/./node_modules/next/dist/api/headers.js\");\n/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! crypto */ \"crypto\");\n/* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(crypto__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var private_next_rsc_action_validate__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! private-next-rsc-action-validate */ \"(action-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-validate.js\");\n/* __next_internal_action_entry_do_not_use__ {\"af8f7c7b0fe98b99031bb1c9e8ef0ed13b2eae40\":\"analyzeBottle\"} */ \n\n\n\n\n\n\nasync function analyzeBottle(base64Image) {\n const supabase = (0,_supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_4__.createServerActionClient)({\n cookies: next_headers__WEBPACK_IMPORTED_MODULE_5__.cookies\n });\n if (!process.env.GEMINI_API_KEY) {\n return {\n success: false,\n error: \"GEMINI_API_KEY is not configured.\"\n };\n }\n try {\n // Ensure user is authenticated for tracking/billing\n const { data: { session } } = await supabase.auth.getSession();\n if (!session) {\n return {\n success: false,\n error: \"Nicht autorisiert oder Session abgelaufen.\"\n };\n }\n // 1. Generate Hash for Caching\n const base64Data = base64Image.split(\",\")[1] || base64Image;\n const imageHash = (0,crypto__WEBPACK_IMPORTED_MODULE_6__.createHash)(\"sha256\").update(base64Data).digest(\"hex\");\n console.log(`[AI Cache] Checking hash: ${imageHash}`);\n // 2. Check Cache\n const { data: cachedResult } = await supabase.from(\"vision_cache\").select(\"result\").eq(\"hash\", imageHash).maybeSingle();\n if (cachedResult) {\n console.log(`[AI Cache] Hit! hash: ${imageHash}`);\n return {\n success: true,\n data: cachedResult.result\n };\n }\n console.log(`[AI Cache] Miss. Calling Gemini...`);\n // 3. AI Analysis\n const result = await _lib_gemini__WEBPACK_IMPORTED_MODULE_2__.geminiModel.generateContent([\n {\n inlineData: {\n data: base64Data,\n mimeType: \"image/jpeg\"\n }\n },\n {\n text: _lib_gemini__WEBPACK_IMPORTED_MODULE_2__.SYSTEM_INSTRUCTION\n }\n ]);\n const responseText = result.response.text();\n let jsonData = JSON.parse(responseText);\n if (Array.isArray(jsonData)) {\n jsonData = jsonData[0];\n }\n if (!jsonData) {\n throw new Error(\"Keine Daten in der KI-Antwort gefunden.\");\n }\n const validatedData = _types_whisky__WEBPACK_IMPORTED_MODULE_3__.BottleMetadataSchema.parse(jsonData);\n // 4. Store in Cache\n const { error: storeError } = await supabase.from(\"vision_cache\").insert({\n hash: imageHash,\n result: validatedData\n });\n if (storeError) {\n console.warn(`[AI Cache] Storage failed: ${storeError.message}`);\n } else {\n console.log(`[AI Cache] Stored new result for hash: ${imageHash}`);\n }\n return {\n success: true,\n data: validatedData\n };\n } catch (error) {\n console.error(\"Gemini Analysis Error:\", error);\n return {\n success: false,\n error: error instanceof Error ? error.message : \"An unknown error occurred during analysis.\"\n };\n }\n}\n\n(0,private_next_rsc_action_validate__WEBPACK_IMPORTED_MODULE_7__.ensureServerEntryExports)([\n analyzeBottle\n]);\n(0,private_next_rsc_action_proxy__WEBPACK_IMPORTED_MODULE_0__.createActionProxy)(\"af8f7c7b0fe98b99031bb1c9e8ef0ed13b2eae40\", analyzeBottle);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL3NyYy9zZXJ2aWNlcy9hbmFseXplLWJvdHRsZS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUUrRDtBQUNTO0FBQ0M7QUFDbEM7QUFDSDtBQUU3QixlQUFlTSxjQUFjQyxXQUFtQjtJQUNuRCxNQUFNQyxXQUFXTCx1RkFBd0JBLENBQUM7UUFBRUMsT0FBT0EsbURBQUFBO0lBQUM7SUFFcEQsSUFBSSxDQUFDSyxRQUFRQyxHQUFHLENBQUNDLGNBQWMsRUFBRTtRQUM3QixPQUFPO1lBQUVDLFNBQVM7WUFBT0MsT0FBTztRQUFvQztJQUN4RTtJQUVBLElBQUk7UUFDQSxvREFBb0Q7UUFDcEQsTUFBTSxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRSxFQUFFLEdBQUcsTUFBTVAsU0FBU1EsSUFBSSxDQUFDQyxVQUFVO1FBQzVELElBQUksQ0FBQ0YsU0FBUztZQUNWLE9BQU87Z0JBQUVILFNBQVM7Z0JBQU9DLE9BQU87WUFBNkM7UUFDakY7UUFFQSwrQkFBK0I7UUFDL0IsTUFBTUssYUFBYVgsWUFBWVksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUlaO1FBQ2hELE1BQU1hLFlBQVlmLGtEQUFVQSxDQUFDLFVBQVVnQixNQUFNLENBQUNILFlBQVlJLE1BQU0sQ0FBQztRQUNqRUMsUUFBUUMsR0FBRyxDQUFDLENBQUMsMEJBQTBCLEVBQUVKLFVBQVUsQ0FBQztRQUVwRCxpQkFBaUI7UUFDakIsTUFBTSxFQUFFTixNQUFNVyxZQUFZLEVBQUUsR0FBRyxNQUFNakIsU0FDaENrQixJQUFJLENBQUMsZ0JBQ0xDLE1BQU0sQ0FBQyxVQUNQQyxFQUFFLENBQUMsUUFBUVIsV0FDWFMsV0FBVztRQUVoQixJQUFJSixjQUFjO1lBQ2RGLFFBQVFDLEdBQUcsQ0FBQyxDQUFDLHNCQUFzQixFQUFFSixVQUFVLENBQUM7WUFDaEQsT0FBTztnQkFDSFIsU0FBUztnQkFDVEUsTUFBTVcsYUFBYUssTUFBTTtZQUM3QjtRQUNKO1FBRUFQLFFBQVFDLEdBQUcsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDO1FBRWhELGlCQUFpQjtRQUNqQixNQUFNTSxTQUFTLE1BQU05QixvREFBV0EsQ0FBQytCLGVBQWUsQ0FBQztZQUM3QztnQkFDSUMsWUFBWTtvQkFDUmxCLE1BQU1JO29CQUNOZSxVQUFVO2dCQUNkO1lBQ0o7WUFDQTtnQkFBRUMsTUFBTWpDLDJEQUFrQkE7WUFBQztTQUM5QjtRQUVELE1BQU1rQyxlQUFlTCxPQUFPTSxRQUFRLENBQUNGLElBQUk7UUFDekMsSUFBSUcsV0FBV0MsS0FBS0MsS0FBSyxDQUFDSjtRQUUxQixJQUFJSyxNQUFNQyxPQUFPLENBQUNKLFdBQVc7WUFDekJBLFdBQVdBLFFBQVEsQ0FBQyxFQUFFO1FBQzFCO1FBRUEsSUFBSSxDQUFDQSxVQUFVO1lBQ1gsTUFBTSxJQUFJSyxNQUFNO1FBQ3BCO1FBRUEsTUFBTUMsZ0JBQWdCekMsK0RBQW9CQSxDQUFDcUMsS0FBSyxDQUFDRjtRQUVqRCxvQkFBb0I7UUFDcEIsTUFBTSxFQUFFeEIsT0FBTytCLFVBQVUsRUFBRSxHQUFHLE1BQU1wQyxTQUMvQmtCLElBQUksQ0FBQyxnQkFDTG1CLE1BQU0sQ0FBQztZQUFFQyxNQUFNMUI7WUFBV1UsUUFBUWE7UUFBYztRQUVyRCxJQUFJQyxZQUFZO1lBQ1pyQixRQUFRd0IsSUFBSSxDQUFDLENBQUMsMkJBQTJCLEVBQUVILFdBQVdJLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE9BQU87WUFDSHpCLFFBQVFDLEdBQUcsQ0FBQyxDQUFDLHVDQUF1QyxFQUFFSixVQUFVLENBQUM7UUFDckU7UUFFQSxPQUFPO1lBQ0hSLFNBQVM7WUFDVEUsTUFBTTZCO1FBQ1Y7SUFDSixFQUFFLE9BQU85QixPQUFPO1FBQ1pVLFFBQVFWLEtBQUssQ0FBQywwQkFBMEJBO1FBQ3hDLE9BQU87WUFDSEQsU0FBUztZQUNUQyxPQUFPQSxpQkFBaUI2QixRQUFRN0IsTUFBTW1DLE9BQU8sR0FBRztRQUNwRDtJQUNKO0FBQ0oiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly93aGlza3ktdmF1bHQvLi9zcmMvc2VydmljZXMvYW5hbHl6ZS1ib3R0bGUudHM/ZGQxMCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHNlcnZlcic7XG5cbmltcG9ydCB7IGdlbWluaU1vZGVsLCBTWVNURU1fSU5TVFJVQ1RJT04gfSBmcm9tICdAL2xpYi9nZW1pbmknO1xuaW1wb3J0IHsgQm90dGxlTWV0YWRhdGFTY2hlbWEsIEFuYWx5c2lzUmVzcG9uc2UgfSBmcm9tICdAL3R5cGVzL3doaXNreSc7XG5pbXBvcnQgeyBjcmVhdGVTZXJ2ZXJBY3Rpb25DbGllbnQgfSBmcm9tICdAc3VwYWJhc2UvYXV0aC1oZWxwZXJzLW5leHRqcyc7XG5pbXBvcnQgeyBjb29raWVzIH0gZnJvbSAnbmV4dC9oZWFkZXJzJztcbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tICdjcnlwdG8nO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYW5hbHl6ZUJvdHRsZShiYXNlNjRJbWFnZTogc3RyaW5nKTogUHJvbWlzZTxBbmFseXNpc1Jlc3BvbnNlPiB7XG4gICAgY29uc3Qgc3VwYWJhc2UgPSBjcmVhdGVTZXJ2ZXJBY3Rpb25DbGllbnQoeyBjb29raWVzIH0pO1xuXG4gICAgaWYgKCFwcm9jZXNzLmVudi5HRU1JTklfQVBJX0tFWSkge1xuICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICdHRU1JTklfQVBJX0tFWSBpcyBub3QgY29uZmlndXJlZC4nIH07XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgICAgLy8gRW5zdXJlIHVzZXIgaXMgYXV0aGVudGljYXRlZCBmb3IgdHJhY2tpbmcvYmlsbGluZ1xuICAgICAgICBjb25zdCB7IGRhdGE6IHsgc2Vzc2lvbiB9IH0gPSBhd2FpdCBzdXBhYmFzZS5hdXRoLmdldFNlc3Npb24oKTtcbiAgICAgICAgaWYgKCFzZXNzaW9uKSB7XG4gICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6ICdOaWNodCBhdXRvcmlzaWVydCBvZGVyIFNlc3Npb24gYWJnZWxhdWZlbi4nIH07XG4gICAgICAgIH1cblxuICAgICAgICAvLyAxLiBHZW5lcmF0ZSBIYXNoIGZvciBDYWNoaW5nXG4gICAgICAgIGNvbnN0IGJhc2U2NERhdGEgPSBiYXNlNjRJbWFnZS5zcGxpdCgnLCcpWzFdIHx8IGJhc2U2NEltYWdlO1xuICAgICAgICBjb25zdCBpbWFnZUhhc2ggPSBjcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoYmFzZTY0RGF0YSkuZGlnZXN0KCdoZXgnKTtcbiAgICAgICAgY29uc29sZS5sb2coYFtBSSBDYWNoZV0gQ2hlY2tpbmcgaGFzaDogJHtpbWFnZUhhc2h9YCk7XG5cbiAgICAgICAgLy8gMi4gQ2hlY2sgQ2FjaGVcbiAgICAgICAgY29uc3QgeyBkYXRhOiBjYWNoZWRSZXN1bHQgfSA9IGF3YWl0IHN1cGFiYXNlXG4gICAgICAgICAgICAuZnJvbSgndmlzaW9uX2NhY2hlJylcbiAgICAgICAgICAgIC5zZWxlY3QoJ3Jlc3VsdCcpXG4gICAgICAgICAgICAuZXEoJ2hhc2gnLCBpbWFnZUhhc2gpXG4gICAgICAgICAgICAubWF5YmVTaW5nbGUoKTtcblxuICAgICAgICBpZiAoY2FjaGVkUmVzdWx0KSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgW0FJIENhY2hlXSBIaXQhIGhhc2g6ICR7aW1hZ2VIYXNofWApO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGRhdGE6IGNhY2hlZFJlc3VsdC5yZXN1bHQgYXMgYW55LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKGBbQUkgQ2FjaGVdIE1pc3MuIENhbGxpbmcgR2VtaW5pLi4uYCk7XG5cbiAgICAgICAgLy8gMy4gQUkgQW5hbHlzaXNcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2VtaW5pTW9kZWwuZ2VuZXJhdGVDb250ZW50KFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpbmxpbmVEYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IGJhc2U2NERhdGEsXG4gICAgICAgICAgICAgICAgICAgIG1pbWVUeXBlOiAnaW1hZ2UvanBlZycsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IHRleHQ6IFNZU1RFTV9JTlNUUlVDVElPTiB9LFxuICAgICAgICBdKTtcblxuICAgICAgICBjb25zdCByZXNwb25zZVRleHQgPSByZXN1bHQucmVzcG9uc2UudGV4dCgpO1xuICAgICAgICBsZXQganNvbkRhdGEgPSBKU09OLnBhcnNlKHJlc3BvbnNlVGV4dCk7XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoanNvbkRhdGEpKSB7XG4gICAgICAgICAgICBqc29uRGF0YSA9IGpzb25EYXRhWzBdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFqc29uRGF0YSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdLZWluZSBEYXRlbiBpbiBkZXIgS0ktQW50d29ydCBnZWZ1bmRlbi4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbGlkYXRlZERhdGEgPSBCb3R0bGVNZXRhZGF0YVNjaGVtYS5wYXJzZShqc29uRGF0YSk7XG5cbiAgICAgICAgLy8gNC4gU3RvcmUgaW4gQ2FjaGVcbiAgICAgICAgY29uc3QgeyBlcnJvcjogc3RvcmVFcnJvciB9ID0gYXdhaXQgc3VwYWJhc2VcbiAgICAgICAgICAgIC5mcm9tKCd2aXNpb25fY2FjaGUnKVxuICAgICAgICAgICAgLmluc2VydCh7IGhhc2g6IGltYWdlSGFzaCwgcmVzdWx0OiB2YWxpZGF0ZWREYXRhIH0pO1xuXG4gICAgICAgIGlmIChzdG9yZUVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFtBSSBDYWNoZV0gU3RvcmFnZSBmYWlsZWQ6ICR7c3RvcmVFcnJvci5tZXNzYWdlfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFtBSSBDYWNoZV0gU3RvcmVkIG5ldyByZXN1bHQgZm9yIGhhc2g6ICR7aW1hZ2VIYXNofWApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgICBkYXRhOiB2YWxpZGF0ZWREYXRhLFxuICAgICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0dlbWluaSBBbmFseXNpcyBFcnJvcjonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkIGR1cmluZyBhbmFseXNpcy4nLFxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJnZW1pbmlNb2RlbCIsIlNZU1RFTV9JTlNUUlVDVElPTiIsIkJvdHRsZU1ldGFkYXRhU2NoZW1hIiwiY3JlYXRlU2VydmVyQWN0aW9uQ2xpZW50IiwiY29va2llcyIsImNyZWF0ZUhhc2giLCJhbmFseXplQm90dGxlIiwiYmFzZTY0SW1hZ2UiLCJzdXBhYmFzZSIsInByb2Nlc3MiLCJlbnYiLCJHRU1JTklfQVBJX0tFWSIsInN1Y2Nlc3MiLCJlcnJvciIsImRhdGEiLCJzZXNzaW9uIiwiYXV0aCIsImdldFNlc3Npb24iLCJiYXNlNjREYXRhIiwic3BsaXQiLCJpbWFnZUhhc2giLCJ1cGRhdGUiLCJkaWdlc3QiLCJjb25zb2xlIiwibG9nIiwiY2FjaGVkUmVzdWx0IiwiZnJvbSIsInNlbGVjdCIsImVxIiwibWF5YmVTaW5nbGUiLCJyZXN1bHQiLCJnZW5lcmF0ZUNvbnRlbnQiLCJpbmxpbmVEYXRhIiwibWltZVR5cGUiLCJ0ZXh0IiwicmVzcG9uc2VUZXh0IiwicmVzcG9uc2UiLCJqc29uRGF0YSIsIkpTT04iLCJwYXJzZSIsIkFycmF5IiwiaXNBcnJheSIsIkVycm9yIiwidmFsaWRhdGVkRGF0YSIsInN0b3JlRXJyb3IiLCJpbnNlcnQiLCJoYXNoIiwid2FybiIsIm1lc3NhZ2UiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(action-browser)/./src/services/analyze-bottle.ts\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(action-browser)/./src/services/save-bottle.ts":
|
|
/*!*************************************!*\
|
|
!*** ./src/services/save-bottle.ts ***!
|
|
\*************************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ saveBottle: () => (/* binding */ saveBottle)\n/* harmony export */ });\n/* harmony import */ var private_next_rsc_action_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! private-next-rsc-action-proxy */ \"(action-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-proxy.js\");\n/* harmony import */ var private_next_rsc_action_encryption__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! private-next-rsc-action-encryption */ \"(action-browser)/./node_modules/next/dist/server/app-render/action-encryption.js\");\n/* harmony import */ var private_next_rsc_action_encryption__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(private_next_rsc_action_encryption__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @supabase/auth-helpers-nextjs */ \"(action-browser)/./node_modules/@supabase/auth-helpers-nextjs/dist/index.js\");\n/* harmony import */ var _supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_headers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/headers */ \"(action-browser)/./node_modules/next/dist/api/headers.js\");\n/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! uuid */ \"(action-browser)/./node_modules/uuid/dist-node/index.js\");\n/* harmony import */ var private_next_rsc_action_validate__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! private-next-rsc-action-validate */ \"(action-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/action-validate.js\");\n/* __next_internal_action_entry_do_not_use__ {\"9cc2ffbf85f4e72220537b4253faa867d3a48bad\":\"saveBottle\"} */ \n\n\n\n\nasync function saveBottle(metadata, base64Image, _ignoredUserId // Keeping for signature compatibility if needed, but using session internally\n) {\n const supabase = (0,_supabase_auth_helpers_nextjs__WEBPACK_IMPORTED_MODULE_2__.createServerActionClient)({\n cookies: next_headers__WEBPACK_IMPORTED_MODULE_3__.cookies\n });\n try {\n // Verify user session and get ID from the server side (secure)\n const { data: { session } } = await supabase.auth.getSession();\n if (!session) {\n throw new Error(\"Nicht autorisiert oder Session abgelaufen.\");\n }\n const userId = session.user.id;\n // 1. Upload Image to Storage\n const base64Data = base64Image.split(\",\")[1] || base64Image;\n const buffer = Buffer.from(base64Data, \"base64\");\n const fileName = `${userId}/${(0,uuid__WEBPACK_IMPORTED_MODULE_4__.v4)()}.jpg`;\n const { data: uploadData, error: uploadError } = await supabase.storage.from(\"bottles\").upload(fileName, buffer, {\n contentType: \"image/jpeg\",\n upsert: true\n });\n if (uploadError) throw new Error(`Upload Error: ${uploadError.message}`);\n // Get Public URL\n const { data: { publicUrl } } = supabase.storage.from(\"bottles\").getPublicUrl(fileName);\n // 2. Save Metadata to Database\n const { data: bottleData, error: dbError } = await supabase.from(\"bottles\").insert({\n user_id: userId,\n name: metadata.name,\n distillery: metadata.distillery,\n category: metadata.category,\n abv: metadata.abv,\n age: metadata.age,\n whiskybase_id: metadata.whiskybaseId,\n image_url: publicUrl,\n status: \"sealed\"\n }).select().single();\n if (dbError) throw new Error(`Database Error: ${dbError.message}`);\n return {\n success: true,\n data: bottleData\n };\n } catch (error) {\n console.error(\"Save Bottle Error:\", error);\n return {\n success: false,\n error: error instanceof Error ? error.message : \"An unknown error occurred while saving.\"\n };\n }\n}\n\n(0,private_next_rsc_action_validate__WEBPACK_IMPORTED_MODULE_5__.ensureServerEntryExports)([\n saveBottle\n]);\n(0,private_next_rsc_action_proxy__WEBPACK_IMPORTED_MODULE_0__.createActionProxy)(\"9cc2ffbf85f4e72220537b4253faa867d3a48bad\", saveBottle);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL3NyYy9zZXJ2aWNlcy9zYXZlLWJvdHRsZS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUV5RTtBQUNsQztBQUVIO0FBRTdCLGVBQWVJLFdBQ2xCQyxRQUF3QixFQUN4QkMsV0FBbUIsRUFDbkJDLGVBQXVCLDhFQUE4RTtBQUEvRTtJQUV0QixNQUFNQyxXQUFXUix1RkFBd0JBLENBQUM7UUFBRUMsT0FBT0EsbURBQUFBO0lBQUM7SUFFcEQsSUFBSTtRQUNBLCtEQUErRDtRQUMvRCxNQUFNLEVBQUVRLE1BQU0sRUFBRUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxNQUFNRixTQUFTRyxJQUFJLENBQUNDLFVBQVU7UUFDNUQsSUFBSSxDQUFDRixTQUFTO1lBQ1YsTUFBTSxJQUFJRyxNQUFNO1FBQ3BCO1FBRUEsTUFBTUMsU0FBU0osUUFBUUssSUFBSSxDQUFDQyxFQUFFO1FBRTlCLDZCQUE2QjtRQUM3QixNQUFNQyxhQUFhWCxZQUFZWSxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSVo7UUFDaEQsTUFBTWEsU0FBU0MsT0FBT0MsSUFBSSxDQUFDSixZQUFZO1FBQ3ZDLE1BQU1LLFdBQVcsQ0FBQyxFQUFFUixPQUFPLENBQUMsRUFBRVgsd0NBQU1BLEdBQUcsSUFBSSxDQUFDO1FBRTVDLE1BQU0sRUFBRU0sTUFBTWMsVUFBVSxFQUFFQyxPQUFPQyxXQUFXLEVBQUUsR0FBRyxNQUFNakIsU0FBU2tCLE9BQU8sQ0FDbEVMLElBQUksQ0FBQyxXQUNMTSxNQUFNLENBQUNMLFVBQVVILFFBQVE7WUFDdEJTLGFBQWE7WUFDYkMsUUFBUTtRQUNaO1FBRUosSUFBSUosYUFBYSxNQUFNLElBQUlaLE1BQU0sQ0FBQyxjQUFjLEVBQUVZLFlBQVlLLE9BQU8sQ0FBQyxDQUFDO1FBRXZFLGlCQUFpQjtRQUNqQixNQUFNLEVBQUVyQixNQUFNLEVBQUVzQixTQUFTLEVBQUUsRUFBRSxHQUFHdkIsU0FBU2tCLE9BQU8sQ0FDM0NMLElBQUksQ0FBQyxXQUNMVyxZQUFZLENBQUNWO1FBRWxCLCtCQUErQjtRQUMvQixNQUFNLEVBQUViLE1BQU13QixVQUFVLEVBQUVULE9BQU9VLE9BQU8sRUFBRSxHQUFHLE1BQU0xQixTQUM5Q2EsSUFBSSxDQUFDLFdBQ0xjLE1BQU0sQ0FBQztZQUNKQyxTQUFTdEI7WUFDVHVCLE1BQU1oQyxTQUFTZ0MsSUFBSTtZQUNuQkMsWUFBWWpDLFNBQVNpQyxVQUFVO1lBQy9CQyxVQUFVbEMsU0FBU2tDLFFBQVE7WUFDM0JDLEtBQUtuQyxTQUFTbUMsR0FBRztZQUNqQkMsS0FBS3BDLFNBQVNvQyxHQUFHO1lBQ2pCQyxlQUFlckMsU0FBU3NDLFlBQVk7WUFDcENDLFdBQVdiO1lBQ1hjLFFBQVE7UUFDWixHQUNDQyxNQUFNLEdBQ05DLE1BQU07UUFFWCxJQUFJYixTQUFTLE1BQU0sSUFBSXJCLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRXFCLFFBQVFKLE9BQU8sQ0FBQyxDQUFDO1FBRWpFLE9BQU87WUFBRWtCLFNBQVM7WUFBTXZDLE1BQU13QjtRQUFXO0lBQzdDLEVBQUUsT0FBT1QsT0FBTztRQUNaeUIsUUFBUXpCLEtBQUssQ0FBQyxzQkFBc0JBO1FBQ3BDLE9BQU87WUFDSHdCLFNBQVM7WUFDVHhCLE9BQU9BLGlCQUFpQlgsUUFBUVcsTUFBTU0sT0FBTyxHQUFHO1FBQ3BEO0lBQ0o7QUFDSiIsInNvdXJjZXMiOlsid2VicGFjazovL3doaXNreS12YXVsdC8uL3NyYy9zZXJ2aWNlcy9zYXZlLWJvdHRsZS50cz9jZTM2Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc2VydmVyJztcblxuaW1wb3J0IHsgY3JlYXRlU2VydmVyQWN0aW9uQ2xpZW50IH0gZnJvbSAnQHN1cGFiYXNlL2F1dGgtaGVscGVycy1uZXh0anMnO1xuaW1wb3J0IHsgY29va2llcyB9IGZyb20gJ25leHQvaGVhZGVycyc7XG5pbXBvcnQgeyBCb3R0bGVNZXRhZGF0YSB9IGZyb20gJ0AvdHlwZXMvd2hpc2t5JztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2F2ZUJvdHRsZShcbiAgICBtZXRhZGF0YTogQm90dGxlTWV0YWRhdGEsXG4gICAgYmFzZTY0SW1hZ2U6IHN0cmluZyxcbiAgICBfaWdub3JlZFVzZXJJZDogc3RyaW5nIC8vIEtlZXBpbmcgZm9yIHNpZ25hdHVyZSBjb21wYXRpYmlsaXR5IGlmIG5lZWRlZCwgYnV0IHVzaW5nIHNlc3Npb24gaW50ZXJuYWxseVxuKSB7XG4gICAgY29uc3Qgc3VwYWJhc2UgPSBjcmVhdGVTZXJ2ZXJBY3Rpb25DbGllbnQoeyBjb29raWVzIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgICAgLy8gVmVyaWZ5IHVzZXIgc2Vzc2lvbiBhbmQgZ2V0IElEIGZyb20gdGhlIHNlcnZlciBzaWRlIChzZWN1cmUpXG4gICAgICAgIGNvbnN0IHsgZGF0YTogeyBzZXNzaW9uIH0gfSA9IGF3YWl0IHN1cGFiYXNlLmF1dGguZ2V0U2Vzc2lvbigpO1xuICAgICAgICBpZiAoIXNlc3Npb24pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTmljaHQgYXV0b3Jpc2llcnQgb2RlciBTZXNzaW9uIGFiZ2VsYXVmZW4uJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1c2VySWQgPSBzZXNzaW9uLnVzZXIuaWQ7XG5cbiAgICAgICAgLy8gMS4gVXBsb2FkIEltYWdlIHRvIFN0b3JhZ2VcbiAgICAgICAgY29uc3QgYmFzZTY0RGF0YSA9IGJhc2U2NEltYWdlLnNwbGl0KCcsJylbMV0gfHwgYmFzZTY0SW1hZ2U7XG4gICAgICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGJhc2U2NERhdGEsICdiYXNlNjQnKTtcbiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBgJHt1c2VySWR9LyR7dXVpZHY0KCl9LmpwZ2A7XG5cbiAgICAgICAgY29uc3QgeyBkYXRhOiB1cGxvYWREYXRhLCBlcnJvcjogdXBsb2FkRXJyb3IgfSA9IGF3YWl0IHN1cGFiYXNlLnN0b3JhZ2VcbiAgICAgICAgICAgIC5mcm9tKCdib3R0bGVzJylcbiAgICAgICAgICAgIC51cGxvYWQoZmlsZU5hbWUsIGJ1ZmZlciwge1xuICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlOiAnaW1hZ2UvanBlZycsXG4gICAgICAgICAgICAgICAgdXBzZXJ0OiB0cnVlLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHVwbG9hZEVycm9yKSB0aHJvdyBuZXcgRXJyb3IoYFVwbG9hZCBFcnJvcjogJHt1cGxvYWRFcnJvci5tZXNzYWdlfWApO1xuXG4gICAgICAgIC8vIEdldCBQdWJsaWMgVVJMXG4gICAgICAgIGNvbnN0IHsgZGF0YTogeyBwdWJsaWNVcmwgfSB9ID0gc3VwYWJhc2Uuc3RvcmFnZVxuICAgICAgICAgICAgLmZyb20oJ2JvdHRsZXMnKVxuICAgICAgICAgICAgLmdldFB1YmxpY1VybChmaWxlTmFtZSk7XG5cbiAgICAgICAgLy8gMi4gU2F2ZSBNZXRhZGF0YSB0byBEYXRhYmFzZVxuICAgICAgICBjb25zdCB7IGRhdGE6IGJvdHRsZURhdGEsIGVycm9yOiBkYkVycm9yIH0gPSBhd2FpdCBzdXBhYmFzZVxuICAgICAgICAgICAgLmZyb20oJ2JvdHRsZXMnKVxuICAgICAgICAgICAgLmluc2VydCh7XG4gICAgICAgICAgICAgICAgdXNlcl9pZDogdXNlcklkLFxuICAgICAgICAgICAgICAgIG5hbWU6IG1ldGFkYXRhLm5hbWUsXG4gICAgICAgICAgICAgICAgZGlzdGlsbGVyeTogbWV0YWRhdGEuZGlzdGlsbGVyeSxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogbWV0YWRhdGEuY2F0ZWdvcnksXG4gICAgICAgICAgICAgICAgYWJ2OiBtZXRhZGF0YS5hYnYsXG4gICAgICAgICAgICAgICAgYWdlOiBtZXRhZGF0YS5hZ2UsXG4gICAgICAgICAgICAgICAgd2hpc2t5YmFzZV9pZDogbWV0YWRhdGEud2hpc2t5YmFzZUlkLFxuICAgICAgICAgICAgICAgIGltYWdlX3VybDogcHVibGljVXJsLFxuICAgICAgICAgICAgICAgIHN0YXR1czogJ3NlYWxlZCcsIC8vIERlZmF1bHQgc3RhdHVzXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnNlbGVjdCgpXG4gICAgICAgICAgICAuc2luZ2xlKCk7XG5cbiAgICAgICAgaWYgKGRiRXJyb3IpIHRocm93IG5ldyBFcnJvcihgRGF0YWJhc2UgRXJyb3I6ICR7ZGJFcnJvci5tZXNzYWdlfWApO1xuXG4gICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IGJvdHRsZURhdGEgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdTYXZlIEJvdHRsZSBFcnJvcjonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkIHdoaWxlIHNhdmluZy4nLFxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVTZXJ2ZXJBY3Rpb25DbGllbnQiLCJjb29raWVzIiwidjQiLCJ1dWlkdjQiLCJzYXZlQm90dGxlIiwibWV0YWRhdGEiLCJiYXNlNjRJbWFnZSIsIl9pZ25vcmVkVXNlcklkIiwic3VwYWJhc2UiLCJkYXRhIiwic2Vzc2lvbiIsImF1dGgiLCJnZXRTZXNzaW9uIiwiRXJyb3IiLCJ1c2VySWQiLCJ1c2VyIiwiaWQiLCJiYXNlNjREYXRhIiwic3BsaXQiLCJidWZmZXIiLCJCdWZmZXIiLCJmcm9tIiwiZmlsZU5hbWUiLCJ1cGxvYWREYXRhIiwiZXJyb3IiLCJ1cGxvYWRFcnJvciIsInN0b3JhZ2UiLCJ1cGxvYWQiLCJjb250ZW50VHlwZSIsInVwc2VydCIsIm1lc3NhZ2UiLCJwdWJsaWNVcmwiLCJnZXRQdWJsaWNVcmwiLCJib3R0bGVEYXRhIiwiZGJFcnJvciIsImluc2VydCIsInVzZXJfaWQiLCJuYW1lIiwiZGlzdGlsbGVyeSIsImNhdGVnb3J5IiwiYWJ2IiwiYWdlIiwid2hpc2t5YmFzZV9pZCIsIndoaXNreWJhc2VJZCIsImltYWdlX3VybCIsInN0YXR1cyIsInNlbGVjdCIsInNpbmdsZSIsInN1Y2Nlc3MiLCJjb25zb2xlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(action-browser)/./src/services/save-bottle.ts\n");
|
|
|
|
/***/ }),
|
|
|
|
/***/ "(action-browser)/./src/types/whisky.ts":
|
|
/*!*****************************!*\
|
|
!*** ./src/types/whisky.ts ***!
|
|
\*****************************/
|
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
|
|
"use strict";
|
|
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ BottleMetadataSchema: () => (/* binding */ BottleMetadataSchema)\n/* harmony export */ });\n/* harmony import */ var zod__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! zod */ \"(action-browser)/./node_modules/zod/index.js\");\n\nconst BottleMetadataSchema = zod__WEBPACK_IMPORTED_MODULE_0__.z.object({\n name: zod__WEBPACK_IMPORTED_MODULE_0__.z.string().nullable(),\n distillery: zod__WEBPACK_IMPORTED_MODULE_0__.z.string().nullable(),\n category: zod__WEBPACK_IMPORTED_MODULE_0__.z.string().nullable(),\n abv: zod__WEBPACK_IMPORTED_MODULE_0__.z.number().nullable(),\n age: zod__WEBPACK_IMPORTED_MODULE_0__.z.number().nullable(),\n vintage: zod__WEBPACK_IMPORTED_MODULE_0__.z.string().nullable(),\n bottleCode: zod__WEBPACK_IMPORTED_MODULE_0__.z.string().nullable(),\n whiskybaseId: zod__WEBPACK_IMPORTED_MODULE_0__.z.string().nullable()\n});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL3NyYy90eXBlcy93aGlza3kudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBd0I7QUFFakIsTUFBTUMsdUJBQXVCRCxrQ0FBQ0EsQ0FBQ0UsTUFBTSxDQUFDO0lBQ3pDQyxNQUFNSCxrQ0FBQ0EsQ0FBQ0ksTUFBTSxHQUFHQyxRQUFRO0lBQ3pCQyxZQUFZTixrQ0FBQ0EsQ0FBQ0ksTUFBTSxHQUFHQyxRQUFRO0lBQy9CRSxVQUFVUCxrQ0FBQ0EsQ0FBQ0ksTUFBTSxHQUFHQyxRQUFRO0lBQzdCRyxLQUFLUixrQ0FBQ0EsQ0FBQ1MsTUFBTSxHQUFHSixRQUFRO0lBQ3hCSyxLQUFLVixrQ0FBQ0EsQ0FBQ1MsTUFBTSxHQUFHSixRQUFRO0lBQ3hCTSxTQUFTWCxrQ0FBQ0EsQ0FBQ0ksTUFBTSxHQUFHQyxRQUFRO0lBQzVCTyxZQUFZWixrQ0FBQ0EsQ0FBQ0ksTUFBTSxHQUFHQyxRQUFRO0lBQy9CUSxjQUFjYixrQ0FBQ0EsQ0FBQ0ksTUFBTSxHQUFHQyxRQUFRO0FBQ3JDLEdBQUciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly93aGlza3ktdmF1bHQvLi9zcmMvdHlwZXMvd2hpc2t5LnRzPzg1NDciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XG5cbmV4cG9ydCBjb25zdCBCb3R0bGVNZXRhZGF0YVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgICBuYW1lOiB6LnN0cmluZygpLm51bGxhYmxlKCksXG4gICAgZGlzdGlsbGVyeTogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICAgIGNhdGVnb3J5OiB6LnN0cmluZygpLm51bGxhYmxlKCksXG4gICAgYWJ2OiB6Lm51bWJlcigpLm51bGxhYmxlKCksXG4gICAgYWdlOiB6Lm51bWJlcigpLm51bGxhYmxlKCksXG4gICAgdmludGFnZTogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICAgIGJvdHRsZUNvZGU6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgICB3aGlza3liYXNlSWQ6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbn0pO1xuXG5leHBvcnQgdHlwZSBCb3R0bGVNZXRhZGF0YSA9IHouaW5mZXI8dHlwZW9mIEJvdHRsZU1ldGFkYXRhU2NoZW1hPjtcblxuZXhwb3J0IGludGVyZmFjZSBBbmFseXNpc1Jlc3BvbnNlIHtcbiAgICBzdWNjZXNzOiBib29sZWFuO1xuICAgIGRhdGE/OiBCb3R0bGVNZXRhZGF0YTtcbiAgICBlcnJvcj86IHN0cmluZztcbn1cbiJdLCJuYW1lcyI6WyJ6IiwiQm90dGxlTWV0YWRhdGFTY2hlbWEiLCJvYmplY3QiLCJuYW1lIiwic3RyaW5nIiwibnVsbGFibGUiLCJkaXN0aWxsZXJ5IiwiY2F0ZWdvcnkiLCJhYnYiLCJudW1iZXIiLCJhZ2UiLCJ2aW50YWdlIiwiYm90dGxlQ29kZSIsIndoaXNreWJhc2VJZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(action-browser)/./src/types/whisky.ts\n");
|
|
|
|
/***/ })
|
|
|
|
};
|
|
;
|
|
|
|
// load runtime
|
|
var __webpack_require__ = require("../webpack-runtime.js");
|
|
__webpack_require__.C(exports);
|
|
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
|
|
var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc","vendor-chunks/@supabase","vendor-chunks/jose","vendor-chunks/tslib","vendor-chunks/iceberg-js","vendor-chunks/lucide-react","vendor-chunks/set-cookie-parser","vendor-chunks/uuid","vendor-chunks/zod","vendor-chunks/@google"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2Fhome%2Frobin%2FAI%2FCoding%2FWhisky&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!")));
|
|
module.exports = __webpack_exports__;
|
|
|
|
})(); |