From 88615d21539b32ab48e5ca8055d9e4393c3fa7fd Mon Sep 17 00:00:00 2001 From: nike_zhiyun Date: Tue, 22 Apr 2025 15:57:06 +0800 Subject: [PATCH] first commit --- .gitignore | 3 + .nuxt/app.config.mjs | 18 + .nuxt/components.d.ts | 134 + .nuxt/dev/index.mjs | 1908 +++++++++ .nuxt/dev/index.mjs.map | 1 + .nuxt/dist/client/_nuxt/B5DzSfGL.js | 1 + .nuxt/dist/client/_nuxt/BEIx1E6y.js | 1 + .nuxt/dist/client/_nuxt/BIxlLiOC.js | 1 + .nuxt/dist/client/_nuxt/BSlzqyc2.js | 1 + .nuxt/dist/client/_nuxt/BdW6r93b.js | 1 + .nuxt/dist/client/_nuxt/C2iyXILq.js | 1 + .nuxt/dist/client/_nuxt/CE7bN5wJ.js | 1 + .nuxt/dist/client/_nuxt/CTNZZ0jZ.js | 1 + .nuxt/dist/client/_nuxt/CX81I8Qo.js | 25 + .nuxt/dist/client/_nuxt/Ck-IlX1H.js | 1 + .nuxt/dist/client/_nuxt/D-XMAsej.js | 1 + .nuxt/dist/client/_nuxt/HYuZ8ASD.js | 1 + .nuxt/dist/client/_nuxt/V4t9Btt1.js | 1 + .../dist/client/_nuxt/error-404.aNCZ2L4y.css | 1 + .../dist/client/_nuxt/error-500.JESWioAZ.css | 1 + .../server/_nuxt/entry-styles.4FLa15rc.mjs | 3 + .../_nuxt/error-404-styles.BNmKahfp.mjs | 2 + .../_nuxt/error-404-styles.wRz_-Rw1.mjs | 3 + .../_nuxt/error-500-styles.Cx3AJg0u.mjs | 2 + .../_nuxt/error-500-styles.TwxDbBgG.mjs | 3 + .../_virtual/_plugin-vue_export-helper.mjs | 11 + .../_plugin-vue_export-helper.mjs.map | 1 + .../_plugin-vue_export-helper.mjs.map.json | 1 + ...workspace_web3_.nuxt_components.plugin.mjs | 8 + ...space_web3_.nuxt_components.plugin.mjs.map | 1 + ..._web3_.nuxt_components.plugin.mjs.map.json | 1 + ...nuxt_D__doc_workspace_web3_.nuxt_fetch.mjs | 8 + ..._D__doc_workspace_web3_.nuxt_fetch.mjs.map | 1 + ...oc_workspace_web3_.nuxt_fetch.mjs.map.json | 1 + ...xt_D__doc_workspace_web3_.nuxt_layouts.mjs | 8 + ...__doc_workspace_web3_.nuxt_layouts.mjs.map | 1 + ..._workspace_web3_.nuxt_layouts.mjs.map.json | 1 + ...D__doc_workspace_web3_.nuxt_middleware.mjs | 12 + ...oc_workspace_web3_.nuxt_middleware.mjs.map | 1 + ...rkspace_web3_.nuxt_middleware.mjs.map.json | 1 + ...__doc_workspace_web3_.nuxt_nuxt.config.mjs | 11 + ...c_workspace_web3_.nuxt_nuxt.config.mjs.map | 1 + ...kspace_web3_.nuxt_nuxt.config.mjs.map.json | 1 + ...oc_workspace_web3_.nuxt_plugins.server.mjs | 16 + ...orkspace_web3_.nuxt_plugins.server.mjs.map | 1 + ...ace_web3_.nuxt_plugins.server.mjs.map.json | 1 + ...oc_workspace_web3_.nuxt_router.options.mjs | 15 + ...orkspace_web3_.nuxt_router.options.mjs.map | 1 + ...ace_web3_.nuxt_router.options.mjs.map.json | 1 + ...uxt_D__doc_workspace_web3_.nuxt_routes.mjs | 39 + ...D__doc_workspace_web3_.nuxt_routes.mjs.map | 1 + ...c_workspace_web3_.nuxt_routes.mjs.map.json | 1 + .nuxt/dist/server/app.vue.mjs | 33 + .nuxt/dist/server/app.vue.mjs.map | 1 + .nuxt/dist/server/app.vue.mjs.map.json | 1 + .nuxt/dist/server/client.manifest.json | 18 + .nuxt/dist/server/client.manifest.mjs | 1 + .../server/components/FooterSection.vue.mjs | 12 + .../components/FooterSection.vue.mjs.map | 1 + .../components/FooterSection.vue.mjs.map.json | 1 + .../server/components/FooterSection.vue2.mjs | 71 + .../components/FooterSection.vue2.mjs.map | 1 + .../FooterSection.vue2.mjs.map.json | 1 + .../dist/server/components/HeroBanner.vue.mjs | 12 + .../server/components/HeroBanner.vue.mjs.map | 1 + .../components/HeroBanner.vue.mjs.map.json | 1 + .../server/components/HeroBanner.vue2.mjs | 21 + .../server/components/HeroBanner.vue2.mjs.map | 1 + .../components/HeroBanner.vue2.mjs.map.json | 1 + .nuxt/dist/server/components/NavBar.vue.mjs | 12 + .../dist/server/components/NavBar.vue.mjs.map | 1 + .../server/components/NavBar.vue.mjs.map.json | 1 + .nuxt/dist/server/components/NavBar.vue2.mjs | 85 + .../server/components/NavBar.vue2.mjs.map | 1 + .../components/NavBar.vue2.mjs.map.json | 1 + .../components/NotificationToast.vue.mjs | 12 + .../components/NotificationToast.vue.mjs.map | 1 + .../NotificationToast.vue.mjs.map.json | 1 + .../components/NotificationToast.vue2.mjs | 45 + .../components/NotificationToast.vue2.mjs.map | 1 + .../NotificationToast.vue2.mjs.map.json | 1 + .nuxt/dist/server/entry-styles-1.mjs.mjs | 5 + .nuxt/dist/server/entry-styles-1.mjs.mjs.map | 1 + .../server/entry-styles-1.mjs.mjs.map.json | 1 + .nuxt/dist/server/entry-styles-2.mjs.mjs | 5 + .nuxt/dist/server/entry-styles-2.mjs.mjs.map | 1 + .../server/entry-styles-2.mjs.mjs.map.json | 1 + .nuxt/dist/server/error-404-styles-1.mjs.mjs | 5 + .../server/error-404-styles-1.mjs.mjs.map | 1 + .../error-404-styles-1.mjs.mjs.map.json | 1 + .nuxt/dist/server/error-500-styles-1.mjs.mjs | 5 + .../server/error-500-styles-1.mjs.mjs.map | 1 + .../error-500-styles-1.mjs.mjs.map.json | 1 + .nuxt/dist/server/layouts/default.vue.mjs | 12 + .nuxt/dist/server/layouts/default.vue.mjs.map | 1 + .../server/layouts/default.vue.mjs.map.json | 1 + .nuxt/dist/server/layouts/default.vue2.mjs | 33 + .../dist/server/layouts/default.vue2.mjs.map | 1 + .../server/layouts/default.vue2.mjs.map.json | 1 + .../dist/app/components/error-404.vue.mjs | 83 + .../dist/app/components/error-404.vue.mjs.map | 1 + .../app/components/error-404.vue.mjs.map.json | 1 + .../dist/app/components/error-500.vue.mjs | 61 + .../dist/app/components/error-500.vue.mjs.map | 1 + .../app/components/error-500.vue.mjs.map.json | 1 + .../nuxt/dist/app/components/injections.mjs | 7 + .../dist/app/components/injections.mjs.map | 1 + .../app/components/injections.mjs.map.json | 1 + .../app/components/nuxt-error-page.vue.mjs | 41 + .../components/nuxt-error-page.vue.mjs.map | 1 + .../nuxt-error-page.vue.mjs.map.json | 1 + .../nuxt/dist/app/components/nuxt-layout.mjs | 113 + .../dist/app/components/nuxt-layout.mjs.map | 1 + .../app/components/nuxt-layout.mjs.map.json | 1 + .../nuxt/dist/app/components/nuxt-link.mjs | 279 ++ .../dist/app/components/nuxt-link.mjs.map | 1 + .../app/components/nuxt-link.mjs.map.json | 1 + .../dist/app/components/nuxt-root.vue.mjs | 60 + .../dist/app/components/nuxt-root.vue.mjs.map | 1 + .../app/components/nuxt-root.vue.mjs.map.json | 1 + .../dist/app/components/route-provider.mjs | 39 + .../app/components/route-provider.mjs.map | 1 + .../components/route-provider.mjs.map.json | 1 + .../nuxt/dist/app/components/utils.mjs | 41 + .../nuxt/dist/app/components/utils.mjs.map | 1 + .../dist/app/components/utils.mjs.map.json | 1 + .../nuxt/dist/app/composables/error.mjs | 35 + .../nuxt/dist/app/composables/error.mjs.map | 1 + .../dist/app/composables/error.mjs.map.json | 1 + .../nuxt/dist/app/composables/manifest.mjs | 18 + .../dist/app/composables/manifest.mjs.map | 1 + .../app/composables/manifest.mjs.map.json | 1 + .../nuxt/dist/app/composables/payload.mjs | 13 + .../nuxt/dist/app/composables/payload.mjs.map | 1 + .../dist/app/composables/payload.mjs.map.json | 1 + .../nuxt/dist/app/composables/router.mjs | 112 + .../nuxt/dist/app/composables/router.mjs.map | 1 + .../dist/app/composables/router.mjs.map.json | 1 + .../nuxt/dist/app/composables/ssr.mjs | 21 + .../nuxt/dist/app/composables/ssr.mjs.map | 1 + .../dist/app/composables/ssr.mjs.map.json | 1 + .../app/middleware/manifest-route-rule.mjs | 14 + .../middleware/manifest-route-rule.mjs.map | 1 + .../manifest-route-rule.mjs.map.json | 1 + .../node_modules/nuxt/dist/app/nuxt.mjs | 228 ++ .../node_modules/nuxt/dist/app/nuxt.mjs.map | 1 + .../nuxt/dist/app/nuxt.mjs.map.json | 1 + .../app/plugins/revive-payload.server.mjs | 25 + .../app/plugins/revive-payload.server.mjs.map | 1 + .../revive-payload.server.mjs.map.json | 1 + .../node_modules/nuxt/dist/app/utils.mjs | 7 + .../node_modules/nuxt/dist/app/utils.mjs.map | 1 + .../nuxt/dist/app/utils.mjs.map.json | 1 + .../nuxt/dist/head/runtime/composables/v3.mjs | 23 + .../dist/head/runtime/composables/v3.mjs.map | 1 + .../head/runtime/composables/v3.mjs.map.json | 1 + .../nuxt/dist/head/runtime/plugins/unhead.mjs | 13 + .../dist/head/runtime/plugins/unhead.mjs.map | 1 + .../head/runtime/plugins/unhead.mjs.map.json | 1 + .../nuxt/dist/pages/runtime/page.mjs | 61 + .../nuxt/dist/pages/runtime/page.mjs.map | 1 + .../nuxt/dist/pages/runtime/page.mjs.map.json | 1 + .../runtime/plugins/prerender.server.mjs | 51 + .../runtime/plugins/prerender.server.mjs.map | 1 + .../plugins/prerender.server.mjs.map.json | 1 + .../dist/pages/runtime/plugins/router.mjs | 216 + .../dist/pages/runtime/plugins/router.mjs.map | 1 + .../pages/runtime/plugins/router.mjs.map.json | 1 + .../dist/pages/runtime/router.options.mjs | 59 + .../dist/pages/runtime/router.options.mjs.map | 1 + .../pages/runtime/router.options.mjs.map.json | 1 + .../nuxt/dist/pages/runtime/utils.mjs | 8 + .../nuxt/dist/pages/runtime/utils.mjs.map | 1 + .../dist/pages/runtime/utils.mjs.map.json | 1 + .../nuxt/dist/pages/runtime/validate.mjs | 38 + .../nuxt/dist/pages/runtime/validate.mjs.map | 1 + .../dist/pages/runtime/validate.mjs.map.json | 1 + .nuxt/dist/server/pages/about.vue.mjs | 12 + .nuxt/dist/server/pages/about.vue.mjs.map | 1 + .../dist/server/pages/about.vue.mjs.map.json | 1 + .nuxt/dist/server/pages/about.vue2.mjs | 116 + .nuxt/dist/server/pages/about.vue2.mjs.map | 1 + .../dist/server/pages/about.vue2.mjs.map.json | 1 + .nuxt/dist/server/pages/cases.vue.mjs | 12 + .nuxt/dist/server/pages/cases.vue.mjs.map | 1 + .../dist/server/pages/cases.vue.mjs.map.json | 1 + .nuxt/dist/server/pages/cases.vue2.mjs | 215 + .nuxt/dist/server/pages/cases.vue2.mjs.map | 1 + .../dist/server/pages/cases.vue2.mjs.map.json | 1 + .nuxt/dist/server/pages/contact.vue.mjs | 12 + .nuxt/dist/server/pages/contact.vue.mjs.map | 1 + .../server/pages/contact.vue.mjs.map.json | 1 + .nuxt/dist/server/pages/contact.vue2.mjs | 141 + .nuxt/dist/server/pages/contact.vue2.mjs.map | 1 + .../server/pages/contact.vue2.mjs.map.json | 1 + .nuxt/dist/server/pages/index.vue.mjs | 12 + .nuxt/dist/server/pages/index.vue.mjs.map | 1 + .../dist/server/pages/index.vue.mjs.map.json | 1 + .nuxt/dist/server/pages/index.vue2.mjs | 177 + .nuxt/dist/server/pages/index.vue2.mjs.map | 1 + .../dist/server/pages/index.vue2.mjs.map.json | 1 + .nuxt/dist/server/pages/products.vue.mjs | 12 + .nuxt/dist/server/pages/products.vue.mjs.map | 1 + .../server/pages/products.vue.mjs.map.json | 1 + .nuxt/dist/server/pages/products.vue2.mjs | 150 + .nuxt/dist/server/pages/products.vue2.mjs.map | 1 + .../server/pages/products.vue2.mjs.map.json | 1 + .nuxt/dist/server/pages/solutions.vue.mjs | 12 + .nuxt/dist/server/pages/solutions.vue.mjs.map | 1 + .../server/pages/solutions.vue.mjs.map.json | 1 + .nuxt/dist/server/pages/solutions.vue2.mjs | 225 ++ .../dist/server/pages/solutions.vue2.mjs.map | 1 + .../server/pages/solutions.vue2.mjs.map.json | 1 + .nuxt/dist/server/server.mjs | 1 + .nuxt/dist/server/server.mjs.map | 1 + .nuxt/dist/server/server.mjs.map.json | 1 + .nuxt/dist/server/styles.mjs | 8 + .nuxt/imports.d.ts | 32 + .nuxt/manifest/latest.json | 1 + .../295e2927-5908-4c75-87ca-ed5550175fd5.json | 1 + .nuxt/manifest/meta/dev.json | 1 + .nuxt/nitro.json | 17 + .nuxt/nuxt.d.ts | 21 + .nuxt/nuxt.json | 9 + .nuxt/prerender/chunks/_/error-500.mjs | 8 + .nuxt/prerender/chunks/_/error-500.mjs.map | 1 + .nuxt/prerender/chunks/_/nitro.mjs | 1201 ++++++ .nuxt/prerender/chunks/_/nitro.mjs.map | 1 + .nuxt/prerender/chunks/_/renderer.mjs | 439 ++ .nuxt/prerender/chunks/_/renderer.mjs.map | 1 + .../chunks/build/HeroBanner.vue2.mjs | 21 + .../chunks/build/HeroBanner.vue2.mjs.map | 1 + .nuxt/prerender/chunks/build/about.vue.mjs | 130 + .../prerender/chunks/build/about.vue.mjs.map | 1 + .nuxt/prerender/chunks/build/cases.vue.mjs | 229 ++ .../prerender/chunks/build/cases.vue.mjs.map | 1 + .../chunks/build/client.manifest.mjs | 200 + .../chunks/build/client.manifest.mjs.map | 1 + .nuxt/prerender/chunks/build/contact.vue.mjs | 185 + .../chunks/build/contact.vue.mjs.map | 1 + .nuxt/prerender/chunks/build/default.vue.mjs | 188 + .../chunks/build/default.vue.mjs.map | 1 + .../chunks/build/entry-styles.4FLa15rc.mjs | 8 + .../build/entry-styles.4FLa15rc.mjs.map | 1 + .../chunks/build/error-404-styles-1.mjs.mjs | 4 + .../build/error-404-styles-1.mjs.mjs.map | 1 + .../build/error-404-styles.BNmKahfp.mjs | 6 + .../build/error-404-styles.BNmKahfp.mjs.map | 1 + .../build/error-404-styles.wRz_-Rw1.mjs | 6 + .../build/error-404-styles.wRz_-Rw1.mjs.map | 1 + .../prerender/chunks/build/error-404.vue.mjs | 109 + .../chunks/build/error-404.vue.mjs.map | 1 + .../chunks/build/error-500-styles-1.mjs.mjs | 4 + .../build/error-500-styles-1.mjs.mjs.map | 1 + .../build/error-500-styles.Cx3AJg0u.mjs | 6 + .../build/error-500-styles.Cx3AJg0u.mjs.map | 1 + .../build/error-500-styles.TwxDbBgG.mjs | 6 + .../build/error-500-styles.TwxDbBgG.mjs.map | 1 + .../prerender/chunks/build/error-500.vue.mjs | 87 + .../chunks/build/error-500.vue.mjs.map | 1 + .nuxt/prerender/chunks/build/index.vue.mjs | 191 + .../prerender/chunks/build/index.vue.mjs.map | 1 + .nuxt/prerender/chunks/build/nuxt-link.mjs | 276 ++ .../prerender/chunks/build/nuxt-link.mjs.map | 1 + .nuxt/prerender/chunks/build/products.vue.mjs | 164 + .../chunks/build/products.vue.mjs.map | 1 + .nuxt/prerender/chunks/build/server.mjs | 1177 ++++++ .nuxt/prerender/chunks/build/server.mjs.map | 1 + .../prerender/chunks/build/solutions.vue.mjs | 239 ++ .../chunks/build/solutions.vue.mjs.map | 1 + .nuxt/prerender/chunks/build/styles.mjs | 11 + .nuxt/prerender/chunks/build/styles.mjs.map | 1 + .nuxt/prerender/chunks/build/v3.mjs | 22 + .nuxt/prerender/chunks/build/v3.mjs.map | 1 + .../chunks/virtual/_virtual_spa-template.mjs | 4 + .../virtual/_virtual_spa-template.mjs.map | 1 + .nuxt/prerender/index.mjs | 27 + .nuxt/prerender/index.mjs.map | 1 + .nuxt/schema/nuxt.schema.d.ts | 17 + .nuxt/schema/nuxt.schema.json | 3 + .nuxt/tailwind/postcss.mjs | 13 + .nuxt/tsconfig.json | 179 + .nuxt/tsconfig.server.json | 134 + .nuxt/types/app-defaults.d.ts | 7 + .nuxt/types/app.config.d.ts | 31 + .nuxt/types/build.d.ts | 23 + .nuxt/types/builder-env.d.ts | 1 + .nuxt/types/imports.d.ts | 354 ++ .nuxt/types/layouts.d.ts | 7 + .nuxt/types/middleware.d.ts | 7 + .nuxt/types/nitro-config.d.ts | 14 + .nuxt/types/nitro-imports.d.ts | 141 + .nuxt/types/nitro-middleware.d.ts | 6 + .nuxt/types/nitro-nuxt.d.ts | 34 + .nuxt/types/nitro-routes.d.ts | 11 + .nuxt/types/nitro.d.ts | 3 + .nuxt/types/plugins.d.ts | 37 + .nuxt/types/schema.d.ts | 74 + .nuxt/types/vue-shim.d.ts | 0 .specstory/.what-is-this.md | 65 + ...onent-conversion-with-nuxt-and-tailwind.md | 3547 +++++++++++++++++ assets/css/main.css | 76 + components/FooterSection.vue | 85 + components/HeroBanner.vue | 18 + components/LanguageSwitcher.vue | 74 + components/NavBar.vue | 104 + components/NotificationToast.vue | 46 + i18n/locales/en.json | 92 + i18n/locales/zh.json | 92 + layouts/default.vue | 31 + pages/about.vue | 170 + pages/cases.vue | 332 ++ pages/contact.vue | 290 ++ pages/index.vue | 191 + pages/products.vue | 202 + pages/solutions.vue | 291 ++ plugins/i18n.ts | 17 + public/robots.txt | 2 + 318 files changed, 17406 insertions(+) create mode 100644 .gitignore create mode 100644 .nuxt/app.config.mjs create mode 100644 .nuxt/components.d.ts create mode 100644 .nuxt/dev/index.mjs create mode 100644 .nuxt/dev/index.mjs.map create mode 100644 .nuxt/dist/client/_nuxt/B5DzSfGL.js create mode 100644 .nuxt/dist/client/_nuxt/BEIx1E6y.js create mode 100644 .nuxt/dist/client/_nuxt/BIxlLiOC.js create mode 100644 .nuxt/dist/client/_nuxt/BSlzqyc2.js create mode 100644 .nuxt/dist/client/_nuxt/BdW6r93b.js create mode 100644 .nuxt/dist/client/_nuxt/C2iyXILq.js create mode 100644 .nuxt/dist/client/_nuxt/CE7bN5wJ.js create mode 100644 .nuxt/dist/client/_nuxt/CTNZZ0jZ.js create mode 100644 .nuxt/dist/client/_nuxt/CX81I8Qo.js create mode 100644 .nuxt/dist/client/_nuxt/Ck-IlX1H.js create mode 100644 .nuxt/dist/client/_nuxt/D-XMAsej.js create mode 100644 .nuxt/dist/client/_nuxt/HYuZ8ASD.js create mode 100644 .nuxt/dist/client/_nuxt/V4t9Btt1.js create mode 100644 .nuxt/dist/client/_nuxt/error-404.aNCZ2L4y.css create mode 100644 .nuxt/dist/client/_nuxt/error-500.JESWioAZ.css create mode 100644 .nuxt/dist/server/_nuxt/entry-styles.4FLa15rc.mjs create mode 100644 .nuxt/dist/server/_nuxt/error-404-styles.BNmKahfp.mjs create mode 100644 .nuxt/dist/server/_nuxt/error-404-styles.wRz_-Rw1.mjs create mode 100644 .nuxt/dist/server/_nuxt/error-500-styles.Cx3AJg0u.mjs create mode 100644 .nuxt/dist/server/_nuxt/error-500-styles.TwxDbBgG.mjs create mode 100644 .nuxt/dist/server/_virtual/_plugin-vue_export-helper.mjs create mode 100644 .nuxt/dist/server/_virtual/_plugin-vue_export-helper.mjs.map create mode 100644 .nuxt/dist/server/_virtual/_plugin-vue_export-helper.mjs.map.json create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_components.plugin.mjs create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_components.plugin.mjs.map create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_components.plugin.mjs.map.json create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_fetch.mjs create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_fetch.mjs.map create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_fetch.mjs.map.json create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_layouts.mjs create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_layouts.mjs.map create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_layouts.mjs.map.json create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_middleware.mjs create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_middleware.mjs.map create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_middleware.mjs.map.json create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_nuxt.config.mjs create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_nuxt.config.mjs.map create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_nuxt.config.mjs.map.json create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_plugins.server.mjs create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_plugins.server.mjs.map create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_plugins.server.mjs.map.json create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_router.options.mjs create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_router.options.mjs.map create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_router.options.mjs.map.json create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_routes.mjs create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_routes.mjs.map create mode 100644 .nuxt/dist/server/_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_routes.mjs.map.json create mode 100644 .nuxt/dist/server/app.vue.mjs create mode 100644 .nuxt/dist/server/app.vue.mjs.map create mode 100644 .nuxt/dist/server/app.vue.mjs.map.json create mode 100644 .nuxt/dist/server/client.manifest.json create mode 100644 .nuxt/dist/server/client.manifest.mjs create mode 100644 .nuxt/dist/server/components/FooterSection.vue.mjs create mode 100644 .nuxt/dist/server/components/FooterSection.vue.mjs.map create mode 100644 .nuxt/dist/server/components/FooterSection.vue.mjs.map.json create mode 100644 .nuxt/dist/server/components/FooterSection.vue2.mjs create mode 100644 .nuxt/dist/server/components/FooterSection.vue2.mjs.map create mode 100644 .nuxt/dist/server/components/FooterSection.vue2.mjs.map.json create mode 100644 .nuxt/dist/server/components/HeroBanner.vue.mjs create mode 100644 .nuxt/dist/server/components/HeroBanner.vue.mjs.map create mode 100644 .nuxt/dist/server/components/HeroBanner.vue.mjs.map.json create mode 100644 .nuxt/dist/server/components/HeroBanner.vue2.mjs create mode 100644 .nuxt/dist/server/components/HeroBanner.vue2.mjs.map create mode 100644 .nuxt/dist/server/components/HeroBanner.vue2.mjs.map.json create mode 100644 .nuxt/dist/server/components/NavBar.vue.mjs create mode 100644 .nuxt/dist/server/components/NavBar.vue.mjs.map create mode 100644 .nuxt/dist/server/components/NavBar.vue.mjs.map.json create mode 100644 .nuxt/dist/server/components/NavBar.vue2.mjs create mode 100644 .nuxt/dist/server/components/NavBar.vue2.mjs.map create mode 100644 .nuxt/dist/server/components/NavBar.vue2.mjs.map.json create mode 100644 .nuxt/dist/server/components/NotificationToast.vue.mjs create mode 100644 .nuxt/dist/server/components/NotificationToast.vue.mjs.map create mode 100644 .nuxt/dist/server/components/NotificationToast.vue.mjs.map.json create mode 100644 .nuxt/dist/server/components/NotificationToast.vue2.mjs create mode 100644 .nuxt/dist/server/components/NotificationToast.vue2.mjs.map create mode 100644 .nuxt/dist/server/components/NotificationToast.vue2.mjs.map.json create mode 100644 .nuxt/dist/server/entry-styles-1.mjs.mjs create mode 100644 .nuxt/dist/server/entry-styles-1.mjs.mjs.map create mode 100644 .nuxt/dist/server/entry-styles-1.mjs.mjs.map.json create mode 100644 .nuxt/dist/server/entry-styles-2.mjs.mjs create mode 100644 .nuxt/dist/server/entry-styles-2.mjs.mjs.map create mode 100644 .nuxt/dist/server/entry-styles-2.mjs.mjs.map.json create mode 100644 .nuxt/dist/server/error-404-styles-1.mjs.mjs create mode 100644 .nuxt/dist/server/error-404-styles-1.mjs.mjs.map create mode 100644 .nuxt/dist/server/error-404-styles-1.mjs.mjs.map.json create mode 100644 .nuxt/dist/server/error-500-styles-1.mjs.mjs create mode 100644 .nuxt/dist/server/error-500-styles-1.mjs.mjs.map create mode 100644 .nuxt/dist/server/error-500-styles-1.mjs.mjs.map.json create mode 100644 .nuxt/dist/server/layouts/default.vue.mjs create mode 100644 .nuxt/dist/server/layouts/default.vue.mjs.map create mode 100644 .nuxt/dist/server/layouts/default.vue.mjs.map.json create mode 100644 .nuxt/dist/server/layouts/default.vue2.mjs create mode 100644 .nuxt/dist/server/layouts/default.vue2.mjs.map create mode 100644 .nuxt/dist/server/layouts/default.vue2.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/error-404.vue.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/error-404.vue.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/error-404.vue.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/error-500.vue.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/error-500.vue.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/error-500.vue.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/injections.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/injections.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/injections.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-error-page.vue.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-error-page.vue.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-error-page.vue.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-layout.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-layout.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-layout.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-link.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-link.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-link.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-root.vue.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-root.vue.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-root.vue.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/route-provider.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/route-provider.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/route-provider.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/utils.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/utils.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/components/utils.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/composables/error.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/composables/error.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/composables/error.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/composables/manifest.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/composables/manifest.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/composables/manifest.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/composables/payload.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/composables/payload.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/composables/payload.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/composables/router.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/composables/router.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/composables/router.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/composables/ssr.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/composables/ssr.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/composables/ssr.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/middleware/manifest-route-rule.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/middleware/manifest-route-rule.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/middleware/manifest-route-rule.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/nuxt.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/nuxt.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/nuxt.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/plugins/revive-payload.server.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/plugins/revive-payload.server.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/plugins/revive-payload.server.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/utils.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/utils.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/app/utils.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/head/runtime/composables/v3.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/head/runtime/composables/v3.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/head/runtime/composables/v3.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/head/runtime/plugins/unhead.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/head/runtime/plugins/unhead.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/head/runtime/plugins/unhead.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/page.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/page.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/page.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/router.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/router.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/router.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/router.options.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/router.options.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/router.options.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/utils.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/utils.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/utils.mjs.map.json create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/validate.mjs create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/validate.mjs.map create mode 100644 .nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/validate.mjs.map.json create mode 100644 .nuxt/dist/server/pages/about.vue.mjs create mode 100644 .nuxt/dist/server/pages/about.vue.mjs.map create mode 100644 .nuxt/dist/server/pages/about.vue.mjs.map.json create mode 100644 .nuxt/dist/server/pages/about.vue2.mjs create mode 100644 .nuxt/dist/server/pages/about.vue2.mjs.map create mode 100644 .nuxt/dist/server/pages/about.vue2.mjs.map.json create mode 100644 .nuxt/dist/server/pages/cases.vue.mjs create mode 100644 .nuxt/dist/server/pages/cases.vue.mjs.map create mode 100644 .nuxt/dist/server/pages/cases.vue.mjs.map.json create mode 100644 .nuxt/dist/server/pages/cases.vue2.mjs create mode 100644 .nuxt/dist/server/pages/cases.vue2.mjs.map create mode 100644 .nuxt/dist/server/pages/cases.vue2.mjs.map.json create mode 100644 .nuxt/dist/server/pages/contact.vue.mjs create mode 100644 .nuxt/dist/server/pages/contact.vue.mjs.map create mode 100644 .nuxt/dist/server/pages/contact.vue.mjs.map.json create mode 100644 .nuxt/dist/server/pages/contact.vue2.mjs create mode 100644 .nuxt/dist/server/pages/contact.vue2.mjs.map create mode 100644 .nuxt/dist/server/pages/contact.vue2.mjs.map.json create mode 100644 .nuxt/dist/server/pages/index.vue.mjs create mode 100644 .nuxt/dist/server/pages/index.vue.mjs.map create mode 100644 .nuxt/dist/server/pages/index.vue.mjs.map.json create mode 100644 .nuxt/dist/server/pages/index.vue2.mjs create mode 100644 .nuxt/dist/server/pages/index.vue2.mjs.map create mode 100644 .nuxt/dist/server/pages/index.vue2.mjs.map.json create mode 100644 .nuxt/dist/server/pages/products.vue.mjs create mode 100644 .nuxt/dist/server/pages/products.vue.mjs.map create mode 100644 .nuxt/dist/server/pages/products.vue.mjs.map.json create mode 100644 .nuxt/dist/server/pages/products.vue2.mjs create mode 100644 .nuxt/dist/server/pages/products.vue2.mjs.map create mode 100644 .nuxt/dist/server/pages/products.vue2.mjs.map.json create mode 100644 .nuxt/dist/server/pages/solutions.vue.mjs create mode 100644 .nuxt/dist/server/pages/solutions.vue.mjs.map create mode 100644 .nuxt/dist/server/pages/solutions.vue.mjs.map.json create mode 100644 .nuxt/dist/server/pages/solutions.vue2.mjs create mode 100644 .nuxt/dist/server/pages/solutions.vue2.mjs.map create mode 100644 .nuxt/dist/server/pages/solutions.vue2.mjs.map.json create mode 100644 .nuxt/dist/server/server.mjs create mode 100644 .nuxt/dist/server/server.mjs.map create mode 100644 .nuxt/dist/server/server.mjs.map.json create mode 100644 .nuxt/dist/server/styles.mjs create mode 100644 .nuxt/imports.d.ts create mode 100644 .nuxt/manifest/latest.json create mode 100644 .nuxt/manifest/meta/295e2927-5908-4c75-87ca-ed5550175fd5.json create mode 100644 .nuxt/manifest/meta/dev.json create mode 100644 .nuxt/nitro.json create mode 100644 .nuxt/nuxt.d.ts create mode 100644 .nuxt/nuxt.json create mode 100644 .nuxt/prerender/chunks/_/error-500.mjs create mode 100644 .nuxt/prerender/chunks/_/error-500.mjs.map create mode 100644 .nuxt/prerender/chunks/_/nitro.mjs create mode 100644 .nuxt/prerender/chunks/_/nitro.mjs.map create mode 100644 .nuxt/prerender/chunks/_/renderer.mjs create mode 100644 .nuxt/prerender/chunks/_/renderer.mjs.map create mode 100644 .nuxt/prerender/chunks/build/HeroBanner.vue2.mjs create mode 100644 .nuxt/prerender/chunks/build/HeroBanner.vue2.mjs.map create mode 100644 .nuxt/prerender/chunks/build/about.vue.mjs create mode 100644 .nuxt/prerender/chunks/build/about.vue.mjs.map create mode 100644 .nuxt/prerender/chunks/build/cases.vue.mjs create mode 100644 .nuxt/prerender/chunks/build/cases.vue.mjs.map create mode 100644 .nuxt/prerender/chunks/build/client.manifest.mjs create mode 100644 .nuxt/prerender/chunks/build/client.manifest.mjs.map create mode 100644 .nuxt/prerender/chunks/build/contact.vue.mjs create mode 100644 .nuxt/prerender/chunks/build/contact.vue.mjs.map create mode 100644 .nuxt/prerender/chunks/build/default.vue.mjs create mode 100644 .nuxt/prerender/chunks/build/default.vue.mjs.map create mode 100644 .nuxt/prerender/chunks/build/entry-styles.4FLa15rc.mjs create mode 100644 .nuxt/prerender/chunks/build/entry-styles.4FLa15rc.mjs.map create mode 100644 .nuxt/prerender/chunks/build/error-404-styles-1.mjs.mjs create mode 100644 .nuxt/prerender/chunks/build/error-404-styles-1.mjs.mjs.map create mode 100644 .nuxt/prerender/chunks/build/error-404-styles.BNmKahfp.mjs create mode 100644 .nuxt/prerender/chunks/build/error-404-styles.BNmKahfp.mjs.map create mode 100644 .nuxt/prerender/chunks/build/error-404-styles.wRz_-Rw1.mjs create mode 100644 .nuxt/prerender/chunks/build/error-404-styles.wRz_-Rw1.mjs.map create mode 100644 .nuxt/prerender/chunks/build/error-404.vue.mjs create mode 100644 .nuxt/prerender/chunks/build/error-404.vue.mjs.map create mode 100644 .nuxt/prerender/chunks/build/error-500-styles-1.mjs.mjs create mode 100644 .nuxt/prerender/chunks/build/error-500-styles-1.mjs.mjs.map create mode 100644 .nuxt/prerender/chunks/build/error-500-styles.Cx3AJg0u.mjs create mode 100644 .nuxt/prerender/chunks/build/error-500-styles.Cx3AJg0u.mjs.map create mode 100644 .nuxt/prerender/chunks/build/error-500-styles.TwxDbBgG.mjs create mode 100644 .nuxt/prerender/chunks/build/error-500-styles.TwxDbBgG.mjs.map create mode 100644 .nuxt/prerender/chunks/build/error-500.vue.mjs create mode 100644 .nuxt/prerender/chunks/build/error-500.vue.mjs.map create mode 100644 .nuxt/prerender/chunks/build/index.vue.mjs create mode 100644 .nuxt/prerender/chunks/build/index.vue.mjs.map create mode 100644 .nuxt/prerender/chunks/build/nuxt-link.mjs create mode 100644 .nuxt/prerender/chunks/build/nuxt-link.mjs.map create mode 100644 .nuxt/prerender/chunks/build/products.vue.mjs create mode 100644 .nuxt/prerender/chunks/build/products.vue.mjs.map create mode 100644 .nuxt/prerender/chunks/build/server.mjs create mode 100644 .nuxt/prerender/chunks/build/server.mjs.map create mode 100644 .nuxt/prerender/chunks/build/solutions.vue.mjs create mode 100644 .nuxt/prerender/chunks/build/solutions.vue.mjs.map create mode 100644 .nuxt/prerender/chunks/build/styles.mjs create mode 100644 .nuxt/prerender/chunks/build/styles.mjs.map create mode 100644 .nuxt/prerender/chunks/build/v3.mjs create mode 100644 .nuxt/prerender/chunks/build/v3.mjs.map create mode 100644 .nuxt/prerender/chunks/virtual/_virtual_spa-template.mjs create mode 100644 .nuxt/prerender/chunks/virtual/_virtual_spa-template.mjs.map create mode 100644 .nuxt/prerender/index.mjs create mode 100644 .nuxt/prerender/index.mjs.map create mode 100644 .nuxt/schema/nuxt.schema.d.ts create mode 100644 .nuxt/schema/nuxt.schema.json create mode 100644 .nuxt/tailwind/postcss.mjs create mode 100644 .nuxt/tsconfig.json create mode 100644 .nuxt/tsconfig.server.json create mode 100644 .nuxt/types/app-defaults.d.ts create mode 100644 .nuxt/types/app.config.d.ts create mode 100644 .nuxt/types/build.d.ts create mode 100644 .nuxt/types/builder-env.d.ts create mode 100644 .nuxt/types/imports.d.ts create mode 100644 .nuxt/types/layouts.d.ts create mode 100644 .nuxt/types/middleware.d.ts create mode 100644 .nuxt/types/nitro-config.d.ts create mode 100644 .nuxt/types/nitro-imports.d.ts create mode 100644 .nuxt/types/nitro-middleware.d.ts create mode 100644 .nuxt/types/nitro-nuxt.d.ts create mode 100644 .nuxt/types/nitro-routes.d.ts create mode 100644 .nuxt/types/nitro.d.ts create mode 100644 .nuxt/types/plugins.d.ts create mode 100644 .nuxt/types/schema.d.ts create mode 100644 .nuxt/types/vue-shim.d.ts create mode 100644 .specstory/.what-is-this.md create mode 100644 .specstory/history/2025-04-22_04-10-vue3-component-conversion-with-nuxt-and-tailwind.md create mode 100644 assets/css/main.css create mode 100644 components/FooterSection.vue create mode 100644 components/HeroBanner.vue create mode 100644 components/LanguageSwitcher.vue create mode 100644 components/NavBar.vue create mode 100644 components/NotificationToast.vue create mode 100644 i18n/locales/en.json create mode 100644 i18n/locales/zh.json create mode 100644 layouts/default.vue create mode 100644 pages/about.vue create mode 100644 pages/cases.vue create mode 100644 pages/contact.vue create mode 100644 pages/index.vue create mode 100644 pages/products.vue create mode 100644 pages/solutions.vue create mode 100644 plugins/i18n.ts create mode 100644 public/robots.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..94a1a10 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/node_modules +/.output +/.dist \ No newline at end of file diff --git a/.nuxt/app.config.mjs b/.nuxt/app.config.mjs new file mode 100644 index 0000000..fc95a31 --- /dev/null +++ b/.nuxt/app.config.mjs @@ -0,0 +1,18 @@ + +import { _replaceAppConfig } from '#app/config' +import { defuFn } from 'defu' + +const inlineConfig = { + "nuxt": {} +} + +// Vite - webpack is handled directly in #app/config +if (import.meta.hot) { + import.meta.hot.accept((newModule) => { + _replaceAppConfig(newModule.default) + }) +} + + + +export default /*@__PURE__*/ defuFn(inlineConfig) diff --git a/.nuxt/components.d.ts b/.nuxt/components.d.ts new file mode 100644 index 0000000..4b5a504 --- /dev/null +++ b/.nuxt/components.d.ts @@ -0,0 +1,134 @@ + +import type { DefineComponent, SlotsType } from 'vue' +type IslandComponent = T & DefineComponent<{}, {refresh: () => Promise}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, SlotsType<{ fallback: { error: unknown } }>> +type HydrationStrategies = { + hydrateOnVisible?: IntersectionObserverInit | true + hydrateOnIdle?: number | true + hydrateOnInteraction?: keyof HTMLElementEventMap | Array | true + hydrateOnMediaQuery?: string + hydrateAfter?: number + hydrateWhen?: boolean + hydrateNever?: true +} +type LazyComponent = (T & DefineComponent void }>) +interface _GlobalComponents { + 'FooterSection': typeof import("../components/FooterSection.vue")['default'] + 'HeroBanner': typeof import("../components/HeroBanner.vue")['default'] + 'LanguageSwitcher': typeof import("../components/LanguageSwitcher.vue")['default'] + 'NavBar': typeof import("../components/NavBar.vue")['default'] + 'NotificationToast': typeof import("../components/NotificationToast.vue")['default'] + 'NuxtWelcome': typeof import("../node_modules/nuxt/dist/app/components/welcome.vue")['default'] + 'NuxtLayout': typeof import("../node_modules/nuxt/dist/app/components/nuxt-layout")['default'] + 'NuxtErrorBoundary': typeof import("../node_modules/nuxt/dist/app/components/nuxt-error-boundary")['default'] + 'ClientOnly': typeof import("../node_modules/nuxt/dist/app/components/client-only")['default'] + 'DevOnly': typeof import("../node_modules/nuxt/dist/app/components/dev-only")['default'] + 'ServerPlaceholder': typeof import("../node_modules/nuxt/dist/app/components/server-placeholder")['default'] + 'NuxtLink': typeof import("../node_modules/nuxt/dist/app/components/nuxt-link")['default'] + 'NuxtLoadingIndicator': typeof import("../node_modules/nuxt/dist/app/components/nuxt-loading-indicator")['default'] + 'NuxtRouteAnnouncer': typeof import("../node_modules/nuxt/dist/app/components/nuxt-route-announcer")['default'] + 'NuxtImg': typeof import("../node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtImg'] + 'NuxtPicture': typeof import("../node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtPicture'] + 'NuxtPage': typeof import("../node_modules/nuxt/dist/pages/runtime/page")['default'] + 'NoScript': typeof import("../node_modules/nuxt/dist/head/runtime/components")['NoScript'] + 'Link': typeof import("../node_modules/nuxt/dist/head/runtime/components")['Link'] + 'Base': typeof import("../node_modules/nuxt/dist/head/runtime/components")['Base'] + 'Title': typeof import("../node_modules/nuxt/dist/head/runtime/components")['Title'] + 'Meta': typeof import("../node_modules/nuxt/dist/head/runtime/components")['Meta'] + 'Style': typeof import("../node_modules/nuxt/dist/head/runtime/components")['Style'] + 'Head': typeof import("../node_modules/nuxt/dist/head/runtime/components")['Head'] + 'Html': typeof import("../node_modules/nuxt/dist/head/runtime/components")['Html'] + 'Body': typeof import("../node_modules/nuxt/dist/head/runtime/components")['Body'] + 'NuxtIsland': typeof import("../node_modules/nuxt/dist/app/components/nuxt-island")['default'] + 'NuxtRouteAnnouncer': IslandComponent + 'LazyFooterSection': LazyComponent + 'LazyHeroBanner': LazyComponent + 'LazyLanguageSwitcher': LazyComponent + 'LazyNavBar': LazyComponent + 'LazyNotificationToast': LazyComponent + 'LazyNuxtWelcome': LazyComponent + 'LazyNuxtLayout': LazyComponent + 'LazyNuxtErrorBoundary': LazyComponent + 'LazyClientOnly': LazyComponent + 'LazyDevOnly': LazyComponent + 'LazyServerPlaceholder': LazyComponent + 'LazyNuxtLink': LazyComponent + 'LazyNuxtLoadingIndicator': LazyComponent + 'LazyNuxtRouteAnnouncer': LazyComponent + 'LazyNuxtImg': LazyComponent + 'LazyNuxtPicture': LazyComponent + 'LazyNuxtPage': LazyComponent + 'LazyNoScript': LazyComponent + 'LazyLink': LazyComponent + 'LazyBase': LazyComponent + 'LazyTitle': LazyComponent + 'LazyMeta': LazyComponent + 'LazyStyle': LazyComponent + 'LazyHead': LazyComponent + 'LazyHtml': LazyComponent + 'LazyBody': LazyComponent + 'LazyNuxtIsland': LazyComponent + 'LazyNuxtRouteAnnouncer': LazyComponent> +} + +declare module 'vue' { + export interface GlobalComponents extends _GlobalComponents { } +} + +export const FooterSection: typeof import("../components/FooterSection.vue")['default'] +export const HeroBanner: typeof import("../components/HeroBanner.vue")['default'] +export const LanguageSwitcher: typeof import("../components/LanguageSwitcher.vue")['default'] +export const NavBar: typeof import("../components/NavBar.vue")['default'] +export const NotificationToast: typeof import("../components/NotificationToast.vue")['default'] +export const NuxtWelcome: typeof import("../node_modules/nuxt/dist/app/components/welcome.vue")['default'] +export const NuxtLayout: typeof import("../node_modules/nuxt/dist/app/components/nuxt-layout")['default'] +export const NuxtErrorBoundary: typeof import("../node_modules/nuxt/dist/app/components/nuxt-error-boundary")['default'] +export const ClientOnly: typeof import("../node_modules/nuxt/dist/app/components/client-only")['default'] +export const DevOnly: typeof import("../node_modules/nuxt/dist/app/components/dev-only")['default'] +export const ServerPlaceholder: typeof import("../node_modules/nuxt/dist/app/components/server-placeholder")['default'] +export const NuxtLink: typeof import("../node_modules/nuxt/dist/app/components/nuxt-link")['default'] +export const NuxtLoadingIndicator: typeof import("../node_modules/nuxt/dist/app/components/nuxt-loading-indicator")['default'] +export const NuxtRouteAnnouncer: typeof import("../node_modules/nuxt/dist/app/components/nuxt-route-announcer")['default'] +export const NuxtImg: typeof import("../node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtImg'] +export const NuxtPicture: typeof import("../node_modules/nuxt/dist/app/components/nuxt-stubs")['NuxtPicture'] +export const NuxtPage: typeof import("../node_modules/nuxt/dist/pages/runtime/page")['default'] +export const NoScript: typeof import("../node_modules/nuxt/dist/head/runtime/components")['NoScript'] +export const Link: typeof import("../node_modules/nuxt/dist/head/runtime/components")['Link'] +export const Base: typeof import("../node_modules/nuxt/dist/head/runtime/components")['Base'] +export const Title: typeof import("../node_modules/nuxt/dist/head/runtime/components")['Title'] +export const Meta: typeof import("../node_modules/nuxt/dist/head/runtime/components")['Meta'] +export const Style: typeof import("../node_modules/nuxt/dist/head/runtime/components")['Style'] +export const Head: typeof import("../node_modules/nuxt/dist/head/runtime/components")['Head'] +export const Html: typeof import("../node_modules/nuxt/dist/head/runtime/components")['Html'] +export const Body: typeof import("../node_modules/nuxt/dist/head/runtime/components")['Body'] +export const NuxtIsland: typeof import("../node_modules/nuxt/dist/app/components/nuxt-island")['default'] +export const NuxtRouteAnnouncer: IslandComponent +export const LazyFooterSection: LazyComponent +export const LazyHeroBanner: LazyComponent +export const LazyLanguageSwitcher: LazyComponent +export const LazyNavBar: LazyComponent +export const LazyNotificationToast: LazyComponent +export const LazyNuxtWelcome: LazyComponent +export const LazyNuxtLayout: LazyComponent +export const LazyNuxtErrorBoundary: LazyComponent +export const LazyClientOnly: LazyComponent +export const LazyDevOnly: LazyComponent +export const LazyServerPlaceholder: LazyComponent +export const LazyNuxtLink: LazyComponent +export const LazyNuxtLoadingIndicator: LazyComponent +export const LazyNuxtRouteAnnouncer: LazyComponent +export const LazyNuxtImg: LazyComponent +export const LazyNuxtPicture: LazyComponent +export const LazyNuxtPage: LazyComponent +export const LazyNoScript: LazyComponent +export const LazyLink: LazyComponent +export const LazyBase: LazyComponent +export const LazyTitle: LazyComponent +export const LazyMeta: LazyComponent +export const LazyStyle: LazyComponent +export const LazyHead: LazyComponent +export const LazyHtml: LazyComponent +export const LazyBody: LazyComponent +export const LazyNuxtIsland: LazyComponent +export const LazyNuxtRouteAnnouncer: LazyComponent> + +export const componentNames: string[] diff --git a/.nuxt/dev/index.mjs b/.nuxt/dev/index.mjs new file mode 100644 index 0000000..8579cad --- /dev/null +++ b/.nuxt/dev/index.mjs @@ -0,0 +1,1908 @@ +import process from 'node:process';globalThis._importMeta_={url:import.meta.url,env:process.env};import { tmpdir } from 'node:os'; +import { Server } from 'node:http'; +import { resolve, dirname, join } from 'node:path'; +import nodeCrypto from 'node:crypto'; +import { parentPort, threadId } from 'node:worker_threads'; +import { defineEventHandler, handleCacheHeaders, splitCookiesString, createEvent, fetchWithEvent, isEvent, eventHandler, setHeaders, sendRedirect, proxyRequest, getRequestHeader, setResponseHeaders, setResponseStatus, send, getRequestHeaders, setResponseHeader, getRequestURL, getResponseHeader, createApp, createRouter as createRouter$1, toNodeListener, lazyEventHandler, getResponseStatus, createError, getRouterParam, readBody, getQuery as getQuery$1, getResponseStatusText } from 'file://D:/doc/workspace/web3/node_modules/h3/dist/index.mjs'; +import { createRenderer, getRequestDependencies, getPreloadLinks, getPrefetchLinks } from 'file://D:/doc/workspace/web3/node_modules/vue-bundle-renderer/dist/runtime.mjs'; +import destr from 'file://D:/doc/workspace/web3/node_modules/destr/dist/index.mjs'; +import { parseURL, withoutBase, joinURL, getQuery, withQuery, withTrailingSlash, joinRelativeURL } from 'file://D:/doc/workspace/web3/node_modules/ufo/dist/index.mjs'; +import { createHead as createHead$1, propsToString, renderSSRHead } from 'file://D:/doc/workspace/web3/node_modules/unhead/dist/server.mjs'; +import { isVNode, toValue, isRef } from 'file://D:/doc/workspace/web3/node_modules/vue/index.mjs'; +import { walkResolver } from 'file://D:/doc/workspace/web3/node_modules/unhead/dist/utils.mjs'; +import { renderToString } from 'file://D:/doc/workspace/web3/node_modules/vue/server-renderer/index.mjs'; +import { klona } from 'file://D:/doc/workspace/web3/node_modules/klona/dist/index.mjs'; +import defu, { defuFn } from 'file://D:/doc/workspace/web3/node_modules/defu/dist/defu.mjs'; +import { snakeCase } from 'file://D:/doc/workspace/web3/node_modules/scule/dist/index.mjs'; +import { stringify, uneval } from 'file://D:/doc/workspace/web3/node_modules/devalue/index.js'; +import { DeprecationsPlugin, PromisesPlugin, TemplateParamsPlugin, AliasSortingPlugin } from 'file://D:/doc/workspace/web3/node_modules/unhead/dist/plugins.mjs'; +import { createHooks } from 'file://D:/doc/workspace/web3/node_modules/hookable/dist/index.mjs'; +import { createFetch, Headers as Headers$1 } from 'file://D:/doc/workspace/web3/node_modules/ofetch/dist/node.mjs'; +import { fetchNodeRequestHandler, callNodeRequestHandler } from 'file://D:/doc/workspace/web3/node_modules/node-mock-http/dist/index.mjs'; +import { createStorage, prefixStorage } from 'file://D:/doc/workspace/web3/node_modules/unstorage/dist/index.mjs'; +import unstorage_47drivers_47fs from 'file://D:/doc/workspace/web3/node_modules/unstorage/drivers/fs.mjs'; +import { digest } from 'file://D:/doc/workspace/web3/node_modules/ohash/dist/index.mjs'; +import { toRouteMatcher, createRouter } from 'file://D:/doc/workspace/web3/node_modules/radix3/dist/index.mjs'; +import { readFile } from 'node:fs/promises'; +import consola, { consola as consola$1 } from 'file://D:/doc/workspace/web3/node_modules/consola/dist/index.mjs'; +import { ErrorParser } from 'file://D:/doc/workspace/web3/node_modules/youch-core/build/index.js'; +import { Youch } from 'file://D:/doc/workspace/web3/node_modules/youch/build/index.js'; +import { SourceMapConsumer } from 'file://D:/doc/workspace/web3/node_modules/source-map/source-map.js'; +import { AsyncLocalStorage } from 'node:async_hooks'; +import { getContext } from 'file://D:/doc/workspace/web3/node_modules/unctx/dist/index.mjs'; +import { captureRawStackTrace, parseRawStackTrace } from 'file://D:/doc/workspace/web3/node_modules/errx/dist/index.js'; + +const serverAssets = [{"baseName":"server","dir":"D:/doc/workspace/web3/server/assets"}]; + +const assets = createStorage(); + +for (const asset of serverAssets) { + assets.mount(asset.baseName, unstorage_47drivers_47fs({ base: asset.dir, ignore: (asset?.ignore || []) })); +} + +const storage = createStorage({}); + +storage.mount('/assets', assets); + +storage.mount('root', unstorage_47drivers_47fs({"driver":"fs","readOnly":true,"base":"D:/doc/workspace/web3","watchOptions":{"ignored":[null]}})); +storage.mount('src', unstorage_47drivers_47fs({"driver":"fs","readOnly":true,"base":"D:/doc/workspace/web3/server","watchOptions":{"ignored":[null]}})); +storage.mount('build', unstorage_47drivers_47fs({"driver":"fs","readOnly":false,"base":"D:/doc/workspace/web3/.nuxt"})); +storage.mount('cache', unstorage_47drivers_47fs({"driver":"fs","readOnly":false,"base":"D:/doc/workspace/web3/.nuxt/cache"})); +storage.mount('data', unstorage_47drivers_47fs({"driver":"fs","base":"D:/doc/workspace/web3/.data/kv"})); + +function useStorage(base = "") { + return base ? prefixStorage(storage, base) : storage; +} + +const Hasher = /* @__PURE__ */ (() => { + class Hasher2 { + buff = ""; + #context = /* @__PURE__ */ new Map(); + write(str) { + this.buff += str; + } + dispatch(value) { + const type = value === null ? "null" : typeof value; + return this[type](value); + } + object(object) { + if (object && typeof object.toJSON === "function") { + return this.object(object.toJSON()); + } + const objString = Object.prototype.toString.call(object); + let objType = ""; + const objectLength = objString.length; + objType = objectLength < 10 ? "unknown:[" + objString + "]" : objString.slice(8, objectLength - 1); + objType = objType.toLowerCase(); + let objectNumber = null; + if ((objectNumber = this.#context.get(object)) === void 0) { + this.#context.set(object, this.#context.size); + } else { + return this.dispatch("[CIRCULAR:" + objectNumber + "]"); + } + if (typeof Buffer !== "undefined" && Buffer.isBuffer && Buffer.isBuffer(object)) { + this.write("buffer:"); + return this.write(object.toString("utf8")); + } + if (objType !== "object" && objType !== "function" && objType !== "asyncfunction") { + if (this[objType]) { + this[objType](object); + } else { + this.unknown(object, objType); + } + } else { + const keys = Object.keys(object).sort(); + const extraKeys = []; + this.write("object:" + (keys.length + extraKeys.length) + ":"); + const dispatchForKey = (key) => { + this.dispatch(key); + this.write(":"); + this.dispatch(object[key]); + this.write(","); + }; + for (const key of keys) { + dispatchForKey(key); + } + for (const key of extraKeys) { + dispatchForKey(key); + } + } + } + array(arr, unordered) { + unordered = unordered === void 0 ? false : unordered; + this.write("array:" + arr.length + ":"); + if (!unordered || arr.length <= 1) { + for (const entry of arr) { + this.dispatch(entry); + } + return; + } + const contextAdditions = /* @__PURE__ */ new Map(); + const entries = arr.map((entry) => { + const hasher = new Hasher2(); + hasher.dispatch(entry); + for (const [key, value] of hasher.#context) { + contextAdditions.set(key, value); + } + return hasher.toString(); + }); + this.#context = contextAdditions; + entries.sort(); + return this.array(entries, false); + } + date(date) { + return this.write("date:" + date.toJSON()); + } + symbol(sym) { + return this.write("symbol:" + sym.toString()); + } + unknown(value, type) { + this.write(type); + if (!value) { + return; + } + this.write(":"); + if (value && typeof value.entries === "function") { + return this.array( + [...value.entries()], + true + /* ordered */ + ); + } + } + error(err) { + return this.write("error:" + err.toString()); + } + boolean(bool) { + return this.write("bool:" + bool); + } + string(string) { + this.write("string:" + string.length + ":"); + this.write(string); + } + function(fn) { + this.write("fn:"); + if (isNativeFunction(fn)) { + this.dispatch("[native]"); + } else { + this.dispatch(fn.toString()); + } + } + number(number) { + return this.write("number:" + number); + } + null() { + return this.write("Null"); + } + undefined() { + return this.write("Undefined"); + } + regexp(regex) { + return this.write("regex:" + regex.toString()); + } + arraybuffer(arr) { + this.write("arraybuffer:"); + return this.dispatch(new Uint8Array(arr)); + } + url(url) { + return this.write("url:" + url.toString()); + } + map(map) { + this.write("map:"); + const arr = [...map]; + return this.array(arr, false); + } + set(set) { + this.write("set:"); + const arr = [...set]; + return this.array(arr, false); + } + bigint(number) { + return this.write("bigint:" + number.toString()); + } + } + for (const type of [ + "uint8array", + "uint8clampedarray", + "unt8array", + "uint16array", + "unt16array", + "uint32array", + "unt32array", + "float32array", + "float64array" + ]) { + Hasher2.prototype[type] = function(arr) { + this.write(type + ":"); + return this.array([...arr], false); + }; + } + function isNativeFunction(f) { + if (typeof f !== "function") { + return false; + } + return Function.prototype.toString.call(f).slice( + -15 + /* "[native code] }".length */ + ) === "[native code] }"; + } + return Hasher2; +})(); +function serialize(object) { + const hasher = new Hasher(); + hasher.dispatch(object); + return hasher.buff; +} +function hash(value) { + return digest(typeof value === "string" ? value : serialize(value)).replace(/[-_]/g, "").slice(0, 10); +} + +function defaultCacheOptions() { + return { + name: "_", + base: "/cache", + swr: true, + maxAge: 1 + }; +} +function defineCachedFunction(fn, opts = {}) { + opts = { ...defaultCacheOptions(), ...opts }; + const pending = {}; + const group = opts.group || "nitro/functions"; + const name = opts.name || fn.name || "_"; + const integrity = opts.integrity || hash([fn, opts]); + const validate = opts.validate || ((entry) => entry.value !== void 0); + async function get(key, resolver, shouldInvalidateCache, event) { + const cacheKey = [opts.base, group, name, key + ".json"].filter(Boolean).join(":").replace(/:\/$/, ":index"); + let entry = await useStorage().getItem(cacheKey).catch((error) => { + console.error(`[cache] Cache read error.`, error); + useNitroApp().captureError(error, { event, tags: ["cache"] }); + }) || {}; + if (typeof entry !== "object") { + entry = {}; + const error = new Error("Malformed data read from cache."); + console.error("[cache]", error); + useNitroApp().captureError(error, { event, tags: ["cache"] }); + } + const ttl = (opts.maxAge ?? 0) * 1e3; + if (ttl) { + entry.expires = Date.now() + ttl; + } + const expired = shouldInvalidateCache || entry.integrity !== integrity || ttl && Date.now() - (entry.mtime || 0) > ttl || validate(entry) === false; + const _resolve = async () => { + const isPending = pending[key]; + if (!isPending) { + if (entry.value !== void 0 && (opts.staleMaxAge || 0) >= 0 && opts.swr === false) { + entry.value = void 0; + entry.integrity = void 0; + entry.mtime = void 0; + entry.expires = void 0; + } + pending[key] = Promise.resolve(resolver()); + } + try { + entry.value = await pending[key]; + } catch (error) { + if (!isPending) { + delete pending[key]; + } + throw error; + } + if (!isPending) { + entry.mtime = Date.now(); + entry.integrity = integrity; + delete pending[key]; + if (validate(entry) !== false) { + let setOpts; + if (opts.maxAge && !opts.swr) { + setOpts = { ttl: opts.maxAge }; + } + const promise = useStorage().setItem(cacheKey, entry, setOpts).catch((error) => { + console.error(`[cache] Cache write error.`, error); + useNitroApp().captureError(error, { event, tags: ["cache"] }); + }); + if (event?.waitUntil) { + event.waitUntil(promise); + } + } + } + }; + const _resolvePromise = expired ? _resolve() : Promise.resolve(); + if (entry.value === void 0) { + await _resolvePromise; + } else if (expired && event && event.waitUntil) { + event.waitUntil(_resolvePromise); + } + if (opts.swr && validate(entry) !== false) { + _resolvePromise.catch((error) => { + console.error(`[cache] SWR handler error.`, error); + useNitroApp().captureError(error, { event, tags: ["cache"] }); + }); + return entry; + } + return _resolvePromise.then(() => entry); + } + return async (...args) => { + const shouldBypassCache = await opts.shouldBypassCache?.(...args); + if (shouldBypassCache) { + return fn(...args); + } + const key = await (opts.getKey || getKey)(...args); + const shouldInvalidateCache = await opts.shouldInvalidateCache?.(...args); + const entry = await get( + key, + () => fn(...args), + shouldInvalidateCache, + args[0] && isEvent(args[0]) ? args[0] : void 0 + ); + let value = entry.value; + if (opts.transform) { + value = await opts.transform(entry, ...args) || value; + } + return value; + }; +} +function cachedFunction(fn, opts = {}) { + return defineCachedFunction(fn, opts); +} +function getKey(...args) { + return args.length > 0 ? hash(args) : ""; +} +function escapeKey(key) { + return String(key).replace(/\W/g, ""); +} +function defineCachedEventHandler(handler, opts = defaultCacheOptions()) { + const variableHeaderNames = (opts.varies || []).filter(Boolean).map((h) => h.toLowerCase()).sort(); + const _opts = { + ...opts, + getKey: async (event) => { + const customKey = await opts.getKey?.(event); + if (customKey) { + return escapeKey(customKey); + } + const _path = event.node.req.originalUrl || event.node.req.url || event.path; + let _pathname; + try { + _pathname = escapeKey(decodeURI(parseURL(_path).pathname)).slice(0, 16) || "index"; + } catch { + _pathname = "-"; + } + const _hashedPath = `${_pathname}.${hash(_path)}`; + const _headers = variableHeaderNames.map((header) => [header, event.node.req.headers[header]]).map(([name, value]) => `${escapeKey(name)}.${hash(value)}`); + return [_hashedPath, ..._headers].join(":"); + }, + validate: (entry) => { + if (!entry.value) { + return false; + } + if (entry.value.code >= 400) { + return false; + } + if (entry.value.body === void 0) { + return false; + } + if (entry.value.headers.etag === "undefined" || entry.value.headers["last-modified"] === "undefined") { + return false; + } + return true; + }, + group: opts.group || "nitro/handlers", + integrity: opts.integrity || hash([handler, opts]) + }; + const _cachedHandler = cachedFunction( + async (incomingEvent) => { + const variableHeaders = {}; + for (const header of variableHeaderNames) { + const value = incomingEvent.node.req.headers[header]; + if (value !== void 0) { + variableHeaders[header] = value; + } + } + const reqProxy = cloneWithProxy(incomingEvent.node.req, { + headers: variableHeaders + }); + const resHeaders = {}; + let _resSendBody; + const resProxy = cloneWithProxy(incomingEvent.node.res, { + statusCode: 200, + writableEnded: false, + writableFinished: false, + headersSent: false, + closed: false, + getHeader(name) { + return resHeaders[name]; + }, + setHeader(name, value) { + resHeaders[name] = value; + return this; + }, + getHeaderNames() { + return Object.keys(resHeaders); + }, + hasHeader(name) { + return name in resHeaders; + }, + removeHeader(name) { + delete resHeaders[name]; + }, + getHeaders() { + return resHeaders; + }, + end(chunk, arg2, arg3) { + if (typeof chunk === "string") { + _resSendBody = chunk; + } + if (typeof arg2 === "function") { + arg2(); + } + if (typeof arg3 === "function") { + arg3(); + } + return this; + }, + write(chunk, arg2, arg3) { + if (typeof chunk === "string") { + _resSendBody = chunk; + } + if (typeof arg2 === "function") { + arg2(void 0); + } + if (typeof arg3 === "function") { + arg3(); + } + return true; + }, + writeHead(statusCode, headers2) { + this.statusCode = statusCode; + if (headers2) { + if (Array.isArray(headers2) || typeof headers2 === "string") { + throw new TypeError("Raw headers is not supported."); + } + for (const header in headers2) { + const value = headers2[header]; + if (value !== void 0) { + this.setHeader( + header, + value + ); + } + } + } + return this; + } + }); + const event = createEvent(reqProxy, resProxy); + event.fetch = (url, fetchOptions) => fetchWithEvent(event, url, fetchOptions, { + fetch: useNitroApp().localFetch + }); + event.$fetch = (url, fetchOptions) => fetchWithEvent(event, url, fetchOptions, { + fetch: globalThis.$fetch + }); + event.waitUntil = incomingEvent.waitUntil; + event.context = incomingEvent.context; + event.context.cache = { + options: _opts + }; + const body = await handler(event) || _resSendBody; + const headers = event.node.res.getHeaders(); + headers.etag = String( + headers.Etag || headers.etag || `W/"${hash(body)}"` + ); + headers["last-modified"] = String( + headers["Last-Modified"] || headers["last-modified"] || (/* @__PURE__ */ new Date()).toUTCString() + ); + const cacheControl = []; + if (opts.swr) { + if (opts.maxAge) { + cacheControl.push(`s-maxage=${opts.maxAge}`); + } + if (opts.staleMaxAge) { + cacheControl.push(`stale-while-revalidate=${opts.staleMaxAge}`); + } else { + cacheControl.push("stale-while-revalidate"); + } + } else if (opts.maxAge) { + cacheControl.push(`max-age=${opts.maxAge}`); + } + if (cacheControl.length > 0) { + headers["cache-control"] = cacheControl.join(", "); + } + const cacheEntry = { + code: event.node.res.statusCode, + headers, + body + }; + return cacheEntry; + }, + _opts + ); + return defineEventHandler(async (event) => { + if (opts.headersOnly) { + if (handleCacheHeaders(event, { maxAge: opts.maxAge })) { + return; + } + return handler(event); + } + const response = await _cachedHandler( + event + ); + if (event.node.res.headersSent || event.node.res.writableEnded) { + return response.body; + } + if (handleCacheHeaders(event, { + modifiedTime: new Date(response.headers["last-modified"]), + etag: response.headers.etag, + maxAge: opts.maxAge + })) { + return; + } + event.node.res.statusCode = response.code; + for (const name in response.headers) { + const value = response.headers[name]; + if (name === "set-cookie") { + event.node.res.appendHeader( + name, + splitCookiesString(value) + ); + } else { + if (value !== void 0) { + event.node.res.setHeader(name, value); + } + } + } + return response.body; + }); +} +function cloneWithProxy(obj, overrides) { + return new Proxy(obj, { + get(target, property, receiver) { + if (property in overrides) { + return overrides[property]; + } + return Reflect.get(target, property, receiver); + }, + set(target, property, value, receiver) { + if (property in overrides) { + overrides[property] = value; + return true; + } + return Reflect.set(target, property, value, receiver); + } + }); +} +const cachedEventHandler = defineCachedEventHandler; + +const inlineAppConfig = { + "nuxt": {} +}; + + + +const appConfig = defuFn(inlineAppConfig); + +function getEnv(key, opts) { + const envKey = snakeCase(key).toUpperCase(); + return destr( + process.env[opts.prefix + envKey] ?? process.env[opts.altPrefix + envKey] + ); +} +function _isObject(input) { + return typeof input === "object" && !Array.isArray(input); +} +function applyEnv(obj, opts, parentKey = "") { + for (const key in obj) { + const subKey = parentKey ? `${parentKey}_${key}` : key; + const envValue = getEnv(subKey, opts); + if (_isObject(obj[key])) { + if (_isObject(envValue)) { + obj[key] = { ...obj[key], ...envValue }; + applyEnv(obj[key], opts, subKey); + } else if (envValue === void 0) { + applyEnv(obj[key], opts, subKey); + } else { + obj[key] = envValue ?? obj[key]; + } + } else { + obj[key] = envValue ?? obj[key]; + } + if (opts.envExpansion && typeof obj[key] === "string") { + obj[key] = _expandFromEnv(obj[key]); + } + } + return obj; +} +const envExpandRx = /\{\{([^{}]*)\}\}/g; +function _expandFromEnv(value) { + return value.replace(envExpandRx, (match, key) => { + return process.env[key] || match; + }); +} + +const _inlineRuntimeConfig = { + "app": { + "baseURL": "/", + "buildId": "dev", + "buildAssetsDir": "/_nuxt/", + "cdnURL": "" + }, + "nitro": { + "envPrefix": "NUXT_", + "routeRules": { + "/__nuxt_error": { + "cache": false + }, + "/_nuxt/builds/meta/**": { + "headers": { + "cache-control": "public, max-age=31536000, immutable" + } + }, + "/_nuxt/builds/**": { + "headers": { + "cache-control": "public, max-age=1, immutable" + } + } + } + }, + "public": {} +}; +const envOptions = { + prefix: "NITRO_", + altPrefix: _inlineRuntimeConfig.nitro.envPrefix ?? process.env.NITRO_ENV_PREFIX ?? "_", + envExpansion: _inlineRuntimeConfig.nitro.envExpansion ?? process.env.NITRO_ENV_EXPANSION ?? false +}; +const _sharedRuntimeConfig = _deepFreeze( + applyEnv(klona(_inlineRuntimeConfig), envOptions) +); +function useRuntimeConfig(event) { + if (!event) { + return _sharedRuntimeConfig; + } + if (event.context.nitro.runtimeConfig) { + return event.context.nitro.runtimeConfig; + } + const runtimeConfig = klona(_inlineRuntimeConfig); + applyEnv(runtimeConfig, envOptions); + event.context.nitro.runtimeConfig = runtimeConfig; + return runtimeConfig; +} +_deepFreeze(klona(appConfig)); +function _deepFreeze(object) { + const propNames = Object.getOwnPropertyNames(object); + for (const name of propNames) { + const value = object[name]; + if (value && typeof value === "object") { + _deepFreeze(value); + } + } + return Object.freeze(object); +} +new Proxy(/* @__PURE__ */ Object.create(null), { + get: (_, prop) => { + console.warn( + "Please use `useRuntimeConfig()` instead of accessing config directly." + ); + const runtimeConfig = useRuntimeConfig(); + if (prop in runtimeConfig) { + return runtimeConfig[prop]; + } + return void 0; + } +}); + +const config = useRuntimeConfig(); +const _routeRulesMatcher = toRouteMatcher( + createRouter({ routes: config.nitro.routeRules }) +); +function createRouteRulesHandler(ctx) { + return eventHandler((event) => { + const routeRules = getRouteRules(event); + if (routeRules.headers) { + setHeaders(event, routeRules.headers); + } + if (routeRules.redirect) { + let target = routeRules.redirect.to; + if (target.endsWith("/**")) { + let targetPath = event.path; + const strpBase = routeRules.redirect._redirectStripBase; + if (strpBase) { + targetPath = withoutBase(targetPath, strpBase); + } + target = joinURL(target.slice(0, -3), targetPath); + } else if (event.path.includes("?")) { + const query = getQuery(event.path); + target = withQuery(target, query); + } + return sendRedirect(event, target, routeRules.redirect.statusCode); + } + if (routeRules.proxy) { + let target = routeRules.proxy.to; + if (target.endsWith("/**")) { + let targetPath = event.path; + const strpBase = routeRules.proxy._proxyStripBase; + if (strpBase) { + targetPath = withoutBase(targetPath, strpBase); + } + target = joinURL(target.slice(0, -3), targetPath); + } else if (event.path.includes("?")) { + const query = getQuery(event.path); + target = withQuery(target, query); + } + return proxyRequest(event, target, { + fetch: ctx.localFetch, + ...routeRules.proxy + }); + } + }); +} +function getRouteRules(event) { + event.context._nitro = event.context._nitro || {}; + if (!event.context._nitro.routeRules) { + event.context._nitro.routeRules = getRouteRulesForPath( + withoutBase(event.path.split("?")[0], useRuntimeConfig().app.baseURL) + ); + } + return event.context._nitro.routeRules; +} +function getRouteRulesForPath(path) { + return defu({}, ..._routeRulesMatcher.matchAll(path).reverse()); +} + +function _captureError(error, type) { + console.error(`[${type}]`, error); + useNitroApp().captureError(error, { tags: [type] }); +} +function trapUnhandledNodeErrors() { + process.on( + "unhandledRejection", + (error) => _captureError(error, "unhandledRejection") + ); + process.on( + "uncaughtException", + (error) => _captureError(error, "uncaughtException") + ); +} +function joinHeaders(value) { + return Array.isArray(value) ? value.join(", ") : String(value); +} +function normalizeFetchResponse(response) { + if (!response.headers.has("set-cookie")) { + return response; + } + return new Response(response.body, { + status: response.status, + statusText: response.statusText, + headers: normalizeCookieHeaders(response.headers) + }); +} +function normalizeCookieHeader(header = "") { + return splitCookiesString(joinHeaders(header)); +} +function normalizeCookieHeaders(headers) { + const outgoingHeaders = new Headers(); + for (const [name, header] of headers) { + if (name === "set-cookie") { + for (const cookie of normalizeCookieHeader(header)) { + outgoingHeaders.append("set-cookie", cookie); + } + } else { + outgoingHeaders.set(name, joinHeaders(header)); + } + } + return outgoingHeaders; +} + +function isJsonRequest(event) { + if (hasReqHeader(event, "accept", "text/html")) { + return false; + } + return hasReqHeader(event, "accept", "application/json") || hasReqHeader(event, "user-agent", "curl/") || hasReqHeader(event, "user-agent", "httpie/") || hasReqHeader(event, "sec-fetch-mode", "cors") || event.path.startsWith("/api/") || event.path.endsWith(".json"); +} +function hasReqHeader(event, name, includes) { + const value = getRequestHeader(event, name); + return value && typeof value === "string" && value.toLowerCase().includes(includes); +} + +const errorHandler$0 = (async function errorhandler(error, event, { defaultHandler }) { + if (isJsonRequest(event)) { + return; + } + const defaultRes = await defaultHandler(error, event, { json: true }); + const statusCode = error.statusCode || 500; + if (statusCode === 404 && defaultRes.status === 302) { + setResponseHeaders(event, defaultRes.headers); + setResponseStatus(event, defaultRes.status, defaultRes.statusText); + return send(event, JSON.stringify(defaultRes.body, null, 2)); + } + if (typeof defaultRes.body !== "string" && Array.isArray(defaultRes.body.stack)) { + defaultRes.body.stack = defaultRes.body.stack.join("\n"); + } + const errorObject = defaultRes.body; + const url = new URL(errorObject.url); + errorObject.url = url.pathname + url.search + url.hash; + errorObject.message ||= "Server Error"; + errorObject.data ||= error.data; + delete defaultRes.headers["content-type"]; + delete defaultRes.headers["content-security-policy"]; + setResponseHeaders(event, defaultRes.headers); + const reqHeaders = getRequestHeaders(event); + const isRenderingError = event.path.startsWith("/__nuxt_error") || !!reqHeaders["x-nuxt-error"]; + const res = isRenderingError ? null : await useNitroApp().localFetch( + withQuery(joinURL(useRuntimeConfig(event).app.baseURL, "/__nuxt_error"), errorObject), + { + headers: { ...reqHeaders, "x-nuxt-error": "true" }, + redirect: "manual" + } + ).catch(() => null); + if (event.handled) { + return; + } + if (!res) { + const { template } = await Promise.resolve().then(function () { return errorDev; }) ; + { + errorObject.description = errorObject.message; + } + setResponseHeader(event, "Content-Type", "text/html;charset=UTF-8"); + return send(event, template(errorObject)); + } + const html = await res.text(); + for (const [header, value] of res.headers.entries()) { + setResponseHeader(event, header, value); + } + setResponseStatus(event, res.status && res.status !== 200 ? res.status : defaultRes.status, res.statusText || defaultRes.statusText); + return send(event, html); +}); + +function defineNitroErrorHandler(handler) { + return handler; +} + +const errorHandler$1 = defineNitroErrorHandler( + async function defaultNitroErrorHandler(error, event) { + const res = await defaultHandler(error, event); + if (!event.node?.res.headersSent) { + setResponseHeaders(event, res.headers); + } + setResponseStatus(event, res.status, res.statusText); + return send( + event, + typeof res.body === "string" ? res.body : JSON.stringify(res.body, null, 2) + ); + } +); +async function defaultHandler(error, event, opts) { + const isSensitive = error.unhandled || error.fatal; + const statusCode = error.statusCode || 500; + const statusMessage = error.statusMessage || "Server Error"; + const url = getRequestURL(event, { xForwardedHost: true, xForwardedProto: true }); + if (statusCode === 404) { + const baseURL = "/"; + if (/^\/[^/]/.test(baseURL) && !url.pathname.startsWith(baseURL)) { + const redirectTo = `${baseURL}${url.pathname.slice(1)}${url.search}`; + return { + status: 302, + statusText: "Found", + headers: { location: redirectTo }, + body: `Redirecting...` + }; + } + } + await loadStackTrace(error).catch(consola.error); + const youch = new Youch(); + if (isSensitive && !opts?.silent) { + const tags = [error.unhandled && "[unhandled]", error.fatal && "[fatal]"].filter(Boolean).join(" "); + const ansiError = await (await youch.toANSI(error)).replaceAll(process.cwd(), "."); + consola.error( + `[request error] ${tags} [${event.method}] ${url} + +`, + ansiError + ); + } + const useJSON = opts?.json || !getRequestHeader(event, "accept")?.includes("text/html"); + const headers = { + "content-type": useJSON ? "application/json" : "text/html", + // Prevent browser from guessing the MIME types of resources. + "x-content-type-options": "nosniff", + // Prevent error page from being embedded in an iframe + "x-frame-options": "DENY", + // Prevent browsers from sending the Referer header + "referrer-policy": "no-referrer", + // Disable the execution of any js + "content-security-policy": "script-src 'self' 'unsafe-inline'; object-src 'none'; base-uri 'self';" + }; + if (statusCode === 404 || !getResponseHeader(event, "cache-control")) { + headers["cache-control"] = "no-cache"; + } + const body = useJSON ? { + error: true, + url, + statusCode, + statusMessage, + message: error.message, + data: error.data, + stack: error.stack?.split("\n").map((line) => line.trim()) + } : await youch.toHTML(error, { + request: { + url: url.href, + method: event.method, + headers: getRequestHeaders(event) + } + }); + return { + status: statusCode, + statusText: statusMessage, + headers, + body + }; +} +async function loadStackTrace(error) { + if (!(error instanceof Error)) { + return; + } + const parsed = await new ErrorParser().defineSourceLoader(sourceLoader).parse(error); + const stack = error.message + "\n" + parsed.frames.map((frame) => fmtFrame(frame)).join("\n"); + Object.defineProperty(error, "stack", { value: stack }); + if (error.cause) { + await loadStackTrace(error.cause).catch(consola.error); + } +} +async function sourceLoader(frame) { + if (!frame.fileName || frame.fileType !== "fs" || frame.type === "native") { + return; + } + if (frame.type === "app") { + const rawSourceMap = await readFile(`${frame.fileName}.map`, "utf8").catch(() => { + }); + if (rawSourceMap) { + const consumer = await new SourceMapConsumer(rawSourceMap); + const originalPosition = consumer.originalPositionFor({ line: frame.lineNumber, column: frame.columnNumber }); + if (originalPosition.source && originalPosition.line) { + frame.fileName = resolve(dirname(frame.fileName), originalPosition.source); + frame.lineNumber = originalPosition.line; + frame.columnNumber = originalPosition.column || 0; + } + } + } + const contents = await readFile(frame.fileName, "utf8").catch(() => { + }); + return contents ? { contents } : void 0; +} +function fmtFrame(frame) { + if (frame.type === "native") { + return frame.raw; + } + const src = `${frame.fileName || ""}:${frame.lineNumber}:${frame.columnNumber})`; + return frame.functionName ? `at ${frame.functionName} (${src}` : `at ${src}`; +} + +const errorHandlers = [errorHandler$0, errorHandler$1]; + +async function errorHandler(error, event) { + for (const handler of errorHandlers) { + try { + await handler(error, event, { defaultHandler }); + if (event.handled) { + return; // Response handled + } + } catch(error) { + // Handler itself thrown, log and continue + console.error(error); + } + } + // H3 will handle fallback +} + +const script = ` +if (!window.__NUXT_DEVTOOLS_TIME_METRIC__) { + Object.defineProperty(window, '__NUXT_DEVTOOLS_TIME_METRIC__', { + value: {}, + enumerable: false, + configurable: true, + }) +} +window.__NUXT_DEVTOOLS_TIME_METRIC__.appInit = Date.now() +`; + +const _w68KPHUKUM8vpNTaO1jeKcVlhxbPvInFTau5wLvu5nA = (function(nitro) { + nitro.hooks.hook("render:html", (htmlContext) => { + htmlContext.head.push(` "],"names":[],"mappings":";;;;;;;AAqEA,UAAM,WAAW;AAAA,MACf,EAAE,MAAM,YAAY,MAAM,YAAY;AAAA,MACtC,EAAE,MAAM,WAAW,MAAM,YAAY;AAAA,MACrC,EAAE,MAAM,aAAa,MAAM,YAAY;AAAA,MACvC,EAAE,MAAM,eAAe,MAAM,YAAY;AAAA,MACzC,EAAE,MAAM,WAAW,MAAM,YAAY;AAAA,IACvC;AAEA,UAAM,YAAY;AAAA,MAChB,EAAE,MAAM,QAAQ,MAAM,aAAa;AAAA,MACnC,EAAE,MAAM,QAAQ,MAAM,aAAa;AAAA,MACnC,EAAE,MAAM,QAAQ,MAAM,aAAa;AAAA,MACnC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,MACpC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,IACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/components/FooterSection.vue2.mjs.map.json b/.nuxt/dist/server/components/FooterSection.vue2.mjs.map.json new file mode 100644 index 0000000..853cda9 --- /dev/null +++ b/.nuxt/dist/server/components/FooterSection.vue2.mjs.map.json @@ -0,0 +1 @@ +{"file":"FooterSection.vue2.mjs","mappings":";;;;;;;AAqEA,UAAM,WAAW;AAAA,MACf,EAAE,MAAM,YAAY,MAAM,YAAY;AAAA,MACtC,EAAE,MAAM,WAAW,MAAM,YAAY;AAAA,MACrC,EAAE,MAAM,aAAa,MAAM,YAAY;AAAA,MACvC,EAAE,MAAM,eAAe,MAAM,YAAY;AAAA,MACzC,EAAE,MAAM,WAAW,MAAM,YAAY;AAAA,IACvC;AAEA,UAAM,YAAY;AAAA,MAChB,EAAE,MAAM,QAAQ,MAAM,aAAa;AAAA,MACnC,EAAE,MAAM,QAAQ,MAAM,aAAa;AAAA,MACnC,EAAE,MAAM,QAAQ,MAAM,aAAa;AAAA,MACnC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,MACpC,EAAE,MAAM,SAAS,MAAM,aAAa;AAAA,IACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["../../../../components/FooterSection.vue"],"sourcesContent":["\r\n\r\n "],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/components/HeroBanner.vue.mjs b/.nuxt/dist/server/components/HeroBanner.vue.mjs new file mode 100644 index 0000000..0030b01 --- /dev/null +++ b/.nuxt/dist/server/components/HeroBanner.vue.mjs @@ -0,0 +1,12 @@ +import _sfc_main from "./HeroBanner.vue2.mjs"; +import { useSSRContext } from "vue"; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/HeroBanner.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=HeroBanner.vue.mjs.map diff --git a/.nuxt/dist/server/components/HeroBanner.vue.mjs.map b/.nuxt/dist/server/components/HeroBanner.vue.mjs.map new file mode 100644 index 0000000..fb9e5e6 --- /dev/null +++ b/.nuxt/dist/server/components/HeroBanner.vue.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"HeroBanner.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/components/HeroBanner.vue.mjs.map.json b/.nuxt/dist/server/components/HeroBanner.vue.mjs.map.json new file mode 100644 index 0000000..bf94df4 --- /dev/null +++ b/.nuxt/dist/server/components/HeroBanner.vue.mjs.map.json @@ -0,0 +1 @@ +{"file":"HeroBanner.vue.mjs","mappings":";;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/components/HeroBanner.vue2.mjs b/.nuxt/dist/server/components/HeroBanner.vue2.mjs new file mode 100644 index 0000000..6582195 --- /dev/null +++ b/.nuxt/dist/server/components/HeroBanner.vue2.mjs @@ -0,0 +1,21 @@ +import { defineComponent, mergeProps } from "vue"; +import { ssrRenderAttrs, ssrInterpolate, ssrRenderSlot } from "vue/server-renderer"; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "HeroBanner", + __ssrInlineRender: true, + props: { + title: {}, + subtitle: {} + }, + setup(__props) { + return (_ctx, _push, _parent, _attrs) => { + _push(`

${ssrInterpolate(_ctx.title)}

${ssrInterpolate(_ctx.subtitle)}

`); + ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent); + _push(`
`); + }; + } +}); +export { + _sfc_main as default +}; +//# sourceMappingURL=HeroBanner.vue2.mjs.map diff --git a/.nuxt/dist/server/components/HeroBanner.vue2.mjs.map b/.nuxt/dist/server/components/HeroBanner.vue2.mjs.map new file mode 100644 index 0000000..6d48de4 --- /dev/null +++ b/.nuxt/dist/server/components/HeroBanner.vue2.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"HeroBanner.vue2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/components/HeroBanner.vue2.mjs.map.json b/.nuxt/dist/server/components/HeroBanner.vue2.mjs.map.json new file mode 100644 index 0000000..cc9cd52 --- /dev/null +++ b/.nuxt/dist/server/components/HeroBanner.vue2.mjs.map.json @@ -0,0 +1 @@ +{"file":"HeroBanner.vue2.mjs","mappings":";;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/components/NavBar.vue.mjs b/.nuxt/dist/server/components/NavBar.vue.mjs new file mode 100644 index 0000000..269cba8 --- /dev/null +++ b/.nuxt/dist/server/components/NavBar.vue.mjs @@ -0,0 +1,12 @@ +import _sfc_main from "./NavBar.vue2.mjs"; +import { useSSRContext } from "vue"; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/NavBar.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=NavBar.vue.mjs.map diff --git a/.nuxt/dist/server/components/NavBar.vue.mjs.map b/.nuxt/dist/server/components/NavBar.vue.mjs.map new file mode 100644 index 0000000..06c38dd --- /dev/null +++ b/.nuxt/dist/server/components/NavBar.vue.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"NavBar.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/components/NavBar.vue.mjs.map.json b/.nuxt/dist/server/components/NavBar.vue.mjs.map.json new file mode 100644 index 0000000..83806fa --- /dev/null +++ b/.nuxt/dist/server/components/NavBar.vue.mjs.map.json @@ -0,0 +1 @@ +{"file":"NavBar.vue.mjs","mappings":";;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/components/NavBar.vue2.mjs b/.nuxt/dist/server/components/NavBar.vue2.mjs new file mode 100644 index 0000000..43926bd --- /dev/null +++ b/.nuxt/dist/server/components/NavBar.vue2.mjs @@ -0,0 +1,85 @@ +import __nuxt_component_0 from "../node_modules/nuxt/dist/app/components/nuxt-link.mjs"; +import { defineComponent, ref, withCtx, createVNode, createTextVNode, toDisplayString } from "vue"; +import { ssrRenderClass, ssrRenderComponent, ssrRenderList, ssrInterpolate } from "vue/server-renderer"; +import { useRoute } from "vue-router"; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "NavBar", + __ssrInlineRender: true, + setup(__props) { + useRoute(); + const mobileMenuOpen = ref(false); + const scrolled = ref(false); + const navItems = [ + { name: "首页", path: "/" }, + { name: "AWS产品", path: "/products" }, + { name: "解决方案", path: "/solutions" }, + { name: "客户案例", path: "/cases" }, + { name: "关于我们", path: "/about" }, + { name: "联系我们", path: "/contact" } + ]; + return (_ctx, _push, _parent, _attrs) => { + const _component_NuxtLink = __nuxt_component_0; + _push(`
`); + }; + } +}); +export { + _sfc_main as default +}; +//# sourceMappingURL=NavBar.vue2.mjs.map diff --git a/.nuxt/dist/server/components/NavBar.vue2.mjs.map b/.nuxt/dist/server/components/NavBar.vue2.mjs.map new file mode 100644 index 0000000..a5c417c --- /dev/null +++ b/.nuxt/dist/server/components/NavBar.vue2.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"NavBar.vue2.mjs","sources":["../../../../components/NavBar.vue"],"sourcesContent":["\r\n\r\n "],"names":[],"mappings":";;;;;;;;AA4Dc,aAAS;AACjB,UAAA,iBAAiB,IAAI,KAAK;AAC1B,UAAA,WAAW,IAAI,KAAK;AAE1B,UAAM,WAAW;AAAA,MACf,EAAE,MAAM,MAAM,MAAM,IAAI;AAAA,MACxB,EAAE,MAAM,SAAS,MAAM,YAAY;AAAA,MACnC,EAAE,MAAM,QAAQ,MAAM,aAAa;AAAA,MACnC,EAAE,MAAM,QAAQ,MAAM,SAAS;AAAA,MAC/B,EAAE,MAAM,QAAQ,MAAM,SAAS;AAAA,MAC/B,EAAE,MAAM,QAAQ,MAAM,WAAW;AAAA,IACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/components/NavBar.vue2.mjs.map.json b/.nuxt/dist/server/components/NavBar.vue2.mjs.map.json new file mode 100644 index 0000000..9c129e2 --- /dev/null +++ b/.nuxt/dist/server/components/NavBar.vue2.mjs.map.json @@ -0,0 +1 @@ +{"file":"NavBar.vue2.mjs","mappings":";;;;;;;;AA4Dc,aAAS;AACjB,UAAA,iBAAiB,IAAI,KAAK;AAC1B,UAAA,WAAW,IAAI,KAAK;AAE1B,UAAM,WAAW;AAAA,MACf,EAAE,MAAM,MAAM,MAAM,IAAI;AAAA,MACxB,EAAE,MAAM,SAAS,MAAM,YAAY;AAAA,MACnC,EAAE,MAAM,QAAQ,MAAM,aAAa;AAAA,MACnC,EAAE,MAAM,QAAQ,MAAM,SAAS;AAAA,MAC/B,EAAE,MAAM,QAAQ,MAAM,SAAS;AAAA,MAC/B,EAAE,MAAM,QAAQ,MAAM,WAAW;AAAA,IACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["../../../../components/NavBar.vue"],"sourcesContent":["\r\n\r\n "],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/components/NotificationToast.vue.mjs b/.nuxt/dist/server/components/NotificationToast.vue.mjs new file mode 100644 index 0000000..e2ffd37 --- /dev/null +++ b/.nuxt/dist/server/components/NotificationToast.vue.mjs @@ -0,0 +1,12 @@ +import _sfc_main from "./NotificationToast.vue2.mjs"; +import { useSSRContext } from "vue"; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/NotificationToast.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=NotificationToast.vue.mjs.map diff --git a/.nuxt/dist/server/components/NotificationToast.vue.mjs.map b/.nuxt/dist/server/components/NotificationToast.vue.mjs.map new file mode 100644 index 0000000..9f4615e --- /dev/null +++ b/.nuxt/dist/server/components/NotificationToast.vue.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"NotificationToast.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/components/NotificationToast.vue.mjs.map.json b/.nuxt/dist/server/components/NotificationToast.vue.mjs.map.json new file mode 100644 index 0000000..1393835 --- /dev/null +++ b/.nuxt/dist/server/components/NotificationToast.vue.mjs.map.json @@ -0,0 +1 @@ +{"file":"NotificationToast.vue.mjs","mappings":";;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/components/NotificationToast.vue2.mjs b/.nuxt/dist/server/components/NotificationToast.vue2.mjs new file mode 100644 index 0000000..dd0dafb --- /dev/null +++ b/.nuxt/dist/server/components/NotificationToast.vue2.mjs @@ -0,0 +1,45 @@ +import { defineComponent, ref, watch } from "vue"; +import { ssrRenderTeleport, ssrRenderClass, ssrRenderStyle, ssrInterpolate } from "vue/server-renderer"; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "NotificationToast", + __ssrInlineRender: true, + props: { + message: { default: "" }, + type: { default: "success" }, + duration: { default: 3e3 } + }, + emits: ["close"], + setup(__props, { emit: __emit }) { + const props = __props; + const show = ref(false); + const emit = __emit; + watch(() => props.message, (newVal) => { + if (newVal) { + show.value = true; + setTimeout(() => { + show.value = false; + setTimeout(() => { + emit("close"); + }, 300); + }, props.duration); + } + }, { immediate: true }); + return (_ctx, _push, _parent, _attrs) => { + ssrRenderTeleport(_push, (_push2) => { + if (_ctx.message) { + _push2(`
${ssrInterpolate(_ctx.message)}
`); + } else { + _push2(``); + } + }, "body", false, _parent); + }; + } +}); +export { + _sfc_main as default +}; +//# sourceMappingURL=NotificationToast.vue2.mjs.map diff --git a/.nuxt/dist/server/components/NotificationToast.vue2.mjs.map b/.nuxt/dist/server/components/NotificationToast.vue2.mjs.map new file mode 100644 index 0000000..e633353 --- /dev/null +++ b/.nuxt/dist/server/components/NotificationToast.vue2.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"NotificationToast.vue2.mjs","sources":["../../../../components/NotificationToast.vue"],"sourcesContent":["\r\n\r\n "],"names":[],"mappings":";;;;;;;;;;;;AAyBA,UAAM,QAAQ;AAMR,UAAA,OAAO,IAAI,KAAK;AACtB,UAAM,OAAO;AAEb,UAAM,MAAM,MAAM,SAAS,CAAC,WAAW;AACrC,UAAI,QAAQ;AACV,aAAK,QAAQ;AACb,mBAAW,MAAM;AACf,eAAK,QAAQ;AACb,qBAAW,MAAM;AACf,iBAAK,OAAO;AAAA,aACX,GAAG;AAAA,QAAA,GACL,MAAM,QAAQ;AAAA,MAAA;AAAA,IACnB,GACC,EAAE,WAAW,MAAM;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/components/NotificationToast.vue2.mjs.map.json b/.nuxt/dist/server/components/NotificationToast.vue2.mjs.map.json new file mode 100644 index 0000000..af360b8 --- /dev/null +++ b/.nuxt/dist/server/components/NotificationToast.vue2.mjs.map.json @@ -0,0 +1 @@ +{"file":"NotificationToast.vue2.mjs","mappings":";;;;;;;;;;;;AAyBA,UAAM,QAAQ;AAMR,UAAA,OAAO,IAAI,KAAK;AACtB,UAAM,OAAO;AAEb,UAAM,MAAM,MAAM,SAAS,CAAC,WAAW;AACrC,UAAI,QAAQ;AACV,aAAK,QAAQ;AACb,mBAAW,MAAM;AACf,eAAK,QAAQ;AACb,qBAAW,MAAM;AACf,iBAAK,OAAO;AAAA,aACX,GAAG;AAAA,QAAA,GACL,MAAM,QAAQ;AAAA,MAAA;AAAA,IACnB,GACC,EAAE,WAAW,MAAM;;;;;;;;;;;;;;;;","names":[],"sources":["../../../../components/NotificationToast.vue"],"sourcesContent":["\r\n\r\n "],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/entry-styles-1.mjs.mjs b/.nuxt/dist/server/entry-styles-1.mjs.mjs new file mode 100644 index 0000000..989a10e --- /dev/null +++ b/.nuxt/dist/server/entry-styles-1.mjs.mjs @@ -0,0 +1,5 @@ +const tailwind = '*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:Roboto,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-8{bottom:2rem}.left-0{left:0}.left-1\\/2{left:50%}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-16{top:4rem}.top-4{top:1rem}.top-8{top:2rem}.z-10{z-index:10}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-12{height:3rem}.h-16{height:4rem}.h-20{height:5rem}.h-32{height:8rem}.h-48{height:12rem}.h-80{height:20rem}.h-96{height:24rem}.max-h-\\[90vh\\]{max-height:90vh}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-32{width:8rem}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.flex-grow{flex-grow:1}.-translate-x-1\\/2{--tw-translate-x:-50%}.-translate-x-1\\/2,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2rem*var(--tw-space-x-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(3rem*var(--tw-space-y-reverse));margin-top:calc(3rem*(1 - var(--tw-space-y-reverse)))}.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(4rem*var(--tw-space-y-reverse));margin-top:calc(4rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-secondary{--tw-border-opacity:1;border-color:rgb(255 153 0/var(--tw-border-opacity,1))}.border-white\\/10{border-color:#ffffff1a}.bg-accent\\/10{background-color:#0d6efd1a}.bg-black\\/50{background-color:#00000080}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-primary{--tw-bg-opacity:1;background-color:rgb(35 47 62/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-secondary{--tw-bg-opacity:1;background-color:rgb(255 153 0/var(--tw-bg-opacity,1))}.bg-secondary\\/10{background-color:#ff99001a}.bg-secondary\\/20{background-color:#f903}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-primary\\/80{--tw-gradient-from:#232f3ecc var(--tw-gradient-from-position);--tw-gradient-to:#232f3e00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-secondary\\/20{--tw-gradient-from:#f903 var(--tw-gradient-from-position);--tw-gradient-to:#f900 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-primary\\/90{--tw-gradient-to:#232f3ee6 var(--tw-gradient-to-position)}.to-secondary\\/10{--tw-gradient-to:#ff99001a var(--tw-gradient-to-position)}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-20{padding-bottom:5rem;padding-top:5rem}.py-24{padding-bottom:6rem;padding-top:6rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pl-5{padding-left:1.25rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-6xl{font-size:3.75rem;line-height:1}.text-8xl{font-size:6rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.text-\\[\\#333333\\]{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity,1))}.text-accent{--tw-text-opacity:1;color:rgb(13 110 253/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-secondary{--tw-text-opacity:1;color:rgb(255 153 0/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\\/50{color:#ffffff80}.text-white\\/70{color:#ffffffb3}.text-white\\/85{color:#ffffffd9}.text-white\\/90{color:#ffffffe6}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.hover\\:-translate-y-1:hover{--tw-translate-y:-.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.hover\\:bg-secondary\\/90:hover{background-color:#ff9900e6}.hover\\:bg-white\\/10:hover{background-color:#ffffff1a}.hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\\:text-secondary:hover{--tw-text-opacity:1;color:rgb(255 153 0/var(--tw-text-opacity,1))}.hover\\:text-secondary\\/90:hover{color:#ff9900e6}.hover\\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\\:border-transparent:focus{border-color:#0000}.focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-secondary:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(255 153 0/var(--tw-ring-opacity,1))}@media (min-width:640px){.sm\\:flex-row{flex-direction:row}}@media (min-width:768px){.md\\:absolute{position:absolute}.md\\:left-1\\/2{left:50%}.md\\:order-1{order:1}.md\\:col-span-2{grid-column:span 2/span 2}.md\\:mx-0{margin-left:0;margin-right:0}.md\\:mb-0{margin-bottom:0}.md\\:ml-auto{margin-left:auto}.md\\:mr-auto{margin-right:auto}.md\\:block{display:block}.md\\:flex{display:flex}.md\\:hidden{display:none}.md\\:w-1\\/4{width:25%}.md\\:w-3\\/4{width:75%}.md\\:w-5\\/12{width:41.666667%}.md\\:-translate-x-1\\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\\:flex-row{flex-direction:row}.md\\:items-center{align-items:center}.md\\:py-32{padding-bottom:8rem;padding-top:8rem}.md\\:text-2xl{font-size:1.5rem;line-height:2rem}.md\\:text-5xl{font-size:3rem;line-height:1}.md\\:text-\\[16px\\]{font-size:16px}.md\\:text-\\[20px\\]{font-size:20px}.md\\:text-\\[40px\\]{font-size:40px}}@media (min-width:1024px){.lg\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\\:text-6xl{font-size:3.75rem;line-height:1}}'; +export { + tailwind as default +}; +//# sourceMappingURL=entry-styles-1.mjs.mjs.map diff --git a/.nuxt/dist/server/entry-styles-1.mjs.mjs.map b/.nuxt/dist/server/entry-styles-1.mjs.mjs.map new file mode 100644 index 0000000..8f586bc --- /dev/null +++ b/.nuxt/dist/server/entry-styles-1.mjs.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"entry-styles-1.mjs.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"} \ No newline at end of file diff --git a/.nuxt/dist/server/entry-styles-1.mjs.mjs.map.json b/.nuxt/dist/server/entry-styles-1.mjs.mjs.map.json new file mode 100644 index 0000000..fb9a8a9 --- /dev/null +++ b/.nuxt/dist/server/entry-styles-1.mjs.mjs.map.json @@ -0,0 +1 @@ +{"file":"entry-styles-1.mjs.mjs","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/entry-styles-2.mjs.mjs b/.nuxt/dist/server/entry-styles-2.mjs.mjs new file mode 100644 index 0000000..416c307 --- /dev/null +++ b/.nuxt/dist/server/entry-styles-2.mjs.mjs @@ -0,0 +1,5 @@ +const main = '*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:Roboto,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.container{margin-left:auto;margin-right:auto;max-width:80rem;padding-left:1.5rem;padding-right:1.5rem}@media (min-width:1024px){.container{padding-left:2rem;padding-right:2rem}}.section{padding-bottom:4rem;padding-top:4rem}.btn-primary{border-radius:.25rem;display:inline-block;overflow:hidden;position:relative;--tw-bg-opacity:1;background-color:rgb(255 153 0/var(--tw-bg-opacity,1));padding:.75rem 1.5rem;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.btn-primary:hover{--tw-bg-opacity:.9}.btn-secondary{border-radius:.25rem;border-width:1px;display:inline-block;--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1));padding:.75rem 1.5rem;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));transition-duration:.3s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.btn-secondary:hover{background-color:#ffffff1a}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-8{bottom:2rem}.left-0{left:0}.left-1\\/2{left:50%}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-16{top:4rem}.top-4{top:1rem}.top-8{top:2rem}.z-10{z-index:10}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-12{height:3rem}.h-16{height:4rem}.h-20{height:5rem}.h-32{height:8rem}.h-48{height:12rem}.h-80{height:20rem}.h-96{height:24rem}.max-h-\\[90vh\\]{max-height:90vh}.min-h-screen{min-height:100vh}.w-1{width:.25rem}.w-12{width:3rem}.w-16{width:4rem}.w-20{width:5rem}.w-32{width:8rem}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.flex-grow{flex-grow:1}.-translate-x-1\\/2{--tw-translate-x:-50%}.-translate-x-1\\/2,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.list-disc{list-style-type:disc}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2rem*var(--tw-space-x-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(3rem*var(--tw-space-y-reverse));margin-top:calc(3rem*(1 - var(--tw-space-y-reverse)))}.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(4rem*var(--tw-space-y-reverse));margin-top:calc(4rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-4{border-width:4px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-secondary{--tw-border-opacity:1;border-color:rgb(255 153 0/var(--tw-border-opacity,1))}.border-white\\/10{border-color:#ffffff1a}.bg-accent\\/10{background-color:#0d6efd1a}.bg-black\\/50{background-color:#00000080}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-primary{--tw-bg-opacity:1;background-color:rgb(35 47 62/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-secondary{--tw-bg-opacity:1;background-color:rgb(255 153 0/var(--tw-bg-opacity,1))}.bg-secondary\\/10{background-color:#ff99001a}.bg-secondary\\/20{background-color:#f903}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-primary\\/80{--tw-gradient-from:rgba(35,47,62,.8) var(--tw-gradient-from-position);--tw-gradient-to:rgba(35,47,62,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-secondary\\/20{--tw-gradient-from:rgba(255,153,0,.2) var(--tw-gradient-from-position);--tw-gradient-to:rgba(255,153,0,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-primary\\/90{--tw-gradient-to:rgba(35,47,62,.9) var(--tw-gradient-to-position)}.to-secondary\\/10{--tw-gradient-to:rgba(255,153,0,.1) var(--tw-gradient-to-position)}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-20{padding-bottom:5rem;padding-top:5rem}.py-24{padding-bottom:6rem;padding-top:6rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pl-5{padding-left:1.25rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-6xl{font-size:3.75rem;line-height:1}.text-8xl{font-size:6rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.text-\\[\\#333333\\]{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity,1))}.text-accent{--tw-text-opacity:1;color:rgb(13 110 253/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-secondary{--tw-text-opacity:1;color:rgb(255 153 0/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\\/50{color:#ffffff80}.text-white\\/70{color:#ffffffb3}.text-white\\/85{color:#ffffffd9}.text-white\\/90{color:#ffffffe6}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}:root{--primary-color:#232f3e;--secondary-color:#f90;--accent-color:#0d6efd;--text-color:#333;--light-gray:#f8f9fa;--white:#fff}body{color:var(--text-color);font-family:Roboto,sans-serif}.page-loader{align-items:center;background:#fff;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;transition:opacity .5s;width:100%;z-index:9999}.loader-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#f90;height:50px;width:50px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.nav-scrolled{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#232f3ef2;box-shadow:0 2px 4px #0000001a}.hover\\:-translate-y-1:hover{--tw-translate-y:-.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\\:bg-gray-200:hover{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.hover\\:bg-gray-300:hover{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.hover\\:bg-secondary\\/90:hover{background-color:#ff9900e6}.hover\\:bg-white\\/10:hover{background-color:#ffffff1a}.hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\\:text-secondary:hover{--tw-text-opacity:1;color:rgb(255 153 0/var(--tw-text-opacity,1))}.hover\\:text-secondary\\/90:hover{color:#ff9900e6}.hover\\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\\:border-transparent:focus{border-color:transparent}.focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-secondary:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(255 153 0/var(--tw-ring-opacity,1))}@media (min-width:640px){.sm\\:flex-row{flex-direction:row}}@media (min-width:768px){.md\\:absolute{position:absolute}.md\\:left-1\\/2{left:50%}.md\\:order-1{order:1}.md\\:col-span-2{grid-column:span 2/span 2}.md\\:mx-0{margin-left:0;margin-right:0}.md\\:mb-0{margin-bottom:0}.md\\:ml-auto{margin-left:auto}.md\\:mr-auto{margin-right:auto}.md\\:block{display:block}.md\\:flex{display:flex}.md\\:hidden{display:none}.md\\:w-1\\/4{width:25%}.md\\:w-3\\/4{width:75%}.md\\:w-5\\/12{width:41.666667%}.md\\:-translate-x-1\\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\\:flex-row{flex-direction:row}.md\\:items-center{align-items:center}.md\\:py-32{padding-bottom:8rem;padding-top:8rem}.md\\:text-2xl{font-size:1.5rem;line-height:2rem}.md\\:text-5xl{font-size:3rem;line-height:1}.md\\:text-\\[16px\\]{font-size:16px}.md\\:text-\\[20px\\]{font-size:20px}.md\\:text-\\[40px\\]{font-size:40px}}@media (min-width:1024px){.lg\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\\:text-6xl{font-size:3.75rem;line-height:1}}'; +export { + main as default +}; +//# sourceMappingURL=entry-styles-2.mjs.mjs.map diff --git a/.nuxt/dist/server/entry-styles-2.mjs.mjs.map b/.nuxt/dist/server/entry-styles-2.mjs.mjs.map new file mode 100644 index 0000000..26c6a04 --- /dev/null +++ b/.nuxt/dist/server/entry-styles-2.mjs.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"entry-styles-2.mjs.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"} \ No newline at end of file diff --git a/.nuxt/dist/server/entry-styles-2.mjs.mjs.map.json b/.nuxt/dist/server/entry-styles-2.mjs.mjs.map.json new file mode 100644 index 0000000..2f044ca --- /dev/null +++ b/.nuxt/dist/server/entry-styles-2.mjs.mjs.map.json @@ -0,0 +1 @@ +{"file":"entry-styles-2.mjs.mjs","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/error-404-styles-1.mjs.mjs b/.nuxt/dist/server/error-404-styles-1.mjs.mjs new file mode 100644 index 0000000..055c2bd --- /dev/null +++ b/.nuxt/dist/server/error-404-styles-1.mjs.mjs @@ -0,0 +1,5 @@ +const error404_vue_vue_type_style_index_0_scoped_3fc41134_lang = '.spotlight[data-v-3fc41134]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);bottom:-30vh;filter:blur(20vh);height:40vh}.gradient-border[data-v-3fc41134]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem;position:relative}@media (prefers-color-scheme:light){.gradient-border[data-v-3fc41134]{background-color:#ffffff4d}.gradient-border[data-v-3fc41134]:before{background:linear-gradient(90deg,#e2e2e2,#e2e2e2 25%,#00dc82,#36e4da 75%,#0047e1)}}@media (prefers-color-scheme:dark){.gradient-border[data-v-3fc41134]{background-color:#1414144d}.gradient-border[data-v-3fc41134]:before{background:linear-gradient(90deg,#303030,#303030 25%,#00dc82,#36e4da 75%,#0047e1)}}.gradient-border[data-v-3fc41134]:before{background-size:400% auto;border-radius:.5rem;bottom:0;content:"";left:0;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5;padding:2px;position:absolute;right:0;top:0;transition:background-position .3s ease-in-out,opacity .2s ease-in-out;width:100%}.gradient-border[data-v-3fc41134]:hover:before{background-position:-50% 0;opacity:1}.fixed[data-v-3fc41134]{position:fixed}.left-0[data-v-3fc41134]{left:0}.right-0[data-v-3fc41134]{right:0}.z-10[data-v-3fc41134]{z-index:10}.z-20[data-v-3fc41134]{z-index:20}.grid[data-v-3fc41134]{display:grid}.mb-16[data-v-3fc41134]{margin-bottom:4rem}.mb-8[data-v-3fc41134]{margin-bottom:2rem}.max-w-520px[data-v-3fc41134]{max-width:520px}.min-h-screen[data-v-3fc41134]{min-height:100vh}.w-full[data-v-3fc41134]{width:100%}.flex[data-v-3fc41134]{display:flex}.cursor-pointer[data-v-3fc41134]{cursor:pointer}.place-content-center[data-v-3fc41134]{place-content:center}.items-center[data-v-3fc41134]{align-items:center}.justify-center[data-v-3fc41134]{justify-content:center}.overflow-hidden[data-v-3fc41134]{overflow:hidden}.bg-white[data-v-3fc41134]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-4[data-v-3fc41134]{padding-left:1rem;padding-right:1rem}.px-8[data-v-3fc41134]{padding-left:2rem;padding-right:2rem}.py-2[data-v-3fc41134]{padding-bottom:.5rem;padding-top:.5rem}.text-center[data-v-3fc41134]{text-align:center}.text-8xl[data-v-3fc41134]{font-size:6rem;line-height:1}.text-xl[data-v-3fc41134]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-3fc41134]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-3fc41134]{font-weight:300}.font-medium[data-v-3fc41134]{font-weight:500}.leading-tight[data-v-3fc41134]{line-height:1.25}.font-sans[data-v-3fc41134]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-3fc41134]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\\:bg-black[data-v-3fc41134]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\\:text-white[data-v-3fc41134]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\\:px-0[data-v-3fc41134]{padding-left:0;padding-right:0}.sm\\:px-6[data-v-3fc41134]{padding-left:1.5rem;padding-right:1.5rem}.sm\\:py-3[data-v-3fc41134]{padding-bottom:.75rem;padding-top:.75rem}.sm\\:text-4xl[data-v-3fc41134]{font-size:2.25rem;line-height:2.5rem}.sm\\:text-xl[data-v-3fc41134]{font-size:1.25rem;line-height:1.75rem}}'; +export { + error404_vue_vue_type_style_index_0_scoped_3fc41134_lang as default +}; +//# sourceMappingURL=error-404-styles-1.mjs.mjs.map diff --git a/.nuxt/dist/server/error-404-styles-1.mjs.mjs.map b/.nuxt/dist/server/error-404-styles-1.mjs.mjs.map new file mode 100644 index 0000000..2749b47 --- /dev/null +++ b/.nuxt/dist/server/error-404-styles-1.mjs.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"error-404-styles-1.mjs.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"} \ No newline at end of file diff --git a/.nuxt/dist/server/error-404-styles-1.mjs.mjs.map.json b/.nuxt/dist/server/error-404-styles-1.mjs.mjs.map.json new file mode 100644 index 0000000..5e2e65c --- /dev/null +++ b/.nuxt/dist/server/error-404-styles-1.mjs.mjs.map.json @@ -0,0 +1 @@ +{"file":"error-404-styles-1.mjs.mjs","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/error-500-styles-1.mjs.mjs b/.nuxt/dist/server/error-500-styles-1.mjs.mjs new file mode 100644 index 0000000..0c62940 --- /dev/null +++ b/.nuxt/dist/server/error-500-styles-1.mjs.mjs @@ -0,0 +1,5 @@ +const error500_vue_vue_type_style_index_0_scoped_bfd09c70_lang = ".spotlight[data-v-bfd09c70]{background:linear-gradient(45deg,#00dc82,#36e4da 50%,#0047e1);filter:blur(20vh)}.fixed[data-v-bfd09c70]{position:fixed}.-bottom-1\\/2[data-v-bfd09c70]{bottom:-50%}.left-0[data-v-bfd09c70]{left:0}.right-0[data-v-bfd09c70]{right:0}.grid[data-v-bfd09c70]{display:grid}.mb-16[data-v-bfd09c70]{margin-bottom:4rem}.mb-8[data-v-bfd09c70]{margin-bottom:2rem}.h-1\\/2[data-v-bfd09c70]{height:50%}.max-w-520px[data-v-bfd09c70]{max-width:520px}.min-h-screen[data-v-bfd09c70]{min-height:100vh}.place-content-center[data-v-bfd09c70]{place-content:center}.overflow-hidden[data-v-bfd09c70]{overflow:hidden}.bg-white[data-v-bfd09c70]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-8[data-v-bfd09c70]{padding-left:2rem;padding-right:2rem}.text-center[data-v-bfd09c70]{text-align:center}.text-8xl[data-v-bfd09c70]{font-size:6rem;line-height:1}.text-xl[data-v-bfd09c70]{font-size:1.25rem;line-height:1.75rem}.text-black[data-v-bfd09c70]{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.font-light[data-v-bfd09c70]{font-weight:300}.font-medium[data-v-bfd09c70]{font-weight:500}.leading-tight[data-v-bfd09c70]{line-height:1.25}.font-sans[data-v-bfd09c70]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.antialiased[data-v-bfd09c70]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\\:bg-black[data-v-bfd09c70]{--un-bg-opacity:1;background-color:rgb(0 0 0/var(--un-bg-opacity))}.dark\\:text-white[data-v-bfd09c70]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\\:px-0[data-v-bfd09c70]{padding-left:0;padding-right:0}.sm\\:text-4xl[data-v-bfd09c70]{font-size:2.25rem;line-height:2.5rem}}"; +export { + error500_vue_vue_type_style_index_0_scoped_bfd09c70_lang as default +}; +//# sourceMappingURL=error-500-styles-1.mjs.mjs.map diff --git a/.nuxt/dist/server/error-500-styles-1.mjs.mjs.map b/.nuxt/dist/server/error-500-styles-1.mjs.mjs.map new file mode 100644 index 0000000..e443553 --- /dev/null +++ b/.nuxt/dist/server/error-500-styles-1.mjs.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"error-500-styles-1.mjs.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"} \ No newline at end of file diff --git a/.nuxt/dist/server/error-500-styles-1.mjs.mjs.map.json b/.nuxt/dist/server/error-500-styles-1.mjs.mjs.map.json new file mode 100644 index 0000000..3860b54 --- /dev/null +++ b/.nuxt/dist/server/error-500-styles-1.mjs.mjs.map.json @@ -0,0 +1 @@ +{"file":"error-500-styles-1.mjs.mjs","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/layouts/default.vue.mjs b/.nuxt/dist/server/layouts/default.vue.mjs new file mode 100644 index 0000000..246c549 --- /dev/null +++ b/.nuxt/dist/server/layouts/default.vue.mjs @@ -0,0 +1,12 @@ +import _sfc_main from "./default.vue2.mjs"; +import { useSSRContext } from "vue"; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("layouts/default.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=default.vue.mjs.map diff --git a/.nuxt/dist/server/layouts/default.vue.mjs.map b/.nuxt/dist/server/layouts/default.vue.mjs.map new file mode 100644 index 0000000..d5e2f46 --- /dev/null +++ b/.nuxt/dist/server/layouts/default.vue.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"default.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/layouts/default.vue.mjs.map.json b/.nuxt/dist/server/layouts/default.vue.mjs.map.json new file mode 100644 index 0000000..8345436 --- /dev/null +++ b/.nuxt/dist/server/layouts/default.vue.mjs.map.json @@ -0,0 +1 @@ +{"file":"default.vue.mjs","mappings":";;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/layouts/default.vue2.mjs b/.nuxt/dist/server/layouts/default.vue2.mjs new file mode 100644 index 0000000..4281336 --- /dev/null +++ b/.nuxt/dist/server/layouts/default.vue2.mjs @@ -0,0 +1,33 @@ +import "../components/NavBar.vue.mjs"; +import "../components/FooterSection.vue.mjs"; +import { defineComponent, ref, mergeProps } from "vue"; +import { ssrRenderAttrs, ssrRenderComponent, ssrRenderSlot } from "vue/server-renderer"; +import _sfc_main$1 from "../components/NavBar.vue2.mjs"; +import _sfc_main$2 from "../components/FooterSection.vue2.mjs"; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "default", + __ssrInlineRender: true, + setup(__props) { + const pageLoading = ref(true); + return (_ctx, _push, _parent, _attrs) => { + const _component_NavBar = _sfc_main$1; + const _component_FooterSection = _sfc_main$2; + _push(``); + if (pageLoading.value) { + _push(`
`); + } else { + _push(``); + } + _push(ssrRenderComponent(_component_NavBar, null, null, _parent)); + _push(`
`); + ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent); + _push(`
`); + _push(ssrRenderComponent(_component_FooterSection, null, null, _parent)); + _push(``); + }; + } +}); +export { + _sfc_main as default +}; +//# sourceMappingURL=default.vue2.mjs.map diff --git a/.nuxt/dist/server/layouts/default.vue2.mjs.map b/.nuxt/dist/server/layouts/default.vue2.mjs.map new file mode 100644 index 0000000..6ac9277 --- /dev/null +++ b/.nuxt/dist/server/layouts/default.vue2.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"default.vue2.mjs","sources":["../../../../layouts/default.vue"],"sourcesContent":["\r\n\r\n "],"names":[],"mappings":";;;;;;;;;;AAuBM,UAAA,cAAc,IAAI,IAAI;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/layouts/default.vue2.mjs.map.json b/.nuxt/dist/server/layouts/default.vue2.mjs.map.json new file mode 100644 index 0000000..d8f1ba5 --- /dev/null +++ b/.nuxt/dist/server/layouts/default.vue2.mjs.map.json @@ -0,0 +1 @@ +{"file":"default.vue2.mjs","mappings":";;;;;;;;;;AAuBM,UAAA,cAAc,IAAI,IAAI;;;;;;;;;;;;;;;;;;;","names":[],"sources":["../../../../layouts/default.vue"],"sourcesContent":["\r\n\r\n "],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-404.vue.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-404.vue.mjs new file mode 100644 index 0000000..49ec791 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-404.vue.mjs @@ -0,0 +1,83 @@ +import __nuxt_component_0 from "./nuxt-link.mjs"; +import { mergeProps, withCtx, createTextVNode, toDisplayString, useSSRContext } from "vue"; +import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent } from "vue/server-renderer"; +/* empty css */ +import _export_sfc from "../../../../../_virtual/_plugin-vue_export-helper.mjs"; +import { useHead } from "../../head/runtime/composables/v3.mjs"; +const _sfc_main = { + __name: "error-404", + __ssrInlineRender: true, + props: { + appName: { + type: String, + default: "Nuxt" + }, + version: { + type: String, + default: "" + }, + statusCode: { + type: Number, + default: 404 + }, + statusMessage: { + type: String, + default: "Not Found" + }, + description: { + type: String, + default: "Sorry, the page you are looking for could not be found." + }, + backHome: { + type: String, + default: "Go back home" + } + }, + setup(__props) { + const props = __props; + useHead({ + title: `${props.statusCode} - ${props.statusMessage} | ${props.appName}`, + script: [ + { + innerHTML: `!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver((e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)})).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();` + } + ], + style: [ + { + innerHTML: `*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }` + } + ] + }); + return (_ctx, _push, _parent, _attrs) => { + const _component_NuxtLink = __nuxt_component_0; + _push(`

${ssrInterpolate(__props.statusCode)}

${ssrInterpolate(__props.description)}

`); + _push(ssrRenderComponent(_component_NuxtLink, { + to: "/", + class: "cursor-pointer gradient-border px-4 py-2 sm:px-6 sm:py-3 sm:text-xl text-md" + }, { + default: withCtx((_, _push2, _parent2, _scopeId) => { + if (_push2) { + _push2(`${ssrInterpolate(__props.backHome)}`); + } else { + return [ + createTextVNode(toDisplayString(__props.backHome), 1) + ]; + } + }), + _: 1 + }, _parent)); + _push(`
`); + }; + } +}; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/nuxt/dist/app/components/error-404.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +const error404 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3fc41134"]]); +export { + error404 as default +}; +//# sourceMappingURL=error-404.vue.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-404.vue.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-404.vue.mjs.map new file mode 100644 index 0000000..23ba815 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-404.vue.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"error-404.vue.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/app/components/error-404.vue"],"sourcesContent":["\n\n\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,UAAM,QAAQ;AA0BN,YAAA;AAAA,MACN,OAAO,GAAI,MAAM,UAAW,MAAO,MAAM,aAAc,MAAO,MAAM,OAAQ;AAAA,MAC5E,QAAQ;AAAA,QACN;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MAEf;AAAA,MACA,OAAO;AAAA,QACL;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,IACF,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-404.vue.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-404.vue.mjs.map.json new file mode 100644 index 0000000..40dd3cc --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-404.vue.mjs.map.json @@ -0,0 +1 @@ +{"file":"error-404.vue.mjs","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,UAAM,QAAQ;AA0BN,YAAA;AAAA,MACN,OAAO,GAAI,MAAM,UAAW,MAAO,MAAM,aAAc,MAAO,MAAM,OAAQ;AAAA,MAC5E,QAAQ;AAAA,QACN;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MAEf;AAAA,MACA,OAAO;AAAA,QACL;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,IACF,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["../../../../../../../../node_modules/nuxt/dist/app/components/error-404.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-500.vue.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-500.vue.mjs new file mode 100644 index 0000000..56c18e7 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-500.vue.mjs @@ -0,0 +1,61 @@ +import { mergeProps, useSSRContext } from "vue"; +import { ssrRenderAttrs, ssrInterpolate } from "vue/server-renderer"; +/* empty css */ +import _export_sfc from "../../../../../_virtual/_plugin-vue_export-helper.mjs"; +import { useHead } from "../../head/runtime/composables/v3.mjs"; +const _sfc_main = { + __name: "error-500", + __ssrInlineRender: true, + props: { + appName: { + type: String, + default: "Nuxt" + }, + version: { + type: String, + default: "" + }, + statusCode: { + type: Number, + default: 500 + }, + statusMessage: { + type: String, + default: "Server error" + }, + description: { + type: String, + default: "This page is temporarily unavailable." + } + }, + setup(__props) { + const props = __props; + useHead({ + title: `${props.statusCode} - ${props.statusMessage} | ${props.appName}`, + script: [ + { + innerHTML: `!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver((e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)})).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();` + } + ], + style: [ + { + innerHTML: `*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1{font-size:inherit;font-weight:inherit}h1,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }` + } + ] + }); + return (_ctx, _push, _parent, _attrs) => { + _push(`

${ssrInterpolate(__props.statusCode)}

${ssrInterpolate(__props.description)}

`); + }; + } +}; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/nuxt/dist/app/components/error-500.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +const error500 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-bfd09c70"]]); +export { + error500 as default +}; +//# sourceMappingURL=error-500.vue.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-500.vue.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-500.vue.mjs.map new file mode 100644 index 0000000..40f0efa --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-500.vue.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"error-500.vue.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/app/components/error-500.vue"],"sourcesContent":["\n\n\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,UAAM,QAAQ;AAsBN,YAAA;AAAA,MACN,OAAO,GAAI,MAAM,UAAW,MAAO,MAAM,aAAc,MAAO,MAAM,OAAQ;AAAA,MAC5E,QAAQ;AAAA,QACN;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MAEf;AAAA,MACA,OAAO;AAAA,QACL;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,IACF,CACD;;;;;;;;;;;;;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-500.vue.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-500.vue.mjs.map.json new file mode 100644 index 0000000..50e81bb --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/error-500.vue.mjs.map.json @@ -0,0 +1 @@ +{"file":"error-500.vue.mjs","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,UAAM,QAAQ;AAsBN,YAAA;AAAA,MACN,OAAO,GAAI,MAAM,UAAW,MAAO,MAAM,aAAc,MAAO,MAAM,OAAQ;AAAA,MAC5E,QAAQ;AAAA,QACN;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MAEf;AAAA,MACA,OAAO;AAAA,QACL;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,IACF,CACD;;;;;;;;;;;;;","names":[],"sources":["../../../../../../../../node_modules/nuxt/dist/app/components/error-500.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/injections.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/injections.mjs new file mode 100644 index 0000000..89f98cb --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/injections.mjs @@ -0,0 +1,7 @@ +const LayoutMetaSymbol = Symbol("layout-meta"); +const PageRouteSymbol = Symbol("route"); +export { + LayoutMetaSymbol, + PageRouteSymbol +}; +//# sourceMappingURL=injections.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/injections.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/injections.mjs.map new file mode 100644 index 0000000..6b66270 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/injections.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"injections.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/app/components/injections.js"],"sourcesContent":["export const LayoutMetaSymbol = Symbol(\"layout-meta\");\nexport const PageRouteSymbol = Symbol(\"route\");\n"],"names":[],"mappings":"AAAY,MAAC,mBAAmB,OAAO,aAAa;AACxC,MAAC,kBAAkB,OAAO,OAAO;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/injections.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/injections.mjs.map.json new file mode 100644 index 0000000..199e473 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/injections.mjs.map.json @@ -0,0 +1 @@ +{"file":"injections.mjs","mappings":"AAAY,MAAC,mBAAmB,OAAO,aAAa;AACxC,MAAC,kBAAkB,OAAO,OAAO;","names":[],"sources":["../../../../../../../../node_modules/nuxt/dist/app/components/injections.js"],"sourcesContent":["export const LayoutMetaSymbol = Symbol(\"layout-meta\");\nexport const PageRouteSymbol = Symbol(\"route\");\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-error-page.vue.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-error-page.vue.mjs new file mode 100644 index 0000000..e359600 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-error-page.vue.mjs @@ -0,0 +1,41 @@ +import { defineAsyncComponent, unref, mergeProps, useSSRContext } from "vue"; +import { ssrRenderComponent } from "vue/server-renderer"; +const _sfc_main = { + __name: "nuxt-error-page", + __ssrInlineRender: true, + props: { + error: Object + }, + setup(__props) { + const props = __props; + const _error = props.error; + _error.stack ? _error.stack.split("\n").splice(1).map((line) => { + const text = line.replace("webpack:/", "").replace(".vue", ".js").trim(); + return { + text, + internal: line.includes("node_modules") && !line.includes(".cache") || line.includes("internal") || line.includes("new Promise") + }; + }).map((i) => `${i.text}`).join("\n") : ""; + const statusCode = Number(_error.statusCode || 500); + const is404 = statusCode === 404; + const statusMessage = _error.statusMessage ?? (is404 ? "Page Not Found" : "Internal Server Error"); + const description = _error.message || _error.toString(); + const stack = void 0; + const _Error404 = defineAsyncComponent(() => import("./error-404.vue.mjs")); + const _Error = defineAsyncComponent(() => import("./error-500.vue.mjs")); + const ErrorTemplate = is404 ? _Error404 : _Error; + return (_ctx, _push, _parent, _attrs) => { + _push(ssrRenderComponent(unref(ErrorTemplate), mergeProps({ statusCode: unref(statusCode), statusMessage: unref(statusMessage), description: unref(description), stack: unref(stack) }, _attrs), null, _parent)); + }; + } +}; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/nuxt/dist/app/components/nuxt-error-page.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=nuxt-error-page.vue.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-error-page.vue.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-error-page.vue.mjs.map new file mode 100644 index 0000000..129ff2c --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-error-page.vue.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"nuxt-error-page.vue.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/app/components/nuxt-error-page.vue"],"sourcesContent":["\n\n\n"],"names":[],"mappings":";;;;;;;;;AAGA,UAAM,QAAQ;AAKd,UAAM,SAAS,MAAM;AAGF,WAAO,QACtB,OAAO,MACJ,MAAM,IAAI,EACV,OAAO,CAAC,EACR,IAAI,CAAC,SAAS;AACb,YAAM,OAAO,KACV,QAAQ,aAAa,EAAE,EACvB,QAAQ,QAAQ,KAAK,EACrB,KAAI;AACP,aAAO;AAAA,QACL;AAAA,QACA,UAAW,KAAK,SAAS,cAAc,KAAK,CAAC,KAAK,SAAS,QAAQ,KACnE,KAAK,SAAS,UAAU,KACxB,KAAK,SAAS,aAAa;AAAA,MACrC;AAAA,IACA,CAAO,EAAE,IAAI,OAAK,qBAAqB,EAAE,WAAW,cAAc,EAAE,KAAK,EAAE,IAAI,SAAS,EAAE,KAAK,IAAI,IAC/F;AAGJ,UAAM,aAAa,OAAO,OAAO,cAAc,GAAG;AAClD,UAAM,QAAQ,eAAe;AAE7B,UAAM,gBAAgB,OAAO,kBAAkB,QAAQ,mBAAmB;AAC1E,UAAM,cAAc,OAAO,WAAW,OAAO,SAAQ;AACrD,UAAM,QAAuF;AAG7F,UAAM,YAAY,qBAAqB,MAAM,OAAO,qBAAiB,CAAC;AACtE,UAAM,SAEF,qBAAqB,MAAM,OAAO,qBAAiB,CAAC;AAExD,UAAM,gBAAgB,QAAQ,YAAY;;;;;;;;;;;;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-error-page.vue.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-error-page.vue.mjs.map.json new file mode 100644 index 0000000..0705772 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-error-page.vue.mjs.map.json @@ -0,0 +1 @@ +{"file":"nuxt-error-page.vue.mjs","mappings":";;;;;;;;;AAGA,UAAM,QAAQ;AAKd,UAAM,SAAS,MAAM;AAGF,WAAO,QACtB,OAAO,MACJ,MAAM,IAAI,EACV,OAAO,CAAC,EACR,IAAI,CAAC,SAAS;AACb,YAAM,OAAO,KACV,QAAQ,aAAa,EAAE,EACvB,QAAQ,QAAQ,KAAK,EACrB,KAAI;AACP,aAAO;AAAA,QACL;AAAA,QACA,UAAW,KAAK,SAAS,cAAc,KAAK,CAAC,KAAK,SAAS,QAAQ,KACnE,KAAK,SAAS,UAAU,KACxB,KAAK,SAAS,aAAa;AAAA,MACrC;AAAA,IACA,CAAO,EAAE,IAAI,OAAK,qBAAqB,EAAE,WAAW,cAAc,EAAE,KAAK,EAAE,IAAI,SAAS,EAAE,KAAK,IAAI,IAC/F;AAGJ,UAAM,aAAa,OAAO,OAAO,cAAc,GAAG;AAClD,UAAM,QAAQ,eAAe;AAE7B,UAAM,gBAAgB,OAAO,kBAAkB,QAAQ,mBAAmB;AAC1E,UAAM,cAAc,OAAO,WAAW,OAAO,SAAQ;AACrD,UAAM,QAAuF;AAG7F,UAAM,YAAY,qBAAqB,MAAM,OAAO,qBAAiB,CAAC;AACtE,UAAM,SAEF,qBAAqB,MAAM,OAAO,qBAAiB,CAAC;AAExD,UAAM,gBAAgB,QAAQ,YAAY;;;;;;;;;;;;","names":[],"sources":["../../../../../../../../node_modules/nuxt/dist/app/components/nuxt-error-page.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-layout.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-layout.mjs new file mode 100644 index 0000000..1573c0d --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-layout.mjs @@ -0,0 +1,113 @@ +import { defineComponent, inject, computed, unref, ref, h, Suspense, nextTick, mergeProps, provide } from "vue"; +import { useRoute } from "../composables/router.mjs"; +import { useNuxtApp } from "../nuxt.mjs"; +import { _wrapInTransition } from "./utils.mjs"; +import { PageRouteSymbol, LayoutMetaSymbol } from "./injections.mjs"; +import { useRoute as useRoute$1 } from "vue-router"; +import layouts from "../../../../../_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_layouts.mjs"; +import { appLayoutTransition } from "../../../../../_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_nuxt.config.mjs"; +const LayoutLoader = defineComponent({ + name: "LayoutLoader", + inheritAttrs: false, + props: { + name: String, + layoutProps: Object + }, + setup(props, context) { + return () => h(layouts[props.name], props.layoutProps, context.slots); + } +}); +const nuxtLayoutProps = { + name: { + type: [String, Boolean, Object], + default: null + }, + fallback: { + type: [String, Object], + default: null + } +}; +const __nuxt_component_0 = defineComponent({ + name: "NuxtLayout", + inheritAttrs: false, + props: nuxtLayoutProps, + setup(props, context) { + const nuxtApp = useNuxtApp(); + const injectedRoute = inject(PageRouteSymbol); + const route = injectedRoute === useRoute() ? useRoute$1() : injectedRoute; + const layout = computed(() => { + let layout2 = unref(props.name) ?? route.meta.layout ?? "default"; + if (layout2 && !(layout2 in layouts)) { + if (props.fallback) { + layout2 = unref(props.fallback); + } + } + return layout2; + }); + const layoutRef = ref(); + context.expose({ layoutRef }); + const done = nuxtApp.deferHydration(); + return () => { + const hasLayout = layout.value && layout.value in layouts; + const transitionProps = route.meta.layoutTransition ?? appLayoutTransition; + return _wrapInTransition(hasLayout && transitionProps, { + default: () => h(Suspense, { suspensible: true, onResolve: () => { + nextTick(done); + } }, { + default: () => h( + LayoutProvider, + { + layoutProps: mergeProps(context.attrs, { ref: layoutRef }), + key: layout.value || void 0, + name: layout.value, + shouldProvide: !props.name, + hasTransition: !!transitionProps + }, + context.slots + ) + }) + }).default(); + }; + } +}); +const LayoutProvider = defineComponent({ + name: "NuxtLayoutProvider", + inheritAttrs: false, + props: { + name: { + type: [String, Boolean] + }, + layoutProps: { + type: Object + }, + hasTransition: { + type: Boolean + }, + shouldProvide: { + type: Boolean + } + }, + setup(props, context) { + const name = props.name; + if (props.shouldProvide) { + provide(LayoutMetaSymbol, { + isCurrent: (route) => name === (route.meta.layout ?? "default") + }); + } + return () => { + var _a, _b; + if (!name || typeof name === "string" && !(name in layouts)) { + return (_b = (_a = context.slots).default) == null ? void 0 : _b.call(_a); + } + return h( + LayoutLoader, + { key: name, layoutProps: props.layoutProps, name }, + context.slots + ); + }; + } +}); +export { + __nuxt_component_0 as default +}; +//# sourceMappingURL=nuxt-layout.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-layout.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-layout.mjs.map new file mode 100644 index 0000000..77cd51c --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-layout.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"nuxt-layout.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/app/components/nuxt-layout.js"],"sourcesContent":["import { Suspense, computed, defineComponent, h, inject, mergeProps, nextTick, onMounted, provide, ref, unref } from \"vue\";\nimport { useRoute, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { _wrapInTransition } from \"./utils.js\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"./injections.js\";\nimport { useRoute as useVueRouterRoute } from \"#build/pages\";\nimport layouts from \"#build/layouts\";\nimport { appLayoutTransition as defaultLayoutTransition } from \"#build/nuxt.config.mjs\";\nconst LayoutLoader = defineComponent({\n name: \"LayoutLoader\",\n inheritAttrs: false,\n props: {\n name: String,\n layoutProps: Object\n },\n setup(props, context) {\n return () => h(layouts[props.name], props.layoutProps, context.slots);\n }\n});\nconst nuxtLayoutProps = {\n name: {\n type: [String, Boolean, Object],\n default: null\n },\n fallback: {\n type: [String, Object],\n default: null\n }\n};\nexport default defineComponent({\n name: \"NuxtLayout\",\n inheritAttrs: false,\n props: nuxtLayoutProps,\n setup(props, context) {\n const nuxtApp = useNuxtApp();\n const injectedRoute = inject(PageRouteSymbol);\n const route = injectedRoute === useRoute() ? useVueRouterRoute() : injectedRoute;\n const layout = computed(() => {\n let layout2 = unref(props.name) ?? route.meta.layout ?? \"default\";\n if (layout2 && !(layout2 in layouts)) {\n if (import.meta.dev && layout2 !== \"default\") {\n console.warn(`Invalid layout \\`${layout2}\\` selected.`);\n }\n if (props.fallback) {\n layout2 = unref(props.fallback);\n }\n }\n return layout2;\n });\n const layoutRef = ref();\n context.expose({ layoutRef });\n const done = nuxtApp.deferHydration();\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n useRouter().beforeEach(removeErrorHook);\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtLayoutUsed = true;\n }\n return () => {\n const hasLayout = layout.value && layout.value in layouts;\n const transitionProps = route.meta.layoutTransition ?? defaultLayoutTransition;\n return _wrapInTransition(hasLayout && transitionProps, {\n default: () => h(Suspense, { suspensible: true, onResolve: () => {\n nextTick(done);\n } }, {\n default: () => h(\n LayoutProvider,\n {\n layoutProps: mergeProps(context.attrs, { ref: layoutRef }),\n key: layout.value || void 0,\n name: layout.value,\n shouldProvide: !props.name,\n hasTransition: !!transitionProps\n },\n context.slots\n )\n })\n }).default();\n };\n }\n});\nconst LayoutProvider = defineComponent({\n name: \"NuxtLayoutProvider\",\n inheritAttrs: false,\n props: {\n name: {\n type: [String, Boolean]\n },\n layoutProps: {\n type: Object\n },\n hasTransition: {\n type: Boolean\n },\n shouldProvide: {\n type: Boolean\n }\n },\n setup(props, context) {\n const name = props.name;\n if (props.shouldProvide) {\n provide(LayoutMetaSymbol, {\n isCurrent: (route) => name === (route.meta.layout ?? \"default\")\n });\n }\n let vnode;\n if (import.meta.dev && import.meta.client) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n if (name) {\n console.warn(`[nuxt] \\`${name}\\` layout does not have a single root node and will cause errors when navigating between routes.`);\n } else {\n console.warn(\"[nuxt] `` needs to be passed a single root node in its default slot.\");\n }\n }\n });\n });\n }\n return () => {\n if (!name || typeof name === \"string\" && !(name in layouts)) {\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = context.slots.default?.();\n return vnode;\n }\n return context.slots.default?.();\n }\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n return vnode;\n }\n return h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n };\n }\n});\n"],"names":["useVueRouterRoute","defaultLayoutTransition"],"mappings":";;;;;;;;AAQA,MAAM,eAAe,gBAAgB;AAAA,EACnC,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,MAAM;AAAA,IACN,aAAa;AAAA,EACd;AAAA,EACD,MAAM,OAAO,SAAS;AACpB,WAAO,MAAM,EAAE,QAAQ,MAAM,IAAI,GAAG,MAAM,aAAa,QAAQ,KAAK;AAAA,EACxE;AACA,CAAC;AACD,MAAM,kBAAkB;AAAA,EACtB,MAAM;AAAA,IACJ,MAAM,CAAC,QAAQ,SAAS,MAAM;AAAA,IAC9B,SAAS;AAAA,EACV;AAAA,EACD,UAAU;AAAA,IACR,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA,EACb;AACA;AACA,MAAA,qBAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,EACP,MAAM,OAAO,SAAS;AACpB,UAAM,UAAU,WAAY;AAC5B,UAAM,gBAAgB,OAAO,eAAe;AAC5C,UAAM,QAAQ,kBAAkB,SAAQ,IAAKA,WAAmB,IAAG;AACnE,UAAM,SAAS,SAAS,MAAM;AAC5B,UAAI,UAAU,MAAM,MAAM,IAAI,KAAK,MAAM,KAAK,UAAU;AACxD,UAAI,WAAW,EAAE,WAAW,UAAU;AAIpC,YAAI,MAAM,UAAU;AAClB,oBAAU,MAAM,MAAM,QAAQ;AAAA,QACxC;AAAA,MACA;AACM,aAAO;AAAA,IACb,CAAK;AACD,UAAM,YAAY,IAAK;AACvB,YAAQ,OAAO,EAAE,WAAW;AAC5B,UAAM,OAAO,QAAQ,eAAgB;AAQrC,WAAO,MAAM;AACX,YAAM,YAAY,OAAO,SAAS,OAAO,SAAS;AAClD,YAAM,kBAAkB,MAAM,KAAK,oBAAoBC;AACvD,aAAO,kBAAkB,aAAa,iBAAiB;AAAA,QACrD,SAAS,MAAM,EAAE,UAAU,EAAE,aAAa,MAAM,WAAW,MAAM;AAC/D,mBAAS,IAAI;AAAA,QACvB,KAAa;AAAA,UACH,SAAS,MAAM;AAAA,YACb;AAAA,YACA;AAAA,cACE,aAAa,WAAW,QAAQ,OAAO,EAAE,KAAK,WAAW;AAAA,cACzD,KAAK,OAAO,SAAS;AAAA,cACrB,MAAM,OAAO;AAAA,cACb,eAAe,CAAC,MAAM;AAAA,cACtB,eAAe,CAAC,CAAC;AAAA,YAClB;AAAA,YACD,QAAQ;AAAA,UACpB;AAAA,QACS,CAAA;AAAA,MACF,CAAA,EAAE,QAAS;AAAA,IACb;AAAA,EACL;AACA,CAAC;AACD,MAAM,iBAAiB,gBAAgB;AAAA,EACrC,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM,CAAC,QAAQ,OAAO;AAAA,IACvB;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,IACP;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,IACP;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,IACZ;AAAA,EACG;AAAA,EACD,MAAM,OAAO,SAAS;AACpB,UAAM,OAAO,MAAM;AACnB,QAAI,MAAM,eAAe;AACvB,cAAQ,kBAAkB;AAAA,QACxB,WAAW,CAAC,UAAU,UAAU,MAAM,KAAK,UAAU;AAAA,MAC7D,CAAO;AAAA,IACP;AAeI,WAAO,MAAM;;AACX,UAAI,CAAC,QAAQ,OAAO,SAAS,YAAY,EAAE,QAAQ,UAAU;AAK3D,gBAAO,mBAAQ,OAAM,YAAd;AAAA,MACf;AASM,aAAO;AAAA,QACL;AAAA,QACA,EAAE,KAAK,MAAM,aAAa,MAAM,aAAa,KAAM;AAAA,QACnD,QAAQ;AAAA,MACT;AAAA,IACF;AAAA,EACL;AACA,CAAC;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-layout.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-layout.mjs.map.json new file mode 100644 index 0000000..b444ee0 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-layout.mjs.map.json @@ -0,0 +1 @@ +{"file":"nuxt-layout.mjs","mappings":";;;;;;;;AAQA,MAAM,eAAe,gBAAgB;AAAA,EACnC,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,MAAM;AAAA,IACN,aAAa;AAAA,EACd;AAAA,EACD,MAAM,OAAO,SAAS;AACpB,WAAO,MAAM,EAAE,QAAQ,MAAM,IAAI,GAAG,MAAM,aAAa,QAAQ,KAAK;AAAA,EACxE;AACA,CAAC;AACD,MAAM,kBAAkB;AAAA,EACtB,MAAM;AAAA,IACJ,MAAM,CAAC,QAAQ,SAAS,MAAM;AAAA,IAC9B,SAAS;AAAA,EACV;AAAA,EACD,UAAU;AAAA,IACR,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA,EACb;AACA;AACA,MAAA,qBAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,EACP,MAAM,OAAO,SAAS;AACpB,UAAM,UAAU,WAAY;AAC5B,UAAM,gBAAgB,OAAO,eAAe;AAC5C,UAAM,QAAQ,kBAAkB,SAAQ,IAAKA,WAAmB,IAAG;AACnE,UAAM,SAAS,SAAS,MAAM;AAC5B,UAAI,UAAU,MAAM,MAAM,IAAI,KAAK,MAAM,KAAK,UAAU;AACxD,UAAI,WAAW,EAAE,WAAW,UAAU;AAIpC,YAAI,MAAM,UAAU;AAClB,oBAAU,MAAM,MAAM,QAAQ;AAAA,QACxC;AAAA,MACA;AACM,aAAO;AAAA,IACb,CAAK;AACD,UAAM,YAAY,IAAK;AACvB,YAAQ,OAAO,EAAE,WAAW;AAC5B,UAAM,OAAO,QAAQ,eAAgB;AAQrC,WAAO,MAAM;AACX,YAAM,YAAY,OAAO,SAAS,OAAO,SAAS;AAClD,YAAM,kBAAkB,MAAM,KAAK,oBAAoBC;AACvD,aAAO,kBAAkB,aAAa,iBAAiB;AAAA,QACrD,SAAS,MAAM,EAAE,UAAU,EAAE,aAAa,MAAM,WAAW,MAAM;AAC/D,mBAAS,IAAI;AAAA,QACvB,KAAa;AAAA,UACH,SAAS,MAAM;AAAA,YACb;AAAA,YACA;AAAA,cACE,aAAa,WAAW,QAAQ,OAAO,EAAE,KAAK,WAAW;AAAA,cACzD,KAAK,OAAO,SAAS;AAAA,cACrB,MAAM,OAAO;AAAA,cACb,eAAe,CAAC,MAAM;AAAA,cACtB,eAAe,CAAC,CAAC;AAAA,YAClB;AAAA,YACD,QAAQ;AAAA,UACpB;AAAA,QACS,CAAA;AAAA,MACF,CAAA,EAAE,QAAS;AAAA,IACb;AAAA,EACL;AACA,CAAC;AACD,MAAM,iBAAiB,gBAAgB;AAAA,EACrC,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM,CAAC,QAAQ,OAAO;AAAA,IACvB;AAAA,IACD,aAAa;AAAA,MACX,MAAM;AAAA,IACP;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,IACP;AAAA,IACD,eAAe;AAAA,MACb,MAAM;AAAA,IACZ;AAAA,EACG;AAAA,EACD,MAAM,OAAO,SAAS;AACpB,UAAM,OAAO,MAAM;AACnB,QAAI,MAAM,eAAe;AACvB,cAAQ,kBAAkB;AAAA,QACxB,WAAW,CAAC,UAAU,UAAU,MAAM,KAAK,UAAU;AAAA,MAC7D,CAAO;AAAA,IACP;AAeI,WAAO,MAAM;;AACX,UAAI,CAAC,QAAQ,OAAO,SAAS,YAAY,EAAE,QAAQ,UAAU;AAK3D,gBAAO,mBAAQ,OAAM,YAAd;AAAA,MACf;AASM,aAAO;AAAA,QACL;AAAA,QACA,EAAE,KAAK,MAAM,aAAa,MAAM,aAAa,KAAM;AAAA,QACnD,QAAQ;AAAA,MACT;AAAA,IACF;AAAA,EACL;AACA,CAAC;","names":["useVueRouterRoute","defaultLayoutTransition"],"sources":["../../../../../../../../node_modules/nuxt/dist/app/components/nuxt-layout.js"],"sourcesContent":["import { Suspense, computed, defineComponent, h, inject, mergeProps, nextTick, onMounted, provide, ref, unref } from \"vue\";\nimport { useRoute, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { _wrapInTransition } from \"./utils.js\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"./injections.js\";\nimport { useRoute as useVueRouterRoute } from \"#build/pages\";\nimport layouts from \"#build/layouts\";\nimport { appLayoutTransition as defaultLayoutTransition } from \"#build/nuxt.config.mjs\";\nconst LayoutLoader = defineComponent({\n name: \"LayoutLoader\",\n inheritAttrs: false,\n props: {\n name: String,\n layoutProps: Object\n },\n setup(props, context) {\n return () => h(layouts[props.name], props.layoutProps, context.slots);\n }\n});\nconst nuxtLayoutProps = {\n name: {\n type: [String, Boolean, Object],\n default: null\n },\n fallback: {\n type: [String, Object],\n default: null\n }\n};\nexport default defineComponent({\n name: \"NuxtLayout\",\n inheritAttrs: false,\n props: nuxtLayoutProps,\n setup(props, context) {\n const nuxtApp = useNuxtApp();\n const injectedRoute = inject(PageRouteSymbol);\n const route = injectedRoute === useRoute() ? useVueRouterRoute() : injectedRoute;\n const layout = computed(() => {\n let layout2 = unref(props.name) ?? route.meta.layout ?? \"default\";\n if (layout2 && !(layout2 in layouts)) {\n if (import.meta.dev && layout2 !== \"default\") {\n console.warn(`Invalid layout \\`${layout2}\\` selected.`);\n }\n if (props.fallback) {\n layout2 = unref(props.fallback);\n }\n }\n return layout2;\n });\n const layoutRef = ref();\n context.expose({ layoutRef });\n const done = nuxtApp.deferHydration();\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n useRouter().beforeEach(removeErrorHook);\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtLayoutUsed = true;\n }\n return () => {\n const hasLayout = layout.value && layout.value in layouts;\n const transitionProps = route.meta.layoutTransition ?? defaultLayoutTransition;\n return _wrapInTransition(hasLayout && transitionProps, {\n default: () => h(Suspense, { suspensible: true, onResolve: () => {\n nextTick(done);\n } }, {\n default: () => h(\n LayoutProvider,\n {\n layoutProps: mergeProps(context.attrs, { ref: layoutRef }),\n key: layout.value || void 0,\n name: layout.value,\n shouldProvide: !props.name,\n hasTransition: !!transitionProps\n },\n context.slots\n )\n })\n }).default();\n };\n }\n});\nconst LayoutProvider = defineComponent({\n name: \"NuxtLayoutProvider\",\n inheritAttrs: false,\n props: {\n name: {\n type: [String, Boolean]\n },\n layoutProps: {\n type: Object\n },\n hasTransition: {\n type: Boolean\n },\n shouldProvide: {\n type: Boolean\n }\n },\n setup(props, context) {\n const name = props.name;\n if (props.shouldProvide) {\n provide(LayoutMetaSymbol, {\n isCurrent: (route) => name === (route.meta.layout ?? \"default\")\n });\n }\n let vnode;\n if (import.meta.dev && import.meta.client) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n if (name) {\n console.warn(`[nuxt] \\`${name}\\` layout does not have a single root node and will cause errors when navigating between routes.`);\n } else {\n console.warn(\"[nuxt] `` needs to be passed a single root node in its default slot.\");\n }\n }\n });\n });\n }\n return () => {\n if (!name || typeof name === \"string\" && !(name in layouts)) {\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = context.slots.default?.();\n return vnode;\n }\n return context.slots.default?.();\n }\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n return vnode;\n }\n return h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n };\n }\n});\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-link.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-link.mjs new file mode 100644 index 0000000..0ae5409 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-link.mjs @@ -0,0 +1,279 @@ +import { defineComponent, ref, h, resolveComponent, computed } from "vue"; +import { parseQuery, hasProtocol, joinURL, withTrailingSlash, withoutTrailingSlash } from "D:/doc/workspace/web3/node_modules/ufo/dist/index.mjs"; +import { useNuxtApp, useRuntimeConfig } from "../nuxt.mjs"; +import { useRouter, resolveRouteObject, navigateTo } from "../composables/router.mjs"; +import { nuxtLinkDefaults } from "../../../../../_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_nuxt.config.mjs"; +const firstNonUndefined = (...args) => args.find((arg) => arg !== void 0); +// @__NO_SIDE_EFFECTS__ +function defineNuxtLink(options) { + const componentName = options.componentName || "NuxtLink"; + function isHashLinkWithoutHashMode(link) { + return typeof link === "string" && link.startsWith("#"); + } + function resolveTrailingSlashBehavior(to, resolve) { + if (!to || options.trailingSlash !== "append" && options.trailingSlash !== "remove") { + return to; + } + if (typeof to === "string") { + return applyTrailingSlashBehavior(to, options.trailingSlash); + } + const path = "path" in to && to.path !== void 0 ? to.path : resolve(to).path; + const resolvedPath = { + ...to, + name: void 0, + // named routes would otherwise always override trailing slash behavior + path: applyTrailingSlashBehavior(path, options.trailingSlash) + }; + return resolvedPath; + } + function useNuxtLink(props) { + const router = useRouter(); + const config = useRuntimeConfig(); + const hasTarget = computed(() => !!props.target && props.target !== "_self"); + const isAbsoluteUrl = computed(() => { + const path = props.to || props.href || ""; + return typeof path === "string" && hasProtocol(path, { acceptRelative: true }); + }); + const builtinRouterLink = resolveComponent("RouterLink"); + const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== "string" ? builtinRouterLink.useLink : void 0; + const isExternal = computed(() => { + if (props.external) { + return true; + } + const path = props.to || props.href || ""; + if (typeof path === "object") { + return false; + } + return path === "" || isAbsoluteUrl.value; + }); + const to = computed(() => { + const path = props.to || props.href || ""; + if (isExternal.value) { + return path; + } + return resolveTrailingSlashBehavior(path, router.resolve); + }); + const link = isExternal.value ? void 0 : useBuiltinLink == null ? void 0 : useBuiltinLink({ ...props, to }); + const href = computed(() => { + var _a; + if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) { + return to.value; + } + if (isExternal.value) { + const path = typeof to.value === "object" && "path" in to.value ? resolveRouteObject(to.value) : to.value; + const href2 = typeof path === "object" ? router.resolve(path).href : path; + return resolveTrailingSlashBehavior( + href2, + router.resolve + /* will not be called */ + ); + } + if (typeof to.value === "object") { + return ((_a = router.resolve(to.value)) == null ? void 0 : _a.href) ?? null; + } + return resolveTrailingSlashBehavior( + joinURL(config.app.baseURL, to.value), + router.resolve + /* will not be called */ + ); + }); + return { + to, + hasTarget, + isAbsoluteUrl, + isExternal, + // + href, + isActive: (link == null ? void 0 : link.isActive) ?? computed(() => to.value === router.currentRoute.value.path), + isExactActive: (link == null ? void 0 : link.isExactActive) ?? computed(() => to.value === router.currentRoute.value.path), + route: (link == null ? void 0 : link.route) ?? computed(() => router.resolve(to.value)), + async navigate(_e) { + await navigateTo(href.value, { replace: props.replace, external: isExternal.value || hasTarget.value }); + } + }; + } + return defineComponent({ + name: componentName, + props: { + // Routing + to: { + type: [String, Object], + default: void 0, + required: false + }, + href: { + type: [String, Object], + default: void 0, + required: false + }, + // Attributes + target: { + type: String, + default: void 0, + required: false + }, + rel: { + type: String, + default: void 0, + required: false + }, + noRel: { + type: Boolean, + default: void 0, + required: false + }, + // Prefetching + prefetch: { + type: Boolean, + default: void 0, + required: false + }, + prefetchOn: { + type: [String, Object], + default: void 0, + required: false + }, + noPrefetch: { + type: Boolean, + default: void 0, + required: false + }, + // Styling + activeClass: { + type: String, + default: void 0, + required: false + }, + exactActiveClass: { + type: String, + default: void 0, + required: false + }, + prefetchedClass: { + type: String, + default: void 0, + required: false + }, + // Vue Router's `` additional props + replace: { + type: Boolean, + default: void 0, + required: false + }, + ariaCurrentValue: { + type: String, + default: void 0, + required: false + }, + // Edge cases handling + external: { + type: Boolean, + default: void 0, + required: false + }, + // Slot API + custom: { + type: Boolean, + default: void 0, + required: false + } + }, + useLink: useNuxtLink, + setup(props, { slots }) { + useRouter(); + const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props); + ref(false); + const el = void 0; + const elRef = void 0; + async function prefetch(nuxtApp = useNuxtApp()) { + { + return; + } + } + return () => { + var _a; + if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) { + const routerLinkProps = { + ref: elRef, + to: to.value, + activeClass: props.activeClass || options.activeClass, + exactActiveClass: props.exactActiveClass || options.exactActiveClass, + replace: props.replace, + ariaCurrentValue: props.ariaCurrentValue, + custom: props.custom + }; + if (!props.custom) { + routerLinkProps.rel = props.rel || void 0; + } + return h( + resolveComponent("RouterLink"), + routerLinkProps, + slots.default + ); + } + const target = props.target || null; + const rel = firstNonUndefined( + // converts `""` to `null` to prevent the attribute from being added as empty (`rel=""`) + props.noRel ? "" : props.rel, + options.externalRelAttribute, + /* + * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab. + * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy. + */ + isAbsoluteUrl.value || hasTarget.value ? "noopener noreferrer" : "" + ) || null; + if (props.custom) { + if (!slots.default) { + return null; + } + return slots.default({ + href: href.value, + navigate, + prefetch, + get route() { + if (!href.value) { + return void 0; + } + const url = new URL(href.value, "http://localhost"); + return { + path: url.pathname, + fullPath: url.pathname, + get query() { + return parseQuery(url.search); + }, + hash: url.hash, + params: {}, + name: void 0, + matched: [], + redirectedFrom: void 0, + meta: {}, + href: href.value + }; + }, + rel, + target, + isExternal: isExternal.value || hasTarget.value, + isActive: false, + isExactActive: false + }); + } + return h("a", { ref: el, href: href.value || null, rel, target }, (_a = slots.default) == null ? void 0 : _a.call(slots)); + }; + } + // }) as unknown as DefineComponent> + }); +} +const __nuxt_component_0 = /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults); +function applyTrailingSlashBehavior(to, trailingSlash) { + const normalizeFn = trailingSlash === "append" ? withTrailingSlash : withoutTrailingSlash; + const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith("http"); + if (hasProtocolDifferentFromHttp) { + return to; + } + return normalizeFn(to, true); +} +export { + __nuxt_component_0 as default, + defineNuxtLink +}; +//# sourceMappingURL=nuxt-link.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-link.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-link.mjs.map new file mode 100644 index 0000000..7de37ce --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-link.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"nuxt-link.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/app/components/nuxt-link.js"],"sourcesContent":["import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent } from \"vue\";\nimport { hasProtocol, joinURL, parseQuery, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { preloadRouteComponents } from \"../composables/preload.js\";\nimport { onNuxtReady } from \"../composables/ready.js\";\nimport { navigateTo, resolveRouteObject, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { cancelIdleCallback, requestIdleCallback } from \"../compat/idle-callback.js\";\nimport { nuxtLinkDefaults } from \"#build/nuxt.config.mjs\";\nimport { hashMode } from \"#build/router.options\";\nconst firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);\nconst NuxtLinkDevKeySymbol = Symbol(\"nuxt-link-dev-key\");\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtLink(options) {\n const componentName = options.componentName || \"NuxtLink\";\n function checkPropConflicts(props, main, sub) {\n if (import.meta.dev && props[main] !== void 0 && props[sub] !== void 0) {\n console.warn(`[${componentName}] \\`${main}\\` and \\`${sub}\\` cannot be used together. \\`${sub}\\` will be ignored.`);\n }\n }\n function isHashLinkWithoutHashMode(link) {\n return !hashMode && typeof link === \"string\" && link.startsWith(\"#\");\n }\n function resolveTrailingSlashBehavior(to, resolve) {\n if (!to || options.trailingSlash !== \"append\" && options.trailingSlash !== \"remove\") {\n return to;\n }\n if (typeof to === \"string\") {\n return applyTrailingSlashBehavior(to, options.trailingSlash);\n }\n const path = \"path\" in to && to.path !== void 0 ? to.path : resolve(to).path;\n const resolvedPath = {\n ...to,\n name: void 0,\n // named routes would otherwise always override trailing slash behavior\n path: applyTrailingSlashBehavior(path, options.trailingSlash)\n };\n return resolvedPath;\n }\n function useNuxtLink(props) {\n const router = useRouter();\n const config = useRuntimeConfig();\n const hasTarget = computed(() => !!props.target && props.target !== \"_self\");\n const isAbsoluteUrl = computed(() => {\n const path = props.to || props.href || \"\";\n return typeof path === \"string\" && hasProtocol(path, { acceptRelative: true });\n });\n const builtinRouterLink = resolveComponent(\"RouterLink\");\n const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== \"string\" ? builtinRouterLink.useLink : void 0;\n const isExternal = computed(() => {\n if (props.external) {\n return true;\n }\n const path = props.to || props.href || \"\";\n if (typeof path === \"object\") {\n return false;\n }\n return path === \"\" || isAbsoluteUrl.value;\n });\n const to = computed(() => {\n checkPropConflicts(props, \"to\", \"href\");\n const path = props.to || props.href || \"\";\n if (isExternal.value) {\n return path;\n }\n return resolveTrailingSlashBehavior(path, router.resolve);\n });\n const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to });\n const href = computed(() => {\n if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) {\n return to.value;\n }\n if (isExternal.value) {\n const path = typeof to.value === \"object\" && \"path\" in to.value ? resolveRouteObject(to.value) : to.value;\n const href2 = typeof path === \"object\" ? router.resolve(path).href : path;\n return resolveTrailingSlashBehavior(\n href2,\n router.resolve\n /* will not be called */\n );\n }\n if (typeof to.value === \"object\") {\n return router.resolve(to.value)?.href ?? null;\n }\n return resolveTrailingSlashBehavior(\n joinURL(config.app.baseURL, to.value),\n router.resolve\n /* will not be called */\n );\n });\n return {\n to,\n hasTarget,\n isAbsoluteUrl,\n isExternal,\n //\n href,\n isActive: link?.isActive ?? computed(() => to.value === router.currentRoute.value.path),\n isExactActive: link?.isExactActive ?? computed(() => to.value === router.currentRoute.value.path),\n route: link?.route ?? computed(() => router.resolve(to.value)),\n async navigate(_e) {\n await navigateTo(href.value, { replace: props.replace, external: isExternal.value || hasTarget.value });\n }\n };\n }\n return defineComponent({\n name: componentName,\n props: {\n // Routing\n to: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n href: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n // Attributes\n target: {\n type: String,\n default: void 0,\n required: false\n },\n rel: {\n type: String,\n default: void 0,\n required: false\n },\n noRel: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Prefetching\n prefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n prefetchOn: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n noPrefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Styling\n activeClass: {\n type: String,\n default: void 0,\n required: false\n },\n exactActiveClass: {\n type: String,\n default: void 0,\n required: false\n },\n prefetchedClass: {\n type: String,\n default: void 0,\n required: false\n },\n // Vue Router's `` additional props\n replace: {\n type: Boolean,\n default: void 0,\n required: false\n },\n ariaCurrentValue: {\n type: String,\n default: void 0,\n required: false\n },\n // Edge cases handling\n external: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Slot API\n custom: {\n type: Boolean,\n default: void 0,\n required: false\n }\n },\n useLink: useNuxtLink,\n setup(props, { slots }) {\n const router = useRouter();\n const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props);\n const prefetched = ref(false);\n const el = import.meta.server ? void 0 : ref(null);\n const elRef = import.meta.server ? void 0 : (ref2) => {\n el.value = props.custom ? ref2?.$el?.nextElementSibling : ref2?.$el;\n };\n function shouldPrefetch(mode) {\n if (import.meta.server) {\n return;\n }\n return !prefetched.value && (typeof props.prefetchOn === \"string\" ? props.prefetchOn === mode : props.prefetchOn?.[mode] ?? options.prefetchOn?.[mode]) && (props.prefetch ?? options.prefetch) !== false && props.noPrefetch !== true && props.target !== \"_blank\" && !isSlowConnection();\n }\n async function prefetch(nuxtApp = useNuxtApp()) {\n if (import.meta.server) {\n return;\n }\n if (prefetched.value) {\n return;\n }\n prefetched.value = true;\n const path = typeof to.value === \"string\" ? to.value : isExternal.value ? resolveRouteObject(to.value) : router.resolve(to.value).fullPath;\n const normalizedPath = isExternal.value ? new URL(path, window.location.href).href : path;\n await Promise.all([\n nuxtApp.hooks.callHook(\"link:prefetch\", normalizedPath).catch(() => {\n }),\n !isExternal.value && !hasTarget.value && preloadRouteComponents(to.value, router).catch(() => {\n })\n ]);\n }\n if (import.meta.client) {\n checkPropConflicts(props, \"prefetch\", \"noPrefetch\");\n if (shouldPrefetch(\"visibility\")) {\n const nuxtApp = useNuxtApp();\n let idleId;\n let unobserve = null;\n onMounted(() => {\n const observer = useObserver();\n onNuxtReady(() => {\n idleId = requestIdleCallback(() => {\n if (el?.value?.tagName) {\n unobserve = observer.observe(el.value, async () => {\n unobserve?.();\n unobserve = null;\n await prefetch(nuxtApp);\n });\n }\n });\n });\n });\n onBeforeUnmount(() => {\n if (idleId) {\n cancelIdleCallback(idleId);\n }\n unobserve?.();\n unobserve = null;\n });\n }\n }\n if (import.meta.dev && import.meta.server && !props.custom) {\n const isNuxtLinkChild = inject(NuxtLinkDevKeySymbol, false);\n if (isNuxtLinkChild) {\n console.log(\"[nuxt] [NuxtLink] You can't nest one inside another . This will cause a hydration error on client-side. You can pass the `custom` prop to take full control of the markup.\");\n } else {\n provide(NuxtLinkDevKeySymbol, true);\n }\n }\n return () => {\n if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) {\n const routerLinkProps = {\n ref: elRef,\n to: to.value,\n activeClass: props.activeClass || options.activeClass,\n exactActiveClass: props.exactActiveClass || options.exactActiveClass,\n replace: props.replace,\n ariaCurrentValue: props.ariaCurrentValue,\n custom: props.custom\n };\n if (!props.custom) {\n if (import.meta.client) {\n if (shouldPrefetch(\"interaction\")) {\n routerLinkProps.onPointerenter = prefetch.bind(null, void 0);\n routerLinkProps.onFocus = prefetch.bind(null, void 0);\n }\n if (prefetched.value) {\n routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;\n }\n }\n routerLinkProps.rel = props.rel || void 0;\n }\n return h(\n resolveComponent(\"RouterLink\"),\n routerLinkProps,\n slots.default\n );\n }\n const target = props.target || null;\n checkPropConflicts(props, \"noRel\", \"rel\");\n const rel = firstNonUndefined(\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`rel=\"\"`)\n props.noRel ? \"\" : props.rel,\n options.externalRelAttribute,\n /*\n * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab.\n * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy.\n */\n isAbsoluteUrl.value || hasTarget.value ? \"noopener noreferrer\" : \"\"\n ) || null;\n if (props.custom) {\n if (!slots.default) {\n return null;\n }\n return slots.default({\n href: href.value,\n navigate,\n prefetch,\n get route() {\n if (!href.value) {\n return void 0;\n }\n const url = new URL(href.value, import.meta.client ? window.location.href : \"http://localhost\");\n return {\n path: url.pathname,\n fullPath: url.pathname,\n get query() {\n return parseQuery(url.search);\n },\n hash: url.hash,\n params: {},\n name: void 0,\n matched: [],\n redirectedFrom: void 0,\n meta: {},\n href: href.value\n };\n },\n rel,\n target,\n isExternal: isExternal.value || hasTarget.value,\n isActive: false,\n isExactActive: false\n });\n }\n return h(\"a\", { ref: el, href: href.value || null, rel, target }, slots.default?.());\n };\n }\n // }) as unknown as DefineComponent>\n });\n}\nexport default /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);\nfunction applyTrailingSlashBehavior(to, trailingSlash) {\n const normalizeFn = trailingSlash === \"append\" ? withTrailingSlash : withoutTrailingSlash;\n const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith(\"http\");\n if (hasProtocolDifferentFromHttp) {\n return to;\n }\n return normalizeFn(to, true);\n}\nfunction useObserver() {\n if (import.meta.server) {\n return;\n }\n const nuxtApp = useNuxtApp();\n if (nuxtApp._observer) {\n return nuxtApp._observer;\n }\n let observer = null;\n const callbacks = /* @__PURE__ */ new Map();\n const observe = (element, callback) => {\n observer ||= new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const callback2 = callbacks.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (isVisible && callback2) {\n callback2();\n }\n }\n });\n callbacks.set(element, callback);\n observer.observe(element);\n return () => {\n callbacks.delete(element);\n observer?.unobserve(element);\n if (callbacks.size === 0) {\n observer?.disconnect();\n observer = null;\n }\n };\n };\n const _observer = nuxtApp._observer = {\n observe\n };\n return _observer;\n}\nconst IS_2G_RE = /2g/;\nfunction isSlowConnection() {\n if (import.meta.server) {\n return;\n }\n const cn = navigator.connection;\n if (cn && (cn.saveData || IS_2G_RE.test(cn.effectiveType))) {\n return true;\n }\n return false;\n}\n"],"names":[],"mappings":";;;;;AASA,MAAM,oBAAoB,IAAI,SAAS,KAAK,KAAK,CAAC,QAAQ,QAAQ,MAAM;AAAA;AAGjE,SAAS,eAAe,SAAS;AAChC,QAAA,gBAAgB,QAAQ,iBAAiB;AAM/C,WAAS,0BAA0B,MAAM;AACvC,WAAoB,OAAO,SAAS,YAAY,KAAK,WAAW,GAAG;AAAA,EAAA;AAE5D,WAAA,6BAA6B,IAAI,SAAS;AACjD,QAAI,CAAC,MAAM,QAAQ,kBAAkB,YAAY,QAAQ,kBAAkB,UAAU;AAC5E,aAAA;AAAA,IAAA;AAEL,QAAA,OAAO,OAAO,UAAU;AACnB,aAAA,2BAA2B,IAAI,QAAQ,aAAa;AAAA,IAAA;AAEvD,UAAA,OAAO,UAAU,MAAM,GAAG,SAAS,SAAS,GAAG,OAAO,QAAQ,EAAE,EAAE;AACxE,UAAM,eAAe;AAAA,MACnB,GAAG;AAAA,MACH,MAAM;AAAA;AAAA,MAEN,MAAM,2BAA2B,MAAM,QAAQ,aAAa;AAAA,IAC9D;AACO,WAAA;AAAA,EAAA;AAET,WAAS,YAAY,OAAO;AAC1B,UAAM,SAAS,UAAU;AACzB,UAAM,SAAS,iBAAiB;AAC1B,UAAA,YAAY,SAAS,MAAM,CAAC,CAAC,MAAM,UAAU,MAAM,WAAW,OAAO;AACrE,UAAA,gBAAgB,SAAS,MAAM;AACnC,YAAM,OAAO,MAAM,MAAM,MAAM,QAAQ;AAChC,aAAA,OAAO,SAAS,YAAY,YAAY,MAAM,EAAE,gBAAgB,MAAM;AAAA,IAAA,CAC9E;AACK,UAAA,oBAAoB,iBAAiB,YAAY;AACvD,UAAM,iBAAiB,qBAAqB,OAAO,sBAAsB,WAAW,kBAAkB,UAAU;AAC1G,UAAA,aAAa,SAAS,MAAM;AAChC,UAAI,MAAM,UAAU;AACX,eAAA;AAAA,MAAA;AAET,YAAM,OAAO,MAAM,MAAM,MAAM,QAAQ;AACnC,UAAA,OAAO,SAAS,UAAU;AACrB,eAAA;AAAA,MAAA;AAEF,aAAA,SAAS,MAAM,cAAc;AAAA,IAAA,CACrC;AACK,UAAA,KAAK,SAAS,MAAM;AAExB,YAAM,OAAO,MAAM,MAAM,MAAM,QAAQ;AACvC,UAAI,WAAW,OAAO;AACb,eAAA;AAAA,MAAA;AAEF,aAAA,6BAA6B,MAAM,OAAO,OAAO;AAAA,IAAA,CACzD;AACK,UAAA,OAAO,WAAW,QAAQ,SAAS,iDAAiB,EAAE,GAAG,OAAO;AAChE,UAAA,OAAO,SAAS,MAAM;;AACtB,UAAA,CAAC,GAAG,SAAS,cAAc,SAAS,0BAA0B,GAAG,KAAK,GAAG;AAC3E,eAAO,GAAG;AAAA,MAAA;AAEZ,UAAI,WAAW,OAAO;AACpB,cAAM,OAAO,OAAO,GAAG,UAAU,YAAY,UAAU,GAAG,QAAQ,mBAAmB,GAAG,KAAK,IAAI,GAAG;AAC9F,cAAA,QAAQ,OAAO,SAAS,WAAW,OAAO,QAAQ,IAAI,EAAE,OAAO;AAC9D,eAAA;AAAA,UACL;AAAA,UACA,OAAO;AAAA;AAAA,QAET;AAAA,MAAA;AAEE,UAAA,OAAO,GAAG,UAAU,UAAU;AAChC,iBAAO,YAAO,QAAQ,GAAG,KAAK,MAAvB,mBAA0B,SAAQ;AAAA,MAAA;AAEpC,aAAA;AAAA,QACL,QAAQ,OAAO,IAAI,SAAS,GAAG,KAAK;AAAA,QACpC,OAAO;AAAA;AAAA,MAET;AAAA,IAAA,CACD;AACM,WAAA;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACA,WAAU,6BAAM,aAAY,SAAS,MAAM,GAAG,UAAU,OAAO,aAAa,MAAM,IAAI;AAAA,MACtF,gBAAe,6BAAM,kBAAiB,SAAS,MAAM,GAAG,UAAU,OAAO,aAAa,MAAM,IAAI;AAAA,MAChG,QAAO,6BAAM,UAAS,SAAS,MAAM,OAAO,QAAQ,GAAG,KAAK,CAAC;AAAA,MAC7D,MAAM,SAAS,IAAI;AACjB,cAAM,WAAW,KAAK,OAAO,EAAE,SAAS,MAAM,SAAS,UAAU,WAAW,SAAS,UAAU,MAAA,CAAO;AAAA,MAAA;AAAA,IAE1G;AAAA,EAAA;AAEF,SAAO,gBAAgB;AAAA,IACrB,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,MAEL,IAAI;AAAA,QACF,MAAM,CAAC,QAAQ,MAAM;AAAA,QACrB,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,MACA,MAAM;AAAA,QACJ,MAAM,CAAC,QAAQ,MAAM;AAAA,QACrB,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA;AAAA,MAEA,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,MACA,KAAK;AAAA,QACH,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,MACA,OAAO;AAAA,QACL,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA;AAAA,MAEA,UAAU;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,MAAM,CAAC,QAAQ,MAAM;AAAA,QACrB,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA;AAAA,MAEA,aAAa;AAAA,QACX,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,MACA,iBAAiB;AAAA,QACf,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA;AAAA,MAEA,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA,MACA,kBAAkB;AAAA,QAChB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA;AAAA,MAEA,UAAU;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MACZ;AAAA;AAAA,MAEA,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,IAEd;AAAA,IACA,SAAS;AAAA,IACT,MAAM,OAAO,EAAE,SAAS;AACP,gBAAU;AACnB,YAAA,EAAE,IAAI,MAAM,UAAU,YAAY,WAAW,cAAA,IAAkB,YAAY,KAAK;AACnE,UAAI,KAAK;AAC5B,YAAM,KAA0B;AAChC,YAAM,QAA6B;AASpB,qBAAA,SAAS,UAAU,cAAc;AACtB;AACtB;AAAA,QAAA;AAAA,MAaD;AAuCH,aAAO,MAAM;;AACP,YAAA,CAAC,WAAW,SAAS,CAAC,UAAU,SAAS,CAAC,0BAA0B,GAAG,KAAK,GAAG;AACjF,gBAAM,kBAAkB;AAAA,YACtB,KAAK;AAAA,YACL,IAAI,GAAG;AAAA,YACP,aAAa,MAAM,eAAe,QAAQ;AAAA,YAC1C,kBAAkB,MAAM,oBAAoB,QAAQ;AAAA,YACpD,SAAS,MAAM;AAAA,YACf,kBAAkB,MAAM;AAAA,YACxB,QAAQ,MAAM;AAAA,UAChB;AACI,cAAA,CAAC,MAAM,QAAQ;AAUD,4BAAA,MAAM,MAAM,OAAO;AAAA,UAAA;AAE9B,iBAAA;AAAA,YACL,iBAAiB,YAAY;AAAA,YAC7B;AAAA,YACA,MAAM;AAAA,UACR;AAAA,QAAA;AAEI,cAAA,SAAS,MAAM,UAAU;AAE/B,cAAM,MAAM;AAAA;AAAA,UAEV,MAAM,QAAQ,KAAK,MAAM;AAAA,UACzB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,UAKR,cAAc,SAAS,UAAU,QAAQ,wBAAwB;AAAA,QAAA,KAC9D;AACL,YAAI,MAAM,QAAQ;AACZ,cAAA,CAAC,MAAM,SAAS;AACX,mBAAA;AAAA,UAAA;AAET,iBAAO,MAAM,QAAQ;AAAA,YACnB,MAAM,KAAK;AAAA,YACX;AAAA,YACA;AAAA,YACA,IAAI,QAAQ;AACN,kBAAA,CAAC,KAAK,OAAO;AACR,uBAAA;AAAA,cAAA;AAEH,oBAAA,MAAM,IAAI,IAAI,KAAK,OAAmD,kBAAkB;AACvF,qBAAA;AAAA,gBACL,MAAM,IAAI;AAAA,gBACV,UAAU,IAAI;AAAA,gBACd,IAAI,QAAQ;AACH,yBAAA,WAAW,IAAI,MAAM;AAAA,gBAC9B;AAAA,gBACA,MAAM,IAAI;AAAA,gBACV,QAAQ,CAAC;AAAA,gBACT,MAAM;AAAA,gBACN,SAAS,CAAC;AAAA,gBACV,gBAAgB;AAAA,gBAChB,MAAM,CAAC;AAAA,gBACP,MAAM,KAAK;AAAA,cACb;AAAA,YACF;AAAA,YACA;AAAA,YACA;AAAA,YACA,YAAY,WAAW,SAAS,UAAU;AAAA,YAC1C,UAAU;AAAA,YACV,eAAe;AAAA,UAAA,CAChB;AAAA,QAAA;AAEH,eAAO,EAAE,KAAK,EAAE,KAAK,IAAI,MAAM,KAAK,SAAS,MAAM,KAAK,OAAU,IAAA,WAAM,YAAN,8BAAiB;AAAA,MACrF;AAAA,IAAA;AAAA;AAAA,EACF,CAED;AACH;AACA,MAAA,oDAA8C,gBAAgB;AAC9D,SAAS,2BAA2B,IAAI,eAAe;AAC/C,QAAA,cAAc,kBAAkB,WAAW,oBAAoB;AACrE,QAAM,+BAA+B,YAAY,EAAE,KAAK,CAAC,GAAG,WAAW,MAAM;AAC7E,MAAI,8BAA8B;AACzB,WAAA;AAAA,EAAA;AAEF,SAAA,YAAY,IAAI,IAAI;AAC7B;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-link.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-link.mjs.map.json new file mode 100644 index 0000000..0cf4c30 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-link.mjs.map.json @@ -0,0 +1 @@ +{"file":"nuxt-link.mjs","mappings":"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","names":[],"sources":["../../../../../../../../node_modules/nuxt/dist/app/components/nuxt-link.js"],"sourcesContent":["import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent } from \"vue\";\nimport { hasProtocol, joinURL, parseQuery, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { preloadRouteComponents } from \"../composables/preload.js\";\nimport { onNuxtReady } from \"../composables/ready.js\";\nimport { navigateTo, resolveRouteObject, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { cancelIdleCallback, requestIdleCallback } from \"../compat/idle-callback.js\";\nimport { nuxtLinkDefaults } from \"#build/nuxt.config.mjs\";\nimport { hashMode } from \"#build/router.options\";\nconst firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);\nconst NuxtLinkDevKeySymbol = Symbol(\"nuxt-link-dev-key\");\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtLink(options) {\n const componentName = options.componentName || \"NuxtLink\";\n function checkPropConflicts(props, main, sub) {\n if (import.meta.dev && props[main] !== void 0 && props[sub] !== void 0) {\n console.warn(`[${componentName}] \\`${main}\\` and \\`${sub}\\` cannot be used together. \\`${sub}\\` will be ignored.`);\n }\n }\n function isHashLinkWithoutHashMode(link) {\n return !hashMode && typeof link === \"string\" && link.startsWith(\"#\");\n }\n function resolveTrailingSlashBehavior(to, resolve) {\n if (!to || options.trailingSlash !== \"append\" && options.trailingSlash !== \"remove\") {\n return to;\n }\n if (typeof to === \"string\") {\n return applyTrailingSlashBehavior(to, options.trailingSlash);\n }\n const path = \"path\" in to && to.path !== void 0 ? to.path : resolve(to).path;\n const resolvedPath = {\n ...to,\n name: void 0,\n // named routes would otherwise always override trailing slash behavior\n path: applyTrailingSlashBehavior(path, options.trailingSlash)\n };\n return resolvedPath;\n }\n function useNuxtLink(props) {\n const router = useRouter();\n const config = useRuntimeConfig();\n const hasTarget = computed(() => !!props.target && props.target !== \"_self\");\n const isAbsoluteUrl = computed(() => {\n const path = props.to || props.href || \"\";\n return typeof path === \"string\" && hasProtocol(path, { acceptRelative: true });\n });\n const builtinRouterLink = resolveComponent(\"RouterLink\");\n const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== \"string\" ? builtinRouterLink.useLink : void 0;\n const isExternal = computed(() => {\n if (props.external) {\n return true;\n }\n const path = props.to || props.href || \"\";\n if (typeof path === \"object\") {\n return false;\n }\n return path === \"\" || isAbsoluteUrl.value;\n });\n const to = computed(() => {\n checkPropConflicts(props, \"to\", \"href\");\n const path = props.to || props.href || \"\";\n if (isExternal.value) {\n return path;\n }\n return resolveTrailingSlashBehavior(path, router.resolve);\n });\n const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to });\n const href = computed(() => {\n if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) {\n return to.value;\n }\n if (isExternal.value) {\n const path = typeof to.value === \"object\" && \"path\" in to.value ? resolveRouteObject(to.value) : to.value;\n const href2 = typeof path === \"object\" ? router.resolve(path).href : path;\n return resolveTrailingSlashBehavior(\n href2,\n router.resolve\n /* will not be called */\n );\n }\n if (typeof to.value === \"object\") {\n return router.resolve(to.value)?.href ?? null;\n }\n return resolveTrailingSlashBehavior(\n joinURL(config.app.baseURL, to.value),\n router.resolve\n /* will not be called */\n );\n });\n return {\n to,\n hasTarget,\n isAbsoluteUrl,\n isExternal,\n //\n href,\n isActive: link?.isActive ?? computed(() => to.value === router.currentRoute.value.path),\n isExactActive: link?.isExactActive ?? computed(() => to.value === router.currentRoute.value.path),\n route: link?.route ?? computed(() => router.resolve(to.value)),\n async navigate(_e) {\n await navigateTo(href.value, { replace: props.replace, external: isExternal.value || hasTarget.value });\n }\n };\n }\n return defineComponent({\n name: componentName,\n props: {\n // Routing\n to: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n href: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n // Attributes\n target: {\n type: String,\n default: void 0,\n required: false\n },\n rel: {\n type: String,\n default: void 0,\n required: false\n },\n noRel: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Prefetching\n prefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n prefetchOn: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n noPrefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Styling\n activeClass: {\n type: String,\n default: void 0,\n required: false\n },\n exactActiveClass: {\n type: String,\n default: void 0,\n required: false\n },\n prefetchedClass: {\n type: String,\n default: void 0,\n required: false\n },\n // Vue Router's `` additional props\n replace: {\n type: Boolean,\n default: void 0,\n required: false\n },\n ariaCurrentValue: {\n type: String,\n default: void 0,\n required: false\n },\n // Edge cases handling\n external: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Slot API\n custom: {\n type: Boolean,\n default: void 0,\n required: false\n }\n },\n useLink: useNuxtLink,\n setup(props, { slots }) {\n const router = useRouter();\n const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props);\n const prefetched = ref(false);\n const el = import.meta.server ? void 0 : ref(null);\n const elRef = import.meta.server ? void 0 : (ref2) => {\n el.value = props.custom ? ref2?.$el?.nextElementSibling : ref2?.$el;\n };\n function shouldPrefetch(mode) {\n if (import.meta.server) {\n return;\n }\n return !prefetched.value && (typeof props.prefetchOn === \"string\" ? props.prefetchOn === mode : props.prefetchOn?.[mode] ?? options.prefetchOn?.[mode]) && (props.prefetch ?? options.prefetch) !== false && props.noPrefetch !== true && props.target !== \"_blank\" && !isSlowConnection();\n }\n async function prefetch(nuxtApp = useNuxtApp()) {\n if (import.meta.server) {\n return;\n }\n if (prefetched.value) {\n return;\n }\n prefetched.value = true;\n const path = typeof to.value === \"string\" ? to.value : isExternal.value ? resolveRouteObject(to.value) : router.resolve(to.value).fullPath;\n const normalizedPath = isExternal.value ? new URL(path, window.location.href).href : path;\n await Promise.all([\n nuxtApp.hooks.callHook(\"link:prefetch\", normalizedPath).catch(() => {\n }),\n !isExternal.value && !hasTarget.value && preloadRouteComponents(to.value, router).catch(() => {\n })\n ]);\n }\n if (import.meta.client) {\n checkPropConflicts(props, \"prefetch\", \"noPrefetch\");\n if (shouldPrefetch(\"visibility\")) {\n const nuxtApp = useNuxtApp();\n let idleId;\n let unobserve = null;\n onMounted(() => {\n const observer = useObserver();\n onNuxtReady(() => {\n idleId = requestIdleCallback(() => {\n if (el?.value?.tagName) {\n unobserve = observer.observe(el.value, async () => {\n unobserve?.();\n unobserve = null;\n await prefetch(nuxtApp);\n });\n }\n });\n });\n });\n onBeforeUnmount(() => {\n if (idleId) {\n cancelIdleCallback(idleId);\n }\n unobserve?.();\n unobserve = null;\n });\n }\n }\n if (import.meta.dev && import.meta.server && !props.custom) {\n const isNuxtLinkChild = inject(NuxtLinkDevKeySymbol, false);\n if (isNuxtLinkChild) {\n console.log(\"[nuxt] [NuxtLink] You can't nest one inside another . This will cause a hydration error on client-side. You can pass the `custom` prop to take full control of the markup.\");\n } else {\n provide(NuxtLinkDevKeySymbol, true);\n }\n }\n return () => {\n if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) {\n const routerLinkProps = {\n ref: elRef,\n to: to.value,\n activeClass: props.activeClass || options.activeClass,\n exactActiveClass: props.exactActiveClass || options.exactActiveClass,\n replace: props.replace,\n ariaCurrentValue: props.ariaCurrentValue,\n custom: props.custom\n };\n if (!props.custom) {\n if (import.meta.client) {\n if (shouldPrefetch(\"interaction\")) {\n routerLinkProps.onPointerenter = prefetch.bind(null, void 0);\n routerLinkProps.onFocus = prefetch.bind(null, void 0);\n }\n if (prefetched.value) {\n routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;\n }\n }\n routerLinkProps.rel = props.rel || void 0;\n }\n return h(\n resolveComponent(\"RouterLink\"),\n routerLinkProps,\n slots.default\n );\n }\n const target = props.target || null;\n checkPropConflicts(props, \"noRel\", \"rel\");\n const rel = firstNonUndefined(\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`rel=\"\"`)\n props.noRel ? \"\" : props.rel,\n options.externalRelAttribute,\n /*\n * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab.\n * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy.\n */\n isAbsoluteUrl.value || hasTarget.value ? \"noopener noreferrer\" : \"\"\n ) || null;\n if (props.custom) {\n if (!slots.default) {\n return null;\n }\n return slots.default({\n href: href.value,\n navigate,\n prefetch,\n get route() {\n if (!href.value) {\n return void 0;\n }\n const url = new URL(href.value, import.meta.client ? window.location.href : \"http://localhost\");\n return {\n path: url.pathname,\n fullPath: url.pathname,\n get query() {\n return parseQuery(url.search);\n },\n hash: url.hash,\n params: {},\n name: void 0,\n matched: [],\n redirectedFrom: void 0,\n meta: {},\n href: href.value\n };\n },\n rel,\n target,\n isExternal: isExternal.value || hasTarget.value,\n isActive: false,\n isExactActive: false\n });\n }\n return h(\"a\", { ref: el, href: href.value || null, rel, target }, slots.default?.());\n };\n }\n // }) as unknown as DefineComponent>\n });\n}\nexport default /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);\nfunction applyTrailingSlashBehavior(to, trailingSlash) {\n const normalizeFn = trailingSlash === \"append\" ? withTrailingSlash : withoutTrailingSlash;\n const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith(\"http\");\n if (hasProtocolDifferentFromHttp) {\n return to;\n }\n return normalizeFn(to, true);\n}\nfunction useObserver() {\n if (import.meta.server) {\n return;\n }\n const nuxtApp = useNuxtApp();\n if (nuxtApp._observer) {\n return nuxtApp._observer;\n }\n let observer = null;\n const callbacks = /* @__PURE__ */ new Map();\n const observe = (element, callback) => {\n observer ||= new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const callback2 = callbacks.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (isVisible && callback2) {\n callback2();\n }\n }\n });\n callbacks.set(element, callback);\n observer.observe(element);\n return () => {\n callbacks.delete(element);\n observer?.unobserve(element);\n if (callbacks.size === 0) {\n observer?.disconnect();\n observer = null;\n }\n };\n };\n const _observer = nuxtApp._observer = {\n observe\n };\n return _observer;\n}\nconst IS_2G_RE = /2g/;\nfunction isSlowConnection() {\n if (import.meta.server) {\n return;\n }\n const cn = navigator.connection;\n if (cn && (cn.saveData || IS_2G_RE.test(cn.effectiveType))) {\n return true;\n }\n return false;\n}\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-root.vue.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-root.vue.mjs new file mode 100644 index 0000000..564dddc --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-root.vue.mjs @@ -0,0 +1,60 @@ +import { provide, onErrorCaptured, onServerPrefetch, unref, createVNode, resolveDynamicComponent, useSSRContext } from "vue"; +import { ssrRenderSuspense, ssrRenderComponent, ssrRenderVNode } from "vue/server-renderer"; +import { useNuxtApp } from "../nuxt.mjs"; +import { useError, showError } from "../composables/error.mjs"; +import { useRoute } from "../composables/router.mjs"; +import { PageRouteSymbol } from "./injections.mjs"; +import AppComponent from "../../../../../app.vue.mjs"; +import _sfc_main$1 from "./nuxt-error-page.vue.mjs"; +const _sfc_main = { + __name: "nuxt-root", + __ssrInlineRender: true, + setup(__props) { + const IslandRenderer = () => null; + const nuxtApp = useNuxtApp(); + nuxtApp.deferHydration(); + nuxtApp.ssrContext.url; + const SingleRenderer = false; + provide(PageRouteSymbol, useRoute()); + nuxtApp.hooks.callHookWith((hooks) => hooks.map((hook) => hook()), "vue:setup"); + const error = useError(); + const abortRender = error.value && !nuxtApp.ssrContext.error; + onErrorCaptured((err, target, info) => { + nuxtApp.hooks.callHook("vue:error", err, target, info).catch((hookError) => console.error("[nuxt] Error in `vue:error` hook", hookError)); + { + const p = nuxtApp.runWithContext(() => showError(err)); + onServerPrefetch(() => p); + return false; + } + }); + const islandContext = nuxtApp.ssrContext.islandContext; + return (_ctx, _push, _parent, _attrs) => { + ssrRenderSuspense(_push, { + default: () => { + if (unref(abortRender)) { + _push(`
`); + } else if (unref(error)) { + _push(ssrRenderComponent(unref(_sfc_main$1), { error: unref(error) }, null, _parent)); + } else if (unref(islandContext)) { + _push(ssrRenderComponent(unref(IslandRenderer), { context: unref(islandContext) }, null, _parent)); + } else if (unref(SingleRenderer)) { + ssrRenderVNode(_push, createVNode(resolveDynamicComponent(unref(SingleRenderer)), null, null), _parent); + } else { + _push(ssrRenderComponent(unref(AppComponent), null, null, _parent)); + } + }, + _: 1 + }); + }; + } +}; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("node_modules/nuxt/dist/app/components/nuxt-root.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=nuxt-root.vue.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-root.vue.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-root.vue.mjs.map new file mode 100644 index 0000000..3c3b39a --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-root.vue.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"nuxt-root.vue.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/app/components/nuxt-root.vue"],"sourcesContent":["\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;AAWA,UAAM,iBAEF,MAAM;AAEV,UAAM,UAAU,WAAW;AACT,YAAQ,eAAe;AAMR,YAAQ,WAAW;AACpD,UAAM,iBAAiB;AAIf,YAAA,iBAAiB,UAAU;AAGnB,YAAQ,MAAM,aAAa,CAAA,UAAS,MAAM,IAAI,CAAQ,SAAA,KAAM,CAAA,GAAG,WAAW;AAM1F,UAAM,QAAQ,SAAS;AAEvB,UAAM,cAAoC,MAAM,SAAS,CAAC,QAAQ,WAAW;AAC7D,oBAAA,CAAC,KAAK,QAAQ,SAAS;AACrC,cAAQ,MAAM,SAAS,aAAa,KAAK,QAAQ,IAAI,EAAE,MAAM,CAAa,cAAA,QAAQ,MAAM,oCAAoC,SAAS,CAAC;AACxD;AAC5E,cAAM,IAAI,QAAQ,eAAe,MAAM,UAAU,GAAG,CAAC;AACrD,yBAAiB,MAAM,CAAC;AACjB,eAAA;AAAA,MAAA;AAAA,IACT,CACD;AAGK,UAAA,gBAAsC,QAAQ,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-root.vue.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-root.vue.mjs.map.json new file mode 100644 index 0000000..efabfb5 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/nuxt-root.vue.mjs.map.json @@ -0,0 +1 @@ +{"file":"nuxt-root.vue.mjs","mappings":";;;;;;;;;;;;AAWA,UAAM,iBAEF,MAAM;AAEV,UAAM,UAAU,WAAW;AACT,YAAQ,eAAe;AAMR,YAAQ,WAAW;AACpD,UAAM,iBAAiB;AAIf,YAAA,iBAAiB,UAAU;AAGnB,YAAQ,MAAM,aAAa,CAAA,UAAS,MAAM,IAAI,CAAQ,SAAA,KAAM,CAAA,GAAG,WAAW;AAM1F,UAAM,QAAQ,SAAS;AAEvB,UAAM,cAAoC,MAAM,SAAS,CAAC,QAAQ,WAAW;AAC7D,oBAAA,CAAC,KAAK,QAAQ,SAAS;AACrC,cAAQ,MAAM,SAAS,aAAa,KAAK,QAAQ,IAAI,EAAE,MAAM,CAAa,cAAA,QAAQ,MAAM,oCAAoC,SAAS,CAAC;AACxD;AAC5E,cAAM,IAAI,QAAQ,eAAe,MAAM,UAAU,GAAG,CAAC;AACrD,yBAAiB,MAAM,CAAC;AACjB,eAAA;AAAA,MAAA;AAAA,IACT,CACD;AAGK,UAAA,gBAAsC,QAAQ,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["../../../../../../../../node_modules/nuxt/dist/app/components/nuxt-root.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/route-provider.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/route-provider.mjs new file mode 100644 index 0000000..928863d --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/route-provider.mjs @@ -0,0 +1,39 @@ +import { defineComponent, provide, shallowReactive, h } from "vue"; +import { PageRouteSymbol } from "./injections.mjs"; +const defineRouteProvider = (name = "RouteProvider") => defineComponent({ + name, + props: { + vnode: { + type: Object, + required: true + }, + route: { + type: Object, + required: true + }, + vnodeRef: Object, + renderKey: String, + trackRootNodes: Boolean + }, + setup(props) { + const previousKey = props.renderKey; + const previousRoute = props.route; + const route = {}; + for (const key in props.route) { + Object.defineProperty(route, key, { + get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key], + enumerable: true + }); + } + provide(PageRouteSymbol, shallowReactive(route)); + return () => { + return h(props.vnode, { ref: props.vnodeRef }); + }; + } +}); +const RouteProvider = defineRouteProvider(); +export { + RouteProvider, + defineRouteProvider +}; +//# sourceMappingURL=route-provider.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/route-provider.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/route-provider.mjs.map new file mode 100644 index 0000000..b740a34 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/route-provider.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"route-provider.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/app/components/route-provider.js"],"sourcesContent":["import { defineComponent, h, nextTick, onMounted, provide, shallowReactive } from \"vue\";\nimport { PageRouteSymbol } from \"./injections.js\";\nexport const defineRouteProvider = (name = \"RouteProvider\") => defineComponent({\n name,\n props: {\n vnode: {\n type: Object,\n required: true\n },\n route: {\n type: Object,\n required: true\n },\n vnodeRef: Object,\n renderKey: String,\n trackRootNodes: Boolean\n },\n setup(props) {\n const previousKey = props.renderKey;\n const previousRoute = props.route;\n const route = {};\n for (const key in props.route) {\n Object.defineProperty(route, key, {\n get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key],\n enumerable: true\n });\n }\n provide(PageRouteSymbol, shallowReactive(route));\n let vnode;\n if (import.meta.dev && import.meta.client && props.trackRootNodes) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n const filename = (vnode?.type).__file;\n console.warn(`[nuxt] \\`${filename}\\` does not have a single root node and will cause errors when navigating between routes.`);\n }\n });\n });\n }\n return () => {\n if (import.meta.dev && import.meta.client) {\n vnode = h(props.vnode, { ref: props.vnodeRef });\n return vnode;\n }\n return h(props.vnode, { ref: props.vnodeRef });\n };\n }\n});\nexport const RouteProvider = defineRouteProvider();\n"],"names":[],"mappings":";;AAEY,MAAC,sBAAsB,CAAC,OAAO,oBAAoB,gBAAgB;AAAA,EAC7E;AAAA,EACA,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACD,UAAU;AAAA,IACV,WAAW;AAAA,IACX,gBAAgB;AAAA,EACjB;AAAA,EACD,MAAM,OAAO;AACX,UAAM,cAAc,MAAM;AAC1B,UAAM,gBAAgB,MAAM;AAC5B,UAAM,QAAQ,CAAE;AAChB,eAAW,OAAO,MAAM,OAAO;AAC7B,aAAO,eAAe,OAAO,KAAK;AAAA,QAChC,KAAK,MAAM,gBAAgB,MAAM,YAAY,MAAM,MAAM,GAAG,IAAI,cAAc,GAAG;AAAA,QACjF,YAAY;AAAA,MACpB,CAAO;AAAA,IACP;AACI,YAAQ,iBAAiB,gBAAgB,KAAK,CAAC;AAY/C,WAAO,MAAM;AAKX,aAAO,EAAE,MAAM,OAAO,EAAE,KAAK,MAAM,UAAU;AAAA,IAC9C;AAAA,EACL;AACA,CAAC;AACW,MAAC,gBAAgB,oBAAmB;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/route-provider.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/route-provider.mjs.map.json new file mode 100644 index 0000000..aecf547 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/route-provider.mjs.map.json @@ -0,0 +1 @@ +{"file":"route-provider.mjs","mappings":";;AAEY,MAAC,sBAAsB,CAAC,OAAO,oBAAoB,gBAAgB;AAAA,EAC7E;AAAA,EACA,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IACX;AAAA,IACD,UAAU;AAAA,IACV,WAAW;AAAA,IACX,gBAAgB;AAAA,EACjB;AAAA,EACD,MAAM,OAAO;AACX,UAAM,cAAc,MAAM;AAC1B,UAAM,gBAAgB,MAAM;AAC5B,UAAM,QAAQ,CAAE;AAChB,eAAW,OAAO,MAAM,OAAO;AAC7B,aAAO,eAAe,OAAO,KAAK;AAAA,QAChC,KAAK,MAAM,gBAAgB,MAAM,YAAY,MAAM,MAAM,GAAG,IAAI,cAAc,GAAG;AAAA,QACjF,YAAY;AAAA,MACpB,CAAO;AAAA,IACP;AACI,YAAQ,iBAAiB,gBAAgB,KAAK,CAAC;AAY/C,WAAO,MAAM;AAKX,aAAO,EAAE,MAAM,OAAO,EAAE,KAAK,MAAM,UAAU;AAAA,IAC9C;AAAA,EACL;AACA,CAAC;AACW,MAAC,gBAAgB,oBAAmB;","names":[],"sources":["../../../../../../../../node_modules/nuxt/dist/app/components/route-provider.js"],"sourcesContent":["import { defineComponent, h, nextTick, onMounted, provide, shallowReactive } from \"vue\";\nimport { PageRouteSymbol } from \"./injections.js\";\nexport const defineRouteProvider = (name = \"RouteProvider\") => defineComponent({\n name,\n props: {\n vnode: {\n type: Object,\n required: true\n },\n route: {\n type: Object,\n required: true\n },\n vnodeRef: Object,\n renderKey: String,\n trackRootNodes: Boolean\n },\n setup(props) {\n const previousKey = props.renderKey;\n const previousRoute = props.route;\n const route = {};\n for (const key in props.route) {\n Object.defineProperty(route, key, {\n get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key],\n enumerable: true\n });\n }\n provide(PageRouteSymbol, shallowReactive(route));\n let vnode;\n if (import.meta.dev && import.meta.client && props.trackRootNodes) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n const filename = (vnode?.type).__file;\n console.warn(`[nuxt] \\`${filename}\\` does not have a single root node and will cause errors when navigating between routes.`);\n }\n });\n });\n }\n return () => {\n if (import.meta.dev && import.meta.client) {\n vnode = h(props.vnode, { ref: props.vnodeRef });\n return vnode;\n }\n return h(props.vnode, { ref: props.vnodeRef });\n };\n }\n});\nexport const RouteProvider = defineRouteProvider();\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/utils.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/utils.mjs new file mode 100644 index 0000000..10ba2e6 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/utils.mjs @@ -0,0 +1,41 @@ +import "vue"; +import { START_LOCATION } from "vue-router"; +const _wrapInTransition = (props, children) => { + return { default: () => { + var _a; + return (_a = children.default) == null ? void 0 : _a.call(children); + } }; +}; +const ROUTE_KEY_PARENTHESES_RE = /(:\w+)\([^)]+\)/g; +const ROUTE_KEY_SYMBOLS_RE = /(:\w+)[?+*]/g; +const ROUTE_KEY_NORMAL_RE = /:\w+/g; +function generateRouteKey(route) { + const source = (route == null ? void 0 : route.meta.key) ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, "$1").replace(ROUTE_KEY_SYMBOLS_RE, "$1").replace(ROUTE_KEY_NORMAL_RE, (r) => { + var _a; + return ((_a = route.params[r.slice(1)]) == null ? void 0 : _a.toString()) || ""; + }); + return typeof source === "function" ? source(route) : source; +} +function isChangingPage(to, from) { + if (to === from || from === START_LOCATION) { + return false; + } + if (generateRouteKey(to) !== generateRouteKey(from)) { + return true; + } + const areComponentsSame = to.matched.every( + (comp, index) => { + var _a, _b; + return comp.components && comp.components.default === ((_b = (_a = from.matched[index]) == null ? void 0 : _a.components) == null ? void 0 : _b.default); + } + ); + if (areComponentsSame) { + return false; + } + return true; +} +export { + _wrapInTransition, + isChangingPage +}; +//# sourceMappingURL=utils.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/utils.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/utils.mjs.map new file mode 100644 index 0000000..d67f57b --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/utils.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/app/components/utils.js"],"sourcesContent":["import { Transition, createStaticVNode, h } from \"vue\";\nimport { isString, isPromise, isArray, isObject } from \"@vue/shared\";\nimport { START_LOCATION } from \"#build/pages\";\nexport const _wrapInTransition = (props, children) => {\n return { default: () => import.meta.client && props ? h(Transition, props === true ? {} : props, children) : children.default?.() };\n};\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nfunction generateRouteKey(route) {\n const source = route?.meta.key ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n return typeof source === \"function\" ? source(route) : source;\n}\nexport function isChangingPage(to, from) {\n if (to === from || from === START_LOCATION) {\n return false;\n }\n if (generateRouteKey(to) !== generateRouteKey(from)) {\n return true;\n }\n const areComponentsSame = to.matched.every(\n (comp, index) => comp.components && comp.components.default === from.matched[index]?.components?.default\n );\n if (areComponentsSame) {\n return false;\n }\n return true;\n}\nexport function createBuffer() {\n let appendable = false;\n const buffer = [];\n return {\n getBuffer() {\n return buffer;\n },\n push(item) {\n const isStringItem = isString(item);\n if (appendable && isStringItem) {\n buffer[buffer.length - 1] += item;\n } else {\n buffer.push(item);\n }\n appendable = isStringItem;\n if (isPromise(item) || isArray(item) && item.hasAsync) {\n buffer.hasAsync = true;\n }\n }\n };\n}\nexport function vforToArray(source) {\n if (isArray(source)) {\n return source;\n } else if (isString(source)) {\n return source.split(\"\");\n } else if (typeof source === \"number\") {\n if (import.meta.dev && !Number.isInteger(source)) {\n console.warn(`The v-for range expect an integer value but got ${source}.`);\n }\n const array = [];\n for (let i = 0; i < source; i++) {\n array[i] = i;\n }\n return array;\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n return Array.from(\n source,\n (item) => item\n );\n } else {\n const keys = Object.keys(source);\n const array = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n array[i] = source[key];\n }\n return array;\n }\n }\n return [];\n}\nexport function getFragmentHTML(element, withoutSlots = false) {\n if (element) {\n if (element.nodeName === \"#comment\" && element.nodeValue === \"[\") {\n return getFragmentChildren(element, [], withoutSlots);\n }\n if (withoutSlots) {\n const clone = element.cloneNode(true);\n clone.querySelectorAll(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n return [clone.outerHTML];\n }\n return [element.outerHTML];\n }\n}\nfunction getFragmentChildren(element, blocks = [], withoutSlots = false) {\n if (element && element.nodeName) {\n if (isEndFragment(element)) {\n return blocks;\n } else if (!isStartFragment(element)) {\n const clone = element.cloneNode(true);\n if (withoutSlots) {\n clone.querySelectorAll(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n }\n blocks.push(clone.outerHTML);\n }\n getFragmentChildren(element.nextSibling, blocks, withoutSlots);\n }\n return blocks;\n}\nexport function elToStaticVNode(el, staticNodeFallback) {\n const fragment = el ? getFragmentHTML(el) : staticNodeFallback ? [staticNodeFallback] : void 0;\n if (fragment) {\n return createStaticVNode(fragment.join(\"\"), fragment.length);\n }\n return h(\"div\");\n}\nfunction isStartFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"[\";\n}\nfunction isEndFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"]\";\n}\n"],"names":[],"mappings":";;AAGY,MAAC,oBAAoB,CAAC,OAAO,aAAa;AACpD,SAAO,EAAE,SAAS;;AAA2F,0BAAS,YAAT;AAAA,IAAsB;AACrI;AACA,MAAM,2BAA2B;AACjC,MAAM,uBAAuB;AAC7B,MAAM,sBAAsB;AAC5B,SAAS,iBAAiB,OAAO;AAC/B,QAAM,UAAS,+BAAO,KAAK,QAAO,MAAM,KAAK,QAAQ,0BAA0B,IAAI,EAAE,QAAQ,sBAAsB,IAAI,EAAE,QAAQ,qBAAqB,CAAC,MAAC;;AAAK,wBAAM,OAAO,EAAE,MAAM,CAAC,CAAC,MAAvB,mBAA0B,eAAc;AAAA,GAAE;AACvM,SAAO,OAAO,WAAW,aAAa,OAAO,KAAK,IAAI;AACxD;AACO,SAAS,eAAe,IAAI,MAAM;AACvC,MAAI,OAAO,QAAQ,SAAS,gBAAgB;AAC1C,WAAO;AAAA,EACX;AACE,MAAI,iBAAiB,EAAE,MAAM,iBAAiB,IAAI,GAAG;AACnD,WAAO;AAAA,EACX;AACE,QAAM,oBAAoB,GAAG,QAAQ;AAAA,IACnC,CAAC,MAAM;;AAAU,kBAAK,cAAc,KAAK,WAAW,cAAY,gBAAK,QAAQ,KAAK,MAAlB,mBAAqB,eAArB,mBAAiC;AAAA;AAAA,EAClG;AACD,MAAI,mBAAmB;AACrB,WAAO;AAAA,EACX;AACE,SAAO;AACT;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/components/utils.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/utils.mjs.map.json new file mode 100644 index 0000000..ae5e991 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/components/utils.mjs.map.json @@ -0,0 +1 @@ +{"file":"utils.mjs","mappings":";;AAGY,MAAC,oBAAoB,CAAC,OAAO,aAAa;AACpD,SAAO,EAAE,SAAS;;AAA2F,0BAAS,YAAT;AAAA,IAAsB;AACrI;AACA,MAAM,2BAA2B;AACjC,MAAM,uBAAuB;AAC7B,MAAM,sBAAsB;AAC5B,SAAS,iBAAiB,OAAO;AAC/B,QAAM,UAAS,+BAAO,KAAK,QAAO,MAAM,KAAK,QAAQ,0BAA0B,IAAI,EAAE,QAAQ,sBAAsB,IAAI,EAAE,QAAQ,qBAAqB,CAAC,MAAC;;AAAK,wBAAM,OAAO,EAAE,MAAM,CAAC,CAAC,MAAvB,mBAA0B,eAAc;AAAA,GAAE;AACvM,SAAO,OAAO,WAAW,aAAa,OAAO,KAAK,IAAI;AACxD;AACO,SAAS,eAAe,IAAI,MAAM;AACvC,MAAI,OAAO,QAAQ,SAAS,gBAAgB;AAC1C,WAAO;AAAA,EACX;AACE,MAAI,iBAAiB,EAAE,MAAM,iBAAiB,IAAI,GAAG;AACnD,WAAO;AAAA,EACX;AACE,QAAM,oBAAoB,GAAG,QAAQ;AAAA,IACnC,CAAC,MAAM;;AAAU,kBAAK,cAAc,KAAK,WAAW,cAAY,gBAAK,QAAQ,KAAK,MAAlB,mBAAqB,eAArB,mBAAiC;AAAA;AAAA,EAClG;AACD,MAAI,mBAAmB;AACrB,WAAO;AAAA,EACX;AACE,SAAO;AACT;","names":[],"sources":["../../../../../../../../node_modules/nuxt/dist/app/components/utils.js"],"sourcesContent":["import { Transition, createStaticVNode, h } from \"vue\";\nimport { isString, isPromise, isArray, isObject } from \"@vue/shared\";\nimport { START_LOCATION } from \"#build/pages\";\nexport const _wrapInTransition = (props, children) => {\n return { default: () => import.meta.client && props ? h(Transition, props === true ? {} : props, children) : children.default?.() };\n};\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nfunction generateRouteKey(route) {\n const source = route?.meta.key ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n return typeof source === \"function\" ? source(route) : source;\n}\nexport function isChangingPage(to, from) {\n if (to === from || from === START_LOCATION) {\n return false;\n }\n if (generateRouteKey(to) !== generateRouteKey(from)) {\n return true;\n }\n const areComponentsSame = to.matched.every(\n (comp, index) => comp.components && comp.components.default === from.matched[index]?.components?.default\n );\n if (areComponentsSame) {\n return false;\n }\n return true;\n}\nexport function createBuffer() {\n let appendable = false;\n const buffer = [];\n return {\n getBuffer() {\n return buffer;\n },\n push(item) {\n const isStringItem = isString(item);\n if (appendable && isStringItem) {\n buffer[buffer.length - 1] += item;\n } else {\n buffer.push(item);\n }\n appendable = isStringItem;\n if (isPromise(item) || isArray(item) && item.hasAsync) {\n buffer.hasAsync = true;\n }\n }\n };\n}\nexport function vforToArray(source) {\n if (isArray(source)) {\n return source;\n } else if (isString(source)) {\n return source.split(\"\");\n } else if (typeof source === \"number\") {\n if (import.meta.dev && !Number.isInteger(source)) {\n console.warn(`The v-for range expect an integer value but got ${source}.`);\n }\n const array = [];\n for (let i = 0; i < source; i++) {\n array[i] = i;\n }\n return array;\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n return Array.from(\n source,\n (item) => item\n );\n } else {\n const keys = Object.keys(source);\n const array = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n array[i] = source[key];\n }\n return array;\n }\n }\n return [];\n}\nexport function getFragmentHTML(element, withoutSlots = false) {\n if (element) {\n if (element.nodeName === \"#comment\" && element.nodeValue === \"[\") {\n return getFragmentChildren(element, [], withoutSlots);\n }\n if (withoutSlots) {\n const clone = element.cloneNode(true);\n clone.querySelectorAll(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n return [clone.outerHTML];\n }\n return [element.outerHTML];\n }\n}\nfunction getFragmentChildren(element, blocks = [], withoutSlots = false) {\n if (element && element.nodeName) {\n if (isEndFragment(element)) {\n return blocks;\n } else if (!isStartFragment(element)) {\n const clone = element.cloneNode(true);\n if (withoutSlots) {\n clone.querySelectorAll(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n }\n blocks.push(clone.outerHTML);\n }\n getFragmentChildren(element.nextSibling, blocks, withoutSlots);\n }\n return blocks;\n}\nexport function elToStaticVNode(el, staticNodeFallback) {\n const fragment = el ? getFragmentHTML(el) : staticNodeFallback ? [staticNodeFallback] : void 0;\n if (fragment) {\n return createStaticVNode(fragment.join(\"\"), fragment.length);\n }\n return h(\"div\");\n}\nfunction isStartFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"[\";\n}\nfunction isEndFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"]\";\n}\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/error.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/error.mjs new file mode 100644 index 0000000..a379897 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/error.mjs @@ -0,0 +1,35 @@ +import { createError as createError$1 } from "D:/doc/workspace/web3/node_modules/h3/dist/index.mjs"; +import { toRef } from "vue"; +import { useNuxtApp } from "../nuxt.mjs"; +const NUXT_ERROR_SIGNATURE = "__nuxt_error"; +const useError = () => toRef(useNuxtApp().payload, "error"); +const showError = (error) => { + const nuxtError = createError(error); + try { + const nuxtApp = useNuxtApp(); + const error2 = useError(); + if (false) ; + error2.value || (error2.value = nuxtError); + } catch { + throw nuxtError; + } + return nuxtError; +}; +const isNuxtError = (error) => !!error && typeof error === "object" && NUXT_ERROR_SIGNATURE in error; +const createError = (error) => { + const nuxtError = createError$1(error); + Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, { + value: true, + configurable: false, + writable: false + }); + return nuxtError; +}; +export { + NUXT_ERROR_SIGNATURE, + createError, + isNuxtError, + showError, + useError +}; +//# sourceMappingURL=error.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/error.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/error.mjs.map new file mode 100644 index 0000000..363312d --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/error.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"error.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/app/composables/error.js"],"sourcesContent":["import { createError as createH3Error } from \"h3\";\nimport { toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { useRouter } from \"./router.js\";\nimport { nuxtDefaultErrorValue } from \"#build/nuxt.config.mjs\";\nexport const NUXT_ERROR_SIGNATURE = \"__nuxt_error\";\nexport const useError = () => toRef(useNuxtApp().payload, \"error\");\nexport const showError = (error) => {\n const nuxtError = createError(error);\n try {\n const nuxtApp = useNuxtApp();\n const error2 = useError();\n if (import.meta.client) {\n nuxtApp.hooks.callHook(\"app:error\", nuxtError);\n }\n error2.value ||= nuxtError;\n } catch {\n throw nuxtError;\n }\n return nuxtError;\n};\nexport const clearError = async (options = {}) => {\n const nuxtApp = useNuxtApp();\n const error = useError();\n nuxtApp.callHook(\"app:error:cleared\", options);\n if (options.redirect) {\n await useRouter().replace(options.redirect);\n }\n error.value = nuxtDefaultErrorValue;\n};\nexport const isNuxtError = (error) => !!error && typeof error === \"object\" && NUXT_ERROR_SIGNATURE in error;\nexport const createError = (error) => {\n const nuxtError = createH3Error(error);\n Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, {\n value: true,\n configurable: false,\n writable: false\n });\n return nuxtError;\n};\n"],"names":["createH3Error"],"mappings":";;;AAKY,MAAC,uBAAuB;AACxB,MAAC,WAAW,MAAM,MAAM,WAAY,EAAC,SAAS,OAAO;AACrD,MAAC,YAAY,CAAC,UAAU;AAClC,QAAM,YAAY,YAAY,KAAK;AACnC,MAAI;AACF,UAAM,UAAU,WAAY;AAC5B,UAAM,SAAS,SAAU;AACzB,QAAI,MAAoB;AAGxB,WAAO,UAAP,OAAO,QAAU;AAAA,EACrB,QAAU;AACN,UAAM;AAAA,EACV;AACE,SAAO;AACT;AAUY,MAAC,cAAc,CAAC,UAAU,CAAC,CAAC,SAAS,OAAO,UAAU,YAAY,wBAAwB;AAC1F,MAAC,cAAc,CAAC,UAAU;AACpC,QAAM,YAAYA,cAAc,KAAK;AACrC,SAAO,eAAe,WAAW,sBAAsB;AAAA,IACrD,OAAO;AAAA,IACP,cAAc;AAAA,IACd,UAAU;AAAA,EACd,CAAG;AACD,SAAO;AACT;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/error.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/error.mjs.map.json new file mode 100644 index 0000000..2201f25 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/error.mjs.map.json @@ -0,0 +1 @@ +{"file":"error.mjs","mappings":";;;AAKY,MAAC,uBAAuB;AACxB,MAAC,WAAW,MAAM,MAAM,WAAY,EAAC,SAAS,OAAO;AACrD,MAAC,YAAY,CAAC,UAAU;AAClC,QAAM,YAAY,YAAY,KAAK;AACnC,MAAI;AACF,UAAM,UAAU,WAAY;AAC5B,UAAM,SAAS,SAAU;AACzB,QAAI,MAAoB;AAGxB,WAAO,UAAP,OAAO,QAAU;AAAA,EACrB,QAAU;AACN,UAAM;AAAA,EACV;AACE,SAAO;AACT;AAUY,MAAC,cAAc,CAAC,UAAU,CAAC,CAAC,SAAS,OAAO,UAAU,YAAY,wBAAwB;AAC1F,MAAC,cAAc,CAAC,UAAU;AACpC,QAAM,YAAYA,cAAc,KAAK;AACrC,SAAO,eAAe,WAAW,sBAAsB;AAAA,IACrD,OAAO;AAAA,IACP,cAAc;AAAA,IACd,UAAU;AAAA,EACd,CAAG;AACD,SAAO;AACT;","names":["createH3Error"],"sources":["../../../../../../../../node_modules/nuxt/dist/app/composables/error.js"],"sourcesContent":["import { createError as createH3Error } from \"h3\";\nimport { toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { useRouter } from \"./router.js\";\nimport { nuxtDefaultErrorValue } from \"#build/nuxt.config.mjs\";\nexport const NUXT_ERROR_SIGNATURE = \"__nuxt_error\";\nexport const useError = () => toRef(useNuxtApp().payload, \"error\");\nexport const showError = (error) => {\n const nuxtError = createError(error);\n try {\n const nuxtApp = useNuxtApp();\n const error2 = useError();\n if (import.meta.client) {\n nuxtApp.hooks.callHook(\"app:error\", nuxtError);\n }\n error2.value ||= nuxtError;\n } catch {\n throw nuxtError;\n }\n return nuxtError;\n};\nexport const clearError = async (options = {}) => {\n const nuxtApp = useNuxtApp();\n const error = useError();\n nuxtApp.callHook(\"app:error:cleared\", options);\n if (options.redirect) {\n await useRouter().replace(options.redirect);\n }\n error.value = nuxtDefaultErrorValue;\n};\nexport const isNuxtError = (error) => !!error && typeof error === \"object\" && NUXT_ERROR_SIGNATURE in error;\nexport const createError = (error) => {\n const nuxtError = createH3Error(error);\n Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, {\n value: true,\n configurable: false,\n writable: false\n });\n return nuxtError;\n};\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/manifest.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/manifest.mjs new file mode 100644 index 0000000..b5a852c --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/manifest.mjs @@ -0,0 +1,18 @@ +import { toRouteMatcher, createRouter } from "D:/doc/workspace/web3/node_modules/radix3/dist/index.mjs"; +import { defu } from "D:/doc/workspace/web3/node_modules/defu/dist/defu.mjs"; +import { useNuxtApp, useRuntimeConfig } from "../nuxt.mjs"; +import "#internal/nuxt/paths"; +async function getRouteRules(arg) { + const path = typeof arg === "string" ? arg : arg.path; + { + useNuxtApp().ssrContext._preloadManifest = true; + const _routeRulesMatcher = toRouteMatcher( + createRouter({ routes: useRuntimeConfig().nitro.routeRules }) + ); + return defu({}, ..._routeRulesMatcher.matchAll(path).reverse()); + } +} +export { + getRouteRules +}; +//# sourceMappingURL=manifest.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/manifest.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/manifest.mjs.map new file mode 100644 index 0000000..9376329 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/manifest.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"manifest.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/app/composables/manifest.js"],"sourcesContent":["import { createMatcherFromExport, createRouter as createRadixRouter, toRouteMatcher } from \"radix3\";\nimport { defu } from \"defu\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { appManifest as isAppManifestEnabled } from \"#build/nuxt.config.mjs\";\nimport { buildAssetsURL } from \"#internal/nuxt/paths\";\nlet manifest;\nlet matcher;\nfunction fetchManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n if (import.meta.server) {\n manifest = import(\"#app-manifest\");\n } else {\n manifest = $fetch(buildAssetsURL(`builds/meta/${useRuntimeConfig().app.buildId}.json`), {\n responseType: \"json\"\n });\n }\n manifest.then((m) => {\n matcher = createMatcherFromExport(m.matcher);\n }).catch((e) => {\n console.error(\"[nuxt] Error fetching app manifest.\", e);\n });\n return manifest;\n}\nexport function getAppManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n if (import.meta.server) {\n useNuxtApp().ssrContext._preloadManifest = true;\n }\n return manifest || fetchManifest();\n}\nexport async function getRouteRules(arg) {\n const path = typeof arg === \"string\" ? arg : arg.path;\n if (import.meta.server) {\n useNuxtApp().ssrContext._preloadManifest = true;\n const _routeRulesMatcher = toRouteMatcher(\n createRadixRouter({ routes: useRuntimeConfig().nitro.routeRules })\n );\n return defu({}, ..._routeRulesMatcher.matchAll(path).reverse());\n }\n await getAppManifest();\n if (!matcher) {\n console.error(\"[nuxt] Error creating app manifest matcher.\", matcher);\n return {};\n }\n try {\n return defu({}, ...matcher.matchAll(path).reverse());\n } catch (e) {\n console.error(\"[nuxt] Error matching route rules.\", e);\n return {};\n }\n}\n"],"names":["createRadixRouter"],"mappings":";;;;AAkCO,eAAe,cAAc,KAAK;AACvC,QAAM,OAAO,OAAO,QAAQ,WAAW,MAAM,IAAI;AACzB;AACtB,eAAY,EAAC,WAAW,mBAAmB;AAC3C,UAAM,qBAAqB;AAAA,MACzBA,aAAkB,EAAE,QAAQ,iBAAgB,EAAG,MAAM,WAAY,CAAA;AAAA,IAClE;AACD,WAAO,KAAK,CAAA,GAAI,GAAG,mBAAmB,SAAS,IAAI,EAAE,SAAS;AAAA,EAClE;AAYA;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/manifest.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/manifest.mjs.map.json new file mode 100644 index 0000000..abc810a --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/manifest.mjs.map.json @@ -0,0 +1 @@ +{"file":"manifest.mjs","mappings":";;;;AAkCO,eAAe,cAAc,KAAK;AACvC,QAAM,OAAO,OAAO,QAAQ,WAAW,MAAM,IAAI;AACzB;AACtB,eAAY,EAAC,WAAW,mBAAmB;AAC3C,UAAM,qBAAqB;AAAA,MACzBA,aAAkB,EAAE,QAAQ,iBAAgB,EAAG,MAAM,WAAY,CAAA;AAAA,IAClE;AACD,WAAO,KAAK,CAAA,GAAI,GAAG,mBAAmB,SAAS,IAAI,EAAE,SAAS;AAAA,EAClE;AAYA;","names":["createRadixRouter"],"sources":["../../../../../../../../node_modules/nuxt/dist/app/composables/manifest.js"],"sourcesContent":["import { createMatcherFromExport, createRouter as createRadixRouter, toRouteMatcher } from \"radix3\";\nimport { defu } from \"defu\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { appManifest as isAppManifestEnabled } from \"#build/nuxt.config.mjs\";\nimport { buildAssetsURL } from \"#internal/nuxt/paths\";\nlet manifest;\nlet matcher;\nfunction fetchManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n if (import.meta.server) {\n manifest = import(\"#app-manifest\");\n } else {\n manifest = $fetch(buildAssetsURL(`builds/meta/${useRuntimeConfig().app.buildId}.json`), {\n responseType: \"json\"\n });\n }\n manifest.then((m) => {\n matcher = createMatcherFromExport(m.matcher);\n }).catch((e) => {\n console.error(\"[nuxt] Error fetching app manifest.\", e);\n });\n return manifest;\n}\nexport function getAppManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n if (import.meta.server) {\n useNuxtApp().ssrContext._preloadManifest = true;\n }\n return manifest || fetchManifest();\n}\nexport async function getRouteRules(arg) {\n const path = typeof arg === \"string\" ? arg : arg.path;\n if (import.meta.server) {\n useNuxtApp().ssrContext._preloadManifest = true;\n const _routeRulesMatcher = toRouteMatcher(\n createRadixRouter({ routes: useRuntimeConfig().nitro.routeRules })\n );\n return defu({}, ..._routeRulesMatcher.matchAll(path).reverse());\n }\n await getAppManifest();\n if (!matcher) {\n console.error(\"[nuxt] Error creating app manifest matcher.\", matcher);\n return {};\n }\n try {\n return defu({}, ...matcher.matchAll(path).reverse());\n } catch (e) {\n console.error(\"[nuxt] Error matching route rules.\", e);\n return {};\n }\n}\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/payload.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/payload.mjs new file mode 100644 index 0000000..2e942bd --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/payload.mjs @@ -0,0 +1,13 @@ +import "vue"; +import { useNuxtApp } from "../nuxt.mjs"; +import "D:/doc/workspace/web3/node_modules/defu/dist/defu.mjs"; +import "#internal/nuxt/paths"; +function definePayloadReducer(name, reduce) { + { + useNuxtApp().ssrContext._payloadReducers[name] = reduce; + } +} +export { + definePayloadReducer +}; +//# sourceMappingURL=payload.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/payload.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/payload.mjs.map new file mode 100644 index 0000000..32d40c9 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/payload.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"payload.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/app/composables/payload.js"],"sourcesContent":["import { hasProtocol, joinURL, withoutTrailingSlash } from \"ufo\";\nimport { parse } from \"devalue\";\nimport { getCurrentInstance, onServerPrefetch, reactive } from \"vue\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { useHead } from \"./head.js\";\nimport { useRoute } from \"./router.js\";\nimport { getAppManifest, getRouteRules } from \"./manifest.js\";\nimport { appId, appManifest, multiApp, payloadExtraction, renderJsonPayloads } from \"#build/nuxt.config.mjs\";\nexport async function loadPayload(url, opts = {}) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n const shouldLoadPayload = await isPrerendered(url);\n if (!shouldLoadPayload) {\n return null;\n }\n const payloadURL = await _getPayloadURL(url, opts);\n return await _importPayload(payloadURL) || null;\n}\nlet linkRelType;\nfunction detectLinkRelType() {\n if (import.meta.server) {\n return \"preload\";\n }\n if (linkRelType) {\n return linkRelType;\n }\n const relList = document.createElement(\"link\").relList;\n linkRelType = relList && relList.supports && relList.supports(\"prefetch\") ? \"prefetch\" : \"preload\";\n return linkRelType;\n}\nexport function preloadPayload(url, opts = {}) {\n const nuxtApp = useNuxtApp();\n const promise = _getPayloadURL(url, opts).then((payloadURL) => {\n const link = renderJsonPayloads ? { rel: detectLinkRelType(), as: \"fetch\", crossorigin: \"anonymous\", href: payloadURL } : { rel: \"modulepreload\", crossorigin: \"\", href: payloadURL };\n if (import.meta.server) {\n nuxtApp.runWithContext(() => useHead({ link: [link] }));\n } else {\n const linkEl = document.createElement(\"link\");\n for (const key of Object.keys(link)) {\n linkEl[key === \"crossorigin\" ? \"crossOrigin\" : key] = link[key];\n }\n document.head.appendChild(linkEl);\n return new Promise((resolve, reject) => {\n linkEl.addEventListener(\"load\", () => resolve());\n linkEl.addEventListener(\"error\", () => reject());\n });\n }\n });\n if (import.meta.server) {\n onServerPrefetch(() => promise);\n }\n return promise;\n}\nconst filename = renderJsonPayloads ? \"_payload.json\" : \"_payload.js\";\nasync function _getPayloadURL(url, opts = {}) {\n const u = new URL(url, \"http://localhost\");\n if (u.host !== \"localhost\" || hasProtocol(u.pathname, { acceptRelative: true })) {\n throw new Error(\"Payload URL must not include hostname: \" + url);\n }\n const config = useRuntimeConfig();\n const hash = opts.hash || (opts.fresh ? Date.now() : config.app.buildId);\n const cdnURL = config.app.cdnURL;\n const baseOrCdnURL = cdnURL && await isPrerendered(url) ? cdnURL : config.app.baseURL;\n return joinURL(baseOrCdnURL, u.pathname, filename + (hash ? `?${hash}` : \"\"));\n}\nasync function _importPayload(payloadURL) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n const payloadPromise = renderJsonPayloads ? fetch(payloadURL, { cache: \"force-cache\" }).then((res) => res.text().then(parsePayload)) : import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n payloadURL\n ).then((r) => r.default || r);\n try {\n return await payloadPromise;\n } catch (err) {\n console.warn(\"[nuxt] Cannot load payload \", payloadURL, err);\n }\n return null;\n}\nexport async function isPrerendered(url = useRoute().path) {\n const nuxtApp = useNuxtApp();\n if (!appManifest) {\n return !!nuxtApp.payload.prerenderedAt;\n }\n url = withoutTrailingSlash(url);\n const manifest = await getAppManifest();\n if (manifest.prerendered.includes(url)) {\n return true;\n }\n return nuxtApp.runWithContext(async () => {\n const rules = await getRouteRules({ path: url });\n return !!rules.prerender && !rules.redirect;\n });\n}\nlet payloadCache = null;\nexport async function getNuxtClientPayload() {\n if (import.meta.server) {\n return null;\n }\n if (payloadCache) {\n return payloadCache;\n }\n const el = multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\");\n if (!el) {\n return {};\n }\n const inlineData = await parsePayload(el.textContent || \"\");\n const externalData = el.dataset.src ? await _importPayload(el.dataset.src) : void 0;\n payloadCache = {\n ...inlineData,\n ...externalData,\n ...multiApp ? window.__NUXT__?.[appId] : window.__NUXT__\n };\n if (payloadCache.config?.public) {\n payloadCache.config.public = reactive(payloadCache.config.public);\n }\n return payloadCache;\n}\nexport async function parsePayload(payload) {\n return await parse(payload, useNuxtApp()._payloadRevivers);\n}\nexport function definePayloadReducer(name, reduce) {\n if (import.meta.server) {\n useNuxtApp().ssrContext._payloadReducers[name] = reduce;\n }\n}\nexport function definePayloadReviver(name, revive) {\n if (import.meta.dev && getCurrentInstance()) {\n console.warn(\"[nuxt] [definePayloadReviver] This function must be called in a Nuxt plugin that is `unshift`ed to the beginning of the Nuxt plugins array.\");\n }\n if (import.meta.client) {\n useNuxtApp()._payloadRevivers[name] = revive;\n }\n}\n"],"names":[],"mappings":";;;;AA4HgB,SAAA,qBAAqB,MAAM,QAAQ;AACzB;AACtB,eAAa,EAAA,WAAW,iBAAiB,IAAI,IAAI;AAAA,EAAA;AAErD;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/payload.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/payload.mjs.map.json new file mode 100644 index 0000000..6ce6b66 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/payload.mjs.map.json @@ -0,0 +1 @@ +{"file":"payload.mjs","mappings":";;;;AA4HgB,SAAA,qBAAqB,MAAM,QAAQ;AACzB;AACtB,eAAa,EAAA,WAAW,iBAAiB,IAAI,IAAI;AAAA,EAAA;AAErD;","names":[],"sources":["../../../../../../../../node_modules/nuxt/dist/app/composables/payload.js"],"sourcesContent":["import { hasProtocol, joinURL, withoutTrailingSlash } from \"ufo\";\nimport { parse } from \"devalue\";\nimport { getCurrentInstance, onServerPrefetch, reactive } from \"vue\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { useHead } from \"./head.js\";\nimport { useRoute } from \"./router.js\";\nimport { getAppManifest, getRouteRules } from \"./manifest.js\";\nimport { appId, appManifest, multiApp, payloadExtraction, renderJsonPayloads } from \"#build/nuxt.config.mjs\";\nexport async function loadPayload(url, opts = {}) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n const shouldLoadPayload = await isPrerendered(url);\n if (!shouldLoadPayload) {\n return null;\n }\n const payloadURL = await _getPayloadURL(url, opts);\n return await _importPayload(payloadURL) || null;\n}\nlet linkRelType;\nfunction detectLinkRelType() {\n if (import.meta.server) {\n return \"preload\";\n }\n if (linkRelType) {\n return linkRelType;\n }\n const relList = document.createElement(\"link\").relList;\n linkRelType = relList && relList.supports && relList.supports(\"prefetch\") ? \"prefetch\" : \"preload\";\n return linkRelType;\n}\nexport function preloadPayload(url, opts = {}) {\n const nuxtApp = useNuxtApp();\n const promise = _getPayloadURL(url, opts).then((payloadURL) => {\n const link = renderJsonPayloads ? { rel: detectLinkRelType(), as: \"fetch\", crossorigin: \"anonymous\", href: payloadURL } : { rel: \"modulepreload\", crossorigin: \"\", href: payloadURL };\n if (import.meta.server) {\n nuxtApp.runWithContext(() => useHead({ link: [link] }));\n } else {\n const linkEl = document.createElement(\"link\");\n for (const key of Object.keys(link)) {\n linkEl[key === \"crossorigin\" ? \"crossOrigin\" : key] = link[key];\n }\n document.head.appendChild(linkEl);\n return new Promise((resolve, reject) => {\n linkEl.addEventListener(\"load\", () => resolve());\n linkEl.addEventListener(\"error\", () => reject());\n });\n }\n });\n if (import.meta.server) {\n onServerPrefetch(() => promise);\n }\n return promise;\n}\nconst filename = renderJsonPayloads ? \"_payload.json\" : \"_payload.js\";\nasync function _getPayloadURL(url, opts = {}) {\n const u = new URL(url, \"http://localhost\");\n if (u.host !== \"localhost\" || hasProtocol(u.pathname, { acceptRelative: true })) {\n throw new Error(\"Payload URL must not include hostname: \" + url);\n }\n const config = useRuntimeConfig();\n const hash = opts.hash || (opts.fresh ? Date.now() : config.app.buildId);\n const cdnURL = config.app.cdnURL;\n const baseOrCdnURL = cdnURL && await isPrerendered(url) ? cdnURL : config.app.baseURL;\n return joinURL(baseOrCdnURL, u.pathname, filename + (hash ? `?${hash}` : \"\"));\n}\nasync function _importPayload(payloadURL) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n const payloadPromise = renderJsonPayloads ? fetch(payloadURL, { cache: \"force-cache\" }).then((res) => res.text().then(parsePayload)) : import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n payloadURL\n ).then((r) => r.default || r);\n try {\n return await payloadPromise;\n } catch (err) {\n console.warn(\"[nuxt] Cannot load payload \", payloadURL, err);\n }\n return null;\n}\nexport async function isPrerendered(url = useRoute().path) {\n const nuxtApp = useNuxtApp();\n if (!appManifest) {\n return !!nuxtApp.payload.prerenderedAt;\n }\n url = withoutTrailingSlash(url);\n const manifest = await getAppManifest();\n if (manifest.prerendered.includes(url)) {\n return true;\n }\n return nuxtApp.runWithContext(async () => {\n const rules = await getRouteRules({ path: url });\n return !!rules.prerender && !rules.redirect;\n });\n}\nlet payloadCache = null;\nexport async function getNuxtClientPayload() {\n if (import.meta.server) {\n return null;\n }\n if (payloadCache) {\n return payloadCache;\n }\n const el = multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\");\n if (!el) {\n return {};\n }\n const inlineData = await parsePayload(el.textContent || \"\");\n const externalData = el.dataset.src ? await _importPayload(el.dataset.src) : void 0;\n payloadCache = {\n ...inlineData,\n ...externalData,\n ...multiApp ? window.__NUXT__?.[appId] : window.__NUXT__\n };\n if (payloadCache.config?.public) {\n payloadCache.config.public = reactive(payloadCache.config.public);\n }\n return payloadCache;\n}\nexport async function parsePayload(payload) {\n return await parse(payload, useNuxtApp()._payloadRevivers);\n}\nexport function definePayloadReducer(name, reduce) {\n if (import.meta.server) {\n useNuxtApp().ssrContext._payloadReducers[name] = reduce;\n }\n}\nexport function definePayloadReviver(name, revive) {\n if (import.meta.dev && getCurrentInstance()) {\n console.warn(\"[nuxt] [definePayloadReviver] This function must be called in a Nuxt plugin that is `unshift`ed to the beginning of the Nuxt plugins array.\");\n }\n if (import.meta.client) {\n useNuxtApp()._payloadRevivers[name] = revive;\n }\n}\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/router.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/router.mjs new file mode 100644 index 0000000..a5739d7 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/router.mjs @@ -0,0 +1,112 @@ +import { hasInjectionContext, inject } from "vue"; +import { sanitizeStatusCode } from "D:/doc/workspace/web3/node_modules/h3/dist/index.mjs"; +import { hasProtocol, joinURL, withQuery, isScriptProtocol } from "D:/doc/workspace/web3/node_modules/ufo/dist/index.mjs"; +import { useNuxtApp, useRuntimeConfig } from "../nuxt.mjs"; +import { PageRouteSymbol } from "../components/injections.mjs"; +const useRouter = () => { + var _a; + return (_a = useNuxtApp()) == null ? void 0 : _a.$router; +}; +const useRoute = () => { + if (hasInjectionContext()) { + return inject(PageRouteSymbol, useNuxtApp()._route); + } + return useNuxtApp()._route; +}; +// @__NO_SIDE_EFFECTS__ +function defineNuxtRouteMiddleware(middleware) { + return middleware; +} +const isProcessingMiddleware = () => { + try { + if (useNuxtApp()._processingMiddleware) { + return true; + } + } catch { + return false; + } + return false; +}; +const URL_QUOTE_RE = /"/g; +const navigateTo = (to, options) => { + to || (to = "/"); + const toPath = typeof to === "string" ? to : "path" in to ? resolveRouteObject(to) : useRouter().resolve(to).href; + const isExternalHost = hasProtocol(toPath, { acceptRelative: true }); + const isExternal = (options == null ? void 0 : options.external) || isExternalHost; + if (isExternal) { + if (!(options == null ? void 0 : options.external)) { + throw new Error("Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`."); + } + const { protocol } = new URL(toPath, "http://localhost"); + if (protocol && isScriptProtocol(protocol)) { + throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`); + } + } + const inMiddleware = isProcessingMiddleware(); + const router = useRouter(); + const nuxtApp = useNuxtApp(); + { + if (nuxtApp.ssrContext) { + const fullPath = typeof to === "string" || isExternal ? toPath : router.resolve(to).fullPath || "/"; + const location2 = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath); + const redirect = async function(response) { + await nuxtApp.callHook("app:redirected"); + const encodedLoc = location2.replace(URL_QUOTE_RE, "%22"); + const encodedHeader = encodeURL(location2, isExternalHost); + nuxtApp.ssrContext._renderResponse = { + statusCode: sanitizeStatusCode((options == null ? void 0 : options.redirectCode) || 302, 302), + body: ``, + headers: { location: encodedHeader } + }; + return response; + }; + if (!isExternal && inMiddleware) { + router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0); + return to; + } + return redirect(!inMiddleware ? void 0 : ( + /* abort route navigation */ + false + )); + } + } + if (isExternal) { + nuxtApp._scope.stop(); + if (options == null ? void 0 : options.replace) { + (void 0).replace(toPath); + } else { + (void 0).href = toPath; + } + if (inMiddleware) { + if (!nuxtApp.isHydrating) { + return false; + } + return new Promise(() => { + }); + } + return Promise.resolve(); + } + return (options == null ? void 0 : options.replace) ? router.replace(to) : router.push(to); +}; +function resolveRouteObject(to) { + return withQuery(to.path || "", to.query || {}) + (to.hash || ""); +} +function encodeURL(location2, isExternalHost = false) { + const url = new URL(location2, "http://localhost"); + if (!isExternalHost) { + return url.pathname + url.search + url.hash; + } + if (location2.startsWith("//")) { + return url.toString().replace(url.protocol, ""); + } + return url.toString(); +} +export { + defineNuxtRouteMiddleware, + encodeURL, + navigateTo, + resolveRouteObject, + useRoute, + useRouter +}; +//# sourceMappingURL=router.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/router.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/router.mjs.map new file mode 100644 index 0000000..642907d --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/router.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"router.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/app/composables/router.js"],"sourcesContent":["import { getCurrentInstance, hasInjectionContext, inject, onScopeDispose } from \"vue\";\nimport { sanitizeStatusCode } from \"h3\";\nimport { hasProtocol, isScriptProtocol, joinURL, parseQuery, parseURL, withQuery } from \"ufo\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { PageRouteSymbol } from \"../components/injections.js\";\nimport { createError, showError } from \"./error.js\";\nexport const useRouter = () => {\n return useNuxtApp()?.$router;\n};\nexport const useRoute = () => {\n if (import.meta.dev && !getCurrentInstance() && isProcessingMiddleware()) {\n console.warn(\"[nuxt] Calling `useRoute` within middleware may lead to misleading results. Instead, use the (to, from) arguments passed to the middleware to access the new and old routes.\");\n }\n if (hasInjectionContext()) {\n return inject(PageRouteSymbol, useNuxtApp()._route);\n }\n return useNuxtApp()._route;\n};\nexport const onBeforeRouteLeave = (guard) => {\n const unsubscribe = useRouter().beforeEach((to, from, next) => {\n if (to === from) {\n return;\n }\n return guard(to, from, next);\n });\n onScopeDispose(unsubscribe);\n};\nexport const onBeforeRouteUpdate = (guard) => {\n const unsubscribe = useRouter().beforeEach(guard);\n onScopeDispose(unsubscribe);\n};\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtRouteMiddleware(middleware) {\n return middleware;\n}\nexport const addRouteMiddleware = (name, middleware, options = {}) => {\n const nuxtApp = useNuxtApp();\n const global = options.global || typeof name !== \"string\";\n const mw = typeof name !== \"string\" ? name : middleware;\n if (!mw) {\n console.warn(\"[nuxt] No route middleware passed to `addRouteMiddleware`.\", name);\n return;\n }\n if (global) {\n nuxtApp._middleware.global.push(mw);\n } else {\n nuxtApp._middleware.named[name] = mw;\n }\n};\nconst isProcessingMiddleware = () => {\n try {\n if (useNuxtApp()._processingMiddleware) {\n return true;\n }\n } catch {\n return false;\n }\n return false;\n};\nconst URL_QUOTE_RE = /\"/g;\nexport const navigateTo = (to, options) => {\n to ||= \"/\";\n const toPath = typeof to === \"string\" ? to : \"path\" in to ? resolveRouteObject(to) : useRouter().resolve(to).href;\n if (import.meta.client && options?.open) {\n const { target = \"_blank\", windowFeatures = {} } = options.open;\n const features = Object.entries(windowFeatures).filter(([_, value]) => value !== void 0).map(([feature, value]) => `${feature.toLowerCase()}=${value}`).join(\", \");\n open(toPath, target, features);\n return Promise.resolve();\n }\n const isExternalHost = hasProtocol(toPath, { acceptRelative: true });\n const isExternal = options?.external || isExternalHost;\n if (isExternal) {\n if (!options?.external) {\n throw new Error(\"Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.\");\n }\n const { protocol } = new URL(toPath, import.meta.client ? window.location.href : \"http://localhost\");\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n }\n const inMiddleware = isProcessingMiddleware();\n if (import.meta.client && !isExternal && inMiddleware) {\n if (options?.replace) {\n if (typeof to === \"string\") {\n const { pathname, search, hash } = parseURL(to);\n return {\n path: pathname,\n ...search && { query: parseQuery(search) },\n ...hash && { hash },\n replace: true\n };\n }\n return { ...to, replace: true };\n }\n return to;\n }\n const router = useRouter();\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (nuxtApp.ssrContext) {\n const fullPath = typeof to === \"string\" || isExternal ? toPath : router.resolve(to).fullPath || \"/\";\n const location2 = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath);\n const redirect = async function(response) {\n await nuxtApp.callHook(\"app:redirected\");\n const encodedLoc = location2.replace(URL_QUOTE_RE, \"%22\");\n const encodedHeader = encodeURL(location2, isExternalHost);\n nuxtApp.ssrContext._renderResponse = {\n statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302),\n body: ``,\n headers: { location: encodedHeader }\n };\n return response;\n };\n if (!isExternal && inMiddleware) {\n router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);\n return to;\n }\n return redirect(!inMiddleware ? void 0 : (\n /* abort route navigation */\n false\n ));\n }\n }\n if (isExternal) {\n nuxtApp._scope.stop();\n if (options?.replace) {\n location.replace(toPath);\n } else {\n location.href = toPath;\n }\n if (inMiddleware) {\n if (!nuxtApp.isHydrating) {\n return false;\n }\n return new Promise(() => {\n });\n }\n return Promise.resolve();\n }\n return options?.replace ? router.replace(to) : router.push(to);\n};\nexport const abortNavigation = (err) => {\n if (import.meta.dev && !isProcessingMiddleware()) {\n throw new Error(\"abortNavigation() is only usable inside a route middleware handler.\");\n }\n if (!err) {\n return false;\n }\n err = createError(err);\n if (err.fatal) {\n useNuxtApp().runWithContext(() => showError(err));\n }\n throw err;\n};\nexport const setPageLayout = (layout) => {\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (import.meta.dev && getCurrentInstance() && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[warn] [nuxt] `setPageLayout` should not be called to change the layout on the server within a component as this will cause hydration errors.\");\n }\n nuxtApp.payload.state._layout = layout;\n }\n if (import.meta.dev && nuxtApp.isHydrating && nuxtApp.payload.serverRendered && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[warn] [nuxt] `setPageLayout` should not be called to change the layout during hydration as this will cause hydration errors.\");\n }\n const inMiddleware = isProcessingMiddleware();\n if (inMiddleware || import.meta.server || nuxtApp.isHydrating) {\n const unsubscribe = useRouter().beforeResolve((to) => {\n to.meta.layout = layout;\n unsubscribe();\n });\n }\n if (!inMiddleware) {\n useRoute().meta.layout = layout;\n }\n};\nexport function resolveRouteObject(to) {\n return withQuery(to.path || \"\", to.query || {}) + (to.hash || \"\");\n}\nexport function encodeURL(location2, isExternalHost = false) {\n const url = new URL(location2, \"http://localhost\");\n if (!isExternalHost) {\n return url.pathname + url.search + url.hash;\n }\n if (location2.startsWith(\"//\")) {\n return url.toString().replace(url.protocol, \"\");\n }\n return url.toString();\n}\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/router.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/router.mjs.map.json new file mode 100644 index 0000000..8d53ed4 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/router.mjs.map.json @@ -0,0 +1 @@ +{"file":"router.mjs","mappings":"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","names":[],"sources":["../../../../../../../../node_modules/nuxt/dist/app/composables/router.js"],"sourcesContent":["import { getCurrentInstance, hasInjectionContext, inject, onScopeDispose } from \"vue\";\nimport { sanitizeStatusCode } from \"h3\";\nimport { hasProtocol, isScriptProtocol, joinURL, parseQuery, parseURL, withQuery } from \"ufo\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { PageRouteSymbol } from \"../components/injections.js\";\nimport { createError, showError } from \"./error.js\";\nexport const useRouter = () => {\n return useNuxtApp()?.$router;\n};\nexport const useRoute = () => {\n if (import.meta.dev && !getCurrentInstance() && isProcessingMiddleware()) {\n console.warn(\"[nuxt] Calling `useRoute` within middleware may lead to misleading results. Instead, use the (to, from) arguments passed to the middleware to access the new and old routes.\");\n }\n if (hasInjectionContext()) {\n return inject(PageRouteSymbol, useNuxtApp()._route);\n }\n return useNuxtApp()._route;\n};\nexport const onBeforeRouteLeave = (guard) => {\n const unsubscribe = useRouter().beforeEach((to, from, next) => {\n if (to === from) {\n return;\n }\n return guard(to, from, next);\n });\n onScopeDispose(unsubscribe);\n};\nexport const onBeforeRouteUpdate = (guard) => {\n const unsubscribe = useRouter().beforeEach(guard);\n onScopeDispose(unsubscribe);\n};\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtRouteMiddleware(middleware) {\n return middleware;\n}\nexport const addRouteMiddleware = (name, middleware, options = {}) => {\n const nuxtApp = useNuxtApp();\n const global = options.global || typeof name !== \"string\";\n const mw = typeof name !== \"string\" ? name : middleware;\n if (!mw) {\n console.warn(\"[nuxt] No route middleware passed to `addRouteMiddleware`.\", name);\n return;\n }\n if (global) {\n nuxtApp._middleware.global.push(mw);\n } else {\n nuxtApp._middleware.named[name] = mw;\n }\n};\nconst isProcessingMiddleware = () => {\n try {\n if (useNuxtApp()._processingMiddleware) {\n return true;\n }\n } catch {\n return false;\n }\n return false;\n};\nconst URL_QUOTE_RE = /\"/g;\nexport const navigateTo = (to, options) => {\n to ||= \"/\";\n const toPath = typeof to === \"string\" ? to : \"path\" in to ? resolveRouteObject(to) : useRouter().resolve(to).href;\n if (import.meta.client && options?.open) {\n const { target = \"_blank\", windowFeatures = {} } = options.open;\n const features = Object.entries(windowFeatures).filter(([_, value]) => value !== void 0).map(([feature, value]) => `${feature.toLowerCase()}=${value}`).join(\", \");\n open(toPath, target, features);\n return Promise.resolve();\n }\n const isExternalHost = hasProtocol(toPath, { acceptRelative: true });\n const isExternal = options?.external || isExternalHost;\n if (isExternal) {\n if (!options?.external) {\n throw new Error(\"Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.\");\n }\n const { protocol } = new URL(toPath, import.meta.client ? window.location.href : \"http://localhost\");\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n }\n const inMiddleware = isProcessingMiddleware();\n if (import.meta.client && !isExternal && inMiddleware) {\n if (options?.replace) {\n if (typeof to === \"string\") {\n const { pathname, search, hash } = parseURL(to);\n return {\n path: pathname,\n ...search && { query: parseQuery(search) },\n ...hash && { hash },\n replace: true\n };\n }\n return { ...to, replace: true };\n }\n return to;\n }\n const router = useRouter();\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (nuxtApp.ssrContext) {\n const fullPath = typeof to === \"string\" || isExternal ? toPath : router.resolve(to).fullPath || \"/\";\n const location2 = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath);\n const redirect = async function(response) {\n await nuxtApp.callHook(\"app:redirected\");\n const encodedLoc = location2.replace(URL_QUOTE_RE, \"%22\");\n const encodedHeader = encodeURL(location2, isExternalHost);\n nuxtApp.ssrContext._renderResponse = {\n statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302),\n body: ``,\n headers: { location: encodedHeader }\n };\n return response;\n };\n if (!isExternal && inMiddleware) {\n router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);\n return to;\n }\n return redirect(!inMiddleware ? void 0 : (\n /* abort route navigation */\n false\n ));\n }\n }\n if (isExternal) {\n nuxtApp._scope.stop();\n if (options?.replace) {\n location.replace(toPath);\n } else {\n location.href = toPath;\n }\n if (inMiddleware) {\n if (!nuxtApp.isHydrating) {\n return false;\n }\n return new Promise(() => {\n });\n }\n return Promise.resolve();\n }\n return options?.replace ? router.replace(to) : router.push(to);\n};\nexport const abortNavigation = (err) => {\n if (import.meta.dev && !isProcessingMiddleware()) {\n throw new Error(\"abortNavigation() is only usable inside a route middleware handler.\");\n }\n if (!err) {\n return false;\n }\n err = createError(err);\n if (err.fatal) {\n useNuxtApp().runWithContext(() => showError(err));\n }\n throw err;\n};\nexport const setPageLayout = (layout) => {\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (import.meta.dev && getCurrentInstance() && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[warn] [nuxt] `setPageLayout` should not be called to change the layout on the server within a component as this will cause hydration errors.\");\n }\n nuxtApp.payload.state._layout = layout;\n }\n if (import.meta.dev && nuxtApp.isHydrating && nuxtApp.payload.serverRendered && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[warn] [nuxt] `setPageLayout` should not be called to change the layout during hydration as this will cause hydration errors.\");\n }\n const inMiddleware = isProcessingMiddleware();\n if (inMiddleware || import.meta.server || nuxtApp.isHydrating) {\n const unsubscribe = useRouter().beforeResolve((to) => {\n to.meta.layout = layout;\n unsubscribe();\n });\n }\n if (!inMiddleware) {\n useRoute().meta.layout = layout;\n }\n};\nexport function resolveRouteObject(to) {\n return withQuery(to.path || \"\", to.query || {}) + (to.hash || \"\");\n}\nexport function encodeURL(location2, isExternalHost = false) {\n const url = new URL(location2, \"http://localhost\");\n if (!isExternalHost) {\n return url.pathname + url.search + url.hash;\n }\n if (location2.startsWith(\"//\")) {\n return url.toString().replace(url.protocol, \"\");\n }\n return url.toString();\n}\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/ssr.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/ssr.mjs new file mode 100644 index 0000000..af83390 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/ssr.mjs @@ -0,0 +1,21 @@ +import { appendHeader } from "D:/doc/workspace/web3/node_modules/h3/dist/index.mjs"; +import "vue"; +import { useNuxtApp } from "../nuxt.mjs"; +import { toArray } from "../utils.mjs"; +function useRequestEvent(nuxtApp) { + var _a; + nuxtApp || (nuxtApp = useNuxtApp()); + return (_a = nuxtApp.ssrContext) == null ? void 0 : _a.event; +} +function prerenderRoutes(path) { + if (!import.meta.prerender) { + return; + } + const paths = toArray(path); + appendHeader(useRequestEvent(), "x-nitro-prerender", paths.map((p) => encodeURIComponent(p)).join(", ")); +} +export { + prerenderRoutes, + useRequestEvent +}; +//# sourceMappingURL=ssr.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/ssr.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/ssr.mjs.map new file mode 100644 index 0000000..15b5a28 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/ssr.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"ssr.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/app/composables/ssr.js"],"sourcesContent":["import { setResponseStatus as _setResponseStatus, appendHeader, getRequestHeader, getRequestHeaders, getResponseHeader, removeResponseHeader, setResponseHeader } from \"h3\";\nimport { computed, getCurrentInstance, ref } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nimport { useHead } from \"./head.js\";\nexport function useRequestEvent(nuxtApp) {\n if (import.meta.client) {\n return;\n }\n nuxtApp ||= useNuxtApp();\n return nuxtApp.ssrContext?.event;\n}\nexport function useRequestHeaders(include) {\n if (import.meta.client) {\n return {};\n }\n const event = useRequestEvent();\n const _headers = event ? getRequestHeaders(event) : {};\n if (!include || !event) {\n return _headers;\n }\n const headers = /* @__PURE__ */ Object.create(null);\n for (const _key of include) {\n const key = _key.toLowerCase();\n const header = _headers[key];\n if (header) {\n headers[key] = header;\n }\n }\n return headers;\n}\nexport function useRequestHeader(header) {\n if (import.meta.client) {\n return void 0;\n }\n const event = useRequestEvent();\n return event ? getRequestHeader(event, header) : void 0;\n}\nexport function useRequestFetch() {\n if (import.meta.client) {\n return globalThis.$fetch;\n }\n return useRequestEvent()?.$fetch || globalThis.$fetch;\n}\nexport function setResponseStatus(arg1, arg2, arg3) {\n if (import.meta.client) {\n return;\n }\n if (arg1 && typeof arg1 !== \"number\") {\n return _setResponseStatus(arg1, arg2, arg3);\n }\n const event = useRequestEvent();\n if (event) {\n return _setResponseStatus(event, arg1, arg2);\n }\n}\nexport function useResponseHeader(header) {\n if (import.meta.client) {\n if (import.meta.dev) {\n return computed({\n get: () => void 0,\n set: () => console.warn(\"[nuxt] Setting response headers is not supported in the browser.\")\n });\n }\n return ref();\n }\n const event = useRequestEvent();\n return computed({\n get() {\n return getResponseHeader(event, header);\n },\n set(newValue) {\n if (!newValue) {\n return removeResponseHeader(event, header);\n }\n return setResponseHeader(event, header, newValue);\n }\n });\n}\nexport function prerenderRoutes(path) {\n if (!import.meta.server || !import.meta.prerender) {\n return;\n }\n const paths = toArray(path);\n appendHeader(useRequestEvent(), \"x-nitro-prerender\", paths.map((p) => encodeURIComponent(p)).join(\", \"));\n}\nconst PREHYDRATE_ATTR_KEY = \"data-prehydrate-id\";\nexport function onPrehydrate(callback, key) {\n if (import.meta.client) {\n return;\n }\n if (typeof callback !== \"string\") {\n throw new TypeError(\"[nuxt] To transform a callback into a string, `onPrehydrate` must be processed by the Nuxt build pipeline. If it is called in a third-party library, make sure to add the library to `build.transpile`.\");\n }\n const vm = getCurrentInstance();\n if (vm && key) {\n vm.attrs[PREHYDRATE_ATTR_KEY] ||= \"\";\n key = \":\" + key + \":\";\n if (!vm.attrs[PREHYDRATE_ATTR_KEY].includes(key)) {\n vm.attrs[PREHYDRATE_ATTR_KEY] += key;\n }\n }\n const code = vm && key ? `document.querySelectorAll('[${PREHYDRATE_ATTR_KEY}*=${JSON.stringify(key)}]').forEach` + callback : callback + \"()\";\n useHead({\n script: [{\n key: vm && key ? key : void 0,\n tagPosition: \"bodyClose\",\n tagPriority: \"critical\",\n innerHTML: code\n }]\n });\n return vm && key ? vm.attrs[PREHYDRATE_ATTR_KEY] : void 0;\n}\n"],"names":[],"mappings":";;;;AAKO,SAAS,gBAAgB,SAAS;;AAIvC,wBAAY,WAAW;AACvB,UAAO,aAAQ,eAAR,mBAAoB;AAC7B;AAoEO,SAAS,gBAAgB,MAAM;AACT,MAAA,CAAC,YAAY,WAAW;AACjD;AAAA,EAAA;AAEI,QAAA,QAAQ,QAAQ,IAAI;AAC1B,eAAa,gBAAgB,GAAG,qBAAqB,MAAM,IAAI,CAAC,MAAM,mBAAmB,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;AACzG;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/ssr.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/ssr.mjs.map.json new file mode 100644 index 0000000..e6cccb1 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/composables/ssr.mjs.map.json @@ -0,0 +1 @@ +{"file":"ssr.mjs","mappings":";;;;AAKO,SAAS,gBAAgB,SAAS;;AAIvC,wBAAY,WAAW;AACvB,UAAO,aAAQ,eAAR,mBAAoB;AAC7B;AAoEO,SAAS,gBAAgB,MAAM;AACT,MAAA,CAAC,YAAY,WAAW;AACjD;AAAA,EAAA;AAEI,QAAA,QAAQ,QAAQ,IAAI;AAC1B,eAAa,gBAAgB,GAAG,qBAAqB,MAAM,IAAI,CAAC,MAAM,mBAAmB,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;AACzG;","names":[],"sources":["../../../../../../../../node_modules/nuxt/dist/app/composables/ssr.js"],"sourcesContent":["import { setResponseStatus as _setResponseStatus, appendHeader, getRequestHeader, getRequestHeaders, getResponseHeader, removeResponseHeader, setResponseHeader } from \"h3\";\nimport { computed, getCurrentInstance, ref } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nimport { useHead } from \"./head.js\";\nexport function useRequestEvent(nuxtApp) {\n if (import.meta.client) {\n return;\n }\n nuxtApp ||= useNuxtApp();\n return nuxtApp.ssrContext?.event;\n}\nexport function useRequestHeaders(include) {\n if (import.meta.client) {\n return {};\n }\n const event = useRequestEvent();\n const _headers = event ? getRequestHeaders(event) : {};\n if (!include || !event) {\n return _headers;\n }\n const headers = /* @__PURE__ */ Object.create(null);\n for (const _key of include) {\n const key = _key.toLowerCase();\n const header = _headers[key];\n if (header) {\n headers[key] = header;\n }\n }\n return headers;\n}\nexport function useRequestHeader(header) {\n if (import.meta.client) {\n return void 0;\n }\n const event = useRequestEvent();\n return event ? getRequestHeader(event, header) : void 0;\n}\nexport function useRequestFetch() {\n if (import.meta.client) {\n return globalThis.$fetch;\n }\n return useRequestEvent()?.$fetch || globalThis.$fetch;\n}\nexport function setResponseStatus(arg1, arg2, arg3) {\n if (import.meta.client) {\n return;\n }\n if (arg1 && typeof arg1 !== \"number\") {\n return _setResponseStatus(arg1, arg2, arg3);\n }\n const event = useRequestEvent();\n if (event) {\n return _setResponseStatus(event, arg1, arg2);\n }\n}\nexport function useResponseHeader(header) {\n if (import.meta.client) {\n if (import.meta.dev) {\n return computed({\n get: () => void 0,\n set: () => console.warn(\"[nuxt] Setting response headers is not supported in the browser.\")\n });\n }\n return ref();\n }\n const event = useRequestEvent();\n return computed({\n get() {\n return getResponseHeader(event, header);\n },\n set(newValue) {\n if (!newValue) {\n return removeResponseHeader(event, header);\n }\n return setResponseHeader(event, header, newValue);\n }\n });\n}\nexport function prerenderRoutes(path) {\n if (!import.meta.server || !import.meta.prerender) {\n return;\n }\n const paths = toArray(path);\n appendHeader(useRequestEvent(), \"x-nitro-prerender\", paths.map((p) => encodeURIComponent(p)).join(\", \"));\n}\nconst PREHYDRATE_ATTR_KEY = \"data-prehydrate-id\";\nexport function onPrehydrate(callback, key) {\n if (import.meta.client) {\n return;\n }\n if (typeof callback !== \"string\") {\n throw new TypeError(\"[nuxt] To transform a callback into a string, `onPrehydrate` must be processed by the Nuxt build pipeline. If it is called in a third-party library, make sure to add the library to `build.transpile`.\");\n }\n const vm = getCurrentInstance();\n if (vm && key) {\n vm.attrs[PREHYDRATE_ATTR_KEY] ||= \"\";\n key = \":\" + key + \":\";\n if (!vm.attrs[PREHYDRATE_ATTR_KEY].includes(key)) {\n vm.attrs[PREHYDRATE_ATTR_KEY] += key;\n }\n }\n const code = vm && key ? `document.querySelectorAll('[${PREHYDRATE_ATTR_KEY}*=${JSON.stringify(key)}]').forEach` + callback : callback + \"()\";\n useHead({\n script: [{\n key: vm && key ? key : void 0,\n tagPosition: \"bodyClose\",\n tagPriority: \"critical\",\n innerHTML: code\n }]\n });\n return vm && key ? vm.attrs[PREHYDRATE_ATTR_KEY] : void 0;\n}\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/middleware/manifest-route-rule.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/middleware/manifest-route-rule.mjs new file mode 100644 index 0000000..cc03598 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/middleware/manifest-route-rule.mjs @@ -0,0 +1,14 @@ +import { defineNuxtRouteMiddleware } from "../composables/router.mjs"; +import "D:/doc/workspace/web3/node_modules/defu/dist/defu.mjs"; +import "vue"; +import "D:/doc/workspace/web3/node_modules/hookable/dist/index.mjs"; +import "#internal/nuxt/paths"; +const manifest_45route_45rule = defineNuxtRouteMiddleware(async (to) => { + { + return; + } +}); +export { + manifest_45route_45rule as default +}; +//# sourceMappingURL=manifest-route-rule.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/middleware/manifest-route-rule.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/middleware/manifest-route-rule.mjs.map new file mode 100644 index 0000000..65a5d48 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/middleware/manifest-route-rule.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"manifest-route-rule.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/app/middleware/manifest-route-rule.js"],"sourcesContent":["import { hasProtocol } from \"ufo\";\nimport { defineNuxtRouteMiddleware } from \"../composables/router.js\";\nimport { getRouteRules } from \"../composables/manifest.js\";\nexport default defineNuxtRouteMiddleware(async (to) => {\n if (import.meta.server || import.meta.test) {\n return;\n }\n const rules = await getRouteRules({ path: to.path });\n if (rules.redirect) {\n if (hasProtocol(rules.redirect, { acceptRelative: true })) {\n window.location.href = rules.redirect;\n return false;\n }\n return rules.redirect;\n }\n});\n"],"names":[],"mappings":";;;;;AAIE,MAAA,0BAA4C,0BAAA,OAAA,OAAA;AAC1C;AACF;AAAA,EACA;;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/middleware/manifest-route-rule.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/middleware/manifest-route-rule.mjs.map.json new file mode 100644 index 0000000..872d6bd --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/middleware/manifest-route-rule.mjs.map.json @@ -0,0 +1 @@ +{"file":"manifest-route-rule.mjs","mappings":";;;;;AAIE,MAAA,0BAA4C,0BAAA,OAAA,OAAA;AAC1C;AACF;AAAA,EACA;;","names":[],"sources":["../../../../../../../../node_modules/nuxt/dist/app/middleware/manifest-route-rule.js"],"sourcesContent":["import { hasProtocol } from \"ufo\";\nimport { defineNuxtRouteMiddleware } from \"../composables/router.js\";\nimport { getRouteRules } from \"../composables/manifest.js\";\nexport default defineNuxtRouteMiddleware(async (to) => {\n if (import.meta.server || import.meta.test) {\n return;\n }\n const rules = await getRouteRules({ path: to.path });\n if (rules.redirect) {\n if (hasProtocol(rules.redirect, { acceptRelative: true })) {\n window.location.href = rules.redirect;\n return false;\n }\n return rules.redirect;\n }\n});\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/nuxt.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/nuxt.mjs new file mode 100644 index 0000000..f6b96e1 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/nuxt.mjs @@ -0,0 +1,228 @@ +import { shallowReactive, reactive, effectScope, getCurrentScope, hasInjectionContext, getCurrentInstance } from "vue"; +import { createHooks } from "D:/doc/workspace/web3/node_modules/hookable/dist/index.mjs"; +import { getContext } from "D:/doc/workspace/web3/node_modules/unctx/dist/index.mjs"; +import { appId } from "../../../../_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_nuxt.config.mjs"; +function getNuxtAppCtx(id = appId) { + return getContext(id, { + asyncContext: false + }); +} +const NuxtPluginIndicator = "__nuxt_plugin"; +function createNuxtApp(options) { + var _a; + let hydratingCount = 0; + const nuxtApp = { + _id: options.id || appId || "nuxt-app", + _scope: effectScope(), + provide: void 0, + globalName: "nuxt", + versions: { + get nuxt() { + return "3.16.2"; + }, + get vue() { + return nuxtApp.vueApp.version; + } + }, + payload: shallowReactive({ + ...((_a = options.ssrContext) == null ? void 0 : _a.payload) || {}, + data: shallowReactive({}), + state: reactive({}), + once: /* @__PURE__ */ new Set(), + _errors: shallowReactive({}) + }), + static: { + data: {} + }, + runWithContext(fn) { + if (nuxtApp._scope.active && !getCurrentScope()) { + return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn)); + } + return callWithNuxt(nuxtApp, fn); + }, + isHydrating: false, + deferHydration() { + if (!nuxtApp.isHydrating) { + return () => { + }; + } + hydratingCount++; + let called = false; + return () => { + if (called) { + return; + } + called = true; + hydratingCount--; + if (hydratingCount === 0) { + nuxtApp.isHydrating = false; + return nuxtApp.callHook("app:suspense:resolve"); + } + }; + }, + _asyncDataPromises: {}, + _asyncData: shallowReactive({}), + _payloadRevivers: {}, + ...options + }; + { + nuxtApp.payload.serverRendered = true; + } + if (nuxtApp.ssrContext) { + nuxtApp.payload.path = nuxtApp.ssrContext.url; + nuxtApp.ssrContext.nuxt = nuxtApp; + nuxtApp.ssrContext.payload = nuxtApp.payload; + nuxtApp.ssrContext.config = { + public: nuxtApp.ssrContext.runtimeConfig.public, + app: nuxtApp.ssrContext.runtimeConfig.app + }; + } + nuxtApp.hooks = createHooks(); + nuxtApp.hook = nuxtApp.hooks.hook; + { + const contextCaller = async function(hooks, args) { + for (const hook of hooks) { + await nuxtApp.runWithContext(() => hook(...args)); + } + }; + nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, ...args); + } + nuxtApp.callHook = nuxtApp.hooks.callHook; + nuxtApp.provide = (name, value) => { + const $name = "$" + name; + defineGetter(nuxtApp, $name, value); + defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value); + }; + defineGetter(nuxtApp.vueApp, "$nuxt", nuxtApp); + defineGetter(nuxtApp.vueApp.config.globalProperties, "$nuxt", nuxtApp); + const runtimeConfig = options.ssrContext.runtimeConfig; + nuxtApp.provide("config", runtimeConfig); + return nuxtApp; +} +function registerPluginHooks(nuxtApp, plugin) { + if (plugin.hooks) { + nuxtApp.hooks.addHooks(plugin.hooks); + } +} +async function applyPlugin(nuxtApp, plugin) { + if (typeof plugin === "function") { + const { provide } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {}; + if (provide && typeof provide === "object") { + for (const key in provide) { + nuxtApp.provide(key, provide[key]); + } + } + } +} +async function applyPlugins(nuxtApp, plugins) { + var _a, _b, _c, _d; + const resolvedPlugins = []; + const unresolvedPlugins = []; + const parallels = []; + const errors = []; + let promiseDepth = 0; + async function executePlugin(plugin) { + var _a2; + const unresolvedPluginsForThisPlugin = ((_a2 = plugin.dependsOn) == null ? void 0 : _a2.filter((name) => plugins.some((p) => p._name === name) && !resolvedPlugins.includes(name))) ?? []; + if (unresolvedPluginsForThisPlugin.length > 0) { + unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin]); + } else { + const promise = applyPlugin(nuxtApp, plugin).then(async () => { + if (plugin._name) { + resolvedPlugins.push(plugin._name); + await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => { + if (dependsOn.has(plugin._name)) { + dependsOn.delete(plugin._name); + if (dependsOn.size === 0) { + promiseDepth++; + await executePlugin(unexecutedPlugin); + } + } + })); + } + }); + if (plugin.parallel) { + parallels.push(promise.catch((e) => errors.push(e))); + } else { + await promise; + } + } + } + for (const plugin of plugins) { + if (((_a = nuxtApp.ssrContext) == null ? void 0 : _a.islandContext) && ((_b = plugin.env) == null ? void 0 : _b.islands) === false) { + continue; + } + registerPluginHooks(nuxtApp, plugin); + } + for (const plugin of plugins) { + if (((_c = nuxtApp.ssrContext) == null ? void 0 : _c.islandContext) && ((_d = plugin.env) == null ? void 0 : _d.islands) === false) { + continue; + } + await executePlugin(plugin); + } + await Promise.all(parallels); + if (promiseDepth) { + for (let i = 0; i < promiseDepth; i++) { + await Promise.all(parallels); + } + } + if (errors.length) { + throw errors[0]; + } +} +// @__NO_SIDE_EFFECTS__ +function defineNuxtPlugin(plugin) { + if (typeof plugin === "function") { + return plugin; + } + const _name = plugin._name || plugin.name; + delete plugin.name; + return Object.assign(plugin.setup || (() => { + }), plugin, { [NuxtPluginIndicator]: true, _name }); +} +function callWithNuxt(nuxt, setup, args) { + const fn = () => setup(); + const nuxtAppCtx = getNuxtAppCtx(nuxt._id); + { + return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn)); + } +} +function tryUseNuxtApp(id) { + var _a; + let nuxtAppInstance; + if (hasInjectionContext()) { + nuxtAppInstance = (_a = getCurrentInstance()) == null ? void 0 : _a.appContext.app.$nuxt; + } + nuxtAppInstance || (nuxtAppInstance = getNuxtAppCtx(id).tryUse()); + return nuxtAppInstance || null; +} +function useNuxtApp(id) { + const nuxtAppInstance = tryUseNuxtApp(id); + if (!nuxtAppInstance) { + { + throw new Error("[nuxt] instance unavailable"); + } + } + return nuxtAppInstance; +} +// @__NO_SIDE_EFFECTS__ +function useRuntimeConfig(_event) { + return useNuxtApp().$config; +} +function defineGetter(obj, key, val) { + Object.defineProperty(obj, key, { get: () => val }); +} +export { + NuxtPluginIndicator, + applyPlugin, + applyPlugins, + callWithNuxt, + createNuxtApp, + defineNuxtPlugin, + getNuxtAppCtx, + registerPluginHooks, + tryUseNuxtApp, + useNuxtApp, + useRuntimeConfig +}; +//# sourceMappingURL=nuxt.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/nuxt.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/nuxt.mjs.map new file mode 100644 index 0000000..041fc2a --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/nuxt.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"nuxt.mjs","sources":["../../../../../../../node_modules/nuxt/dist/app/nuxt.js"],"sourcesContent":["import { effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, reactive, shallowReactive } from \"vue\";\nimport { createHooks } from \"hookable\";\nimport { getContext } from \"unctx\";\nimport { appId, chunkErrorEvent, multiApp } from \"#build/nuxt.config.mjs\";\nexport function getNuxtAppCtx(id = appId || \"nuxt-app\") {\n return getContext(id, {\n asyncContext: !!__NUXT_ASYNC_CONTEXT__ && import.meta.server\n });\n}\nexport const NuxtPluginIndicator = \"__nuxt_plugin\";\nexport function createNuxtApp(options) {\n let hydratingCount = 0;\n const nuxtApp = {\n _id: options.id || appId || \"nuxt-app\",\n _scope: effectScope(),\n provide: void 0,\n globalName: \"nuxt\",\n versions: {\n get nuxt() {\n return __NUXT_VERSION__;\n },\n get vue() {\n return nuxtApp.vueApp.version;\n }\n },\n payload: shallowReactive({\n ...options.ssrContext?.payload || {},\n data: shallowReactive({}),\n state: reactive({}),\n once: /* @__PURE__ */ new Set(),\n _errors: shallowReactive({})\n }),\n static: {\n data: {}\n },\n runWithContext(fn) {\n if (nuxtApp._scope.active && !getCurrentScope()) {\n return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn));\n }\n return callWithNuxt(nuxtApp, fn);\n },\n isHydrating: import.meta.client,\n deferHydration() {\n if (!nuxtApp.isHydrating) {\n return () => {\n };\n }\n hydratingCount++;\n let called = false;\n return () => {\n if (called) {\n return;\n }\n called = true;\n hydratingCount--;\n if (hydratingCount === 0) {\n nuxtApp.isHydrating = false;\n return nuxtApp.callHook(\"app:suspense:resolve\");\n }\n };\n },\n _asyncDataPromises: {},\n _asyncData: shallowReactive({}),\n _payloadRevivers: {},\n ...options\n };\n if (import.meta.server) {\n nuxtApp.payload.serverRendered = true;\n }\n if (import.meta.server && nuxtApp.ssrContext) {\n nuxtApp.payload.path = nuxtApp.ssrContext.url;\n nuxtApp.ssrContext.nuxt = nuxtApp;\n nuxtApp.ssrContext.payload = nuxtApp.payload;\n nuxtApp.ssrContext.config = {\n public: nuxtApp.ssrContext.runtimeConfig.public,\n app: nuxtApp.ssrContext.runtimeConfig.app\n };\n }\n if (import.meta.client) {\n const __NUXT__ = multiApp ? window.__NUXT__?.[nuxtApp._id] : window.__NUXT__;\n if (__NUXT__) {\n for (const key in __NUXT__) {\n switch (key) {\n case \"data\":\n case \"state\":\n case \"_errors\":\n Object.assign(nuxtApp.payload[key], __NUXT__[key]);\n break;\n default:\n nuxtApp.payload[key] = __NUXT__[key];\n }\n }\n }\n }\n nuxtApp.hooks = createHooks();\n nuxtApp.hook = nuxtApp.hooks.hook;\n if (import.meta.server) {\n const contextCaller = async function(hooks, args) {\n for (const hook of hooks) {\n await nuxtApp.runWithContext(() => hook(...args));\n }\n };\n nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, ...args);\n }\n nuxtApp.callHook = nuxtApp.hooks.callHook;\n nuxtApp.provide = (name, value) => {\n const $name = \"$\" + name;\n defineGetter(nuxtApp, $name, value);\n defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);\n };\n defineGetter(nuxtApp.vueApp, \"$nuxt\", nuxtApp);\n defineGetter(nuxtApp.vueApp.config.globalProperties, \"$nuxt\", nuxtApp);\n if (import.meta.client) {\n if (chunkErrorEvent) {\n window.addEventListener(chunkErrorEvent, (event) => {\n nuxtApp.callHook(\"app:chunkError\", { error: event.payload });\n if (nuxtApp.isHydrating || event.payload.message.includes(\"Unable to preload CSS\")) {\n event.preventDefault();\n }\n });\n }\n window.useNuxtApp ||= useNuxtApp;\n const unreg = nuxtApp.hook(\"app:error\", (...args) => {\n console.error(\"[nuxt] error caught during app initialization\", ...args);\n });\n nuxtApp.hook(\"app:mounted\", unreg);\n }\n const runtimeConfig = import.meta.server ? options.ssrContext.runtimeConfig : nuxtApp.payload.config;\n nuxtApp.provide(\"config\", import.meta.client && import.meta.dev ? wrappedConfig(runtimeConfig) : runtimeConfig);\n return nuxtApp;\n}\nexport function registerPluginHooks(nuxtApp, plugin) {\n if (plugin.hooks) {\n nuxtApp.hooks.addHooks(plugin.hooks);\n }\n}\nexport async function applyPlugin(nuxtApp, plugin) {\n if (typeof plugin === \"function\") {\n const { provide } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {};\n if (provide && typeof provide === \"object\") {\n for (const key in provide) {\n nuxtApp.provide(key, provide[key]);\n }\n }\n }\n}\nexport async function applyPlugins(nuxtApp, plugins) {\n const resolvedPlugins = [];\n const unresolvedPlugins = [];\n const parallels = [];\n const errors = [];\n let promiseDepth = 0;\n async function executePlugin(plugin) {\n const unresolvedPluginsForThisPlugin = plugin.dependsOn?.filter((name) => plugins.some((p) => p._name === name) && !resolvedPlugins.includes(name)) ?? [];\n if (unresolvedPluginsForThisPlugin.length > 0) {\n unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin]);\n } else {\n const promise = applyPlugin(nuxtApp, plugin).then(async () => {\n if (plugin._name) {\n resolvedPlugins.push(plugin._name);\n await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => {\n if (dependsOn.has(plugin._name)) {\n dependsOn.delete(plugin._name);\n if (dependsOn.size === 0) {\n promiseDepth++;\n await executePlugin(unexecutedPlugin);\n }\n }\n }));\n }\n });\n if (plugin.parallel) {\n parallels.push(promise.catch((e) => errors.push(e)));\n } else {\n await promise;\n }\n }\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n registerPluginHooks(nuxtApp, plugin);\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n await executePlugin(plugin);\n }\n await Promise.all(parallels);\n if (promiseDepth) {\n for (let i = 0; i < promiseDepth; i++) {\n await Promise.all(parallels);\n }\n }\n if (errors.length) {\n throw errors[0];\n }\n}\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtPlugin(plugin) {\n if (typeof plugin === \"function\") {\n return plugin;\n }\n const _name = plugin._name || plugin.name;\n delete plugin.name;\n return Object.assign(plugin.setup || (() => {\n }), plugin, { [NuxtPluginIndicator]: true, _name });\n}\nexport const definePayloadPlugin = defineNuxtPlugin;\nexport function isNuxtPlugin(plugin) {\n return typeof plugin === \"function\" && NuxtPluginIndicator in plugin;\n}\nexport function callWithNuxt(nuxt, setup, args) {\n const fn = () => args ? setup(...args) : setup();\n const nuxtAppCtx = getNuxtAppCtx(nuxt._id);\n if (import.meta.server) {\n return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));\n } else {\n nuxtAppCtx.set(nuxt);\n return nuxt.vueApp.runWithContext(fn);\n }\n}\nexport function tryUseNuxtApp(id) {\n let nuxtAppInstance;\n if (hasInjectionContext()) {\n nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt;\n }\n nuxtAppInstance ||= getNuxtAppCtx(id).tryUse();\n return nuxtAppInstance || null;\n}\nexport function useNuxtApp(id) {\n const nuxtAppInstance = tryUseNuxtApp(id);\n if (!nuxtAppInstance) {\n if (import.meta.dev) {\n throw new Error(\"[nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function. This is probably not a Nuxt bug. Find out more at `https://nuxt.com/docs/guide/concepts/auto-imports#vue-and-nuxt-composables`.\");\n } else {\n throw new Error(\"[nuxt] instance unavailable\");\n }\n }\n return nuxtAppInstance;\n}\n// @__NO_SIDE_EFFECTS__\nexport function useRuntimeConfig(_event) {\n return useNuxtApp().$config;\n}\nfunction defineGetter(obj, key, val) {\n Object.defineProperty(obj, key, { get: () => val });\n}\nexport function defineAppConfig(config) {\n return config;\n}\nconst loggedKeys = /* @__PURE__ */ new Set();\nfunction wrappedConfig(runtimeConfig) {\n if (!import.meta.dev || import.meta.server) {\n return runtimeConfig;\n }\n const keys = Object.keys(runtimeConfig).map((key) => `\\`${key}\\``);\n const lastKey = keys.pop();\n return new Proxy(runtimeConfig, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p !== \"public\" && !(p in target) && !p.startsWith(\"__v\")) {\n if (!loggedKeys.has(p)) {\n loggedKeys.add(p);\n console.warn(`[nuxt] Could not access \\`${p}\\`. The only available runtime config keys on the client side are ${keys.join(\", \")} and ${lastKey}. See https://nuxt.com/docs/guide/going-further/runtime-config for more information.`);\n }\n }\n return Reflect.get(target, p, receiver);\n }\n });\n}\n"],"names":["_a"],"mappings":";;;;AAIgB,SAAA,cAAc,KAAK,OAAqB;AACtD,SAAO,WAAW,IAAI;AAAA,IACpB,cAAc;AAAA,EAAA,CACf;AACH;AACO,MAAM,sBAAsB;AAC5B,SAAS,cAAc,SAAS;;AACrC,MAAI,iBAAiB;AACrB,QAAM,UAAU;AAAA,IACd,KAAK,QAAQ,MAAM,SAAS;AAAA,IAC5B,QAAQ,YAAY;AAAA,IACpB,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,UAAU;AAAA,MACR,IAAI,OAAO;AACF,eAAA;AAAA,MACT;AAAA,MACA,IAAI,MAAM;AACR,eAAO,QAAQ,OAAO;AAAA,MAAA;AAAA,IAE1B;AAAA,IACA,SAAS,gBAAgB;AAAA,MACvB,KAAG,aAAQ,eAAR,mBAAoB,YAAW,CAAC;AAAA,MACnC,MAAM,gBAAgB,EAAE;AAAA,MACxB,OAAO,SAAS,EAAE;AAAA,MAClB,0BAA0B,IAAI;AAAA,MAC9B,SAAS,gBAAgB,CAAE,CAAA;AAAA,IAAA,CAC5B;AAAA,IACD,QAAQ;AAAA,MACN,MAAM,CAAA;AAAA,IACR;AAAA,IACA,eAAe,IAAI;AACjB,UAAI,QAAQ,OAAO,UAAU,CAAC,mBAAmB;AAC/C,eAAO,QAAQ,OAAO,IAAI,MAAM,aAAa,SAAS,EAAE,CAAC;AAAA,MAAA;AAEpD,aAAA,aAAa,SAAS,EAAE;AAAA,IACjC;AAAA,IACA,aAAa;AAAA,IACb,iBAAiB;AACX,UAAA,CAAC,QAAQ,aAAa;AACxB,eAAO,MAAM;AAAA,QACb;AAAA,MAAA;AAEF;AACA,UAAI,SAAS;AACb,aAAO,MAAM;AACX,YAAI,QAAQ;AACV;AAAA,QAAA;AAEO,iBAAA;AACT;AACA,YAAI,mBAAmB,GAAG;AACxB,kBAAQ,cAAc;AACf,iBAAA,QAAQ,SAAS,sBAAsB;AAAA,QAAA;AAAA,MAElD;AAAA,IACF;AAAA,IACA,oBAAoB,CAAC;AAAA,IACrB,YAAY,gBAAgB,EAAE;AAAA,IAC9B,kBAAkB,CAAC;AAAA,IACnB,GAAG;AAAA,EACL;AACwB;AACtB,YAAQ,QAAQ,iBAAiB;AAAA,EAAA;AAEnC,MAA0B,QAAQ,YAAY;AACpC,YAAA,QAAQ,OAAO,QAAQ,WAAW;AAC1C,YAAQ,WAAW,OAAO;AAClB,YAAA,WAAW,UAAU,QAAQ;AACrC,YAAQ,WAAW,SAAS;AAAA,MAC1B,QAAQ,QAAQ,WAAW,cAAc;AAAA,MACzC,KAAK,QAAQ,WAAW,cAAc;AAAA,IACxC;AAAA,EAAA;AAkBF,UAAQ,QAAQ,YAAY;AACpB,UAAA,OAAO,QAAQ,MAAM;AACL;AAChB,UAAA,gBAAgB,eAAe,OAAO,MAAM;AAChD,iBAAW,QAAQ,OAAO;AACxB,cAAM,QAAQ,eAAe,MAAM,KAAK,GAAG,IAAI,CAAC;AAAA,MAAA;AAAA,IAEpD;AACQ,YAAA,MAAM,WAAW,CAAC,SAAS,SAAS,QAAQ,MAAM,aAAa,eAAe,MAAM,GAAG,IAAI;AAAA,EAAA;AAE7F,UAAA,WAAW,QAAQ,MAAM;AACzB,UAAA,UAAU,CAAC,MAAM,UAAU;AACjC,UAAM,QAAQ,MAAM;AACP,iBAAA,SAAS,OAAO,KAAK;AAClC,iBAAa,QAAQ,OAAO,OAAO,kBAAkB,OAAO,KAAK;AAAA,EACnE;AACa,eAAA,QAAQ,QAAQ,SAAS,OAAO;AAC7C,eAAa,QAAQ,OAAO,OAAO,kBAAkB,SAAS,OAAO;AAgBrE,QAAM,gBAAqC,QAAQ,WAAW;AAC9D,UAAQ,QAAQ,UAAiF,aAAa;AACvG,SAAA;AACT;AACgB,SAAA,oBAAoB,SAAS,QAAQ;AACnD,MAAI,OAAO,OAAO;AACR,YAAA,MAAM,SAAS,OAAO,KAAK;AAAA,EAAA;AAEvC;AACsB,eAAA,YAAY,SAAS,QAAQ;AAC7C,MAAA,OAAO,WAAW,YAAY;AAC1B,UAAA,EAAE,QAAQ,IAAI,MAAM,QAAQ,eAAe,MAAM,OAAO,OAAO,CAAC,KAAK,CAAC;AACxE,QAAA,WAAW,OAAO,YAAY,UAAU;AAC1C,iBAAW,OAAO,SAAS;AACzB,gBAAQ,QAAQ,KAAK,QAAQ,GAAG,CAAC;AAAA,MAAA;AAAA,IACnC;AAAA,EACF;AAEJ;AACsB,eAAA,aAAa,SAAS,SAAS;;AACnD,QAAM,kBAAkB,CAAC;AACzB,QAAM,oBAAoB,CAAC;AAC3B,QAAM,YAAY,CAAC;AACnB,QAAM,SAAS,CAAC;AAChB,MAAI,eAAe;AACnB,iBAAe,cAAc,QAAQ;;AAC7B,UAAA,mCAAiCA,MAAA,OAAO,cAAP,gBAAAA,IAAkB,OAAO,CAAC,SAAS,QAAQ,KAAK,CAAC,MAAM,EAAE,UAAU,IAAI,KAAK,CAAC,gBAAgB,SAAS,IAAI,OAAM,CAAC;AACpJ,QAAA,+BAA+B,SAAS,GAAG;AAC7C,wBAAkB,KAAK,CAAC,IAAI,IAAI,8BAA8B,GAAG,MAAM,CAAC;AAAA,IAAA,OACnE;AACL,YAAM,UAAU,YAAY,SAAS,MAAM,EAAE,KAAK,YAAY;AAC5D,YAAI,OAAO,OAAO;AACA,0BAAA,KAAK,OAAO,KAAK;AAC3B,gBAAA,QAAQ,IAAI,kBAAkB,IAAI,OAAO,CAAC,WAAW,gBAAgB,MAAM;AAC/E,gBAAI,UAAU,IAAI,OAAO,KAAK,GAAG;AACrB,wBAAA,OAAO,OAAO,KAAK;AACzB,kBAAA,UAAU,SAAS,GAAG;AACxB;AACA,sBAAM,cAAc,gBAAgB;AAAA,cAAA;AAAA,YACtC;AAAA,UACF,CACD,CAAC;AAAA,QAAA;AAAA,MACJ,CACD;AACD,UAAI,OAAO,UAAU;AACT,kBAAA,KAAK,QAAQ,MAAM,CAAC,MAAM,OAAO,KAAK,CAAC,CAAC,CAAC;AAAA,MAAA,OAC9C;AACC,cAAA;AAAA,MAAA;AAAA,IACR;AAAA,EACF;AAEF,aAAW,UAAU,SAAS;AAC5B,UAA0B,aAAQ,eAAR,mBAAoB,oBAAiB,YAAO,QAAP,mBAAY,aAAY,OAAO;AAC5F;AAAA,IAAA;AAEF,wBAAoB,SAAS,MAAM;AAAA,EAAA;AAErC,aAAW,UAAU,SAAS;AAC5B,UAA0B,aAAQ,eAAR,mBAAoB,oBAAiB,YAAO,QAAP,mBAAY,aAAY,OAAO;AAC5F;AAAA,IAAA;AAEF,UAAM,cAAc,MAAM;AAAA,EAAA;AAEtB,QAAA,QAAQ,IAAI,SAAS;AAC3B,MAAI,cAAc;AAChB,aAAS,IAAI,GAAG,IAAI,cAAc,KAAK;AAC/B,YAAA,QAAQ,IAAI,SAAS;AAAA,IAAA;AAAA,EAC7B;AAEF,MAAI,OAAO,QAAQ;AACjB,UAAM,OAAO,CAAC;AAAA,EAAA;AAElB;AAAA;AAEO,SAAS,iBAAiB,QAAQ;AACnC,MAAA,OAAO,WAAW,YAAY;AACzB,WAAA;AAAA,EAAA;AAEH,QAAA,QAAQ,OAAO,SAAS,OAAO;AACrC,SAAO,OAAO;AACd,SAAO,OAAO,OAAO,OAAO,UAAU,MAAM;AAAA,EAAA,IACxC,QAAQ,EAAE,CAAC,mBAAmB,GAAG,MAAM,OAAO;AACpD;AAKgB,SAAA,aAAa,MAAM,OAAO,MAAM;AAC9C,QAAM,KAAK,MAA8B,MAAM;AACzC,QAAA,aAAa,cAAc,KAAK,GAAG;AACjB;AACf,WAAA,KAAK,OAAO,eAAe,MAAM,WAAW,UAAU,MAAM,EAAE,CAAC;AAAA,EAAA;AAK1E;AACO,SAAS,cAAc,IAAI;;AAC5B,MAAA;AACJ,MAAI,uBAAuB;AACP,uBAAA,wBAAA,MAAA,mBAAsB,WAAW,IAAI;AAAA,EAAA;AAErC,wCAAA,cAAc,EAAE,EAAE,OAAO;AAC7C,SAAO,mBAAmB;AAC5B;AACO,SAAS,WAAW,IAAI;AACvB,QAAA,kBAAkB,cAAc,EAAE;AACxC,MAAI,CAAC,iBAAiB;AAGb;AACC,YAAA,IAAI,MAAM,6BAA6B;AAAA,IAAA;AAAA,EAC/C;AAEK,SAAA;AACT;AAAA;AAEO,SAAS,iBAAiB,QAAQ;AACvC,SAAO,WAAa,EAAA;AACtB;AACA,SAAS,aAAa,KAAK,KAAK,KAAK;AACnC,SAAO,eAAe,KAAK,KAAK,EAAE,KAAK,MAAM,KAAK;AACpD;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/nuxt.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/nuxt.mjs.map.json new file mode 100644 index 0000000..34f9188 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/nuxt.mjs.map.json @@ -0,0 +1 @@ +{"file":"nuxt.mjs","mappings":"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","names":["_a"],"sources":["../../../../../../../node_modules/nuxt/dist/app/nuxt.js"],"sourcesContent":["import { effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, reactive, shallowReactive } from \"vue\";\nimport { createHooks } from \"hookable\";\nimport { getContext } from \"unctx\";\nimport { appId, chunkErrorEvent, multiApp } from \"#build/nuxt.config.mjs\";\nexport function getNuxtAppCtx(id = appId || \"nuxt-app\") {\n return getContext(id, {\n asyncContext: !!__NUXT_ASYNC_CONTEXT__ && import.meta.server\n });\n}\nexport const NuxtPluginIndicator = \"__nuxt_plugin\";\nexport function createNuxtApp(options) {\n let hydratingCount = 0;\n const nuxtApp = {\n _id: options.id || appId || \"nuxt-app\",\n _scope: effectScope(),\n provide: void 0,\n globalName: \"nuxt\",\n versions: {\n get nuxt() {\n return __NUXT_VERSION__;\n },\n get vue() {\n return nuxtApp.vueApp.version;\n }\n },\n payload: shallowReactive({\n ...options.ssrContext?.payload || {},\n data: shallowReactive({}),\n state: reactive({}),\n once: /* @__PURE__ */ new Set(),\n _errors: shallowReactive({})\n }),\n static: {\n data: {}\n },\n runWithContext(fn) {\n if (nuxtApp._scope.active && !getCurrentScope()) {\n return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn));\n }\n return callWithNuxt(nuxtApp, fn);\n },\n isHydrating: import.meta.client,\n deferHydration() {\n if (!nuxtApp.isHydrating) {\n return () => {\n };\n }\n hydratingCount++;\n let called = false;\n return () => {\n if (called) {\n return;\n }\n called = true;\n hydratingCount--;\n if (hydratingCount === 0) {\n nuxtApp.isHydrating = false;\n return nuxtApp.callHook(\"app:suspense:resolve\");\n }\n };\n },\n _asyncDataPromises: {},\n _asyncData: shallowReactive({}),\n _payloadRevivers: {},\n ...options\n };\n if (import.meta.server) {\n nuxtApp.payload.serverRendered = true;\n }\n if (import.meta.server && nuxtApp.ssrContext) {\n nuxtApp.payload.path = nuxtApp.ssrContext.url;\n nuxtApp.ssrContext.nuxt = nuxtApp;\n nuxtApp.ssrContext.payload = nuxtApp.payload;\n nuxtApp.ssrContext.config = {\n public: nuxtApp.ssrContext.runtimeConfig.public,\n app: nuxtApp.ssrContext.runtimeConfig.app\n };\n }\n if (import.meta.client) {\n const __NUXT__ = multiApp ? window.__NUXT__?.[nuxtApp._id] : window.__NUXT__;\n if (__NUXT__) {\n for (const key in __NUXT__) {\n switch (key) {\n case \"data\":\n case \"state\":\n case \"_errors\":\n Object.assign(nuxtApp.payload[key], __NUXT__[key]);\n break;\n default:\n nuxtApp.payload[key] = __NUXT__[key];\n }\n }\n }\n }\n nuxtApp.hooks = createHooks();\n nuxtApp.hook = nuxtApp.hooks.hook;\n if (import.meta.server) {\n const contextCaller = async function(hooks, args) {\n for (const hook of hooks) {\n await nuxtApp.runWithContext(() => hook(...args));\n }\n };\n nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, ...args);\n }\n nuxtApp.callHook = nuxtApp.hooks.callHook;\n nuxtApp.provide = (name, value) => {\n const $name = \"$\" + name;\n defineGetter(nuxtApp, $name, value);\n defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);\n };\n defineGetter(nuxtApp.vueApp, \"$nuxt\", nuxtApp);\n defineGetter(nuxtApp.vueApp.config.globalProperties, \"$nuxt\", nuxtApp);\n if (import.meta.client) {\n if (chunkErrorEvent) {\n window.addEventListener(chunkErrorEvent, (event) => {\n nuxtApp.callHook(\"app:chunkError\", { error: event.payload });\n if (nuxtApp.isHydrating || event.payload.message.includes(\"Unable to preload CSS\")) {\n event.preventDefault();\n }\n });\n }\n window.useNuxtApp ||= useNuxtApp;\n const unreg = nuxtApp.hook(\"app:error\", (...args) => {\n console.error(\"[nuxt] error caught during app initialization\", ...args);\n });\n nuxtApp.hook(\"app:mounted\", unreg);\n }\n const runtimeConfig = import.meta.server ? options.ssrContext.runtimeConfig : nuxtApp.payload.config;\n nuxtApp.provide(\"config\", import.meta.client && import.meta.dev ? wrappedConfig(runtimeConfig) : runtimeConfig);\n return nuxtApp;\n}\nexport function registerPluginHooks(nuxtApp, plugin) {\n if (plugin.hooks) {\n nuxtApp.hooks.addHooks(plugin.hooks);\n }\n}\nexport async function applyPlugin(nuxtApp, plugin) {\n if (typeof plugin === \"function\") {\n const { provide } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {};\n if (provide && typeof provide === \"object\") {\n for (const key in provide) {\n nuxtApp.provide(key, provide[key]);\n }\n }\n }\n}\nexport async function applyPlugins(nuxtApp, plugins) {\n const resolvedPlugins = [];\n const unresolvedPlugins = [];\n const parallels = [];\n const errors = [];\n let promiseDepth = 0;\n async function executePlugin(plugin) {\n const unresolvedPluginsForThisPlugin = plugin.dependsOn?.filter((name) => plugins.some((p) => p._name === name) && !resolvedPlugins.includes(name)) ?? [];\n if (unresolvedPluginsForThisPlugin.length > 0) {\n unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin]);\n } else {\n const promise = applyPlugin(nuxtApp, plugin).then(async () => {\n if (plugin._name) {\n resolvedPlugins.push(plugin._name);\n await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => {\n if (dependsOn.has(plugin._name)) {\n dependsOn.delete(plugin._name);\n if (dependsOn.size === 0) {\n promiseDepth++;\n await executePlugin(unexecutedPlugin);\n }\n }\n }));\n }\n });\n if (plugin.parallel) {\n parallels.push(promise.catch((e) => errors.push(e)));\n } else {\n await promise;\n }\n }\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n registerPluginHooks(nuxtApp, plugin);\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n await executePlugin(plugin);\n }\n await Promise.all(parallels);\n if (promiseDepth) {\n for (let i = 0; i < promiseDepth; i++) {\n await Promise.all(parallels);\n }\n }\n if (errors.length) {\n throw errors[0];\n }\n}\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtPlugin(plugin) {\n if (typeof plugin === \"function\") {\n return plugin;\n }\n const _name = plugin._name || plugin.name;\n delete plugin.name;\n return Object.assign(plugin.setup || (() => {\n }), plugin, { [NuxtPluginIndicator]: true, _name });\n}\nexport const definePayloadPlugin = defineNuxtPlugin;\nexport function isNuxtPlugin(plugin) {\n return typeof plugin === \"function\" && NuxtPluginIndicator in plugin;\n}\nexport function callWithNuxt(nuxt, setup, args) {\n const fn = () => args ? setup(...args) : setup();\n const nuxtAppCtx = getNuxtAppCtx(nuxt._id);\n if (import.meta.server) {\n return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));\n } else {\n nuxtAppCtx.set(nuxt);\n return nuxt.vueApp.runWithContext(fn);\n }\n}\nexport function tryUseNuxtApp(id) {\n let nuxtAppInstance;\n if (hasInjectionContext()) {\n nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt;\n }\n nuxtAppInstance ||= getNuxtAppCtx(id).tryUse();\n return nuxtAppInstance || null;\n}\nexport function useNuxtApp(id) {\n const nuxtAppInstance = tryUseNuxtApp(id);\n if (!nuxtAppInstance) {\n if (import.meta.dev) {\n throw new Error(\"[nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function. This is probably not a Nuxt bug. Find out more at `https://nuxt.com/docs/guide/concepts/auto-imports#vue-and-nuxt-composables`.\");\n } else {\n throw new Error(\"[nuxt] instance unavailable\");\n }\n }\n return nuxtAppInstance;\n}\n// @__NO_SIDE_EFFECTS__\nexport function useRuntimeConfig(_event) {\n return useNuxtApp().$config;\n}\nfunction defineGetter(obj, key, val) {\n Object.defineProperty(obj, key, { get: () => val });\n}\nexport function defineAppConfig(config) {\n return config;\n}\nconst loggedKeys = /* @__PURE__ */ new Set();\nfunction wrappedConfig(runtimeConfig) {\n if (!import.meta.dev || import.meta.server) {\n return runtimeConfig;\n }\n const keys = Object.keys(runtimeConfig).map((key) => `\\`${key}\\``);\n const lastKey = keys.pop();\n return new Proxy(runtimeConfig, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p !== \"public\" && !(p in target) && !p.startsWith(\"__v\")) {\n if (!loggedKeys.has(p)) {\n loggedKeys.add(p);\n console.warn(`[nuxt] Could not access \\`${p}\\`. The only available runtime config keys on the client side are ${keys.join(\", \")} and ${lastKey}. See https://nuxt.com/docs/guide/going-further/runtime-config for more information.`);\n }\n }\n return Reflect.get(target, p, receiver);\n }\n });\n}\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/plugins/revive-payload.server.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/plugins/revive-payload.server.mjs new file mode 100644 index 0000000..7c269ba --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/plugins/revive-payload.server.mjs @@ -0,0 +1,25 @@ +import { isRef, isShallow, isReactive, toRaw } from "vue"; +import { definePayloadReducer } from "../composables/payload.mjs"; +import { isNuxtError } from "../composables/error.mjs"; +import { defineNuxtPlugin } from "../nuxt.mjs"; +const reducers = [ + ["NuxtError", (data) => isNuxtError(data) && data.toJSON()], + ["EmptyShallowRef", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === "bigint" ? "0n" : JSON.stringify(data.value) || "_")], + ["EmptyRef", (data) => isRef(data) && !data.value && (typeof data.value === "bigint" ? "0n" : JSON.stringify(data.value) || "_")], + ["ShallowRef", (data) => isRef(data) && isShallow(data) && data.value], + ["ShallowReactive", (data) => isReactive(data) && isShallow(data) && toRaw(data)], + ["Ref", (data) => isRef(data) && data.value], + ["Reactive", (data) => isReactive(data) && toRaw(data)] +]; +const revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms = defineNuxtPlugin({ + name: "nuxt:revive-payload:server", + setup() { + for (const [reducer, fn] of reducers) { + definePayloadReducer(reducer, fn); + } + } +}); +export { + revive_payload_server_MVtmlZaQpj6ApFmshWfUWl5PehCebzaBf2NuRMiIbms as default +}; +//# sourceMappingURL=revive-payload.server.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/plugins/revive-payload.server.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/plugins/revive-payload.server.mjs.map new file mode 100644 index 0000000..724d691 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/plugins/revive-payload.server.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"revive-payload.server.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/app/plugins/revive-payload.server.js"],"sourcesContent":["import { isReactive, isRef, isShallow, toRaw } from \"vue\";\nimport { definePayloadReducer } from \"../composables/payload.js\";\nimport { isNuxtError } from \"../composables/error.js\";\nimport { defineNuxtPlugin } from \"../nuxt.js\";\nimport { componentIslands } from \"#build/nuxt.config.mjs\";\nconst reducers = [\n [\"NuxtError\", (data) => isNuxtError(data) && data.toJSON()],\n [\"EmptyShallowRef\", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"EmptyRef\", (data) => isRef(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"ShallowRef\", (data) => isRef(data) && isShallow(data) && data.value],\n [\"ShallowReactive\", (data) => isReactive(data) && isShallow(data) && toRaw(data)],\n [\"Ref\", (data) => isRef(data) && data.value],\n [\"Reactive\", (data) => isReactive(data) && toRaw(data)]\n];\nif (componentIslands) {\n reducers.push([\"Island\", (data) => data && data?.__nuxt_island]);\n}\nexport default defineNuxtPlugin({\n name: \"nuxt:revive-payload:server\",\n setup() {\n for (const [reducer, fn] of reducers) {\n definePayloadReducer(reducer, fn);\n }\n }\n});\n"],"names":[],"mappings":";;;;AAKA,MAAM,WAAW;AAAA,EACf,CAAC,aAAa,CAAC,SAAS,YAAY,IAAI,KAAK,KAAK,QAAQ;AAAA,EAC1D,CAAC,mBAAmB,CAAC,SAAS,MAAM,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,KAAK,UAAU,OAAO,KAAK,UAAU,WAAW,OAAO,KAAK,UAAU,KAAK,KAAK,KAAK,IAAI;AAAA,EAC1J,CAAC,YAAY,CAAC,SAAS,MAAM,IAAI,KAAK,CAAC,KAAK,UAAU,OAAO,KAAK,UAAU,WAAW,OAAO,KAAK,UAAU,KAAK,KAAK,KAAK,IAAI;AAAA,EAChI,CAAC,cAAc,CAAC,SAAS,MAAM,IAAI,KAAK,UAAU,IAAI,KAAK,KAAK,KAAK;AAAA,EACrE,CAAC,mBAAmB,CAAC,SAAS,WAAW,IAAI,KAAK,UAAU,IAAI,KAAK,MAAM,IAAI,CAAC;AAAA,EAChF,CAAC,OAAO,CAAC,SAAS,MAAM,IAAI,KAAK,KAAK,KAAK;AAAA,EAC3C,CAAC,YAAY,CAAC,SAAS,WAAW,IAAI,KAAK,MAAM,IAAI,CAAC;AACxD;AAIA,MAAA,oEAAe,iBAAiB;AAAA,EAC9B,MAAM;AAAA,EACN,QAAQ;AACN,eAAW,CAAC,SAAS,EAAE,KAAK,UAAU;AACpC,2BAAqB,SAAS,EAAE;AAAA,IACtC;AAAA,EACA;AACA,CAAC;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/plugins/revive-payload.server.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/plugins/revive-payload.server.mjs.map.json new file mode 100644 index 0000000..89ebaa1 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/plugins/revive-payload.server.mjs.map.json @@ -0,0 +1 @@ +{"file":"revive-payload.server.mjs","mappings":";;;;AAKA,MAAM,WAAW;AAAA,EACf,CAAC,aAAa,CAAC,SAAS,YAAY,IAAI,KAAK,KAAK,QAAQ;AAAA,EAC1D,CAAC,mBAAmB,CAAC,SAAS,MAAM,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,KAAK,UAAU,OAAO,KAAK,UAAU,WAAW,OAAO,KAAK,UAAU,KAAK,KAAK,KAAK,IAAI;AAAA,EAC1J,CAAC,YAAY,CAAC,SAAS,MAAM,IAAI,KAAK,CAAC,KAAK,UAAU,OAAO,KAAK,UAAU,WAAW,OAAO,KAAK,UAAU,KAAK,KAAK,KAAK,IAAI;AAAA,EAChI,CAAC,cAAc,CAAC,SAAS,MAAM,IAAI,KAAK,UAAU,IAAI,KAAK,KAAK,KAAK;AAAA,EACrE,CAAC,mBAAmB,CAAC,SAAS,WAAW,IAAI,KAAK,UAAU,IAAI,KAAK,MAAM,IAAI,CAAC;AAAA,EAChF,CAAC,OAAO,CAAC,SAAS,MAAM,IAAI,KAAK,KAAK,KAAK;AAAA,EAC3C,CAAC,YAAY,CAAC,SAAS,WAAW,IAAI,KAAK,MAAM,IAAI,CAAC;AACxD;AAIA,MAAA,oEAAe,iBAAiB;AAAA,EAC9B,MAAM;AAAA,EACN,QAAQ;AACN,eAAW,CAAC,SAAS,EAAE,KAAK,UAAU;AACpC,2BAAqB,SAAS,EAAE;AAAA,IACtC;AAAA,EACA;AACA,CAAC;","names":[],"sources":["../../../../../../../../node_modules/nuxt/dist/app/plugins/revive-payload.server.js"],"sourcesContent":["import { isReactive, isRef, isShallow, toRaw } from \"vue\";\nimport { definePayloadReducer } from \"../composables/payload.js\";\nimport { isNuxtError } from \"../composables/error.js\";\nimport { defineNuxtPlugin } from \"../nuxt.js\";\nimport { componentIslands } from \"#build/nuxt.config.mjs\";\nconst reducers = [\n [\"NuxtError\", (data) => isNuxtError(data) && data.toJSON()],\n [\"EmptyShallowRef\", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"EmptyRef\", (data) => isRef(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"ShallowRef\", (data) => isRef(data) && isShallow(data) && data.value],\n [\"ShallowReactive\", (data) => isReactive(data) && isShallow(data) && toRaw(data)],\n [\"Ref\", (data) => isRef(data) && data.value],\n [\"Reactive\", (data) => isReactive(data) && toRaw(data)]\n];\nif (componentIslands) {\n reducers.push([\"Island\", (data) => data && data?.__nuxt_island]);\n}\nexport default defineNuxtPlugin({\n name: \"nuxt:revive-payload:server\",\n setup() {\n for (const [reducer, fn] of reducers) {\n definePayloadReducer(reducer, fn);\n }\n }\n});\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/utils.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/app/utils.mjs new file mode 100644 index 0000000..19587f3 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/utils.mjs @@ -0,0 +1,7 @@ +function toArray(value) { + return Array.isArray(value) ? value : [value]; +} +export { + toArray +}; +//# sourceMappingURL=utils.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/utils.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/app/utils.mjs.map new file mode 100644 index 0000000..686ad0d --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/utils.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.mjs","sources":["../../../../../../../node_modules/nuxt/dist/app/utils.js"],"sourcesContent":["export function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n"],"names":[],"mappings":"AAAO,SAAS,QAAQ,OAAO;AAC7B,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC9C;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/app/utils.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/app/utils.mjs.map.json new file mode 100644 index 0000000..dd0409b --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/app/utils.mjs.map.json @@ -0,0 +1 @@ +{"file":"utils.mjs","mappings":"AAAO,SAAS,QAAQ,OAAO;AAC7B,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC9C;","names":[],"sources":["../../../../../../../node_modules/nuxt/dist/app/utils.js"],"sourcesContent":["export function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/composables/v3.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/composables/v3.mjs new file mode 100644 index 0000000..0c3a10e --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/composables/v3.mjs @@ -0,0 +1,23 @@ +import { hasInjectionContext, inject } from "vue"; +import { useHead as useHead$1, headSymbol } from "D:/doc/workspace/web3/node_modules/@unhead/vue/dist/index.mjs"; +import { tryUseNuxtApp } from "../../../app/nuxt.mjs"; +function injectHead(nuxtApp) { + var _a; + const nuxt = nuxtApp || tryUseNuxtApp(); + return ((_a = nuxt == null ? void 0 : nuxt.ssrContext) == null ? void 0 : _a.head) || (nuxt == null ? void 0 : nuxt.runWithContext(() => { + if (hasInjectionContext()) { + return inject(headSymbol); + } + })); +} +function useHead(input, options = {}) { + const head = injectHead(options.nuxt); + if (head) { + return useHead$1(input, { head, ...options }); + } +} +export { + injectHead, + useHead +}; +//# sourceMappingURL=v3.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/composables/v3.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/composables/v3.mjs.map new file mode 100644 index 0000000..d65198e --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/composables/v3.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"v3.mjs","sources":["../../../../../../../../../node_modules/nuxt/dist/head/runtime/composables/v3.js"],"sourcesContent":["import { hasInjectionContext, inject } from \"vue\";\nimport {\n useHead as headCore,\n useHeadSafe as headSafe,\n headSymbol,\n useSeoMeta as seoMeta,\n useServerHead as serverHead,\n useServerHeadSafe as serverHeadSafe,\n useServerSeoMeta as serverSeoMeta\n} from \"@unhead/vue\";\nimport { tryUseNuxtApp } from \"#app/nuxt\";\nexport function injectHead(nuxtApp) {\n const nuxt = nuxtApp || tryUseNuxtApp();\n return nuxt?.ssrContext?.head || nuxt?.runWithContext(() => {\n if (hasInjectionContext()) {\n return inject(headSymbol);\n }\n });\n}\nexport function useHead(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return headCore(input, { head, ...options });\n }\n}\nexport function useHeadSafe(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return headSafe(input, { head, ...options });\n }\n}\nexport function useSeoMeta(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return seoMeta(input, { head, ...options });\n }\n}\nexport function useServerHead(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverHead(input, { head, ...options });\n }\n}\nexport function useServerHeadSafe(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverHeadSafe(input, { head, ...options });\n }\n}\nexport function useServerSeoMeta(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverSeoMeta(input, { head, ...options });\n }\n}\n"],"names":["headCore"],"mappings":";;;AAWO,SAAS,WAAW,SAAS;;AAClC,QAAM,OAAO,WAAW,cAAe;AACvC,WAAO,kCAAM,eAAN,mBAAkB,UAAQ,6BAAM,eAAe,MAAM;AAC1D,QAAI,oBAAmB,GAAI;AACzB,aAAO,OAAO,UAAU;AAAA,IAC9B;AAAA,EACA;AACA;AACO,SAAS,QAAQ,OAAO,UAAU,IAAI;AAC3C,QAAM,OAAO,WAAW,QAAQ,IAAI;AACpC,MAAI,MAAM;AACR,WAAOA,UAAS,OAAO,EAAE,MAAM,GAAG,QAAO,CAAE;AAAA,EAC/C;AACA;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/composables/v3.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/composables/v3.mjs.map.json new file mode 100644 index 0000000..5f0db9c --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/composables/v3.mjs.map.json @@ -0,0 +1 @@ +{"file":"v3.mjs","mappings":";;;AAWO,SAAS,WAAW,SAAS;;AAClC,QAAM,OAAO,WAAW,cAAe;AACvC,WAAO,kCAAM,eAAN,mBAAkB,UAAQ,6BAAM,eAAe,MAAM;AAC1D,QAAI,oBAAmB,GAAI;AACzB,aAAO,OAAO,UAAU;AAAA,IAC9B;AAAA,EACA;AACA;AACO,SAAS,QAAQ,OAAO,UAAU,IAAI;AAC3C,QAAM,OAAO,WAAW,QAAQ,IAAI;AACpC,MAAI,MAAM;AACR,WAAOA,UAAS,OAAO,EAAE,MAAM,GAAG,QAAO,CAAE;AAAA,EAC/C;AACA;","names":["headCore"],"sources":["../../../../../../../../../node_modules/nuxt/dist/head/runtime/composables/v3.js"],"sourcesContent":["import { hasInjectionContext, inject } from \"vue\";\nimport {\n useHead as headCore,\n useHeadSafe as headSafe,\n headSymbol,\n useSeoMeta as seoMeta,\n useServerHead as serverHead,\n useServerHeadSafe as serverHeadSafe,\n useServerSeoMeta as serverSeoMeta\n} from \"@unhead/vue\";\nimport { tryUseNuxtApp } from \"#app/nuxt\";\nexport function injectHead(nuxtApp) {\n const nuxt = nuxtApp || tryUseNuxtApp();\n return nuxt?.ssrContext?.head || nuxt?.runWithContext(() => {\n if (hasInjectionContext()) {\n return inject(headSymbol);\n }\n });\n}\nexport function useHead(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return headCore(input, { head, ...options });\n }\n}\nexport function useHeadSafe(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return headSafe(input, { head, ...options });\n }\n}\nexport function useSeoMeta(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return seoMeta(input, { head, ...options });\n }\n}\nexport function useServerHead(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverHead(input, { head, ...options });\n }\n}\nexport function useServerHeadSafe(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverHeadSafe(input, { head, ...options });\n }\n}\nexport function useServerSeoMeta(input, options = {}) {\n const head = injectHead(options.nuxt);\n if (head) {\n return serverSeoMeta(input, { head, ...options });\n }\n}\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/plugins/unhead.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/plugins/unhead.mjs new file mode 100644 index 0000000..d10bcc0 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/plugins/unhead.mjs @@ -0,0 +1,13 @@ +import { defineNuxtPlugin } from "../../../app/nuxt.mjs"; +const unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU = defineNuxtPlugin({ + name: "nuxt:head", + enforce: "pre", + setup(nuxtApp) { + const head = nuxtApp.ssrContext.head; + nuxtApp.vueApp.use(head); + } +}); +export { + unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU as default +}; +//# sourceMappingURL=unhead.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/plugins/unhead.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/plugins/unhead.mjs.map new file mode 100644 index 0000000..2da147f --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/plugins/unhead.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"unhead.mjs","sources":["../../../../../../../../../node_modules/nuxt/dist/head/runtime/plugins/unhead.js"],"sourcesContent":["import { createHead as createClientHead, renderDOMHead } from \"@unhead/vue/client\";\nimport { defineNuxtPlugin } from \"#app/nuxt\";\nimport unheadOptions from \"#build/unhead-options.mjs\";\nexport default defineNuxtPlugin({\n name: \"nuxt:head\",\n enforce: \"pre\",\n setup(nuxtApp) {\n const head = import.meta.server ? nuxtApp.ssrContext.head : createClientHead(unheadOptions);\n nuxtApp.vueApp.use(head);\n if (import.meta.client) {\n let pauseDOMUpdates = true;\n const syncHead = async () => {\n pauseDOMUpdates = false;\n await renderDOMHead(head);\n };\n head.hooks.hook(\"dom:beforeRender\", (context) => {\n context.shouldRender = !pauseDOMUpdates;\n });\n nuxtApp.hooks.hook(\"page:start\", () => {\n pauseDOMUpdates = true;\n });\n nuxtApp.hooks.hook(\"page:finish\", () => {\n if (!nuxtApp.isHydrating) {\n syncHead();\n }\n });\n nuxtApp.hooks.hook(\"app:error\", syncHead);\n nuxtApp.hooks.hook(\"app:suspense:resolve\", syncHead);\n }\n }\n});\n"],"names":[],"mappings":";AAGA,MAAA,qDAAe,iBAAiB;AAAA,EAC9B,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM,SAAS;AACb,UAAM,OAA4B,QAAQ,WAAW;AACrD,YAAQ,OAAO,IAAI,IAAI;AAAA,EAqB3B;AACA,CAAC;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/plugins/unhead.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/plugins/unhead.mjs.map.json new file mode 100644 index 0000000..b6ad8ee --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/head/runtime/plugins/unhead.mjs.map.json @@ -0,0 +1 @@ +{"file":"unhead.mjs","mappings":";AAGA,MAAA,qDAAe,iBAAiB;AAAA,EAC9B,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM,SAAS;AACb,UAAM,OAA4B,QAAQ,WAAW;AACrD,YAAQ,OAAO,IAAI,IAAI;AAAA,EAqB3B;AACA,CAAC;","names":[],"sources":["../../../../../../../../../node_modules/nuxt/dist/head/runtime/plugins/unhead.js"],"sourcesContent":["import { createHead as createClientHead, renderDOMHead } from \"@unhead/vue/client\";\nimport { defineNuxtPlugin } from \"#app/nuxt\";\nimport unheadOptions from \"#build/unhead-options.mjs\";\nexport default defineNuxtPlugin({\n name: \"nuxt:head\",\n enforce: \"pre\",\n setup(nuxtApp) {\n const head = import.meta.server ? nuxtApp.ssrContext.head : createClientHead(unheadOptions);\n nuxtApp.vueApp.use(head);\n if (import.meta.client) {\n let pauseDOMUpdates = true;\n const syncHead = async () => {\n pauseDOMUpdates = false;\n await renderDOMHead(head);\n };\n head.hooks.hook(\"dom:beforeRender\", (context) => {\n context.shouldRender = !pauseDOMUpdates;\n });\n nuxtApp.hooks.hook(\"page:start\", () => {\n pauseDOMUpdates = true;\n });\n nuxtApp.hooks.hook(\"page:finish\", () => {\n if (!nuxtApp.isHydrating) {\n syncHead();\n }\n });\n nuxtApp.hooks.hook(\"app:error\", syncHead);\n nuxtApp.hooks.hook(\"app:suspense:resolve\", syncHead);\n }\n }\n});\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/page.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/page.mjs new file mode 100644 index 0000000..1eeae9e --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/page.mjs @@ -0,0 +1,61 @@ +import { defineComponent, ref, inject, h, Suspense, Fragment } from "vue"; +import { RouterView } from "vue-router"; +import "D:/doc/workspace/web3/node_modules/defu/dist/defu.mjs"; +import { RouteProvider } from "../../app/components/route-provider.mjs"; +import { useNuxtApp } from "../../app/nuxt.mjs"; +import { PageRouteSymbol, LayoutMetaSymbol } from "../../app/components/injections.mjs"; +const __nuxt_component_1 = defineComponent({ + name: "NuxtPage", + inheritAttrs: false, + props: { + name: { + type: String + }, + transition: { + type: [Boolean, Object], + default: void 0 + }, + keepalive: { + type: [Boolean, Object], + default: void 0 + }, + route: { + type: Object + }, + pageKey: { + type: [Function, String], + default: null + } + }, + setup(props, { attrs, slots, expose }) { + const nuxtApp = useNuxtApp(); + const pageRef = ref(); + inject(PageRouteSymbol, null); + expose({ pageRef }); + inject(LayoutMetaSymbol, null); + nuxtApp.deferHydration(); + return () => { + return h(RouterView, { name: props.name, route: props.route, ...attrs }, { + default: (routeProps) => { + return h(Suspense, { suspensible: true }, { + default() { + return h(RouteProvider, { + vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component, + route: routeProps.route, + vnodeRef: pageRef + }); + } + }); + } + }); + }; + } +}); +function normalizeSlot(slot, data) { + const slotContent = slot(data); + return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent); +} +export { + __nuxt_component_1 as default +}; +//# sourceMappingURL=page.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/page.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/page.mjs.map new file mode 100644 index 0000000..1a8825e --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/page.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"page.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/pages/runtime/page.js"],"sourcesContent":["import { Fragment, Suspense, defineComponent, h, inject, nextTick, onBeforeUnmount, ref, watch } from \"vue\";\nimport { RouterView } from \"vue-router\";\nimport { defu } from \"defu\";\nimport { generateRouteKey, toArray, wrapInKeepAlive } from \"./utils.js\";\nimport { RouteProvider, defineRouteProvider } from \"#app/components/route-provider\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { useRouter } from \"#app/composables/router\";\nimport { _wrapInTransition } from \"#app/components/utils\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"#app/components/injections\";\nimport { appKeepalive as defaultKeepaliveConfig, appPageTransition as defaultPageTransition } from \"#build/nuxt.config.mjs\";\nconst _routeProviders = import.meta.dev ? /* @__PURE__ */ new Map() : /* @__PURE__ */ new WeakMap();\nexport default defineComponent({\n name: \"NuxtPage\",\n inheritAttrs: false,\n props: {\n name: {\n type: String\n },\n transition: {\n type: [Boolean, Object],\n default: void 0\n },\n keepalive: {\n type: [Boolean, Object],\n default: void 0\n },\n route: {\n type: Object\n },\n pageKey: {\n type: [Function, String],\n default: null\n }\n },\n setup(props, { attrs, slots, expose }) {\n const nuxtApp = useNuxtApp();\n const pageRef = ref();\n const forkRoute = inject(PageRouteSymbol, null);\n let previousPageKey;\n expose({ pageRef });\n const _layoutMeta = inject(LayoutMetaSymbol, null);\n let vnode;\n const done = nuxtApp.deferHydration();\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n useRouter().beforeEach(removeErrorHook);\n }\n if (import.meta.client && props.pageKey) {\n watch(() => props.pageKey, (next, prev) => {\n if (next !== prev) {\n nuxtApp.callHook(\"page:loading:start\");\n }\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtPageUsed = true;\n }\n let pageLoadingEndHookAlreadyCalled = false;\n if (import.meta.client) {\n const unsub = useRouter().beforeResolve(() => {\n pageLoadingEndHookAlreadyCalled = false;\n });\n onBeforeUnmount(() => {\n unsub();\n });\n }\n return () => {\n return h(RouterView, { name: props.name, route: props.route, ...attrs }, {\n default: import.meta.server ? (routeProps) => {\n return h(Suspense, { suspensible: true }, {\n default() {\n return h(RouteProvider, {\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n vnodeRef: pageRef\n });\n }\n });\n } : (routeProps) => {\n const isRenderingNewRouteInOldFork = haveParentRoutesRendered(forkRoute, routeProps.route, routeProps.Component);\n const hasSameChildren = forkRoute && forkRoute.matched.length === routeProps.route.matched.length;\n if (!routeProps.Component) {\n if (vnode && !hasSameChildren) {\n return vnode;\n }\n done();\n return;\n }\n if (vnode && _layoutMeta && !_layoutMeta.isCurrent(routeProps.route)) {\n return vnode;\n }\n if (isRenderingNewRouteInOldFork && forkRoute && (!_layoutMeta || _layoutMeta?.isCurrent(forkRoute))) {\n if (hasSameChildren) {\n return vnode;\n }\n return null;\n }\n const key = generateRouteKey(routeProps, props.pageKey);\n const willRenderAnotherChild = hasChildrenRoutes(forkRoute, routeProps.route, routeProps.Component);\n if (!nuxtApp.isHydrating && previousPageKey === key && !willRenderAnotherChild) {\n nuxtApp.callHook(\"page:loading:end\");\n pageLoadingEndHookAlreadyCalled = true;\n }\n previousPageKey = key;\n const hasTransition = !!(props.transition ?? routeProps.route.meta.pageTransition ?? defaultPageTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n props.transition,\n routeProps.route.meta.pageTransition,\n defaultPageTransition,\n { onAfterLeave: () => {\n nuxtApp.callHook(\"page:transition:finish\", routeProps.Component);\n } }\n ]);\n const keepaliveConfig = props.keepalive ?? routeProps.route.meta.keepalive ?? defaultKeepaliveConfig;\n vnode = _wrapInTransition(\n hasTransition && transitionProps,\n wrapInKeepAlive(\n keepaliveConfig,\n h(Suspense, {\n suspensible: true,\n onPending: () => nuxtApp.callHook(\"page:start\", routeProps.Component),\n onResolve: () => {\n nextTick(() => nuxtApp.callHook(\"page:finish\", routeProps.Component).then(() => {\n if (!pageLoadingEndHookAlreadyCalled && !willRenderAnotherChild) {\n pageLoadingEndHookAlreadyCalled = true;\n return nuxtApp.callHook(\"page:loading:end\");\n }\n }).finally(done));\n }\n }, {\n default: () => {\n const routeProviderProps = {\n key: key || void 0,\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n renderKey: key || void 0,\n trackRootNodes: hasTransition,\n vnodeRef: pageRef\n };\n if (!keepaliveConfig) {\n return h(RouteProvider, routeProviderProps);\n }\n const routerComponentType = routeProps.Component.type;\n const routeProviderKey = import.meta.dev ? routerComponentType.name || routerComponentType.__name : routerComponentType;\n let PageRouteProvider = _routeProviders.get(routeProviderKey);\n if (!PageRouteProvider) {\n PageRouteProvider = defineRouteProvider(routerComponentType.name || routerComponentType.__name);\n _routeProviders.set(routeProviderKey, PageRouteProvider);\n }\n return h(PageRouteProvider, routeProviderProps);\n }\n })\n )\n ).default();\n return vnode;\n }\n });\n };\n }\n});\nfunction _mergeTransitionProps(routeProps) {\n const _props = routeProps.filter(Boolean).map((prop) => ({\n ...prop,\n onAfterLeave: prop.onAfterLeave ? toArray(prop.onAfterLeave) : void 0\n }));\n return defu(..._props);\n}\nfunction haveParentRoutesRendered(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n if (!index || index === -1) {\n return false;\n }\n return newRoute.matched.slice(0, index).some(\n (c, i) => c.components?.default !== fork.matched[i]?.components?.default\n ) || Component && generateRouteKey({ route: newRoute, Component }) !== generateRouteKey({ route: fork, Component });\n}\nfunction hasChildrenRoutes(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n return index < newRoute.matched.length - 1;\n}\nfunction normalizeSlot(slot, data) {\n const slotContent = slot(data);\n return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent);\n}\n"],"names":[],"mappings":";;;;;;AAWA,MAAA,qBAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,IACP;AAAA,IACD,YAAY;AAAA,MACV,MAAM,CAAC,SAAS,MAAM;AAAA,MACtB,SAAS;AAAA,IACV;AAAA,IACD,WAAW;AAAA,MACT,MAAM,CAAC,SAAS,MAAM;AAAA,MACtB,SAAS;AAAA,IACV;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,IACP;AAAA,IACD,SAAS;AAAA,MACP,MAAM,CAAC,UAAU,MAAM;AAAA,MACvB,SAAS;AAAA,IACf;AAAA,EACG;AAAA,EACD,MAAM,OAAO,EAAE,OAAO,OAAO,OAAM,GAAI;AACrC,UAAM,UAAU,WAAY;AAC5B,UAAM,UAAU,IAAK;AACH,WAAO,iBAAiB,IAAI;AAE9C,WAAO,EAAE,SAAS;AACE,WAAO,kBAAkB,IAAI;AAEpC,YAAQ,eAAc;AAwBnC,WAAO,MAAM;AACX,aAAO,EAAE,YAAY,EAAE,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,GAAG,MAAK,GAAI;AAAA,QACvE,SAA8B,CAAC,eAAe;AAC5C,iBAAO,EAAE,UAAU,EAAE,aAAa,KAAI,GAAI;AAAA,YACxC,UAAU;AACR,qBAAO,EAAE,eAAe;AAAA,gBACtB,OAAO,MAAM,UAAU,cAAc,MAAM,SAAS,UAAU,IAAI,WAAW;AAAA,gBAC7E,OAAO,WAAW;AAAA,gBAClB,UAAU;AAAA,cAC1B,CAAe;AAAA,YACf;AAAA,UACA,CAAW;AAAA,QACF;AAAA,MA8ET,CAAO;AAAA,IACF;AAAA,EACL;AACA,CAAC;AA2BD,SAAS,cAAc,MAAM,MAAM;AACjC,QAAM,cAAc,KAAK,IAAI;AAC7B,SAAO,YAAY,WAAW,IAAI,EAAE,YAAY,CAAC,CAAC,IAAI,EAAE,UAAU,QAAQ,WAAW;AACvF;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/page.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/page.mjs.map.json new file mode 100644 index 0000000..ee6cf11 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/page.mjs.map.json @@ -0,0 +1 @@ +{"file":"page.mjs","mappings":";;;;;;AAWA,MAAA,qBAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,IACP;AAAA,IACD,YAAY;AAAA,MACV,MAAM,CAAC,SAAS,MAAM;AAAA,MACtB,SAAS;AAAA,IACV;AAAA,IACD,WAAW;AAAA,MACT,MAAM,CAAC,SAAS,MAAM;AAAA,MACtB,SAAS;AAAA,IACV;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,IACP;AAAA,IACD,SAAS;AAAA,MACP,MAAM,CAAC,UAAU,MAAM;AAAA,MACvB,SAAS;AAAA,IACf;AAAA,EACG;AAAA,EACD,MAAM,OAAO,EAAE,OAAO,OAAO,OAAM,GAAI;AACrC,UAAM,UAAU,WAAY;AAC5B,UAAM,UAAU,IAAK;AACH,WAAO,iBAAiB,IAAI;AAE9C,WAAO,EAAE,SAAS;AACE,WAAO,kBAAkB,IAAI;AAEpC,YAAQ,eAAc;AAwBnC,WAAO,MAAM;AACX,aAAO,EAAE,YAAY,EAAE,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,GAAG,MAAK,GAAI;AAAA,QACvE,SAA8B,CAAC,eAAe;AAC5C,iBAAO,EAAE,UAAU,EAAE,aAAa,KAAI,GAAI;AAAA,YACxC,UAAU;AACR,qBAAO,EAAE,eAAe;AAAA,gBACtB,OAAO,MAAM,UAAU,cAAc,MAAM,SAAS,UAAU,IAAI,WAAW;AAAA,gBAC7E,OAAO,WAAW;AAAA,gBAClB,UAAU;AAAA,cAC1B,CAAe;AAAA,YACf;AAAA,UACA,CAAW;AAAA,QACF;AAAA,MA8ET,CAAO;AAAA,IACF;AAAA,EACL;AACA,CAAC;AA2BD,SAAS,cAAc,MAAM,MAAM;AACjC,QAAM,cAAc,KAAK,IAAI;AAC7B,SAAO,YAAY,WAAW,IAAI,EAAE,YAAY,CAAC,CAAC,IAAI,EAAE,UAAU,QAAQ,WAAW;AACvF;","names":[],"sources":["../../../../../../../../node_modules/nuxt/dist/pages/runtime/page.js"],"sourcesContent":["import { Fragment, Suspense, defineComponent, h, inject, nextTick, onBeforeUnmount, ref, watch } from \"vue\";\nimport { RouterView } from \"vue-router\";\nimport { defu } from \"defu\";\nimport { generateRouteKey, toArray, wrapInKeepAlive } from \"./utils.js\";\nimport { RouteProvider, defineRouteProvider } from \"#app/components/route-provider\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { useRouter } from \"#app/composables/router\";\nimport { _wrapInTransition } from \"#app/components/utils\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"#app/components/injections\";\nimport { appKeepalive as defaultKeepaliveConfig, appPageTransition as defaultPageTransition } from \"#build/nuxt.config.mjs\";\nconst _routeProviders = import.meta.dev ? /* @__PURE__ */ new Map() : /* @__PURE__ */ new WeakMap();\nexport default defineComponent({\n name: \"NuxtPage\",\n inheritAttrs: false,\n props: {\n name: {\n type: String\n },\n transition: {\n type: [Boolean, Object],\n default: void 0\n },\n keepalive: {\n type: [Boolean, Object],\n default: void 0\n },\n route: {\n type: Object\n },\n pageKey: {\n type: [Function, String],\n default: null\n }\n },\n setup(props, { attrs, slots, expose }) {\n const nuxtApp = useNuxtApp();\n const pageRef = ref();\n const forkRoute = inject(PageRouteSymbol, null);\n let previousPageKey;\n expose({ pageRef });\n const _layoutMeta = inject(LayoutMetaSymbol, null);\n let vnode;\n const done = nuxtApp.deferHydration();\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n useRouter().beforeEach(removeErrorHook);\n }\n if (import.meta.client && props.pageKey) {\n watch(() => props.pageKey, (next, prev) => {\n if (next !== prev) {\n nuxtApp.callHook(\"page:loading:start\");\n }\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtPageUsed = true;\n }\n let pageLoadingEndHookAlreadyCalled = false;\n if (import.meta.client) {\n const unsub = useRouter().beforeResolve(() => {\n pageLoadingEndHookAlreadyCalled = false;\n });\n onBeforeUnmount(() => {\n unsub();\n });\n }\n return () => {\n return h(RouterView, { name: props.name, route: props.route, ...attrs }, {\n default: import.meta.server ? (routeProps) => {\n return h(Suspense, { suspensible: true }, {\n default() {\n return h(RouteProvider, {\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n vnodeRef: pageRef\n });\n }\n });\n } : (routeProps) => {\n const isRenderingNewRouteInOldFork = haveParentRoutesRendered(forkRoute, routeProps.route, routeProps.Component);\n const hasSameChildren = forkRoute && forkRoute.matched.length === routeProps.route.matched.length;\n if (!routeProps.Component) {\n if (vnode && !hasSameChildren) {\n return vnode;\n }\n done();\n return;\n }\n if (vnode && _layoutMeta && !_layoutMeta.isCurrent(routeProps.route)) {\n return vnode;\n }\n if (isRenderingNewRouteInOldFork && forkRoute && (!_layoutMeta || _layoutMeta?.isCurrent(forkRoute))) {\n if (hasSameChildren) {\n return vnode;\n }\n return null;\n }\n const key = generateRouteKey(routeProps, props.pageKey);\n const willRenderAnotherChild = hasChildrenRoutes(forkRoute, routeProps.route, routeProps.Component);\n if (!nuxtApp.isHydrating && previousPageKey === key && !willRenderAnotherChild) {\n nuxtApp.callHook(\"page:loading:end\");\n pageLoadingEndHookAlreadyCalled = true;\n }\n previousPageKey = key;\n const hasTransition = !!(props.transition ?? routeProps.route.meta.pageTransition ?? defaultPageTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n props.transition,\n routeProps.route.meta.pageTransition,\n defaultPageTransition,\n { onAfterLeave: () => {\n nuxtApp.callHook(\"page:transition:finish\", routeProps.Component);\n } }\n ]);\n const keepaliveConfig = props.keepalive ?? routeProps.route.meta.keepalive ?? defaultKeepaliveConfig;\n vnode = _wrapInTransition(\n hasTransition && transitionProps,\n wrapInKeepAlive(\n keepaliveConfig,\n h(Suspense, {\n suspensible: true,\n onPending: () => nuxtApp.callHook(\"page:start\", routeProps.Component),\n onResolve: () => {\n nextTick(() => nuxtApp.callHook(\"page:finish\", routeProps.Component).then(() => {\n if (!pageLoadingEndHookAlreadyCalled && !willRenderAnotherChild) {\n pageLoadingEndHookAlreadyCalled = true;\n return nuxtApp.callHook(\"page:loading:end\");\n }\n }).finally(done));\n }\n }, {\n default: () => {\n const routeProviderProps = {\n key: key || void 0,\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n renderKey: key || void 0,\n trackRootNodes: hasTransition,\n vnodeRef: pageRef\n };\n if (!keepaliveConfig) {\n return h(RouteProvider, routeProviderProps);\n }\n const routerComponentType = routeProps.Component.type;\n const routeProviderKey = import.meta.dev ? routerComponentType.name || routerComponentType.__name : routerComponentType;\n let PageRouteProvider = _routeProviders.get(routeProviderKey);\n if (!PageRouteProvider) {\n PageRouteProvider = defineRouteProvider(routerComponentType.name || routerComponentType.__name);\n _routeProviders.set(routeProviderKey, PageRouteProvider);\n }\n return h(PageRouteProvider, routeProviderProps);\n }\n })\n )\n ).default();\n return vnode;\n }\n });\n };\n }\n});\nfunction _mergeTransitionProps(routeProps) {\n const _props = routeProps.filter(Boolean).map((prop) => ({\n ...prop,\n onAfterLeave: prop.onAfterLeave ? toArray(prop.onAfterLeave) : void 0\n }));\n return defu(..._props);\n}\nfunction haveParentRoutesRendered(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n if (!index || index === -1) {\n return false;\n }\n return newRoute.matched.slice(0, index).some(\n (c, i) => c.components?.default !== fork.matched[i]?.components?.default\n ) || Component && generateRouteKey({ route: newRoute, Component }) !== generateRouteKey({ route: fork, Component });\n}\nfunction hasChildrenRoutes(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n return index < newRoute.matched.length - 1;\n}\nfunction normalizeSlot(slot, data) {\n const slotContent = slot(data);\n return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent);\n}\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.mjs new file mode 100644 index 0000000..bec6e7e --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.mjs @@ -0,0 +1,51 @@ +import { executeAsync } from "D:/doc/workspace/web3/node_modules/unctx/dist/index.mjs"; +import { joinURL } from "D:/doc/workspace/web3/node_modules/ufo/dist/index.mjs"; +import "D:/doc/workspace/web3/node_modules/defu/dist/defu.mjs"; +import { defineNuxtPlugin, useRuntimeConfig } from "../../../app/nuxt.mjs"; +import { prerenderRoutes } from "../../../app/composables/ssr.mjs"; +import _routes from "../../../../../../_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_routes.mjs"; +import routerOptions, { hashMode } from "../../../../../../_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_router.options.mjs"; +let routes; +const prerender_server_sqIxOBipVr4FbVMA9kqWL0wT8FPop6sKAXLVfifsJzk = defineNuxtPlugin(async () => { + let __temp, __restore; + if (!import.meta.prerender || hashMode) { + return; + } + if (routes && !routes.length) { + return; + } + useRuntimeConfig().nitro.routeRules; + routes || (routes = Array.from(processRoutes(([__temp, __restore] = executeAsync(() => { + var _a, _b; + return (_b = (_a = routerOptions).routes) == null ? void 0 : _b.call(_a, _routes); + }), __temp = await __temp, __restore(), __temp) ?? _routes))); + const batch = routes.splice(0, 10); + prerenderRoutes(batch); +}); +const OPTIONAL_PARAM_RE = /^\/?:.*(?:\?|\(\.\*\)\*)$/; +function shouldPrerender(path) { + return true; +} +function processRoutes(routes2, currentPath = "/", routesToPrerender = /* @__PURE__ */ new Set()) { + var _a; + for (const route of routes2) { + if (OPTIONAL_PARAM_RE.test(route.path) && !((_a = route.children) == null ? void 0 : _a.length) && shouldPrerender()) { + routesToPrerender.add(currentPath); + } + if (route.path.includes(":")) { + continue; + } + const fullPath = joinURL(currentPath, route.path); + { + routesToPrerender.add(fullPath); + } + if (route.children) { + processRoutes(route.children, fullPath, routesToPrerender); + } + } + return routesToPrerender; +} +export { + prerender_server_sqIxOBipVr4FbVMA9kqWL0wT8FPop6sKAXLVfifsJzk as default +}; +//# sourceMappingURL=prerender.server.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.mjs.map new file mode 100644 index 0000000..fb328fa --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"prerender.server.mjs","sources":["../../../../../../../../../node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.js"],"sourcesContent":["import { joinURL } from \"ufo\";\nimport { createRouter as createRadixRouter, toRouteMatcher } from \"radix3\";\nimport defu from \"defu\";\nimport { defineNuxtPlugin, useRuntimeConfig } from \"#app/nuxt\";\nimport { prerenderRoutes } from \"#app/composables/ssr\";\nimport _routes from \"#build/routes\";\nimport routerOptions, { hashMode } from \"#build/router.options\";\nimport { crawlLinks } from \"#build/nuxt.config.mjs\";\nlet routes;\nlet _routeRulesMatcher = void 0;\nexport default defineNuxtPlugin(async () => {\n if (!import.meta.server || !import.meta.prerender || hashMode) {\n return;\n }\n if (routes && !routes.length) {\n return;\n }\n const routeRules = useRuntimeConfig().nitro.routeRules;\n if (!crawlLinks && routeRules && Object.values(routeRules).some((r) => r.prerender)) {\n _routeRulesMatcher = toRouteMatcher(createRadixRouter({ routes: routeRules }));\n }\n routes ||= Array.from(processRoutes(await routerOptions.routes?.(_routes) ?? _routes));\n const batch = routes.splice(0, 10);\n prerenderRoutes(batch);\n});\nconst OPTIONAL_PARAM_RE = /^\\/?:.*(?:\\?|\\(\\.\\*\\)\\*)$/;\nfunction shouldPrerender(path) {\n return !_routeRulesMatcher || defu({}, ..._routeRulesMatcher.matchAll(path).reverse()).prerender;\n}\nfunction processRoutes(routes2, currentPath = \"/\", routesToPrerender = /* @__PURE__ */ new Set()) {\n for (const route of routes2) {\n if (OPTIONAL_PARAM_RE.test(route.path) && !route.children?.length && shouldPrerender(currentPath)) {\n routesToPrerender.add(currentPath);\n }\n if (route.path.includes(\":\")) {\n continue;\n }\n const fullPath = joinURL(currentPath, route.path);\n if (shouldPrerender(fullPath)) {\n routesToPrerender.add(fullPath);\n }\n if (route.children) {\n processRoutes(route.children, fullPath, routesToPrerender);\n }\n }\n return routesToPrerender;\n}\n"],"names":["__executeAsync"],"mappings":";;;;;;;AASA,IAAI;AAEJ,MAAA,+DAA6B,iBAAiB,YAAY;AAAC,MAAI,QAAE;AAC/D,MAAQ,CAAA,YAAA,aAAA,UAAA;AACR;AAAA,EACF;AACE,MAAI,UAAI,CAAA,OAAA,QAAA;AACR;AAAA,EACF;AACqB,mBAAgB,EAAG,MAAM;AAI5C,sBAAW,MAAM,KAAK,eAAY,CAAA,QAAA,SAAA,IAAAA,aAAA,MAAA;;AAAA,sCAAA,WAAA,4BAAA;AAAA,GAAA,GAAA,SAAA,MAAA,QAAA,UAAA,GAAA,WAAA,OAAA,CAAA;AAClC,QAAM,QAAQ,OAAO,OAAC,GAAA,EAAA;AACxB,kBAAE,KAAA;AACF,CAAG;AACH,MAAM,oBAAoB;AAC1B,SAAS,gBAAgB,MAAM;AAC/B,SAAA;AACA;AACA,SAAS,cAAc,SAAQ,cAAA,KAAA,oBAAA,oBAAA,OAAA;;AAC7B,aAAW,SAAS,SAAS;AAC3B,QAAI,kBAAkB,KAAK,MAAM,IAAG,KAAA,GAAA,WAAA,aAAA,mBAAA,WAAA,gBAAA,GAAA;AACpC,wBAAA,IAAA,WAAA;AAAA,IACJ;AACI,QAAI,MAAM,KAAA,SAAA,GAAA,GAAA;AACV;AAAA,IACJ;AACI,UAAM,WAAW,QAAQ,aAAM,MAAA,IAAA;AACA;AAC/B,wBAAA,IAAA,QAAA;AAAA,IACJ;AACI,QAAI,MAAM,UAAU;AACpB,oBAAA,MAAA,UAAA,UAAA,iBAAA;AAAA,IACJ;AAAA,EACA;AACA,SAAA;;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.mjs.map.json new file mode 100644 index 0000000..f4536e0 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.mjs.map.json @@ -0,0 +1 @@ +{"file":"prerender.server.mjs","mappings":";;;;;;;AASA,IAAI;AAEJ,MAAA,+DAA6B,iBAAiB,YAAY;AAAC,MAAI,QAAE;AAC/D,MAAQ,CAAA,YAAA,aAAA,UAAA;AACR;AAAA,EACF;AACE,MAAI,UAAI,CAAA,OAAA,QAAA;AACR;AAAA,EACF;AACqB,mBAAgB,EAAG,MAAM;AAI5C,sBAAW,MAAM,KAAK,eAAY,CAAA,QAAA,SAAA,IAAAA,aAAA,MAAA;;AAAA,sCAAA,WAAA,4BAAA;AAAA,GAAA,GAAA,SAAA,MAAA,QAAA,UAAA,GAAA,WAAA,OAAA,CAAA;AAClC,QAAM,QAAQ,OAAO,OAAC,GAAA,EAAA;AACxB,kBAAE,KAAA;AACF,CAAG;AACH,MAAM,oBAAoB;AAC1B,SAAS,gBAAgB,MAAM;AAC/B,SAAA;AACA;AACA,SAAS,cAAc,SAAQ,cAAA,KAAA,oBAAA,oBAAA,OAAA;;AAC7B,aAAW,SAAS,SAAS;AAC3B,QAAI,kBAAkB,KAAK,MAAM,IAAG,KAAA,GAAA,WAAA,aAAA,mBAAA,WAAA,gBAAA,GAAA;AACpC,wBAAA,IAAA,WAAA;AAAA,IACJ;AACI,QAAI,MAAM,KAAA,SAAA,GAAA,GAAA;AACV;AAAA,IACJ;AACI,UAAM,WAAW,QAAQ,aAAM,MAAA,IAAA;AACA;AAC/B,wBAAA,IAAA,QAAA;AAAA,IACJ;AACI,QAAI,MAAM,UAAU;AACpB,oBAAA,MAAA,UAAA,UAAA,iBAAA;AAAA,IACJ;AAAA,EACA;AACA,SAAA;;","names":["__executeAsync"],"sources":["../../../../../../../../../node_modules/nuxt/dist/pages/runtime/plugins/prerender.server.js"],"sourcesContent":["import { joinURL } from \"ufo\";\nimport { createRouter as createRadixRouter, toRouteMatcher } from \"radix3\";\nimport defu from \"defu\";\nimport { defineNuxtPlugin, useRuntimeConfig } from \"#app/nuxt\";\nimport { prerenderRoutes } from \"#app/composables/ssr\";\nimport _routes from \"#build/routes\";\nimport routerOptions, { hashMode } from \"#build/router.options\";\nimport { crawlLinks } from \"#build/nuxt.config.mjs\";\nlet routes;\nlet _routeRulesMatcher = void 0;\nexport default defineNuxtPlugin(async () => {\n if (!import.meta.server || !import.meta.prerender || hashMode) {\n return;\n }\n if (routes && !routes.length) {\n return;\n }\n const routeRules = useRuntimeConfig().nitro.routeRules;\n if (!crawlLinks && routeRules && Object.values(routeRules).some((r) => r.prerender)) {\n _routeRulesMatcher = toRouteMatcher(createRadixRouter({ routes: routeRules }));\n }\n routes ||= Array.from(processRoutes(await routerOptions.routes?.(_routes) ?? _routes));\n const batch = routes.splice(0, 10);\n prerenderRoutes(batch);\n});\nconst OPTIONAL_PARAM_RE = /^\\/?:.*(?:\\?|\\(\\.\\*\\)\\*)$/;\nfunction shouldPrerender(path) {\n return !_routeRulesMatcher || defu({}, ..._routeRulesMatcher.matchAll(path).reverse()).prerender;\n}\nfunction processRoutes(routes2, currentPath = \"/\", routesToPrerender = /* @__PURE__ */ new Set()) {\n for (const route of routes2) {\n if (OPTIONAL_PARAM_RE.test(route.path) && !route.children?.length && shouldPrerender(currentPath)) {\n routesToPrerender.add(currentPath);\n }\n if (route.path.includes(\":\")) {\n continue;\n }\n const fullPath = joinURL(currentPath, route.path);\n if (shouldPrerender(fullPath)) {\n routesToPrerender.add(fullPath);\n }\n if (route.children) {\n processRoutes(route.children, fullPath, routesToPrerender);\n }\n }\n return routesToPrerender;\n}\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/router.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/router.mjs new file mode 100644 index 0000000..7c2e57e --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/router.mjs @@ -0,0 +1,216 @@ +import { executeAsync } from "D:/doc/workspace/web3/node_modules/unctx/dist/index.mjs"; +import { shallowRef, shallowReactive, reactive, isReadonly } from "vue"; +import { createMemoryHistory, createRouter, START_LOCATION } from "vue-router"; +import { createError } from "D:/doc/workspace/web3/node_modules/h3/dist/index.mjs"; +import { toArray } from "../utils.mjs"; +import { getRouteRules } from "../../../app/composables/manifest.mjs"; +import { defineNuxtPlugin, useRuntimeConfig } from "../../../app/nuxt.mjs"; +import { useError, showError, isNuxtError } from "../../../app/composables/error.mjs"; +import { navigateTo } from "../../../app/composables/router.mjs"; +import _routes, { handleHotUpdate } from "../../../../../../_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_routes.mjs"; +import routerOptions from "../../../../../../_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_router.options.mjs"; +import { globalMiddleware, namedMiddleware } from "../../../../../../_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_middleware.mjs"; +const plugin = defineNuxtPlugin({ + name: "nuxt:router", + enforce: "pre", + async setup(nuxtApp) { + var _a, _b, _c, _d; + let __temp, __restore; + let routerBase = useRuntimeConfig().app.baseURL; + const history = ((_b = (_a = routerOptions).history) == null ? void 0 : _b.call(_a, routerBase)) ?? createMemoryHistory(routerBase); + const routes = routerOptions.routes ? ([__temp, __restore] = executeAsync(() => routerOptions.routes(_routes)), __temp = await __temp, __restore(), __temp) ?? _routes : _routes; + let startPosition; + const router = createRouter({ + ...routerOptions, + scrollBehavior: (to, from, savedPosition) => { + if (from === START_LOCATION) { + startPosition = savedPosition; + return; + } + if (routerOptions.scrollBehavior) { + router.options.scrollBehavior = routerOptions.scrollBehavior; + if ("scrollRestoration" in (void 0).history) { + const unsub = router.beforeEach(() => { + unsub(); + (void 0).history.scrollRestoration = "manual"; + }); + } + return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition); + } + }, + history, + routes + }); + handleHotUpdate(router, routerOptions.routes ? routerOptions.routes : (routes2) => routes2); + nuxtApp.vueApp.use(router); + const previousRoute = shallowRef(router.currentRoute.value); + router.afterEach((_to, from) => { + previousRoute.value = from; + }); + Object.defineProperty(nuxtApp.vueApp.config.globalProperties, "previousRoute", { + get: () => previousRoute.value + }); + const initialURL = nuxtApp.ssrContext.url; + const _route = shallowRef(router.currentRoute.value); + const syncCurrentRoute = () => { + _route.value = router.currentRoute.value; + }; + nuxtApp.hook("page:finish", syncCurrentRoute); + router.afterEach((to, from) => { + var _a2, _b2, _c2, _d2; + if (((_b2 = (_a2 = to.matched[0]) == null ? void 0 : _a2.components) == null ? void 0 : _b2.default) === ((_d2 = (_c2 = from.matched[0]) == null ? void 0 : _c2.components) == null ? void 0 : _d2.default)) { + syncCurrentRoute(); + } + }); + const route = {}; + for (const key in _route.value) { + Object.defineProperty(route, key, { + get: () => _route.value[key], + enumerable: true + }); + } + nuxtApp._route = shallowReactive(route); + nuxtApp._middleware || (nuxtApp._middleware = { + global: [], + named: {} + }); + useError(); + if (!((_c = nuxtApp.ssrContext) == null ? void 0 : _c.islandContext)) { + router.afterEach(async (to, _from, failure) => { + delete nuxtApp._processingMiddleware; + if (failure) { + await nuxtApp.callHook("page:loading:end"); + } + if ((failure == null ? void 0 : failure.type) === 4) { + return; + } + if (to.redirectedFrom && to.fullPath !== initialURL) { + await nuxtApp.runWithContext(() => navigateTo(to.fullPath || "/")); + } + }); + } + try { + if (true) { + ; + [__temp, __restore] = executeAsync(() => router.push(initialURL)), await __temp, __restore(); + ; + } + ; + [__temp, __restore] = executeAsync(() => router.isReady()), await __temp, __restore(); + ; + } catch (error2) { + [__temp, __restore] = executeAsync(() => nuxtApp.runWithContext(() => showError(error2))), await __temp, __restore(); + } + const resolvedInitialRoute = router.currentRoute.value; + syncCurrentRoute(); + if ((_d = nuxtApp.ssrContext) == null ? void 0 : _d.islandContext) { + return { provide: { router } }; + } + const initialLayout = nuxtApp.payload.state._layout; + router.beforeEach(async (to, from) => { + var _a2, _b2, _c2; + await nuxtApp.callHook("page:loading:start"); + to.meta = reactive(to.meta); + if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) { + to.meta.layout = initialLayout; + } + nuxtApp._processingMiddleware = true; + if (!((_a2 = nuxtApp.ssrContext) == null ? void 0 : _a2.islandContext)) { + const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]); + for (const component of to.matched) { + const componentMiddleware = component.meta.middleware; + if (!componentMiddleware) { + continue; + } + for (const entry of toArray(componentMiddleware)) { + middlewareEntries.add(entry); + } + } + { + const routeRules = await nuxtApp.runWithContext(() => getRouteRules({ path: to.path })); + if (routeRules.appMiddleware) { + for (const key in routeRules.appMiddleware) { + if (routeRules.appMiddleware[key]) { + middlewareEntries.add(key); + } else { + middlewareEntries.delete(key); + } + } + } + } + for (const entry of middlewareEntries) { + const middleware = typeof entry === "string" ? nuxtApp._middleware.named[entry] || await ((_c2 = (_b2 = namedMiddleware)[entry]) == null ? void 0 : _c2.call(_b2).then((r) => r.default || r)) : entry; + if (!middleware) { + throw new Error(`Unknown route middleware: '${entry}'.`); + } + try { + const result = await nuxtApp.runWithContext(() => middleware(to, from)); + if (true) { + if (result === false || result instanceof Error) { + const error2 = result || createError({ + statusCode: 404, + statusMessage: `Page Not Found: ${initialURL}` + }); + await nuxtApp.runWithContext(() => showError(error2)); + return false; + } + } + if (result === true) { + continue; + } + if (result === false) { + return result; + } + if (result) { + if (isNuxtError(result) && result.fatal) { + await nuxtApp.runWithContext(() => showError(result)); + } + return result; + } + } catch (err) { + const error2 = createError(err); + if (error2.fatal) { + await nuxtApp.runWithContext(() => showError(error2)); + } + return error2; + } + } + } + }); + router.onError(async () => { + delete nuxtApp._processingMiddleware; + await nuxtApp.callHook("page:loading:end"); + }); + router.afterEach(async (to, _from) => { + if (to.matched.length === 0) { + await nuxtApp.runWithContext(() => showError(createError({ + statusCode: 404, + fatal: false, + statusMessage: `Page not found: ${to.fullPath}`, + data: { + path: to.fullPath + } + }))); + } + }); + nuxtApp.hooks.hookOnce("app:created", async () => { + try { + if ("name" in resolvedInitialRoute) { + resolvedInitialRoute.name = void 0; + } + await router.replace({ + ...resolvedInitialRoute, + force: true + }); + router.options.scrollBehavior = routerOptions.scrollBehavior; + } catch (error2) { + await nuxtApp.runWithContext(() => showError(error2)); + } + }); + return { provide: { router } }; + } +}); +export { + plugin as default +}; +//# sourceMappingURL=router.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/router.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/router.mjs.map new file mode 100644 index 0000000..c2330b0 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/router.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"router.mjs","sources":["../../../../../../../../../node_modules/nuxt/dist/pages/runtime/plugins/router.js"],"sourcesContent":["import { isReadonly, reactive, shallowReactive, shallowRef } from \"vue\";\nimport { START_LOCATION, createMemoryHistory, createRouter, createWebHashHistory, createWebHistory } from \"vue-router\";\nimport { createError } from \"h3\";\nimport { isEqual, withoutBase } from \"ufo\";\nimport { toArray } from \"../utils.js\";\nimport { getRouteRules } from \"#app/composables/manifest\";\nimport { defineNuxtPlugin, useRuntimeConfig } from \"#app/nuxt\";\nimport { clearError, isNuxtError, showError, useError } from \"#app/composables/error\";\nimport { navigateTo } from \"#app/composables/router\";\nimport { appManifest as isAppManifestEnabled } from \"#build/nuxt.config.mjs\";\nimport _routes, { handleHotUpdate } from \"#build/routes\";\nimport routerOptions, { hashMode } from \"#build/router.options\";\nimport { globalMiddleware, namedMiddleware } from \"#build/middleware\";\nfunction createCurrentLocation(base, location, renderedPath) {\n const { pathname, search, hash } = location;\n const hashPos = base.indexOf(\"#\");\n if (hashPos > -1) {\n const slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n let pathFromHash = hash.slice(slicePos);\n if (pathFromHash[0] !== \"/\") {\n pathFromHash = \"/\" + pathFromHash;\n }\n return withoutBase(pathFromHash, \"\");\n }\n const displayedPath = withoutBase(pathname, base);\n const path = !renderedPath || isEqual(displayedPath, renderedPath, { trailingSlash: true }) ? displayedPath : renderedPath;\n return path + (path.includes(\"?\") ? \"\" : search) + hash;\n}\nconst plugin = defineNuxtPlugin({\n name: \"nuxt:router\",\n enforce: \"pre\",\n async setup(nuxtApp) {\n let routerBase = useRuntimeConfig().app.baseURL;\n if (hashMode && !routerBase.includes(\"#\")) {\n routerBase += \"#\";\n }\n const history = routerOptions.history?.(routerBase) ?? (import.meta.client ? hashMode ? createWebHashHistory(routerBase) : createWebHistory(routerBase) : createMemoryHistory(routerBase));\n const routes = routerOptions.routes ? await routerOptions.routes(_routes) ?? _routes : _routes;\n let startPosition;\n const router = createRouter({\n ...routerOptions,\n scrollBehavior: (to, from, savedPosition) => {\n if (from === START_LOCATION) {\n startPosition = savedPosition;\n return;\n }\n if (routerOptions.scrollBehavior) {\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n if (\"scrollRestoration\" in window.history) {\n const unsub = router.beforeEach(() => {\n unsub();\n window.history.scrollRestoration = \"manual\";\n });\n }\n return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition);\n }\n },\n history,\n routes\n });\n handleHotUpdate(router, routerOptions.routes ? routerOptions.routes : (routes2) => routes2);\n if (import.meta.client && \"scrollRestoration\" in window.history) {\n window.history.scrollRestoration = \"auto\";\n }\n nuxtApp.vueApp.use(router);\n const previousRoute = shallowRef(router.currentRoute.value);\n router.afterEach((_to, from) => {\n previousRoute.value = from;\n });\n Object.defineProperty(nuxtApp.vueApp.config.globalProperties, \"previousRoute\", {\n get: () => previousRoute.value\n });\n const initialURL = import.meta.server ? nuxtApp.ssrContext.url : createCurrentLocation(routerBase, window.location, nuxtApp.payload.path);\n const _route = shallowRef(router.currentRoute.value);\n const syncCurrentRoute = () => {\n _route.value = router.currentRoute.value;\n };\n nuxtApp.hook(\"page:finish\", syncCurrentRoute);\n router.afterEach((to, from) => {\n if (to.matched[0]?.components?.default === from.matched[0]?.components?.default) {\n syncCurrentRoute();\n }\n });\n const route = {};\n for (const key in _route.value) {\n Object.defineProperty(route, key, {\n get: () => _route.value[key],\n enumerable: true\n });\n }\n nuxtApp._route = shallowReactive(route);\n nuxtApp._middleware ||= {\n global: [],\n named: {}\n };\n const error = useError();\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext) {\n router.afterEach(async (to, _from, failure) => {\n delete nuxtApp._processingMiddleware;\n if (import.meta.client && !nuxtApp.isHydrating && error.value) {\n await nuxtApp.runWithContext(clearError);\n }\n if (failure) {\n await nuxtApp.callHook(\"page:loading:end\");\n }\n if (import.meta.server && failure?.type === 4) {\n return;\n }\n if (import.meta.server && to.redirectedFrom && to.fullPath !== initialURL) {\n await nuxtApp.runWithContext(() => navigateTo(to.fullPath || \"/\"));\n }\n });\n }\n try {\n if (import.meta.server) {\n await router.push(initialURL);\n }\n await router.isReady();\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n const resolvedInitialRoute = import.meta.client && initialURL !== router.currentRoute.value.fullPath ? router.resolve(initialURL) : router.currentRoute.value;\n syncCurrentRoute();\n if (import.meta.server && nuxtApp.ssrContext?.islandContext) {\n return { provide: { router } };\n }\n const initialLayout = nuxtApp.payload.state._layout;\n router.beforeEach(async (to, from) => {\n await nuxtApp.callHook(\"page:loading:start\");\n to.meta = reactive(to.meta);\n if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {\n to.meta.layout = initialLayout;\n }\n nuxtApp._processingMiddleware = true;\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext) {\n const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);\n for (const component of to.matched) {\n const componentMiddleware = component.meta.middleware;\n if (!componentMiddleware) {\n continue;\n }\n for (const entry of toArray(componentMiddleware)) {\n middlewareEntries.add(entry);\n }\n }\n if (isAppManifestEnabled) {\n const routeRules = await nuxtApp.runWithContext(() => getRouteRules({ path: to.path }));\n if (routeRules.appMiddleware) {\n for (const key in routeRules.appMiddleware) {\n if (routeRules.appMiddleware[key]) {\n middlewareEntries.add(key);\n } else {\n middlewareEntries.delete(key);\n }\n }\n }\n }\n for (const entry of middlewareEntries) {\n const middleware = typeof entry === \"string\" ? nuxtApp._middleware.named[entry] || await namedMiddleware[entry]?.().then((r) => r.default || r) : entry;\n if (!middleware) {\n if (import.meta.dev) {\n throw new Error(`Unknown route middleware: '${entry}'. Valid middleware: ${Object.keys(namedMiddleware).map((mw) => `'${mw}'`).join(\", \")}.`);\n }\n throw new Error(`Unknown route middleware: '${entry}'.`);\n }\n try {\n const result = await nuxtApp.runWithContext(() => middleware(to, from));\n if (import.meta.server || !nuxtApp.payload.serverRendered && nuxtApp.isHydrating) {\n if (result === false || result instanceof Error) {\n const error2 = result || createError({\n statusCode: 404,\n statusMessage: `Page Not Found: ${initialURL}`\n });\n await nuxtApp.runWithContext(() => showError(error2));\n return false;\n }\n }\n if (result === true) {\n continue;\n }\n if (result === false) {\n return result;\n }\n if (result) {\n if (isNuxtError(result) && result.fatal) {\n await nuxtApp.runWithContext(() => showError(result));\n }\n return result;\n }\n } catch (err) {\n const error2 = createError(err);\n if (error2.fatal) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n return error2;\n }\n }\n }\n });\n router.onError(async () => {\n delete nuxtApp._processingMiddleware;\n await nuxtApp.callHook(\"page:loading:end\");\n });\n router.afterEach(async (to, _from) => {\n if (to.matched.length === 0) {\n await nuxtApp.runWithContext(() => showError(createError({\n statusCode: 404,\n fatal: false,\n statusMessage: `Page not found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n })));\n }\n });\n nuxtApp.hooks.hookOnce(\"app:created\", async () => {\n try {\n if (\"name\" in resolvedInitialRoute) {\n resolvedInitialRoute.name = void 0;\n }\n await router.replace({\n ...resolvedInitialRoute,\n force: true\n });\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n });\n return { provide: { router } };\n }\n});\nexport default plugin;\n"],"names":["__executeAsync","_b","_a","_d","_c"],"mappings":";;;;;;;;;;;;AA6BQ,MAAA,SAAA,iBAAA;AAAA,EACN,MAAS;AAAA,EACT;EACM,MAAA,MAAA,SAA8B;;AAAA,QAAA,QAAA;AAClC,QAAI,aAAa,mBAAW,IAAY;AAIlC,UAAA,sCAAgC,wCAAM,oCAA2C,UAAA;AACnF,UAAA,SAAA,cAAA,UAAA,CAAA,QAAA,SAAA,IAAAA,aAAA,MAAA,cAAA,OAAA,OAAA,CAAA,GAAA,SAAA,MAAA,QAAA,UAAA,GAAA,WAAA,UAAA;AACJ,QAAA;AAA4B,UACvB,SAAA,aAAA;AAAA,MACH,GAAgB;AAAA,MACd,gBAA6B,CAAA,IAAA,MAAA,kBAAA;AACX,YAAA,SAAA,gBAAA;AAChB,0BAAA;AACF;AAAA,QACA;AACS,YAAA,8BAAyB;AAC5B,iBAAA,QAAA,+BAAuC;AACnC,cAAA,uBAAe,SAAiB,SAAA;AAC9B,kBAAA,QAAA,OAAA,WAAA,MAAA;AACN,oBAAA;AACD,cAAA,SAAA,QAAA,oBAAA;AAAA,YAAA,CACH;AAAA,UACA;AACF,iBAAA,cAAA,eAAA,IAAA,gBAAA,iBAAA,aAAA;AAAA,QAAA;AAAA,MAEF;AAAA,MACA;AAAA,MACD;AAAA,IACD,CAAA;AACA,oBAAiE,QAAA,cAAA,SAAA,cAAA,SAAA,CAAA,YAAA,OAAA;AAIjE,YAAsB,OAAA,IAAA,MAAA;AACf,UAAA,gBAAW,WAAc,OAAA,aAAA,KAAA;AAC9B,WAAA,UAAsB,CAAA,KAAA,SAAA;AACvB,oBAAA,QAAA;AAAA,IACD,CAAA;AACE,WAAK,eAAoB,QAAA,OAAA,OAAA,kBAAA,iBAAA;AAAA,MAC1B,KAAA,MAAA,cAAA;AAAA,IACD,CAAM;AACN,UAAM,aAAoB,QAAO,WAAA;AACjC,UAAM,oBAAyB,OAAA,aAAA,KAAA;AACtB,UAAA,mBAA4B,MAAA;AACrC,aAAA,QAAA,OAAA,aAAA;AAAA,IACQ;AACD,YAAA,KAAA,eAAwB,gBAAA;AACzB,WAAA,UAAW,CAAC,IAAG,SAAA;;AACA,YAAAC,OAAAC,MAAA,GAAA,QAAA,CAAA,MAAA,gBAAAA,IAAA,eAAA,gBAAAD,IAAA,eAAAE,OAAAC,MAAA,KAAA,QAAA,CAAA,MAAA,gBAAAA,IAAA,eAAA,gBAAAD,IAAA,UAAA;AACnB,yBAAA;AAAA,MAAA;AAAA,IAEF,CAAA;AACW,UAAA,QAAA,CAAA;AACF,eAAA,OAAA,cAA2B;AAAA,aAC3B,eAAa,OAAS,KAAA;AAAA,QAC3B,KAAY,MAAA,OAAA,MAAA,GAAA;AAAA,QACb,YAAA;AAAA,MAAA,CACH;AAAA,IACA;AACA,YAAQ,SAAgB,gBAAA,KAAA;AAAA,4BAAA,sBACb;AAAA,MACT,QAAQ,CAAA;AAAA,MACV,OAAA,CAAA;AAAA,IACA;AACmC,aAAA;AACjC,QAAA,GAAA,aAAiB,eAAjB,mBAAiB,gBAA8B;AAC7C,aAAA,UAAe,OAAA,IAAA,OAAA,YAAA;AACf,eAA+D,QAAA;AAIvD,YAAA,SAAA;AACR,gBAAA,QAAA,SAAA,kBAAA;AAAA,QACA;AACE,aAAA,mCAAA,UAAA,GAAA;AACF;AAAA,QACA;AACE,YAAA,GAAA,kBAA6B,GAAA,yBAAoB;AACnD,gBAAA,QAAA,eAAA,MAAA,WAAA,GAAA,YAAA,GAAA,CAAA;AAAA,QAAA;AAAA,MACD,CACH;AAAA,IACA;AACE,QAAA;AACQ,UAAA,MAAA;AACR;AAAA,QAAA,CAAA,QAAA,SAAA,IAAAH,aAAA,MAAA,OAAA,KAAA,UAAA,CAAA,GAAA,MAAA,QAAA,UAAA;AAAA;AAAA,MACA;;eACe,SAAA,IAAAA,aAAA,MAAA,OAAA,QAAA,CAAA,GAAA,MAAA,QAAA,UAAA;AAAA;AAAA,IACf;AACF,MAAA,CAAA,QAAA,SAAA,IAAAA,aAAA,MAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA,CAAA,GAAA,MAAA,QAAA,UAAA;AAAA,IACA;AACiB,UAAA,uBAAA,OAAA,aAAA;AACS;AACxB,SAAA,aAAS,eAAT,mBAAoB,eAAS;AAC/B,aAAA,EAAA,SAAA,EAAA,SAAA;AAAA,IACA;AACO,UAAA,gBAAkB,QAAa,QAAA,MAAA;AAC9B,WAAA,kBAAiB,IAAoB,SAAA;;AACxC,YAAA,QAAgB,SAAO,oBAAA;AACtB,SAAA,OAAA;AACF,UAAA,QAAiB,eAAA,iBAAA,CAAA,WAAA,GAAA,KAAA,MAAA,GAAA;AACnB,WAAA,KAAA,SAAA;AAAA,MACA;AAC0B,cAAS,wBAA2B;AACtD,UAAA,GAAAE,MAAA,QAAA,eAAA,gBAAAA,IAAA,gBAAwC;AACnC,cAAA,oBAAyB,oBAAA,IAAA,CAAA,GAAA,kBAAA,GAAA,QAAA,YAAA,MAAA,CAAA;AAC5B,mBAAA,aAAA,GAAA;AACN,gBAA0B,sBAAA,UAAA,KAAA;AACxB,cAAA,CAAA,qBAAA;AACF;AAAA,UACA;AACE,qBAAA,SAAkB,QAAS,mBAAA,GAAA;AAC7B,8BAAA,IAAA,KAAA;AAAA,UAAA;AAAA,QAEF;AAC2B;AACzB,6BAA8B,MAAA,QAAA,eAAA,MAAA,cAAA,EAAA,MAAA,GAAA,KAAA,CAAA,CAAA;AACjB,cAAA,WAAA;AACL,uBAAA,OAAyB,WAAA,eAAM;AACjC,kBAAA,WAAA,cAAyB,GAAA,GAAA;AACpB,kCAAA,IAAA,GAAA;AAAA,cACL,OAAA;AACF,kCAAA,OAAA,GAAA;AAAA,cAAA;AAAA,YACF;AAAA,UACF;AAAA,QAEF;AACQ,mBAAA,SAAA,mBAA8B;AACpC,gBAAiB,aAAA,OAAA,UAAA,WAAA,QAAA,YAAA,MAAA,KAAA,KAAA,QAAAE,OAAAH,MAAA,iBAAA,WAAA,gBAAAG,IAAA,KAAAH,KAAA,KAAA,CAAA,MAAA,EAAA,WAAA,MAAA;AACf,cAAA,CAAA,YAAqB;AAIvB,kBAAA,IAAA,MAAA,8BAAA,KAAA,IAAA;AAAA,UACA;AACQ,cAAA;AACN,kBAAkF,SAAA,MAAA,QAAA,eAAA,MAAA,WAAA,IAAA,IAAA,CAAA;AAC5E,gBAAA,MAAA;AACI,kBAAA,WAAA,2BAA+B,OAAA;AAAA,sBACvB,SAAA,UAAA,YAAA;AAAA,kBACZ,YAAA;AAAA,kBACD,eAAA,mBAAA,UAAA;AAAA,gBACD,CAAA;AACO,sBAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA;AACT,uBAAA;AAAA,cAAA;AAAA,YAEF;AACE,gBAAA,WAAA,MAAA;AACF;AAAA,YACA;AACS,gBAAA,WAAA,OAAA;AACT,qBAAA;AAAA,YACA;AACE,gBAAA,QAAgB;AACd,kBAAA,YAAc,MAAA,KAAA,OAAqB,OAAA;AACrC,sBAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA;AAAA,cACA;AACF,qBAAA;AAAA,YAAA;AAAA,UAEM,SAAA,KAAA;AACN,2BAAkB,YAAA,GAAA;AAChB,gBAAA,OAAc,OAAA;AAChB,oBAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA;AAAA,YACA;AACF,mBAAA;AAAA,UAAA;AAAA,QACF;AAAA,MACF;AAAA,IAEF,CAAA;AACE,WAAA,QAAe,YAAA;AACT,aAAA;AACP,YAAA,QAAA,SAAA,kBAAA;AAAA,IACD,CAAO;AACD,WAAA,UAAW,OAAA,IAAW,UAAG;AAC3B,UAAA,GAAA,QAAc,WAAA,GAAA;AAA2C,cAC3C,QAAA,eAAA,MAAA,UAAA,YAAA;AAAA,UACZ,YAAO;AAAA,UACP,OAAA;AAAA,UACA,eAAM,mBAAA,GAAA,QAAA;AAAA,UAAA;YAEN,MAAA,GAAA;AAAA,UAAA;AAAA,QAEJ,CAAA,CAAA,CAAA;AAAA,MAAA;AAAA,IAEF,CAAQ;AACF,YAAA,MAAA,SAAA,eAAA,YAAA;AACF,UAAA;AACE,YAAA,UAAA,sBAA4B;AAC9B,+BAAA,OAAA;AAAA,QACA;AAAqB,cAChB,OAAA,QAAA;AAAA,UACH,GAAO;AAAA,UACR,OAAA;AAAA,QACD,CAAO;eACA,QAAQ,iBAAA,cAAA;AAAA,MACf,SAAc,QAAA;AAChB,cAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA;AAAA,MAAA;AAAA,IAEF,CAAA;AACF,WAAA,EAAA,SAAA,EAAA,SAAA;AAAA,EACF;AACA,CAAe;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/router.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/router.mjs.map.json new file mode 100644 index 0000000..b19bd31 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/plugins/router.mjs.map.json @@ -0,0 +1 @@ +{"file":"router.mjs","mappings":";;;;;;;;;;;;AA6BQ,MAAA,SAAA,iBAAA;AAAA,EACN,MAAS;AAAA,EACT;EACM,MAAA,MAAA,SAA8B;;AAAA,QAAA,QAAA;AAClC,QAAI,aAAa,mBAAW,IAAY;AAIlC,UAAA,sCAAgC,wCAAM,oCAA2C,UAAA;AACnF,UAAA,SAAA,cAAA,UAAA,CAAA,QAAA,SAAA,IAAAA,aAAA,MAAA,cAAA,OAAA,OAAA,CAAA,GAAA,SAAA,MAAA,QAAA,UAAA,GAAA,WAAA,UAAA;AACJ,QAAA;AAA4B,UACvB,SAAA,aAAA;AAAA,MACH,GAAgB;AAAA,MACd,gBAA6B,CAAA,IAAA,MAAA,kBAAA;AACX,YAAA,SAAA,gBAAA;AAChB,0BAAA;AACF;AAAA,QACA;AACS,YAAA,8BAAyB;AAC5B,iBAAA,QAAA,+BAAuC;AACnC,cAAA,uBAAe,SAAiB,SAAA;AAC9B,kBAAA,QAAA,OAAA,WAAA,MAAA;AACN,oBAAA;AACD,cAAA,SAAA,QAAA,oBAAA;AAAA,YAAA,CACH;AAAA,UACA;AACF,iBAAA,cAAA,eAAA,IAAA,gBAAA,iBAAA,aAAA;AAAA,QAAA;AAAA,MAEF;AAAA,MACA;AAAA,MACD;AAAA,IACD,CAAA;AACA,oBAAiE,QAAA,cAAA,SAAA,cAAA,SAAA,CAAA,YAAA,OAAA;AAIjE,YAAsB,OAAA,IAAA,MAAA;AACf,UAAA,gBAAW,WAAc,OAAA,aAAA,KAAA;AAC9B,WAAA,UAAsB,CAAA,KAAA,SAAA;AACvB,oBAAA,QAAA;AAAA,IACD,CAAA;AACE,WAAK,eAAoB,QAAA,OAAA,OAAA,kBAAA,iBAAA;AAAA,MAC1B,KAAA,MAAA,cAAA;AAAA,IACD,CAAM;AACN,UAAM,aAAoB,QAAO,WAAA;AACjC,UAAM,oBAAyB,OAAA,aAAA,KAAA;AACtB,UAAA,mBAA4B,MAAA;AACrC,aAAA,QAAA,OAAA,aAAA;AAAA,IACQ;AACD,YAAA,KAAA,eAAwB,gBAAA;AACzB,WAAA,UAAW,CAAC,IAAG,SAAA;;AACA,YAAAC,OAAAC,MAAA,GAAA,QAAA,CAAA,MAAA,gBAAAA,IAAA,eAAA,gBAAAD,IAAA,eAAAE,OAAAC,MAAA,KAAA,QAAA,CAAA,MAAA,gBAAAA,IAAA,eAAA,gBAAAD,IAAA,UAAA;AACnB,yBAAA;AAAA,MAAA;AAAA,IAEF,CAAA;AACW,UAAA,QAAA,CAAA;AACF,eAAA,OAAA,cAA2B;AAAA,aAC3B,eAAa,OAAS,KAAA;AAAA,QAC3B,KAAY,MAAA,OAAA,MAAA,GAAA;AAAA,QACb,YAAA;AAAA,MAAA,CACH;AAAA,IACA;AACA,YAAQ,SAAgB,gBAAA,KAAA;AAAA,4BAAA,sBACb;AAAA,MACT,QAAQ,CAAA;AAAA,MACV,OAAA,CAAA;AAAA,IACA;AACmC,aAAA;AACjC,QAAA,GAAA,aAAiB,eAAjB,mBAAiB,gBAA8B;AAC7C,aAAA,UAAe,OAAA,IAAA,OAAA,YAAA;AACf,eAA+D,QAAA;AAIvD,YAAA,SAAA;AACR,gBAAA,QAAA,SAAA,kBAAA;AAAA,QACA;AACE,aAAA,mCAAA,UAAA,GAAA;AACF;AAAA,QACA;AACE,YAAA,GAAA,kBAA6B,GAAA,yBAAoB;AACnD,gBAAA,QAAA,eAAA,MAAA,WAAA,GAAA,YAAA,GAAA,CAAA;AAAA,QAAA;AAAA,MACD,CACH;AAAA,IACA;AACE,QAAA;AACQ,UAAA,MAAA;AACR;AAAA,QAAA,CAAA,QAAA,SAAA,IAAAH,aAAA,MAAA,OAAA,KAAA,UAAA,CAAA,GAAA,MAAA,QAAA,UAAA;AAAA;AAAA,MACA;;eACe,SAAA,IAAAA,aAAA,MAAA,OAAA,QAAA,CAAA,GAAA,MAAA,QAAA,UAAA;AAAA;AAAA,IACf;AACF,MAAA,CAAA,QAAA,SAAA,IAAAA,aAAA,MAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA,CAAA,GAAA,MAAA,QAAA,UAAA;AAAA,IACA;AACiB,UAAA,uBAAA,OAAA,aAAA;AACS;AACxB,SAAA,aAAS,eAAT,mBAAoB,eAAS;AAC/B,aAAA,EAAA,SAAA,EAAA,SAAA;AAAA,IACA;AACO,UAAA,gBAAkB,QAAa,QAAA,MAAA;AAC9B,WAAA,kBAAiB,IAAoB,SAAA;;AACxC,YAAA,QAAgB,SAAO,oBAAA;AACtB,SAAA,OAAA;AACF,UAAA,QAAiB,eAAA,iBAAA,CAAA,WAAA,GAAA,KAAA,MAAA,GAAA;AACnB,WAAA,KAAA,SAAA;AAAA,MACA;AAC0B,cAAS,wBAA2B;AACtD,UAAA,GAAAE,MAAA,QAAA,eAAA,gBAAAA,IAAA,gBAAwC;AACnC,cAAA,oBAAyB,oBAAA,IAAA,CAAA,GAAA,kBAAA,GAAA,QAAA,YAAA,MAAA,CAAA;AAC5B,mBAAA,aAAA,GAAA;AACN,gBAA0B,sBAAA,UAAA,KAAA;AACxB,cAAA,CAAA,qBAAA;AACF;AAAA,UACA;AACE,qBAAA,SAAkB,QAAS,mBAAA,GAAA;AAC7B,8BAAA,IAAA,KAAA;AAAA,UAAA;AAAA,QAEF;AAC2B;AACzB,6BAA8B,MAAA,QAAA,eAAA,MAAA,cAAA,EAAA,MAAA,GAAA,KAAA,CAAA,CAAA;AACjB,cAAA,WAAA;AACL,uBAAA,OAAyB,WAAA,eAAM;AACjC,kBAAA,WAAA,cAAyB,GAAA,GAAA;AACpB,kCAAA,IAAA,GAAA;AAAA,cACL,OAAA;AACF,kCAAA,OAAA,GAAA;AAAA,cAAA;AAAA,YACF;AAAA,UACF;AAAA,QAEF;AACQ,mBAAA,SAAA,mBAA8B;AACpC,gBAAiB,aAAA,OAAA,UAAA,WAAA,QAAA,YAAA,MAAA,KAAA,KAAA,QAAAE,OAAAH,MAAA,iBAAA,WAAA,gBAAAG,IAAA,KAAAH,KAAA,KAAA,CAAA,MAAA,EAAA,WAAA,MAAA;AACf,cAAA,CAAA,YAAqB;AAIvB,kBAAA,IAAA,MAAA,8BAAA,KAAA,IAAA;AAAA,UACA;AACQ,cAAA;AACN,kBAAkF,SAAA,MAAA,QAAA,eAAA,MAAA,WAAA,IAAA,IAAA,CAAA;AAC5E,gBAAA,MAAA;AACI,kBAAA,WAAA,2BAA+B,OAAA;AAAA,sBACvB,SAAA,UAAA,YAAA;AAAA,kBACZ,YAAA;AAAA,kBACD,eAAA,mBAAA,UAAA;AAAA,gBACD,CAAA;AACO,sBAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA;AACT,uBAAA;AAAA,cAAA;AAAA,YAEF;AACE,gBAAA,WAAA,MAAA;AACF;AAAA,YACA;AACS,gBAAA,WAAA,OAAA;AACT,qBAAA;AAAA,YACA;AACE,gBAAA,QAAgB;AACd,kBAAA,YAAc,MAAA,KAAA,OAAqB,OAAA;AACrC,sBAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA;AAAA,cACA;AACF,qBAAA;AAAA,YAAA;AAAA,UAEM,SAAA,KAAA;AACN,2BAAkB,YAAA,GAAA;AAChB,gBAAA,OAAc,OAAA;AAChB,oBAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA;AAAA,YACA;AACF,mBAAA;AAAA,UAAA;AAAA,QACF;AAAA,MACF;AAAA,IAEF,CAAA;AACE,WAAA,QAAe,YAAA;AACT,aAAA;AACP,YAAA,QAAA,SAAA,kBAAA;AAAA,IACD,CAAO;AACD,WAAA,UAAW,OAAA,IAAW,UAAG;AAC3B,UAAA,GAAA,QAAc,WAAA,GAAA;AAA2C,cAC3C,QAAA,eAAA,MAAA,UAAA,YAAA;AAAA,UACZ,YAAO;AAAA,UACP,OAAA;AAAA,UACA,eAAM,mBAAA,GAAA,QAAA;AAAA,UAAA;YAEN,MAAA,GAAA;AAAA,UAAA;AAAA,QAEJ,CAAA,CAAA,CAAA;AAAA,MAAA;AAAA,IAEF,CAAQ;AACF,YAAA,MAAA,SAAA,eAAA,YAAA;AACF,UAAA;AACE,YAAA,UAAA,sBAA4B;AAC9B,+BAAA,OAAA;AAAA,QACA;AAAqB,cAChB,OAAA,QAAA;AAAA,UACH,GAAO;AAAA,UACR,OAAA;AAAA,QACD,CAAO;eACA,QAAQ,iBAAA,cAAA;AAAA,MACf,SAAc,QAAA;AAChB,cAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA;AAAA,MAAA;AAAA,IAEF,CAAA;AACF,WAAA,EAAA,SAAA,EAAA,SAAA;AAAA,EACF;AACA,CAAe;","names":["__executeAsync","_b","_a","_d","_c"],"sources":["../../../../../../../../../node_modules/nuxt/dist/pages/runtime/plugins/router.js"],"sourcesContent":["import { isReadonly, reactive, shallowReactive, shallowRef } from \"vue\";\nimport { START_LOCATION, createMemoryHistory, createRouter, createWebHashHistory, createWebHistory } from \"vue-router\";\nimport { createError } from \"h3\";\nimport { isEqual, withoutBase } from \"ufo\";\nimport { toArray } from \"../utils.js\";\nimport { getRouteRules } from \"#app/composables/manifest\";\nimport { defineNuxtPlugin, useRuntimeConfig } from \"#app/nuxt\";\nimport { clearError, isNuxtError, showError, useError } from \"#app/composables/error\";\nimport { navigateTo } from \"#app/composables/router\";\nimport { appManifest as isAppManifestEnabled } from \"#build/nuxt.config.mjs\";\nimport _routes, { handleHotUpdate } from \"#build/routes\";\nimport routerOptions, { hashMode } from \"#build/router.options\";\nimport { globalMiddleware, namedMiddleware } from \"#build/middleware\";\nfunction createCurrentLocation(base, location, renderedPath) {\n const { pathname, search, hash } = location;\n const hashPos = base.indexOf(\"#\");\n if (hashPos > -1) {\n const slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n let pathFromHash = hash.slice(slicePos);\n if (pathFromHash[0] !== \"/\") {\n pathFromHash = \"/\" + pathFromHash;\n }\n return withoutBase(pathFromHash, \"\");\n }\n const displayedPath = withoutBase(pathname, base);\n const path = !renderedPath || isEqual(displayedPath, renderedPath, { trailingSlash: true }) ? displayedPath : renderedPath;\n return path + (path.includes(\"?\") ? \"\" : search) + hash;\n}\nconst plugin = defineNuxtPlugin({\n name: \"nuxt:router\",\n enforce: \"pre\",\n async setup(nuxtApp) {\n let routerBase = useRuntimeConfig().app.baseURL;\n if (hashMode && !routerBase.includes(\"#\")) {\n routerBase += \"#\";\n }\n const history = routerOptions.history?.(routerBase) ?? (import.meta.client ? hashMode ? createWebHashHistory(routerBase) : createWebHistory(routerBase) : createMemoryHistory(routerBase));\n const routes = routerOptions.routes ? await routerOptions.routes(_routes) ?? _routes : _routes;\n let startPosition;\n const router = createRouter({\n ...routerOptions,\n scrollBehavior: (to, from, savedPosition) => {\n if (from === START_LOCATION) {\n startPosition = savedPosition;\n return;\n }\n if (routerOptions.scrollBehavior) {\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n if (\"scrollRestoration\" in window.history) {\n const unsub = router.beforeEach(() => {\n unsub();\n window.history.scrollRestoration = \"manual\";\n });\n }\n return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition);\n }\n },\n history,\n routes\n });\n handleHotUpdate(router, routerOptions.routes ? routerOptions.routes : (routes2) => routes2);\n if (import.meta.client && \"scrollRestoration\" in window.history) {\n window.history.scrollRestoration = \"auto\";\n }\n nuxtApp.vueApp.use(router);\n const previousRoute = shallowRef(router.currentRoute.value);\n router.afterEach((_to, from) => {\n previousRoute.value = from;\n });\n Object.defineProperty(nuxtApp.vueApp.config.globalProperties, \"previousRoute\", {\n get: () => previousRoute.value\n });\n const initialURL = import.meta.server ? nuxtApp.ssrContext.url : createCurrentLocation(routerBase, window.location, nuxtApp.payload.path);\n const _route = shallowRef(router.currentRoute.value);\n const syncCurrentRoute = () => {\n _route.value = router.currentRoute.value;\n };\n nuxtApp.hook(\"page:finish\", syncCurrentRoute);\n router.afterEach((to, from) => {\n if (to.matched[0]?.components?.default === from.matched[0]?.components?.default) {\n syncCurrentRoute();\n }\n });\n const route = {};\n for (const key in _route.value) {\n Object.defineProperty(route, key, {\n get: () => _route.value[key],\n enumerable: true\n });\n }\n nuxtApp._route = shallowReactive(route);\n nuxtApp._middleware ||= {\n global: [],\n named: {}\n };\n const error = useError();\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext) {\n router.afterEach(async (to, _from, failure) => {\n delete nuxtApp._processingMiddleware;\n if (import.meta.client && !nuxtApp.isHydrating && error.value) {\n await nuxtApp.runWithContext(clearError);\n }\n if (failure) {\n await nuxtApp.callHook(\"page:loading:end\");\n }\n if (import.meta.server && failure?.type === 4) {\n return;\n }\n if (import.meta.server && to.redirectedFrom && to.fullPath !== initialURL) {\n await nuxtApp.runWithContext(() => navigateTo(to.fullPath || \"/\"));\n }\n });\n }\n try {\n if (import.meta.server) {\n await router.push(initialURL);\n }\n await router.isReady();\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n const resolvedInitialRoute = import.meta.client && initialURL !== router.currentRoute.value.fullPath ? router.resolve(initialURL) : router.currentRoute.value;\n syncCurrentRoute();\n if (import.meta.server && nuxtApp.ssrContext?.islandContext) {\n return { provide: { router } };\n }\n const initialLayout = nuxtApp.payload.state._layout;\n router.beforeEach(async (to, from) => {\n await nuxtApp.callHook(\"page:loading:start\");\n to.meta = reactive(to.meta);\n if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {\n to.meta.layout = initialLayout;\n }\n nuxtApp._processingMiddleware = true;\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext) {\n const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);\n for (const component of to.matched) {\n const componentMiddleware = component.meta.middleware;\n if (!componentMiddleware) {\n continue;\n }\n for (const entry of toArray(componentMiddleware)) {\n middlewareEntries.add(entry);\n }\n }\n if (isAppManifestEnabled) {\n const routeRules = await nuxtApp.runWithContext(() => getRouteRules({ path: to.path }));\n if (routeRules.appMiddleware) {\n for (const key in routeRules.appMiddleware) {\n if (routeRules.appMiddleware[key]) {\n middlewareEntries.add(key);\n } else {\n middlewareEntries.delete(key);\n }\n }\n }\n }\n for (const entry of middlewareEntries) {\n const middleware = typeof entry === \"string\" ? nuxtApp._middleware.named[entry] || await namedMiddleware[entry]?.().then((r) => r.default || r) : entry;\n if (!middleware) {\n if (import.meta.dev) {\n throw new Error(`Unknown route middleware: '${entry}'. Valid middleware: ${Object.keys(namedMiddleware).map((mw) => `'${mw}'`).join(\", \")}.`);\n }\n throw new Error(`Unknown route middleware: '${entry}'.`);\n }\n try {\n const result = await nuxtApp.runWithContext(() => middleware(to, from));\n if (import.meta.server || !nuxtApp.payload.serverRendered && nuxtApp.isHydrating) {\n if (result === false || result instanceof Error) {\n const error2 = result || createError({\n statusCode: 404,\n statusMessage: `Page Not Found: ${initialURL}`\n });\n await nuxtApp.runWithContext(() => showError(error2));\n return false;\n }\n }\n if (result === true) {\n continue;\n }\n if (result === false) {\n return result;\n }\n if (result) {\n if (isNuxtError(result) && result.fatal) {\n await nuxtApp.runWithContext(() => showError(result));\n }\n return result;\n }\n } catch (err) {\n const error2 = createError(err);\n if (error2.fatal) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n return error2;\n }\n }\n }\n });\n router.onError(async () => {\n delete nuxtApp._processingMiddleware;\n await nuxtApp.callHook(\"page:loading:end\");\n });\n router.afterEach(async (to, _from) => {\n if (to.matched.length === 0) {\n await nuxtApp.runWithContext(() => showError(createError({\n statusCode: 404,\n fatal: false,\n statusMessage: `Page not found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n })));\n }\n });\n nuxtApp.hooks.hookOnce(\"app:created\", async () => {\n try {\n if (\"name\" in resolvedInitialRoute) {\n resolvedInitialRoute.name = void 0;\n }\n await router.replace({\n ...resolvedInitialRoute,\n force: true\n });\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n });\n return { provide: { router } };\n }\n});\nexport default plugin;\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/router.options.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/router.options.mjs new file mode 100644 index 0000000..7dc757e --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/router.options.mjs @@ -0,0 +1,59 @@ +import { useNuxtApp } from "../../app/nuxt.mjs"; +import { isChangingPage } from "../../app/components/utils.mjs"; +import { useRouter } from "../../app/composables/router.mjs"; +import { appPageTransition } from "../../../../../_virtual/virtual_nuxt_D__doc_workspace_web3_.nuxt_nuxt.config.mjs"; +const routerOptions0 = { + scrollBehavior(to, from, savedPosition) { + var _a; + const nuxtApp = useNuxtApp(); + const behavior = ((_a = useRouter().options) == null ? void 0 : _a.scrollBehaviorType) ?? "auto"; + let position = savedPosition || void 0; + const routeAllowsScrollToTop = typeof to.meta.scrollToTop === "function" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop; + if (!position && from && to && routeAllowsScrollToTop !== false && isChangingPage(to, from)) { + position = { left: 0, top: 0 }; + } + if (to.path === from.path) { + if (from.hash && !to.hash) { + return { left: 0, top: 0 }; + } + if (to.hash) { + return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior }; + } + return false; + } + const hasTransition = (route) => !!(route.meta.pageTransition ?? appPageTransition); + const hookToWait = hasTransition(from) && hasTransition(to) ? "page:transition:finish" : "page:loading:end"; + return new Promise((resolve) => { + nuxtApp.hooks.hookOnce(hookToWait, () => { + requestAnimationFrame(() => resolve(_calculatePosition(to, "instant", position))); + }); + }); + } +}; +function _getHashElementScrollMarginTop(selector) { + try { + const elem = (void 0).querySelector(selector); + if (elem) { + return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle((void 0).documentElement).scrollPaddingTop) || 0); + } + } catch { + } + return 0; +} +function _calculatePosition(to, scrollBehaviorType, position) { + if (position) { + return position; + } + if (to.hash) { + return { + el: to.hash, + top: _getHashElementScrollMarginTop(to.hash), + behavior: scrollBehaviorType + }; + } + return { left: 0, top: 0, behavior: scrollBehaviorType }; +} +export { + routerOptions0 as default +}; +//# sourceMappingURL=router.options.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/router.options.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/router.options.mjs.map new file mode 100644 index 0000000..f632a29 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/router.options.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"router.options.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/pages/runtime/router.options.js"],"sourcesContent":["import { useNuxtApp } from \"#app/nuxt\";\nimport { isChangingPage } from \"#app/components/utils\";\nimport { useRouter } from \"#app/composables/router\";\nimport { appPageTransition as defaultPageTransition } from \"#build/nuxt.config.mjs\";\nexport default {\n scrollBehavior(to, from, savedPosition) {\n const nuxtApp = useNuxtApp();\n const behavior = useRouter().options?.scrollBehaviorType ?? \"auto\";\n let position = savedPosition || void 0;\n const routeAllowsScrollToTop = typeof to.meta.scrollToTop === \"function\" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop;\n if (!position && from && to && routeAllowsScrollToTop !== false && isChangingPage(to, from)) {\n position = { left: 0, top: 0 };\n }\n if (to.path === from.path) {\n if (from.hash && !to.hash) {\n return { left: 0, top: 0 };\n }\n if (to.hash) {\n return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior };\n }\n return false;\n }\n const hasTransition = (route) => !!(route.meta.pageTransition ?? defaultPageTransition);\n const hookToWait = hasTransition(from) && hasTransition(to) ? \"page:transition:finish\" : \"page:loading:end\";\n return new Promise((resolve) => {\n nuxtApp.hooks.hookOnce(hookToWait, () => {\n requestAnimationFrame(() => resolve(_calculatePosition(to, \"instant\", position)));\n });\n });\n }\n};\nfunction _getHashElementScrollMarginTop(selector) {\n try {\n const elem = document.querySelector(selector);\n if (elem) {\n return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop) || 0);\n }\n } catch {\n }\n return 0;\n}\nfunction _calculatePosition(to, scrollBehaviorType, position) {\n if (position) {\n return position;\n }\n if (to.hash) {\n return {\n el: to.hash,\n top: _getHashElementScrollMarginTop(to.hash),\n behavior: scrollBehaviorType\n };\n }\n return { left: 0, top: 0, behavior: scrollBehaviorType };\n}\n"],"names":["defaultPageTransition"],"mappings":";;;;AAIA,MAAe,iBAAA;AAAA,EACb,eAAe,IAAI,MAAM,eAAe;;AACtC,UAAM,UAAU,WAAW;AAC3B,UAAM,aAAW,eAAA,EAAY,YAAZ,mBAAqB,uBAAsB;AAC5D,QAAI,WAAW,iBAAiB;AAChC,UAAM,yBAAyB,OAAO,GAAG,KAAK,gBAAgB,aAAa,GAAG,KAAK,YAAY,IAAI,IAAI,IAAI,GAAG,KAAK;AAC/G,QAAA,CAAC,YAAY,QAAQ,MAAM,2BAA2B,SAAS,eAAe,IAAI,IAAI,GAAG;AAC3F,iBAAW,EAAE,MAAM,GAAG,KAAK,EAAE;AAAA,IAAA;AAE3B,QAAA,GAAG,SAAS,KAAK,MAAM;AACzB,UAAI,KAAK,QAAQ,CAAC,GAAG,MAAM;AACzB,eAAO,EAAE,MAAM,GAAG,KAAK,EAAE;AAAA,MAAA;AAE3B,UAAI,GAAG,MAAM;AACJ,eAAA,EAAE,IAAI,GAAG,MAAM,KAAK,+BAA+B,GAAG,IAAI,GAAG,SAAS;AAAA,MAAA;AAExE,aAAA;AAAA,IAAA;AAET,UAAM,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,kBAAkBA;AACjE,UAAM,aAAa,cAAc,IAAI,KAAK,cAAc,EAAE,IAAI,2BAA2B;AAClF,WAAA,IAAI,QAAQ,CAAC,YAAY;AACtB,cAAA,MAAM,SAAS,YAAY,MAAM;AACvC,8BAAsB,MAAM,QAAQ,mBAAmB,IAAI,WAAW,QAAQ,CAAC,CAAC;AAAA,MAAA,CACjF;AAAA,IAAA,CACF;AAAA,EAAA;AAEL;AACA,SAAS,+BAA+B,UAAU;AAC5C,MAAA;AACI,UAAA,OAAgB,SAAA,cAAc,QAAQ;AAC5C,QAAI,MAAM;AACR,cAAQ,OAAO,WAAW,iBAAiB,IAAI,EAAE,eAAe,KAAK,MAAM,OAAO,WAAW,iBAAiB,SAAS,eAAe,EAAE,gBAAgB,KAAK;AAAA,IAAA;AAAA,EAC/J,QACM;AAAA,EAAA;AAED,SAAA;AACT;AACA,SAAS,mBAAmB,IAAI,oBAAoB,UAAU;AAC5D,MAAI,UAAU;AACL,WAAA;AAAA,EAAA;AAET,MAAI,GAAG,MAAM;AACJ,WAAA;AAAA,MACL,IAAI,GAAG;AAAA,MACP,KAAK,+BAA+B,GAAG,IAAI;AAAA,MAC3C,UAAU;AAAA,IACZ;AAAA,EAAA;AAEF,SAAO,EAAE,MAAM,GAAG,KAAK,GAAG,UAAU,mBAAmB;AACzD;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/router.options.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/router.options.mjs.map.json new file mode 100644 index 0000000..1014f7d --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/router.options.mjs.map.json @@ -0,0 +1 @@ +{"file":"router.options.mjs","mappings":";;;;AAIA,MAAe,iBAAA;AAAA,EACb,eAAe,IAAI,MAAM,eAAe;;AACtC,UAAM,UAAU,WAAW;AAC3B,UAAM,aAAW,eAAA,EAAY,YAAZ,mBAAqB,uBAAsB;AAC5D,QAAI,WAAW,iBAAiB;AAChC,UAAM,yBAAyB,OAAO,GAAG,KAAK,gBAAgB,aAAa,GAAG,KAAK,YAAY,IAAI,IAAI,IAAI,GAAG,KAAK;AAC/G,QAAA,CAAC,YAAY,QAAQ,MAAM,2BAA2B,SAAS,eAAe,IAAI,IAAI,GAAG;AAC3F,iBAAW,EAAE,MAAM,GAAG,KAAK,EAAE;AAAA,IAAA;AAE3B,QAAA,GAAG,SAAS,KAAK,MAAM;AACzB,UAAI,KAAK,QAAQ,CAAC,GAAG,MAAM;AACzB,eAAO,EAAE,MAAM,GAAG,KAAK,EAAE;AAAA,MAAA;AAE3B,UAAI,GAAG,MAAM;AACJ,eAAA,EAAE,IAAI,GAAG,MAAM,KAAK,+BAA+B,GAAG,IAAI,GAAG,SAAS;AAAA,MAAA;AAExE,aAAA;AAAA,IAAA;AAET,UAAM,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,kBAAkBA;AACjE,UAAM,aAAa,cAAc,IAAI,KAAK,cAAc,EAAE,IAAI,2BAA2B;AAClF,WAAA,IAAI,QAAQ,CAAC,YAAY;AACtB,cAAA,MAAM,SAAS,YAAY,MAAM;AACvC,8BAAsB,MAAM,QAAQ,mBAAmB,IAAI,WAAW,QAAQ,CAAC,CAAC;AAAA,MAAA,CACjF;AAAA,IAAA,CACF;AAAA,EAAA;AAEL;AACA,SAAS,+BAA+B,UAAU;AAC5C,MAAA;AACI,UAAA,OAAgB,SAAA,cAAc,QAAQ;AAC5C,QAAI,MAAM;AACR,cAAQ,OAAO,WAAW,iBAAiB,IAAI,EAAE,eAAe,KAAK,MAAM,OAAO,WAAW,iBAAiB,SAAS,eAAe,EAAE,gBAAgB,KAAK;AAAA,IAAA;AAAA,EAC/J,QACM;AAAA,EAAA;AAED,SAAA;AACT;AACA,SAAS,mBAAmB,IAAI,oBAAoB,UAAU;AAC5D,MAAI,UAAU;AACL,WAAA;AAAA,EAAA;AAET,MAAI,GAAG,MAAM;AACJ,WAAA;AAAA,MACL,IAAI,GAAG;AAAA,MACP,KAAK,+BAA+B,GAAG,IAAI;AAAA,MAC3C,UAAU;AAAA,IACZ;AAAA,EAAA;AAEF,SAAO,EAAE,MAAM,GAAG,KAAK,GAAG,UAAU,mBAAmB;AACzD;","names":["defaultPageTransition"],"sources":["../../../../../../../../node_modules/nuxt/dist/pages/runtime/router.options.js"],"sourcesContent":["import { useNuxtApp } from \"#app/nuxt\";\nimport { isChangingPage } from \"#app/components/utils\";\nimport { useRouter } from \"#app/composables/router\";\nimport { appPageTransition as defaultPageTransition } from \"#build/nuxt.config.mjs\";\nexport default {\n scrollBehavior(to, from, savedPosition) {\n const nuxtApp = useNuxtApp();\n const behavior = useRouter().options?.scrollBehaviorType ?? \"auto\";\n let position = savedPosition || void 0;\n const routeAllowsScrollToTop = typeof to.meta.scrollToTop === \"function\" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop;\n if (!position && from && to && routeAllowsScrollToTop !== false && isChangingPage(to, from)) {\n position = { left: 0, top: 0 };\n }\n if (to.path === from.path) {\n if (from.hash && !to.hash) {\n return { left: 0, top: 0 };\n }\n if (to.hash) {\n return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior };\n }\n return false;\n }\n const hasTransition = (route) => !!(route.meta.pageTransition ?? defaultPageTransition);\n const hookToWait = hasTransition(from) && hasTransition(to) ? \"page:transition:finish\" : \"page:loading:end\";\n return new Promise((resolve) => {\n nuxtApp.hooks.hookOnce(hookToWait, () => {\n requestAnimationFrame(() => resolve(_calculatePosition(to, \"instant\", position)));\n });\n });\n }\n};\nfunction _getHashElementScrollMarginTop(selector) {\n try {\n const elem = document.querySelector(selector);\n if (elem) {\n return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop) || 0);\n }\n } catch {\n }\n return 0;\n}\nfunction _calculatePosition(to, scrollBehaviorType, position) {\n if (position) {\n return position;\n }\n if (to.hash) {\n return {\n el: to.hash,\n top: _getHashElementScrollMarginTop(to.hash),\n behavior: scrollBehaviorType\n };\n }\n return { left: 0, top: 0, behavior: scrollBehaviorType };\n}\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/utils.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/utils.mjs new file mode 100644 index 0000000..fa773fc --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/utils.mjs @@ -0,0 +1,8 @@ +import "vue"; +function toArray(value) { + return Array.isArray(value) ? value : [value]; +} +export { + toArray +}; +//# sourceMappingURL=utils.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/utils.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/utils.mjs.map new file mode 100644 index 0000000..e7d79c9 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/utils.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/pages/runtime/utils.js"],"sourcesContent":["import { KeepAlive, h } from \"vue\";\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nconst interpolatePath = (route, match) => {\n return match.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n};\nexport const generateRouteKey = (routeProps, override) => {\n const matchedRoute = routeProps.route.matched.find((m) => m.components?.default === routeProps.Component.type);\n const source = override ?? matchedRoute?.meta.key ?? (matchedRoute && interpolatePath(routeProps.route, matchedRoute));\n return typeof source === \"function\" ? source(routeProps.route) : source;\n};\nexport const wrapInKeepAlive = (props, children) => {\n return { default: () => import.meta.client && props ? h(KeepAlive, props === true ? {} : props, children) : children };\n};\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n"],"names":[],"mappings":";AAeO,SAAS,QAAQ,OAAO;AAC7B,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC9C;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/utils.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/utils.mjs.map.json new file mode 100644 index 0000000..4a1b869 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/utils.mjs.map.json @@ -0,0 +1 @@ +{"file":"utils.mjs","mappings":";AAeO,SAAS,QAAQ,OAAO;AAC7B,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC9C;","names":[],"sources":["../../../../../../../../node_modules/nuxt/dist/pages/runtime/utils.js"],"sourcesContent":["import { KeepAlive, h } from \"vue\";\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nconst interpolatePath = (route, match) => {\n return match.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n};\nexport const generateRouteKey = (routeProps, override) => {\n const matchedRoute = routeProps.route.matched.find((m) => m.components?.default === routeProps.Component.type);\n const source = override ?? matchedRoute?.meta.key ?? (matchedRoute && interpolatePath(routeProps.route, matchedRoute));\n return typeof source === \"function\" ? source(routeProps.route) : source;\n};\nexport const wrapInKeepAlive = (props, children) => {\n return { default: () => import.meta.client && props ? h(KeepAlive, props === true ? {} : props, children) : children };\n};\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/validate.mjs b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/validate.mjs new file mode 100644 index 0000000..ee725db --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/validate.mjs @@ -0,0 +1,38 @@ +import { executeAsync } from "D:/doc/workspace/web3/node_modules/unctx/dist/index.mjs"; +import { createError, showError } from "../../app/composables/error.mjs"; +import { useNuxtApp } from "../../app/nuxt.mjs"; +import { defineNuxtRouteMiddleware, useRouter } from "../../app/composables/router.mjs"; +const validate = defineNuxtRouteMiddleware(async (to) => { + var _a; + let __temp, __restore; + if (!((_a = to.meta) == null ? void 0 : _a.validate)) { + return; + } + const nuxtApp = useNuxtApp(); + const router = useRouter(); + const result = ([__temp, __restore] = executeAsync(() => Promise.resolve(to.meta.validate(to))), __temp = await __temp, __restore(), __temp); + if (result === true) { + return; + } + const error = createError({ + statusCode: result && result.statusCode || 404, + statusMessage: result && result.statusMessage || `Page Not Found: ${to.fullPath}`, + data: { + path: to.fullPath + } + }); + const unsub = router.beforeResolve((final) => { + unsub(); + if (final === to) { + const unsub2 = router.afterEach(async () => { + unsub2(); + await nuxtApp.runWithContext(() => showError(error)); + }); + return false; + } + }); +}); +export { + validate as default +}; +//# sourceMappingURL=validate.mjs.map diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/validate.mjs.map b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/validate.mjs.map new file mode 100644 index 0000000..5bf9ff8 --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/validate.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"validate.mjs","sources":["../../../../../../../../node_modules/nuxt/dist/pages/runtime/validate.js"],"sourcesContent":["import { createError, showError } from \"#app/composables/error\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { defineNuxtRouteMiddleware, useRouter } from \"#app/composables/router\";\nexport default defineNuxtRouteMiddleware(async (to) => {\n if (!to.meta?.validate) {\n return;\n }\n const nuxtApp = useNuxtApp();\n const router = useRouter();\n const result = await Promise.resolve(to.meta.validate(to));\n if (result === true) {\n return;\n }\n const error = createError({\n statusCode: result && result.statusCode || 404,\n statusMessage: result && result.statusMessage || `Page Not Found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n });\n const unsub = router.beforeResolve((final) => {\n unsub();\n if (final === to) {\n const unsub2 = router.afterEach(async () => {\n unsub2();\n await nuxtApp.runWithContext(() => showError(error));\n window?.history.pushState({}, \"\", to.fullPath);\n });\n return false;\n }\n });\n});\n"],"names":["__executeAsync"],"mappings":";;;;AAIE,MAAQ,WAAA,0BAAgB,OAAA,OAAA;;AAAA,MAAA,QAAA;AACtB,MAAA,GAAA,QAAA,SAAA,mBAAA,WAAA;AACF;AAAA,EACA;AACA,QAAM,UAAmB,WAAA;AACnB,QAAA,SAAe,UAAA;AACrB,kBAAqB,CAAA,QAAA,SAAA,IAAAA,aAAA,MAAA,QAAA,QAAA,GAAA,KAAA,SAAA,EAAA,CAAA,CAAA,GAAA,SAAA,MAAA,QAAA,UAAA,GAAA;AACnB,MAAA,WAAA,MAAA;AACF;AAAA,EACA;AACE,QAAA,QAAY,YAAU;AAAA,IACtB,sBAAyB,OAAA,cAAwB;AAAA,IACjD,eAAM,UAAA,OAAA,iBAAA,mBAAA,GAAA,QAAA;AAAA,IAAA;MAEN,MAAA,GAAA;AAAA,IAAA;AAAA,EAEF,CAAA;AACQ,QAAA,QAAA,OAAA,cAAA,CAAA,UAAA;AACN;AACQ,QAAA,UAAA,IAAgB;AACb,YAAA,SAAA,OAAA,UAAA,YAAA;AACP,eAAc;AAEf,cAAA,QAAA,eAAA,MAAA,UAAA,KAAA,CAAA;AAAA,MACD,CAAO;AACT,aAAA;AAAA,IAAA;AAAA,EAEJ,CAAC;;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/validate.mjs.map.json b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/validate.mjs.map.json new file mode 100644 index 0000000..068ae4d --- /dev/null +++ b/.nuxt/dist/server/node_modules/nuxt/dist/pages/runtime/validate.mjs.map.json @@ -0,0 +1 @@ +{"file":"validate.mjs","mappings":";;;;AAIE,MAAQ,WAAA,0BAAgB,OAAA,OAAA;;AAAA,MAAA,QAAA;AACtB,MAAA,GAAA,QAAA,SAAA,mBAAA,WAAA;AACF;AAAA,EACA;AACA,QAAM,UAAmB,WAAA;AACnB,QAAA,SAAe,UAAA;AACrB,kBAAqB,CAAA,QAAA,SAAA,IAAAA,aAAA,MAAA,QAAA,QAAA,GAAA,KAAA,SAAA,EAAA,CAAA,CAAA,GAAA,SAAA,MAAA,QAAA,UAAA,GAAA;AACnB,MAAA,WAAA,MAAA;AACF;AAAA,EACA;AACE,QAAA,QAAY,YAAU;AAAA,IACtB,sBAAyB,OAAA,cAAwB;AAAA,IACjD,eAAM,UAAA,OAAA,iBAAA,mBAAA,GAAA,QAAA;AAAA,IAAA;MAEN,MAAA,GAAA;AAAA,IAAA;AAAA,EAEF,CAAA;AACQ,QAAA,QAAA,OAAA,cAAA,CAAA,UAAA;AACN;AACQ,QAAA,UAAA,IAAgB;AACb,YAAA,SAAA,OAAA,UAAA,YAAA;AACP,eAAc;AAEf,cAAA,QAAA,eAAA,MAAA,UAAA,KAAA,CAAA;AAAA,MACD,CAAO;AACT,aAAA;AAAA,IAAA;AAAA,EAEJ,CAAC;;","names":["__executeAsync"],"sources":["../../../../../../../../node_modules/nuxt/dist/pages/runtime/validate.js"],"sourcesContent":["import { createError, showError } from \"#app/composables/error\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { defineNuxtRouteMiddleware, useRouter } from \"#app/composables/router\";\nexport default defineNuxtRouteMiddleware(async (to) => {\n if (!to.meta?.validate) {\n return;\n }\n const nuxtApp = useNuxtApp();\n const router = useRouter();\n const result = await Promise.resolve(to.meta.validate(to));\n if (result === true) {\n return;\n }\n const error = createError({\n statusCode: result && result.statusCode || 404,\n statusMessage: result && result.statusMessage || `Page Not Found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n });\n const unsub = router.beforeResolve((final) => {\n unsub();\n if (final === to) {\n const unsub2 = router.afterEach(async () => {\n unsub2();\n await nuxtApp.runWithContext(() => showError(error));\n window?.history.pushState({}, \"\", to.fullPath);\n });\n return false;\n }\n });\n});\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/about.vue.mjs b/.nuxt/dist/server/pages/about.vue.mjs new file mode 100644 index 0000000..6e93019 --- /dev/null +++ b/.nuxt/dist/server/pages/about.vue.mjs @@ -0,0 +1,12 @@ +import _sfc_main from "./about.vue2.mjs"; +import { useSSRContext } from "vue"; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/about.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=about.vue.mjs.map diff --git a/.nuxt/dist/server/pages/about.vue.mjs.map b/.nuxt/dist/server/pages/about.vue.mjs.map new file mode 100644 index 0000000..ee63405 --- /dev/null +++ b/.nuxt/dist/server/pages/about.vue.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"about.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/about.vue.mjs.map.json b/.nuxt/dist/server/pages/about.vue.mjs.map.json new file mode 100644 index 0000000..2b80dc1 --- /dev/null +++ b/.nuxt/dist/server/pages/about.vue.mjs.map.json @@ -0,0 +1 @@ +{"file":"about.vue.mjs","mappings":";;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/about.vue2.mjs b/.nuxt/dist/server/pages/about.vue2.mjs new file mode 100644 index 0000000..a62585d --- /dev/null +++ b/.nuxt/dist/server/pages/about.vue2.mjs @@ -0,0 +1,116 @@ +import "../components/HeroBanner.vue.mjs"; +import __nuxt_component_0 from "../node_modules/nuxt/dist/app/components/nuxt-link.mjs"; +import { defineComponent, withCtx, createTextVNode, createVNode } from "vue"; +import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrInterpolate, ssrRenderClass } from "vue/server-renderer"; +import _sfc_main$1 from "../components/HeroBanner.vue2.mjs"; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "about", + __ssrInlineRender: true, + setup(__props) { + const achievements = [ + "AWS高级合作伙伴认证", + "100+成功案例", + "50+AWS认证工程师" + ]; + const advantages = [ + { + icon: "fas fa-award", + title: "专业认证", + description: "AWS官方认证的高级合作伙伴,拥有多项专业认证" + }, + { + icon: "fas fa-users", + title: "专业团队", + description: "50+位AWS认证工程师,平均5年以上云服务经验" + }, + { + icon: "fas fa-tools", + title: "技术实力", + description: "掌握AWS全线产品,具备丰富的实施和运维经验" + }, + { + icon: "fas fa-headset", + title: "服务保障", + description: "7x24小时技术支持,确保客户业务稳定运行" + } + ]; + const cultures = [ + { + icon: "fas fa-bullseye", + title: "企业使命", + description: "助力企业数字化转型,提供专业可靠的云计算服务" + }, + { + icon: "fas fa-eye", + title: "企业愿景", + description: "成为中国最值得信赖的云服务解决方案提供商" + }, + { + icon: "fas fa-heart", + title: "核心价值观", + description: "专业、创新、诚信、共赢" + } + ]; + const historyItems = [ + { + year: "2023年", + description: "成为AWS高级合作伙伴,服务客户数量突破500家" + }, + { + year: "2021年", + description: "获得AWS标准合作伙伴认证,团队规模扩大到50人" + }, + { + year: "2018年", + description: "公司成立,开始提供AWS云服务解决方案" + } + ]; + return (_ctx, _push, _parent, _attrs) => { + const _component_HeroBanner = _sfc_main$1; + const _component_NuxtLink = __nuxt_component_0; + _push(``); + _push(ssrRenderComponent(_component_HeroBanner, { + title: "关于我们", + subtitle: "专业的AWS云服务解决方案提供商,助力企业数字化转型" + }, null, _parent)); + _push(`

公司简介

云服务专家成立于2018年,是AWS授权的云服务解决方案提供商。我们致力于为企业提供专业的云计算咨询、迁移、运维和优化服务。

作为AWS高级合作伙伴,我们拥有丰富的云服务实施经验和专业的技术团队,已成功帮助数百家企业完成云上转型。

    `); + ssrRenderList(achievements, (achievement, index) => { + _push(`
  • ${ssrInterpolate(achievement)}
  • `); + }); + _push(`

我们的优势

专业技术团队,丰富项目经验

`); + ssrRenderList(advantages, (advantage, index) => { + _push(`

${ssrInterpolate(advantage.title)}

${ssrInterpolate(advantage.description)}

`); + }); + _push(`

企业文化

以客户为中心,追求卓越服务

`); + ssrRenderList(cultures, (culture, index) => { + _push(`

${ssrInterpolate(culture.title)}

${ssrInterpolate(culture.description)}

`); + }); + _push(`

发展历程

见证我们的成长与进步

`); + ssrRenderList(historyItems, (history, index) => { + _push(`

${ssrInterpolate(history.year)}

${ssrInterpolate(history.description)}

`); + }); + _push(`

想了解更多关于我们?

欢迎联系我们,了解更多公司信息和服务详情

`); + _push(ssrRenderComponent(_component_NuxtLink, { + to: "/contact", + class: "inline-flex items-center bg-white text-black px-8 py-4 rounded-lg hover:bg-gray-100 transition-colors duration-300 text-lg font-semibold" + }, { + default: withCtx((_, _push2, _parent2, _scopeId) => { + if (_push2) { + _push2(` 联系我们 `); + } else { + return [ + createTextVNode(" 联系我们 "), + createVNode("i", { class: "fas fa-arrow-right ml-2" }) + ]; + } + }), + _: 1 + }, _parent)); + _push(`
`); + }; + } +}); +export { + _sfc_main as default +}; +//# sourceMappingURL=about.vue2.mjs.map diff --git a/.nuxt/dist/server/pages/about.vue2.mjs.map b/.nuxt/dist/server/pages/about.vue2.mjs.map new file mode 100644 index 0000000..49bfe94 --- /dev/null +++ b/.nuxt/dist/server/pages/about.vue2.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"about.vue2.mjs","sources":["../../../../pages/about.vue"],"sourcesContent":["\r\n\r\n"],"names":[],"mappings":";;;;;;;;;AAyGA,UAAM,eAAe;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAGA,UAAM,aAAa;AAAA,MACjB;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;AAGA,UAAM,WAAW;AAAA,MACf;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;AAGA,UAAM,eAAe;AAAA,MACnB;AAAA,QACE,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,aAAa;AAAA,MAAA;AAAA,IAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/about.vue2.mjs.map.json b/.nuxt/dist/server/pages/about.vue2.mjs.map.json new file mode 100644 index 0000000..3606d93 --- /dev/null +++ b/.nuxt/dist/server/pages/about.vue2.mjs.map.json @@ -0,0 +1 @@ +{"file":"about.vue2.mjs","mappings":";;;;;;;;;AAyGA,UAAM,eAAe;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAGA,UAAM,aAAa;AAAA,MACjB;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;AAGA,UAAM,WAAW;AAAA,MACf;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;AAGA,UAAM,eAAe;AAAA,MACnB;AAAA,QACE,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,aAAa;AAAA,MAAA;AAAA,IAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["../../../../pages/about.vue"],"sourcesContent":["\r\n\r\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/cases.vue.mjs b/.nuxt/dist/server/pages/cases.vue.mjs new file mode 100644 index 0000000..3a84888 --- /dev/null +++ b/.nuxt/dist/server/pages/cases.vue.mjs @@ -0,0 +1,12 @@ +import _sfc_main from "./cases.vue2.mjs"; +import { useSSRContext } from "vue"; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/cases.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=cases.vue.mjs.map diff --git a/.nuxt/dist/server/pages/cases.vue.mjs.map b/.nuxt/dist/server/pages/cases.vue.mjs.map new file mode 100644 index 0000000..cbfbe1c --- /dev/null +++ b/.nuxt/dist/server/pages/cases.vue.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"cases.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/cases.vue.mjs.map.json b/.nuxt/dist/server/pages/cases.vue.mjs.map.json new file mode 100644 index 0000000..70f9b81 --- /dev/null +++ b/.nuxt/dist/server/pages/cases.vue.mjs.map.json @@ -0,0 +1 @@ +{"file":"cases.vue.mjs","mappings":";;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/cases.vue2.mjs b/.nuxt/dist/server/pages/cases.vue2.mjs new file mode 100644 index 0000000..e67b966 --- /dev/null +++ b/.nuxt/dist/server/pages/cases.vue2.mjs @@ -0,0 +1,215 @@ +import "../components/HeroBanner.vue.mjs"; +import __nuxt_component_0 from "../node_modules/nuxt/dist/app/components/nuxt-link.mjs"; +import { defineComponent, ref, computed, withCtx, createTextVNode, createVNode } from "vue"; +import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrInterpolate, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual } from "vue/server-renderer"; +import _sfc_main$1 from "../components/HeroBanner.vue2.mjs"; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "cases", + __ssrInlineRender: true, + setup(__props) { + const industries = ["金融", "电子商务", "制造", "医疗", "教育", "政府", "媒体", "物流"]; + const selectedIndustries = ref([]); + const sortBy = ref("default"); + const selectedCase = ref(null); + const caseStudies = [ + { + title: "某大型电商平台", + industry: "电子商务", + date: "2023-05-15", + summary: "通过AWS云服务,成功应对每年双11销售高峰,提升了网站性能和用户体验,同时降低了运营成本。", + background: "该客户是中国领先的电子商务平台,年交易额超过100亿元,拥有超过1000万注册用户。随着业务快速发展,特别是在促销活动期间,其传统IT架构难以应对流量峰值。", + challenges: [ + "传统IT基础设施难以应对促销期间10倍以上的流量峰值", + "系统扩容周期长,难以快速响应业务需求", + "运维成本高,人力资源紧张", + "数据安全和合规要求严格" + ], + solution: "我们为客户设计并实施了基于AWS的弹性扩展解决方案。使用EC2弹性计算实例和Auto Scaling自动扩展服务,实现了基于流量的自动扩缩容;采用Amazon RDS提供高可用数据库服务;利用ElastiCache加速数据访问;通过CloudFront CDN加速全国内容分发。", + results: [ + "成功应对促销期间20倍的流量增长,系统零宕机", + "页面加载时间减少40%,用户体验显著提升", + "运维工作量减少60%,IT团队可以更专注于业务创新", + "总体IT成本降低30%,特别是在非促销期间", + "系统可靠性提升到99.99%" + ] + }, + { + title: "某股份制银行", + industry: "金融", + date: "2023-03-20", + summary: "采用AWS金融云解决方案,构建了高安全、高可用的核心业务系统,满足了严格的金融监管要求。", + background: "该客户是一家拥有50多家分支机构的全国性股份制银行,为了适应数字化转型战略,需要升级其核心业务系统,以提高业务敏捷性和客户体验。", + challenges: [ + "金融系统对安全性和可用性要求极高", + "需要满足严格的金融监管合规要求", + "大量敏感数据需要高级别的保护", + "系统升级不能影响正常业务运营" + ], + solution: "我们为客户提供了基于AWS金融云的整体解决方案,包括多区域高可用架构设计、全面的安全防护体系、数据加密和访问控制、灾备和业务连续性方案等。通过与客户IT团队的紧密协作,分阶段实施了系统迁移和升级。", + results: [ + "成功构建满足CBRC监管要求的高合规云平台", + "系统可用性达到99.999%,满足金融业务连续性要求", + "数据安全问题零发生,通过了多次安全审计", + "业务处理能力提升3倍,支持快速创新", + "新业务上线时间从月级缩短到周级" + ] + }, + { + title: "某医疗健康机构", + industry: "医疗", + date: "2022-11-10", + summary: "利用AWS的AI/ML服务,构建了智能医疗影像分析系统,提高了诊断效率和准确性。", + background: "该客户是一家拥有多家医院的医疗集团,面临医疗影像数据激增、专业放射科医师短缺的挑战,希望通过AI技术提高医疗影像诊断的效率和准确性。", + challenges: [ + "每天产生海量医疗影像数据,存储和处理压力大", + "专业放射科医师资源有限,工作负担重", + "传统诊断方法耗时长,难以满足快速增长的需求", + "医疗数据安全和患者隐私保护要求高" + ], + solution: "我们基于AWS的医疗解决方案,构建了云端医疗影像存储和AI辅助诊断系统。使用S3存储海量影像数据,通过SageMaker构建和部署AI诊断模型,结合医疗专用的安全和合规措施,确保数据安全和患者隐私。", + results: [ + "医疗影像诊断效率提升60%,大幅减轻医师工作负担", + "AI辅助诊断系统准确率达到95%以上,优于行业平均水平", + "患者等待时间从平均24小时减少到6小时", + "医疗数据安全得到全面保障,符合国家相关法规要求", + "建立了可持续的医疗AI创新平台,持续改进诊断能力" + ] + }, + { + title: "某制造业巨头", + industry: "制造", + date: "2022-09-05", + summary: "通过AWS工业互联网解决方案,实现了生产设备智能监控和预测性维护,提高了生产效率,降低了设备故障率。", + background: "该客户是一家大型制造企业,拥有多个生产基地和数千台生产设备。传统的设备维护模式效率低下,难以预防突发故障,导致生产线停机和效率损失。", + challenges: [ + "设备分散在多个地区,管理和监控困难", + "缺乏有效的设备健康状态监测手段", + "计划外停机造成巨大的生产损失", + "海量设备数据无法有效收集和分析" + ], + solution: "我们基于AWS IoT服务构建了工业互联网平台,实现设备数据实时收集和分析。通过AWS IoT Core连接设备,利用Kinesis处理实时数据流,结合SageMaker构建预测性维护模型,最终通过可视化仪表板展示设备健康状态和预警信息。", + results: [ + "实现了5000多台设备的实时监控和健康管理", + "设备计划外停机时间减少70%,生产效率提升25%", + "维护成本降低40%,设备使用寿命延长15%", + "通过预测性维护,每年节约维修成本数百万元", + "建立了数据驱动的智能制造基础,支持企业数字化转型" + ] + }, + { + title: "某大型物流企业", + industry: "物流", + date: "2022-07-15", + summary: "利用AWS的大数据和机器学习服务,优化了配送路线和资源调度,提高了配送效率,降低了运营成本。", + background: "该客户是一家覆盖全国的综合物流服务提供商,日处理订单量超过100万单。随着业务规模扩大,传统的人工调度方式难以应对复杂多变的配送需求,效率低下且成本高昂。", + challenges: [ + "配送路线规划复杂,人工调度效率低", + "车辆和人力资源分配不均衡,利用率低", + "无法根据实时路况和订单变化做出快速调整", + "缺乏数据支持的决策机制,难以持续优化" + ], + solution: "我们为客户构建了基于AWS的智能物流调度平台。利用AWS的大数据服务处理和分析海量订单和位置数据,通过机器学习算法建立智能路径规划和资源调度模型,并结合地图服务实现实时路况感知和动态调整。", + results: [ + "配送效率提升30%,平均配送时间缩短1.5小时", + "车辆利用率提高40%,每年节约燃油成本数百万元", + "客户满意度提升25%,准时送达率达到98%", + "系统自动化程度高,调度人员需求减少50%", + "建立了数据驱动的持续优化机制,物流成本逐年下降" + ] + }, + { + title: "某在线教育平台", + industry: "教育", + date: "2022-05-08", + summary: "通过AWS云服务,构建了高可靠、低延迟的在线教育直播和点播平台,支持百万级学生同时在线学习。", + background: "该客户是一家专注K12领域的在线教育平台,提供直播和点播课程服务。随着用户规模快速增长,特别是在疫情期间,平台面临巨大的并发访问压力和用户体验挑战。", + challenges: [ + "高峰期需支持百万级用户同时在线学习", + "直播课程对系统稳定性和延迟要求高", + "教学视频存储和分发成本高", + "用户分布广泛,跨地区服务质量难以保证" + ], + solution: "我们基于AWS设计了可弹性扩展的在线教育平台解决方案。使用EC2和Auto Scaling服务支持高并发访问,通过MediaLive和MediaPackage提供低延迟直播服务,利用S3和CloudFront实现视频内容的高效存储和分发,同时通过多区域部署确保全国范围内的服务质量。", + results: [ + "成功支持200万+用户同时在线学习,系统稳定无卡顿", + "直播延迟控制在2秒以内,大幅提升师生互动体验", + "通过内容分发网络,全国各地用户访问速度提升60%", + "视频存储和分发成本降低50%,支持业务快速扩张", + "平台可用性达到99.99%,赢得用户信赖" + ] + } + ]; + const filteredCases = computed(() => { + let result = [...caseStudies]; + if (selectedIndustries.value.length > 0) { + result = result.filter((item) => selectedIndustries.value.includes(item.industry)); + } + if (sortBy.value === "latest") { + result.sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime()); + } + return result; + }); + return (_ctx, _push, _parent, _attrs) => { + const _component_HeroBanner = _sfc_main$1; + const _component_NuxtLink = __nuxt_component_0; + _push(``); + _push(ssrRenderComponent(_component_HeroBanner, { + title: "客户案例", + subtitle: "看看其他企业如何利用AWS云服务提升业务价值" + }, null, _parent)); + _push(`
按行业筛选:
`); + ssrRenderList(industries, (industry) => { + _push(``); + }); + _push(`
排序方式:
`); + if (filteredCases.value.length === 0) { + _push(`

没有找到符合条件的案例

`); + } else { + _push(`
`); + ssrRenderList(filteredCases.value, (case_item, index) => { + _push(`
${ssrInterpolate(case_item.industry)}

${ssrInterpolate(case_item.title)}

${ssrInterpolate(case_item.summary)}

${ssrInterpolate(case_item.date)}
`); + }); + _push(`
`); + } + _push(`
`); + if (selectedCase.value) { + _push(`

${ssrInterpolate(selectedCase.value.title)}

${ssrInterpolate(selectedCase.value.industry)}${ssrInterpolate(selectedCase.value.date)}

客户背景

${ssrInterpolate(selectedCase.value.background)}

面临挑战

    `); + ssrRenderList(selectedCase.value.challenges, (challenge, idx) => { + _push(`
  • ${ssrInterpolate(challenge)}
  • `); + }); + _push(`

解决方案

${ssrInterpolate(selectedCase.value.solution)}

业务成果

    `); + ssrRenderList(selectedCase.value.results, (result, idx) => { + _push(`
  • ${ssrInterpolate(result)}
  • `); + }); + _push(`
`); + } else { + _push(``); + } + _push(`

想了解更多客户案例?

联系我们获取更多行业相关的AWS云服务成功案例

`); + _push(ssrRenderComponent(_component_NuxtLink, { + to: "/contact", + class: "inline-flex items-center bg-white text-black px-8 py-4 rounded-lg hover:bg-gray-100 transition-colors duration-300 text-lg font-semibold" + }, { + default: withCtx((_, _push2, _parent2, _scopeId) => { + if (_push2) { + _push2(` 联系我们 `); + } else { + return [ + createTextVNode(" 联系我们 "), + createVNode("i", { class: "fas fa-arrow-right ml-2" }) + ]; + } + }), + _: 1 + }, _parent)); + _push(`
`); + }; + } +}); +export { + _sfc_main as default +}; +//# sourceMappingURL=cases.vue2.mjs.map diff --git a/.nuxt/dist/server/pages/cases.vue2.mjs.map b/.nuxt/dist/server/pages/cases.vue2.mjs.map new file mode 100644 index 0000000..afec8df --- /dev/null +++ b/.nuxt/dist/server/pages/cases.vue2.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"cases.vue2.mjs","sources":["../../../../pages/cases.vue"],"sourcesContent":["\r\n\r\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/cases.vue2.mjs.map.json b/.nuxt/dist/server/pages/cases.vue2.mjs.map.json new file mode 100644 index 0000000..4ba10b4 --- /dev/null +++ b/.nuxt/dist/server/pages/cases.vue2.mjs.map.json @@ -0,0 +1 @@ +{"file":"cases.vue2.mjs","mappings":"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","names":[],"sources":["../../../../pages/cases.vue"],"sourcesContent":["\r\n\r\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/contact.vue.mjs b/.nuxt/dist/server/pages/contact.vue.mjs new file mode 100644 index 0000000..9004197 --- /dev/null +++ b/.nuxt/dist/server/pages/contact.vue.mjs @@ -0,0 +1,12 @@ +import _sfc_main from "./contact.vue2.mjs"; +import { useSSRContext } from "vue"; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/contact.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=contact.vue.mjs.map diff --git a/.nuxt/dist/server/pages/contact.vue.mjs.map b/.nuxt/dist/server/pages/contact.vue.mjs.map new file mode 100644 index 0000000..b274252 --- /dev/null +++ b/.nuxt/dist/server/pages/contact.vue.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"contact.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/contact.vue.mjs.map.json b/.nuxt/dist/server/pages/contact.vue.mjs.map.json new file mode 100644 index 0000000..097084d --- /dev/null +++ b/.nuxt/dist/server/pages/contact.vue.mjs.map.json @@ -0,0 +1 @@ +{"file":"contact.vue.mjs","mappings":";;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/contact.vue2.mjs b/.nuxt/dist/server/pages/contact.vue2.mjs new file mode 100644 index 0000000..fc3ed22 --- /dev/null +++ b/.nuxt/dist/server/pages/contact.vue2.mjs @@ -0,0 +1,141 @@ +import "../components/HeroBanner.vue.mjs"; +import "../components/NotificationToast.vue.mjs"; +import { defineComponent, reactive, ref } from "vue"; +import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrInterpolate, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual } from "vue/server-renderer"; +import _sfc_main$1 from "../components/HeroBanner.vue2.mjs"; +import _sfc_main$2 from "../components/NotificationToast.vue2.mjs"; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "contact", + __ssrInlineRender: true, + setup(__props) { + const contactMethods = [ + { + icon: "fas fa-phone", + title: "电话咨询", + subtitle: "周一至周日 9:00-21:00", + content: "400-123-4567", + type: "phone" + }, + { + icon: "fas fa-envelope", + title: "邮件咨询", + subtitle: "7*24小时邮件支持", + content: "contact@example.com", + type: "email" + }, + { + icon: "fab fa-weixin", + title: "微信咨询", + subtitle: "扫描下方二维码", + content: "", + type: "wechat" + } + ]; + const companyInfo = [ + { + icon: "fas fa-map-marker-alt", + title: "北京总部", + content: "北京市朝阳区某某大厦10层" + }, + { + icon: "fas fa-subway", + title: "交通方式", + content: "地铁6号线某某站A出口步行5分钟" + }, + { + icon: "far fa-clock", + title: "办公时间", + content: "周一至周五: 9:00-18:00" + } + ]; + const services = [ + { value: "cloud", label: "云服务咨询" }, + { value: "migration", label: "上云迁移" }, + { value: "solution", label: "解决方案咨询" }, + { value: "price", label: "价格咨询" }, + { value: "other", label: "其他" } + ]; + const faqs = [ + { + question: "如何开始使用AWS云服务?", + answer: "您可以通过我们的咨询服务,获取专业的AWS云服务解决方案建议。我们的团队将根据您的具体需求,为您提供最适合的云服务方案。" + }, + { + question: "如何获取技术支持?", + answer: "我们提供7*24小时技术支持服务,您可以通过电话、邮件或在线咨询等方式联系我们的技术支持团队。" + }, + { + question: "如何计算使用成本?", + answer: "我们提供详细的成本评估服务,可以根据您的具体使用场景和需求,为您提供准确的成本预估和优化建议。" + }, + { + question: "如何申请试用服务?", + answer: "您可以通过在线咨询或直接联系我们的销售团队,申请AWS云服务的试用。我们将为您提供专业的试用方案和技术支持。" + } + ]; + const form = reactive({ + name: "", + company: "", + email: "", + phone: "", + service: "", + message: "" + }); + const submitting = ref(false); + const notification = reactive({ + message: "", + type: "success" + }); + return (_ctx, _push, _parent, _attrs) => { + const _component_HeroBanner = _sfc_main$1; + const _component_NotificationToast = _sfc_main$2; + _push(``); + _push(ssrRenderComponent(_component_HeroBanner, { + title: "联系我们", + subtitle: "随时欢迎您的咨询,我们将为您提供专业的云服务解决方案" + }, null, _parent)); + _push(`
`); + ssrRenderList(contactMethods, (contact, index) => { + _push(`

${ssrInterpolate(contact.title)}

${ssrInterpolate(contact.subtitle)}

${ssrInterpolate(contact.content)}

`); + if (contact.type === "wechat") { + _push(`
`); + } else { + _push(``); + } + _push(`
`); + }); + _push(`

在线咨询

公司地址

`); + ssrRenderList(companyInfo, (info, index) => { + _push(`

${ssrInterpolate(info.title)}

${ssrInterpolate(info.content)}

`); + }); + _push(`
地图加载位置

常见问题

解答您最关心的问题

`); + ssrRenderList(faqs, (faq, index) => { + _push(`

${ssrInterpolate(faq.question)}

${ssrInterpolate(faq.answer)}

`); + }); + _push(`
`); + _push(ssrRenderComponent(_component_NotificationToast, { + message: notification.message, + type: notification.type, + onClose: ($event) => notification.message = "" + }, null, _parent)); + _push(``); + }; + } +}); +export { + _sfc_main as default +}; +//# sourceMappingURL=contact.vue2.mjs.map diff --git a/.nuxt/dist/server/pages/contact.vue2.mjs.map b/.nuxt/dist/server/pages/contact.vue2.mjs.map new file mode 100644 index 0000000..c3b9542 --- /dev/null +++ b/.nuxt/dist/server/pages/contact.vue2.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"contact.vue2.mjs","sources":["../../../../pages/contact.vue"],"sourcesContent":["\r\n\r\n "],"names":[],"mappings":";;;;;;;;;;AAiLA,UAAM,iBAAiB;AAAA,MACrB;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,SAAS;AAAA,QACT,MAAM;AAAA,MAAA;AAAA,IAEV;AAGA,UAAM,cAAc;AAAA,MAClB;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS;AAAA,MAAA;AAAA,IAEb;AAGA,UAAM,WAAW;AAAA,MACf,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,MACjC,EAAE,OAAO,aAAa,OAAO,OAAO;AAAA,MACpC,EAAE,OAAO,YAAY,OAAO,SAAS;AAAA,MACrC,EAAE,OAAO,SAAS,OAAO,OAAO;AAAA,MAChC,EAAE,OAAO,SAAS,OAAO,KAAK;AAAA,IAChC;AAGA,UAAM,OAAO;AAAA,MACX;AAAA,QACE,UAAU;AAAA,QACV,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,UAAU;AAAA,QACV,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,UAAU;AAAA,QACV,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,UAAU;AAAA,QACV,QAAQ;AAAA,MAAA;AAAA,IAEZ;AAGA,UAAM,OAAO,SAAS;AAAA,MACpB,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,IAAA,CACV;AAEK,UAAA,aAAa,IAAI,KAAK;AAC5B,UAAM,eAAe,SAAS;AAAA,MAC5B,SAAS;AAAA,MACT,MAAM;AAAA,IAAA,CACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/contact.vue2.mjs.map.json b/.nuxt/dist/server/pages/contact.vue2.mjs.map.json new file mode 100644 index 0000000..624b62d --- /dev/null +++ b/.nuxt/dist/server/pages/contact.vue2.mjs.map.json @@ -0,0 +1 @@ +{"file":"contact.vue2.mjs","mappings":";;;;;;;;;;AAiLA,UAAM,iBAAiB;AAAA,MACrB;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,UAAU;AAAA,QACV,SAAS;AAAA,QACT,MAAM;AAAA,MAAA;AAAA,IAEV;AAGA,UAAM,cAAc;AAAA,MAClB;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,SAAS;AAAA,MAAA;AAAA,IAEb;AAGA,UAAM,WAAW;AAAA,MACf,EAAE,OAAO,SAAS,OAAO,QAAQ;AAAA,MACjC,EAAE,OAAO,aAAa,OAAO,OAAO;AAAA,MACpC,EAAE,OAAO,YAAY,OAAO,SAAS;AAAA,MACrC,EAAE,OAAO,SAAS,OAAO,OAAO;AAAA,MAChC,EAAE,OAAO,SAAS,OAAO,KAAK;AAAA,IAChC;AAGA,UAAM,OAAO;AAAA,MACX;AAAA,QACE,UAAU;AAAA,QACV,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,UAAU;AAAA,QACV,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,UAAU;AAAA,QACV,QAAQ;AAAA,MACV;AAAA,MACA;AAAA,QACE,UAAU;AAAA,QACV,QAAQ;AAAA,MAAA;AAAA,IAEZ;AAGA,UAAM,OAAO,SAAS;AAAA,MACpB,MAAM;AAAA,MACN,SAAS;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,IAAA,CACV;AAEK,UAAA,aAAa,IAAI,KAAK;AAC5B,UAAM,eAAe,SAAS;AAAA,MAC5B,SAAS;AAAA,MACT,MAAM;AAAA,IAAA,CACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["../../../../pages/contact.vue"],"sourcesContent":["\r\n\r\n "],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/index.vue.mjs b/.nuxt/dist/server/pages/index.vue.mjs new file mode 100644 index 0000000..3fc8458 --- /dev/null +++ b/.nuxt/dist/server/pages/index.vue.mjs @@ -0,0 +1,12 @@ +import _sfc_main from "./index.vue2.mjs"; +import { useSSRContext } from "vue"; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/index.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=index.vue.mjs.map diff --git a/.nuxt/dist/server/pages/index.vue.mjs.map b/.nuxt/dist/server/pages/index.vue.mjs.map new file mode 100644 index 0000000..710f8ff --- /dev/null +++ b/.nuxt/dist/server/pages/index.vue.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/index.vue.mjs.map.json b/.nuxt/dist/server/pages/index.vue.mjs.map.json new file mode 100644 index 0000000..31f349d --- /dev/null +++ b/.nuxt/dist/server/pages/index.vue.mjs.map.json @@ -0,0 +1 @@ +{"file":"index.vue.mjs","mappings":";;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/index.vue2.mjs b/.nuxt/dist/server/pages/index.vue2.mjs new file mode 100644 index 0000000..504178a --- /dev/null +++ b/.nuxt/dist/server/pages/index.vue2.mjs @@ -0,0 +1,177 @@ +import "../components/HeroBanner.vue.mjs"; +import __nuxt_component_0 from "../node_modules/nuxt/dist/app/components/nuxt-link.mjs"; +import { defineComponent, withCtx, createVNode, createTextVNode } from "vue"; +import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrInterpolate } from "vue/server-renderer"; +import _sfc_main$1 from "../components/HeroBanner.vue2.mjs"; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "index", + __ssrInlineRender: true, + setup(__props) { + const features = [ + { + icon: "fas fa-shield-alt", + title: "安全可靠", + description: "AWS提供业界领先的安全服务,包括加密、防火墙和身份验证,保障您的数据安全" + }, + { + icon: "fas fa-bolt", + title: "高性能", + description: "全球数据中心网络,低延迟高带宽,确保您的应用程序高效运行" + }, + { + icon: "fas fa-dollar-sign", + title: "成本优化", + description: "按需付费模式,无需前期投资,降低IT运营成本" + } + ]; + const services = [ + { + icon: "fas fa-check-circle", + title: "官方授权", + description: "我们是AWS官方授权的合作伙伴,可提供正规授权和发票" + }, + { + icon: "fas fa-percentage", + title: "价格优势", + description: "相比直接采购,我们能提供更具竞争力的价格和灵活的付款方式" + }, + { + icon: "fas fa-headset", + title: "技术支持", + description: "专业的技术团队提供咨询、部署和运维服务,解决您的技术难题" + }, + { + icon: "fas fa-graduation-cap", + title: "培训服务", + description: "为您的团队提供专业的AWS技术培训,提升技术能力" + } + ]; + const products = [ + { + icon: "fas fa-server", + title: "EC2 云服务器", + description: "可扩展的计算能力,适用于各种工作负载,从小型网站到企业级应用" + }, + { + icon: "fas fa-database", + title: "S3 对象存储", + description: "安全、可靠的对象存储服务,适用于备份、归档和数据湖等场景" + }, + { + icon: "fas fa-network-wired", + title: "RDS 关系型数据库", + description: "易于部署和管理的关系型数据库服务,支持多种主流数据库引擎" + } + ]; + const cases = [ + { + title: "某金融科技公司", + description: "通过迁移到AWS云服务,该公司将应用响应时间缩短了40%,并节省了30%的IT运营成本" + }, + { + title: "某电商平台", + description: "利用AWS弹性伸缩服务,轻松应对销售高峰期流量,提高了用户体验和订单转化率" + } + ]; + return (_ctx, _push, _parent, _attrs) => { + const _component_HeroBanner = _sfc_main$1; + const _component_NuxtLink = __nuxt_component_0; + _push(``); + _push(ssrRenderComponent(_component_HeroBanner, { + title: "AWS云服务器专业代理商", + subtitle: "为您的企业提供专业的AWS云服务解决方案,助力数字化转型" + }, { + default: withCtx((_, _push2, _parent2, _scopeId) => { + if (_push2) { + _push2(`
`); + } else { + return [ + createVNode("div", { class: "flex flex-col sm:flex-row justify-center gap-4" }, [ + createVNode("a", { + href: "#features", + class: "btn-primary" + }, "了解AWS优势"), + createVNode("a", { + href: "#contact", + class: "btn-secondary" + }, "联系顾问") + ]) + ]; + } + }), + _: 1 + }, _parent)); + _push(`

AWS产品与服务

全面的云计算产品线,满足您的各种业务需求

作为AWS授权代理商,我们提供全系列AWS产品和服务,并为您提供专业的咨询
和支持,帮助您选择最适合的产品组合。

`); + ssrRenderList(features, (feature, index) => { + _push(`

${ssrInterpolate(feature.title)}

${ssrInterpolate(feature.description)}

`); + }); + _push(`

我们的服务优势

作为AWS授权合作伙伴,我们提供全方位的专业服务

`); + ssrRenderList(services, (service, index) => { + _push(`

${ssrInterpolate(service.title)}

${ssrInterpolate(service.description)}

`); + }); + _push(`

AWS核心产品服务

全面的云服务产品线,满足各种业务需求

`); + ssrRenderList(products, (product, index) => { + _push(`

${ssrInterpolate(product.title)}

${ssrInterpolate(product.description)}

`); + _push(ssrRenderComponent(_component_NuxtLink, { + to: "/products", + class: "inline-flex items-center text-secondary hover:text-secondary/90" + }, { + default: withCtx((_, _push2, _parent2, _scopeId) => { + if (_push2) { + _push2(` 了解详情 `); + } else { + return [ + createTextVNode(" 了解详情 "), + createVNode("i", { class: "fas fa-arrow-right ml-2" }) + ]; + } + }), + _: 2 + }, _parent)); + _push(`
`); + }); + _push(`
`); + _push(ssrRenderComponent(_component_NuxtLink, { + to: "/products", + class: "inline-flex items-center text-secondary hover:text-secondary/90 text-lg" + }, { + default: withCtx((_, _push2, _parent2, _scopeId) => { + if (_push2) { + _push2(` 查看全部AWS产品 `); + } else { + return [ + createTextVNode(" 查看全部AWS产品 "), + createVNode("i", { class: "fas fa-arrow-right ml-2" }) + ]; + } + }), + _: 1 + }, _parent)); + _push(`

成功客户案例

看看其他企业如何利用AWS云服务提升业务价值

`); + ssrRenderList(cases, (case_item, index) => { + _push(`

${ssrInterpolate(case_item.title)}

${ssrInterpolate(case_item.description)}

`); + _push(ssrRenderComponent(_component_NuxtLink, { + to: "/cases", + class: "inline-block text-secondary hover:text-secondary/90" + }, { + default: withCtx((_, _push2, _parent2, _scopeId) => { + if (_push2) { + _push2(`阅读详情`); + } else { + return [ + createTextVNode("阅读详情") + ]; + } + }), + _: 2 + }, _parent)); + _push(`
`); + }); + _push(`
`); + }; + } +}); +export { + _sfc_main as default +}; +//# sourceMappingURL=index.vue2.mjs.map diff --git a/.nuxt/dist/server/pages/index.vue2.mjs.map b/.nuxt/dist/server/pages/index.vue2.mjs.map new file mode 100644 index 0000000..733c5d4 --- /dev/null +++ b/.nuxt/dist/server/pages/index.vue2.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index.vue2.mjs","sources":["../../../../pages/index.vue"],"sourcesContent":["\r\n\r\n "],"names":[],"mappings":";;;;;;;;;AAkHA,UAAM,WAAW;AAAA,MACf;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;AAGA,UAAM,WAAW;AAAA,MACf;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;AAGA,UAAM,WAAW;AAAA,MACf;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;AAGA,UAAM,QAAQ;AAAA,MACZ;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/index.vue2.mjs.map.json b/.nuxt/dist/server/pages/index.vue2.mjs.map.json new file mode 100644 index 0000000..ff2b745 --- /dev/null +++ b/.nuxt/dist/server/pages/index.vue2.mjs.map.json @@ -0,0 +1 @@ +{"file":"index.vue2.mjs","mappings":";;;;;;;;;AAkHA,UAAM,WAAW;AAAA,MACf;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;AAGA,UAAM,WAAW;AAAA,MACf;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;AAGA,UAAM,WAAW;AAAA,MACf;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;AAGA,UAAM,QAAQ;AAAA,MACZ;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["../../../../pages/index.vue"],"sourcesContent":["\r\n\r\n "],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/products.vue.mjs b/.nuxt/dist/server/pages/products.vue.mjs new file mode 100644 index 0000000..4bd8395 --- /dev/null +++ b/.nuxt/dist/server/pages/products.vue.mjs @@ -0,0 +1,12 @@ +import _sfc_main from "./products.vue2.mjs"; +import { useSSRContext } from "vue"; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/products.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=products.vue.mjs.map diff --git a/.nuxt/dist/server/pages/products.vue.mjs.map b/.nuxt/dist/server/pages/products.vue.mjs.map new file mode 100644 index 0000000..f67775a --- /dev/null +++ b/.nuxt/dist/server/pages/products.vue.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"products.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/products.vue.mjs.map.json b/.nuxt/dist/server/pages/products.vue.mjs.map.json new file mode 100644 index 0000000..d234c5d --- /dev/null +++ b/.nuxt/dist/server/pages/products.vue.mjs.map.json @@ -0,0 +1 @@ +{"file":"products.vue.mjs","mappings":";;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/products.vue2.mjs b/.nuxt/dist/server/pages/products.vue2.mjs new file mode 100644 index 0000000..30e73ae --- /dev/null +++ b/.nuxt/dist/server/pages/products.vue2.mjs @@ -0,0 +1,150 @@ +import "../components/HeroBanner.vue.mjs"; +import __nuxt_component_0 from "../node_modules/nuxt/dist/app/components/nuxt-link.mjs"; +import { defineComponent, withCtx, createTextVNode, createVNode } from "vue"; +import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrInterpolate } from "vue/server-renderer"; +import _sfc_main$1 from "../components/HeroBanner.vue2.mjs"; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "products", + __ssrInlineRender: true, + setup(__props) { + const productCategories = [ + { + icon: "fas fa-server", + name: "计算服务", + description: "包括EC2、Lambda等,提供灵活的计算能力" + }, + { + icon: "fas fa-database", + name: "存储服务", + description: "包括S3、EBS等,提供可靠的数据存储解决方案" + }, + { + icon: "fas fa-sitemap", + name: "网络服务", + description: "包括VPC、Route 53等,提供安全灵活的网络管理" + }, + { + icon: "fas fa-shield-alt", + name: "安全与身份", + description: "包括IAM、GuardDuty等,提供全面的安全防护" + }, + { + icon: "fas fa-chart-line", + name: "监控与管理", + description: "包括CloudWatch、Systems Manager等,提供全面的监控和管理工具" + }, + { + icon: "fas fa-robot", + name: "人工智能", + description: "包括SageMaker、Rekognition等,提供先进的AI服务" + } + ]; + const products = [ + { + icon: "fas fa-server", + name: "Amazon EC2", + description: "Amazon Elastic Compute Cloud (EC2) 是一种提供可扩展计算能力的网络服务,专为云端计算设计。使用 EC2 可消除前期硬件投资,因此您能够更快地开发和部署应用程序。", + features: [ + "灵活选择实例类型,适应不同应用场景", + "按秒计费,降低运营成本", + "自动扩展,应对业务峰值", + "高可用性和可靠性保障" + ], + pricing: "按需付费,起价低至¥0.1/小时" + }, + { + icon: "fas fa-database", + name: "Amazon S3", + description: "Amazon Simple Storage Service (S3) 是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。这意味着任何规模的企业都可以存储和保护任意数量的数据。", + features: [ + "无限容量扩展,适合任何规模的数据存储", + "99.999999999% 的数据持久性", + "多种存储类别,优化成本", + "强大的访问控制和加密功能" + ], + pricing: "按存储量和请求数付费,起价低至¥0.2/GB/月" + }, + { + icon: "fas fa-table", + name: "Amazon RDS", + description: "Amazon Relational Database Service (RDS) 使在云中设置、操作和扩展关系数据库变得简单。它提供经济高效且可调整容量的容量,同时自动执行耗时的管理任务。", + features: [ + "支持多种数据库引擎:MySQL、PostgreSQL、Oracle等", + "自动备份和恢复功能", + "高可用性主备部署", + "自动软件更新和维护" + ], + pricing: "按实例类型计费,起价低至¥0.5/小时" + } + ]; + const advantages = [ + { + icon: "fas fa-tachometer-alt", + title: "快速部署", + description: "专业的团队帮助您快速部署AWS产品,缩短上线时间" + }, + { + icon: "fas fa-hand-holding-usd", + title: "成本优化", + description: "根据业务需求,为您定制最优成本方案,避免资源浪费" + }, + { + icon: "fas fa-lock", + title: "安全保障", + description: "提供全面的安全评估和最佳实践,保障业务安全" + }, + { + icon: "fas fa-headset", + title: "专业支持", + description: "7*24小时技术支持,解决您使用过程中的各种问题" + } + ]; + return (_ctx, _push, _parent, _attrs) => { + const _component_HeroBanner = _sfc_main$1; + const _component_NuxtLink = __nuxt_component_0; + _push(``); + _push(ssrRenderComponent(_component_HeroBanner, { + title: "AWS产品", + subtitle: "全面的云计算产品线,满足您的各种业务需求" + }, null, _parent)); + _push(`

AWS全线产品

覆盖计算、存储、数据库、网络、安全等多个领域

`); + ssrRenderList(productCategories, (category, index) => { + _push(`

${ssrInterpolate(category.name)}

${ssrInterpolate(category.description)}

查看产品
`); + }); + _push(`

热门产品服务

AWS核心产品详细介绍

`); + ssrRenderList(products, (product, index) => { + _push(`

${ssrInterpolate(product.name)}

${ssrInterpolate(product.description)}

产品优势

    `); + ssrRenderList(product.features, (feature, idx) => { + _push(`
  • ${ssrInterpolate(feature)}
  • `); + }); + _push(`
咨询详情价格: ${ssrInterpolate(product.pricing)}
`); + }); + _push(`

我们的优势

作为AWS授权合作伙伴,我们提供专业的AWS产品咨询和部署服务

`); + ssrRenderList(advantages, (advantage, index) => { + _push(`

${ssrInterpolate(advantage.title)}

${ssrInterpolate(advantage.description)}

`); + }); + _push(`

想了解更多产品信息?

我们的AWS产品专家将为您提供详细的产品介绍和价格咨询

`); + _push(ssrRenderComponent(_component_NuxtLink, { + to: "/contact", + class: "inline-flex items-center bg-white text-black px-8 py-4 rounded-lg hover:bg-gray-100 transition-colors duration-300 text-lg font-semibold" + }, { + default: withCtx((_, _push2, _parent2, _scopeId) => { + if (_push2) { + _push2(` 联系产品顾问 `); + } else { + return [ + createTextVNode(" 联系产品顾问 "), + createVNode("i", { class: "fas fa-arrow-right ml-2" }) + ]; + } + }), + _: 1 + }, _parent)); + _push(`
`); + }; + } +}); +export { + _sfc_main as default +}; +//# sourceMappingURL=products.vue2.mjs.map diff --git a/.nuxt/dist/server/pages/products.vue2.mjs.map b/.nuxt/dist/server/pages/products.vue2.mjs.map new file mode 100644 index 0000000..eab5807 --- /dev/null +++ b/.nuxt/dist/server/pages/products.vue2.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"products.vue2.mjs","sources":["../../../../pages/products.vue"],"sourcesContent":["\r\n\r\n "],"names":[],"mappings":";;;;;;;;;AAyGA,UAAM,oBAAoB;AAAA,MACxB;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,MAAA;AAAA,IAEjB;AAGA,UAAM,WAAW;AAAA,MACf;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SAAS;AAAA,MACX;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SAAS;AAAA,MACX;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SAAS;AAAA,MAAA;AAAA,IAEb;AAGA,UAAM,aAAa;AAAA,MACjB;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/products.vue2.mjs.map.json b/.nuxt/dist/server/pages/products.vue2.mjs.map.json new file mode 100644 index 0000000..fb640cc --- /dev/null +++ b/.nuxt/dist/server/pages/products.vue2.mjs.map.json @@ -0,0 +1 @@ +{"file":"products.vue2.mjs","mappings":";;;;;;;;;AAyGA,UAAM,oBAAoB;AAAA,MACxB;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,MAAA;AAAA,IAEjB;AAGA,UAAM,WAAW;AAAA,MACf;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SAAS;AAAA,MACX;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SAAS;AAAA,MACX;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,QACb,UAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SAAS;AAAA,MAAA;AAAA,IAEb;AAGA,UAAM,aAAa;AAAA,MACjB;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["../../../../pages/products.vue"],"sourcesContent":["\r\n\r\n "],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/solutions.vue.mjs b/.nuxt/dist/server/pages/solutions.vue.mjs new file mode 100644 index 0000000..adc68bf --- /dev/null +++ b/.nuxt/dist/server/pages/solutions.vue.mjs @@ -0,0 +1,12 @@ +import _sfc_main from "./solutions.vue2.mjs"; +import { useSSRContext } from "vue"; +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/solutions.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=solutions.vue.mjs.map diff --git a/.nuxt/dist/server/pages/solutions.vue.mjs.map b/.nuxt/dist/server/pages/solutions.vue.mjs.map new file mode 100644 index 0000000..f51fef5 --- /dev/null +++ b/.nuxt/dist/server/pages/solutions.vue.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"solutions.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/solutions.vue.mjs.map.json b/.nuxt/dist/server/pages/solutions.vue.mjs.map.json new file mode 100644 index 0000000..fb11521 --- /dev/null +++ b/.nuxt/dist/server/pages/solutions.vue.mjs.map.json @@ -0,0 +1 @@ +{"file":"solutions.vue.mjs","mappings":";;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/solutions.vue2.mjs b/.nuxt/dist/server/pages/solutions.vue2.mjs new file mode 100644 index 0000000..6e2dbe4 --- /dev/null +++ b/.nuxt/dist/server/pages/solutions.vue2.mjs @@ -0,0 +1,225 @@ +import "../components/HeroBanner.vue.mjs"; +import __nuxt_component_0 from "../node_modules/nuxt/dist/app/components/nuxt-link.mjs"; +import { defineComponent, withCtx, createTextVNode, createVNode } from "vue"; +import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrRenderClass, ssrInterpolate, ssrRenderAttr } from "vue/server-renderer"; +import _sfc_main$1 from "../components/HeroBanner.vue2.mjs"; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "solutions", + __ssrInlineRender: true, + setup(__props) { + const solutionCategories = [ + { + id: "web-hosting", + icon: "fas fa-globe", + title: "网站托管", + description: "高性能、高可用的网站托管解决方案,适用于各类网站和Web应用" + }, + { + id: "cloud-migration", + icon: "fas fa-cloud-upload-alt", + title: "企业上云", + description: "安全、平稳的企业IT系统云迁移方案,最小化业务中断风险" + }, + { + id: "disaster-recovery", + icon: "fas fa-shield-alt", + title: "灾备方案", + description: "构建可靠的灾难恢复系统,保障业务连续性和数据安全" + }, + { + id: "big-data", + icon: "fas fa-chart-pie", + title: "大数据分析", + description: "基于AWS大数据服务的数据处理和分析解决方案" + }, + { + id: "microservices", + icon: "fas fa-cubes", + title: "微服务架构", + description: "基于容器和无服务器技术的现代应用架构解决方案" + }, + { + id: "ai-ml", + icon: "fas fa-brain", + title: "AI/机器学习", + description: "利用AWS AI/ML服务快速构建智能应用的解决方案" + } + ]; + const solutions = [ + { + id: "web-hosting", + icon: "fas fa-globe", + title: "网站托管解决方案", + description: "基于AWS云服务的高性能、高可用、安全的网站托管解决方案,适用于企业官网、电子商务网站、内容管理系统等各类Web应用。利用AWS全球基础设施和CDN服务,为全球用户提供低延迟的访问体验。", + benefits: [ + "高可用性架构,99.99%服务可用性保障", + "自动扩展能力,应对流量峰值", + "CDN加速,全球用户低延迟访问", + "完善的安全防护,包括WAF、DDoS防护等", + "按需付费,降低运营成本" + ], + industries: ["电子商务", "媒体", "教育", "企业服务"] + }, + { + id: "cloud-migration", + icon: "fas fa-cloud-upload-alt", + title: "企业上云解决方案", + description: "为传统IT基础设施提供安全、可靠的云迁移路径,帮助企业实现从本地数据中心到AWS云的平稳过渡。我们的解决方案涵盖评估、规划、迁移和优化的全过程,最大限度地减少业务中断和迁移风险。", + benefits: [ + "专业的迁移评估和规划服务", + "多种迁移策略:重新托管、重新平台化、重构等", + "数据安全迁移,确保零数据丢失", + "迁移过程中的业务连续性保障", + "迁移后的性能优化和成本控制" + ], + industries: ["金融", "制造", "零售", "医疗", "政府"] + }, + { + id: "disaster-recovery", + icon: "fas fa-shield-alt", + title: "灾备解决方案", + description: "基于AWS云服务构建可靠的灾难恢复系统,帮助企业应对各种灾难情况下的业务连续性挑战。我们提供从灾备规划到实施、测试和运维的一站式服务,保障企业数据安全和业务连续性。", + benefits: [ + "多区域架构,提供地理级别的灾难恢复能力", + "灵活的恢复点目标(RPO)和恢复时间目标(RTO)选项", + "自动化的灾难恢复流程,减少人为错误", + "定期的灾备演练和测试服务", + "成本优化的灾备架构设计" + ], + industries: ["金融", "医疗", "能源", "电信", "政府"] + }, + { + id: "big-data", + icon: "fas fa-chart-pie", + title: "大数据分析解决方案", + description: "利用AWS丰富的大数据服务,构建高效、可扩展的数据处理和分析平台。我们的解决方案可以帮助企业从海量数据中提取价值,支持数据仓库、实时分析、机器学习等多种大数据应用场景。", + benefits: [ + "高性能的数据处理能力,处理PB级数据", + "灵活的存储选项,优化成本和性能", + "实时数据处理和分析能力", + "与机器学习服务的无缝集成", + "可视化的数据分析工具" + ], + industries: ["金融", "零售", "医疗", "制造", "物流"] + } + ]; + const implementationSteps = [ + { + title: "需求分析", + description: "深入了解客户业务需求和技术环境,确定解决方案目标和范围" + }, + { + title: "方案设计", + description: "基于需求分析,设计适合的AWS云服务解决方案架构和实施计划" + }, + { + title: "方案实施", + description: "按照实施计划,部署和配置AWS云服务资源,构建解决方案" + }, + { + title: "测试验证", + description: "对实施的解决方案进行全面测试,确保功能、性能和安全满足要求" + }, + { + title: "上线部署", + description: "解决方案正式上线,确保业务平稳过渡和系统稳定运行" + }, + { + title: "运维支持", + description: "提供持续的技术支持和运维服务,保障解决方案长期稳定运行" + } + ]; + const caseStudies = [ + { + title: "某电商平台", + industry: "电子商务", + description: "通过AWS云服务解决方案,成功应对销售高峰,提升了网站性能和用户体验,同时降低了运营成本。" + }, + { + title: "某金融机构", + industry: "金融", + description: "采用AWS灾备解决方案,构建了高可用的业务连续性系统,满足了金融行业严格的监管要求。" + }, + { + title: "某制造企业", + industry: "制造", + description: "通过企业上云解决方案,成功将IT系统迁移至AWS云平台,提高了系统灵活性,降低了IT维护成本。" + } + ]; + return (_ctx, _push, _parent, _attrs) => { + const _component_HeroBanner = _sfc_main$1; + const _component_NuxtLink = __nuxt_component_0; + _push(``); + _push(ssrRenderComponent(_component_HeroBanner, { + title: "解决方案", + subtitle: "针对不同行业和业务场景的专业AWS云服务解决方案" + }, null, _parent)); + _push(`

AWS云解决方案

基于AWS云服务,为不同行业提供专业解决方案

`); + ssrRenderList(solutionCategories, (category, index) => { + _push(`

${ssrInterpolate(category.title)}

${ssrInterpolate(category.description)}

查看详情
`); + }); + _push(`
`); + ssrRenderList(solutions, (solution, index) => { + _push(`

${ssrInterpolate(solution.title)}

${ssrInterpolate(solution.description)}

解决方案优势

    `); + ssrRenderList(solution.benefits, (benefit, idx) => { + _push(`
  • ${ssrInterpolate(benefit)}
  • `); + }); + _push(`

适用行业

`); + ssrRenderList(solution.industries, (industry, idx) => { + _push(`${ssrInterpolate(industry)}`); + }); + _push(`
咨询方案
`); + }); + _push(`

解决方案实施流程

专业、高效的项目实施流程,确保方案平稳落地

`); + ssrRenderList(implementationSteps, (step, index) => { + _push(`
${ssrInterpolate(index + 1)}

${ssrInterpolate(step.title)}

${ssrInterpolate(step.description)}

`); + }); + _push(`

客户成功案例

我们的解决方案已成功应用于众多行业

`); + ssrRenderList(caseStudies, (case_item, index) => { + _push(`

${ssrInterpolate(case_item.title)}

${ssrInterpolate(case_item.industry)}

${ssrInterpolate(case_item.description)}

`); + _push(ssrRenderComponent(_component_NuxtLink, { + to: "/cases", + class: "inline-flex items-center text-secondary hover:text-secondary/90" + }, { + default: withCtx((_, _push2, _parent2, _scopeId) => { + if (_push2) { + _push2(` 查看详情 `); + } else { + return [ + createTextVNode(" 查看详情 "), + createVNode("i", { class: "fas fa-arrow-right ml-2" }) + ]; + } + }), + _: 2 + }, _parent)); + _push(`
`); + }); + _push(`

需要定制化解决方案?

联系我们的解决方案专家,获取专业的AWS云服务解决方案建议

`); + _push(ssrRenderComponent(_component_NuxtLink, { + to: "/contact", + class: "inline-flex items-center bg-white text-black px-8 py-4 rounded-lg hover:bg-gray-100 transition-colors duration-300 text-lg font-semibold" + }, { + default: withCtx((_, _push2, _parent2, _scopeId) => { + if (_push2) { + _push2(` 联系解决方案专家 `); + } else { + return [ + createTextVNode(" 联系解决方案专家 "), + createVNode("i", { class: "fas fa-arrow-right ml-2" }) + ]; + } + }), + _: 1 + }, _parent)); + _push(`
`); + }; + } +}); +export { + _sfc_main as default +}; +//# sourceMappingURL=solutions.vue2.mjs.map diff --git a/.nuxt/dist/server/pages/solutions.vue2.mjs.map b/.nuxt/dist/server/pages/solutions.vue2.mjs.map new file mode 100644 index 0000000..ea11d97 --- /dev/null +++ b/.nuxt/dist/server/pages/solutions.vue2.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"solutions.vue2.mjs","sources":["../../../../pages/solutions.vue"],"sourcesContent":["\r\n\r\n"],"names":[],"mappings":";;;;;;;;;AAiJA,UAAM,qBAAqB;AAAA,MACzB;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;AAGA,UAAM,YAAY;AAAA,MAChB;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,UAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,YAAY,CAAC,QAAQ,MAAM,MAAM,MAAM;AAAA,MACzC;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,UAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,YAAY,CAAC,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAC3C;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,UAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,YAAY,CAAC,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAC3C;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,UAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,YAAY,CAAC,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAAA;AAAA,IAE7C;AAGA,UAAM,sBAAsB;AAAA,MAC1B;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;AAGA,UAAM,cAAc;AAAA,MAClB;AAAA,QACE,OAAO;AAAA,QACP,UAAU;AAAA,QACV,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,UAAU;AAAA,QACV,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,UAAU;AAAA,QACV,aAAa;AAAA,MAAA;AAAA,IAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/.nuxt/dist/server/pages/solutions.vue2.mjs.map.json b/.nuxt/dist/server/pages/solutions.vue2.mjs.map.json new file mode 100644 index 0000000..b029d62 --- /dev/null +++ b/.nuxt/dist/server/pages/solutions.vue2.mjs.map.json @@ -0,0 +1 @@ +{"file":"solutions.vue2.mjs","mappings":";;;;;;;;;AAiJA,UAAM,qBAAqB;AAAA,MACzB;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;AAGA,UAAM,YAAY;AAAA,MAChB;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,UAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,YAAY,CAAC,QAAQ,MAAM,MAAM,MAAM;AAAA,MACzC;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,UAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,YAAY,CAAC,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAC3C;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,UAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,YAAY,CAAC,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAC3C;AAAA,MACA;AAAA,QACE,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,UAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,YAAY,CAAC,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAAA;AAAA,IAE7C;AAGA,UAAM,sBAAsB;AAAA,MAC1B;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,aAAa;AAAA,MAAA;AAAA,IAEjB;AAGA,UAAM,cAAc;AAAA,MAClB;AAAA,QACE,OAAO;AAAA,QACP,UAAU;AAAA,QACV,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,UAAU;AAAA,QACV,aAAa;AAAA,MACf;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,UAAU;AAAA,QACV,aAAa;AAAA,MAAA;AAAA,IAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["../../../../pages/solutions.vue"],"sourcesContent":["\r\n\r\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/server.mjs b/.nuxt/dist/server/server.mjs new file mode 100644 index 0000000..71c9682 --- /dev/null +++ b/.nuxt/dist/server/server.mjs @@ -0,0 +1 @@ +export { default } from "file:///D:/doc/workspace/web3/node_modules/@nuxt/vite-builder/dist/runtime/vite-node.mjs" \ No newline at end of file diff --git a/.nuxt/dist/server/server.mjs.map b/.nuxt/dist/server/server.mjs.map new file mode 100644 index 0000000..c8d32af --- /dev/null +++ b/.nuxt/dist/server/server.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"server.mjs","sources":["../../../node_modules/nuxt/dist/app/entry.js"],"sourcesContent":["import { createApp, createSSRApp, nextTick } from \"vue\";\nimport \"#build/fetch.mjs\";\nimport { applyPlugins, createNuxtApp } from \"./nuxt.js\";\nimport { createError } from \"./composables/error.js\";\nimport \"#build/css\";\nimport plugins from \"#build/plugins\";\nimport RootComponent from \"#build/root-component.mjs\";\nimport { appId, appSpaLoaderAttrs, multiApp, spaLoadingTemplateOutside, vueAppRootContainer } from \"#build/nuxt.config.mjs\";\nlet entry;\nif (import.meta.server) {\n entry = async function createNuxtAppServer(ssrContext) {\n const vueApp = createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp, ssrContext });\n try {\n await applyPlugins(nuxt, plugins);\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n } catch (error) {\n await nuxt.hooks.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n if (ssrContext?._renderResponse) {\n throw new Error(\"skipping render\");\n }\n return vueApp;\n };\n}\nif (import.meta.client) {\n if (import.meta.dev && import.meta.webpackHot) {\n import.meta.webpackHot.accept();\n }\n let vueAppPromise;\n entry = async function initApp() {\n if (vueAppPromise) {\n return vueAppPromise;\n }\n const isSSR = Boolean(\n (multiApp ? window.__NUXT__?.[appId] : window.__NUXT__)?.serverRendered ?? (multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\"))?.dataset.ssr === \"true\"\n );\n const vueApp = isSSR ? createSSRApp(RootComponent) : createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp });\n async function handleVueError(error) {\n await nuxt.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n vueApp.config.errorHandler = handleVueError;\n nuxt.hook(\"app:suspense:resolve\", () => {\n if (vueApp.config.errorHandler === handleVueError) {\n vueApp.config.errorHandler = void 0;\n }\n });\n if (spaLoadingTemplateOutside && !isSSR && appSpaLoaderAttrs.id) {\n nuxt.hook(\"app:suspense:resolve\", () => {\n document.getElementById(appSpaLoaderAttrs.id)?.remove();\n });\n }\n try {\n await applyPlugins(nuxt, plugins);\n } catch (err) {\n handleVueError(err);\n }\n try {\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n await nuxt.hooks.callHook(\"app:beforeMount\", vueApp);\n vueApp.mount(vueAppRootContainer);\n await nuxt.hooks.callHook(\"app:mounted\", vueApp);\n await nextTick();\n } catch (err) {\n handleVueError(err);\n }\n return vueApp;\n };\n vueAppPromise = entry().catch((error) => {\n console.error(\"Error while mounting app:\", error);\n throw error;\n });\n}\nexport default (ssrContext) => entry(ssrContext);\n"],"names":["RootComponent"],"mappings":";;;;;;AAQA,IAAI;AACoB;AACd,UAAA,eAAe,oBAAoB,YAAY;;AAC/C,UAAA,SAAS,UAAUA,SAAa;AACtC,UAAM,OAAO,cAAc,EAAE,QAAQ,YAAY;AAC7C,QAAA;AACI,YAAA,aAAa,MAAM,OAAO;AAChC,YAAM,KAAK,MAAM,SAAS,eAAe,MAAM;AAAA,aACxC,OAAO;AACd,YAAM,KAAK,MAAM,SAAS,aAAa,KAAK;AACvC,iBAAA,SAAQ,UAAR,GAAQ,QAAU,YAAY,KAAK;AAAA,IAAA;AAE1C,QAAI,yCAAY,iBAAiB;AACzB,YAAA,IAAI,MAAM,iBAAiB;AAAA,IAAA;AAE5B,WAAA;AAAA,EACT;AACF;AAmDA,MAAA,UAAe,CAAC,eAAe,MAAM,UAAU;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/.nuxt/dist/server/server.mjs.map.json b/.nuxt/dist/server/server.mjs.map.json new file mode 100644 index 0000000..299e966 --- /dev/null +++ b/.nuxt/dist/server/server.mjs.map.json @@ -0,0 +1 @@ +{"file":"server.mjs","mappings":";;;;;;AAQA,IAAI;AACoB;AACd,UAAA,eAAe,oBAAoB,YAAY;;AAC/C,UAAA,SAAS,UAAUA,SAAa;AACtC,UAAM,OAAO,cAAc,EAAE,QAAQ,YAAY;AAC7C,QAAA;AACI,YAAA,aAAa,MAAM,OAAO;AAChC,YAAM,KAAK,MAAM,SAAS,eAAe,MAAM;AAAA,aACxC,OAAO;AACd,YAAM,KAAK,MAAM,SAAS,aAAa,KAAK;AACvC,iBAAA,SAAQ,UAAR,GAAQ,QAAU,YAAY,KAAK;AAAA,IAAA;AAE1C,QAAI,yCAAY,iBAAiB;AACzB,YAAA,IAAI,MAAM,iBAAiB;AAAA,IAAA;AAE5B,WAAA;AAAA,EACT;AACF;AAmDA,MAAA,UAAe,CAAC,eAAe,MAAM,UAAU;","names":["RootComponent"],"sources":["../../../node_modules/nuxt/dist/app/entry.js"],"sourcesContent":["import { createApp, createSSRApp, nextTick } from \"vue\";\nimport \"#build/fetch.mjs\";\nimport { applyPlugins, createNuxtApp } from \"./nuxt.js\";\nimport { createError } from \"./composables/error.js\";\nimport \"#build/css\";\nimport plugins from \"#build/plugins\";\nimport RootComponent from \"#build/root-component.mjs\";\nimport { appId, appSpaLoaderAttrs, multiApp, spaLoadingTemplateOutside, vueAppRootContainer } from \"#build/nuxt.config.mjs\";\nlet entry;\nif (import.meta.server) {\n entry = async function createNuxtAppServer(ssrContext) {\n const vueApp = createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp, ssrContext });\n try {\n await applyPlugins(nuxt, plugins);\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n } catch (error) {\n await nuxt.hooks.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n if (ssrContext?._renderResponse) {\n throw new Error(\"skipping render\");\n }\n return vueApp;\n };\n}\nif (import.meta.client) {\n if (import.meta.dev && import.meta.webpackHot) {\n import.meta.webpackHot.accept();\n }\n let vueAppPromise;\n entry = async function initApp() {\n if (vueAppPromise) {\n return vueAppPromise;\n }\n const isSSR = Boolean(\n (multiApp ? window.__NUXT__?.[appId] : window.__NUXT__)?.serverRendered ?? (multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\"))?.dataset.ssr === \"true\"\n );\n const vueApp = isSSR ? createSSRApp(RootComponent) : createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp });\n async function handleVueError(error) {\n await nuxt.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n vueApp.config.errorHandler = handleVueError;\n nuxt.hook(\"app:suspense:resolve\", () => {\n if (vueApp.config.errorHandler === handleVueError) {\n vueApp.config.errorHandler = void 0;\n }\n });\n if (spaLoadingTemplateOutside && !isSSR && appSpaLoaderAttrs.id) {\n nuxt.hook(\"app:suspense:resolve\", () => {\n document.getElementById(appSpaLoaderAttrs.id)?.remove();\n });\n }\n try {\n await applyPlugins(nuxt, plugins);\n } catch (err) {\n handleVueError(err);\n }\n try {\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n await nuxt.hooks.callHook(\"app:beforeMount\", vueApp);\n vueApp.mount(vueAppRootContainer);\n await nuxt.hooks.callHook(\"app:mounted\", vueApp);\n await nextTick();\n } catch (err) {\n handleVueError(err);\n }\n return vueApp;\n };\n vueAppPromise = entry().catch((error) => {\n console.error(\"Error while mounting app:\", error);\n throw error;\n });\n}\nexport default (ssrContext) => entry(ssrContext);\n"],"version":3} \ No newline at end of file diff --git a/.nuxt/dist/server/styles.mjs b/.nuxt/dist/server/styles.mjs new file mode 100644 index 0000000..06e0b54 --- /dev/null +++ b/.nuxt/dist/server/styles.mjs @@ -0,0 +1,8 @@ +const interopDefault = r => r.default || r || [] +export default { + "node_modules/nuxt/dist/app/entry.js": () => import('./_nuxt/entry-styles.4FLa15rc.mjs').then(interopDefault), + "node_modules/nuxt/dist/app/components/error-404.vue": () => import('./_nuxt/error-404-styles.wRz_-Rw1.mjs').then(interopDefault), + "node_modules/nuxt/dist/app/components/error-500.vue": () => import('./_nuxt/error-500-styles.TwxDbBgG.mjs').then(interopDefault), + "node_modules/nuxt/dist/app/components/error-404.vue?vue&type=style&index=0&scoped=3fc41134&lang.css": () => import('./_nuxt/error-404-styles.BNmKahfp.mjs').then(interopDefault), + "node_modules/nuxt/dist/app/components/error-500.vue?vue&type=style&index=0&scoped=bfd09c70&lang.css": () => import('./_nuxt/error-500-styles.Cx3AJg0u.mjs').then(interopDefault) +} \ No newline at end of file diff --git a/.nuxt/imports.d.ts b/.nuxt/imports.d.ts new file mode 100644 index 0000000..7fd0fe5 --- /dev/null +++ b/.nuxt/imports.d.ts @@ -0,0 +1,32 @@ +export { useScriptTriggerConsent, useScriptEventPage, useScriptTriggerElement, useScript, useScriptGoogleAnalytics, useScriptPlausibleAnalytics, useScriptCrisp, useScriptClarity, useScriptCloudflareWebAnalytics, useScriptFathomAnalytics, useScriptMatomoAnalytics, useScriptGoogleTagManager, useScriptGoogleAdsense, useScriptSegment, useScriptMetaPixel, useScriptXPixel, useScriptIntercom, useScriptHotjar, useScriptStripe, useScriptLemonSqueezy, useScriptVimeoPlayer, useScriptYouTubePlayer, useScriptGoogleMaps, useScriptNpm, useScriptUmamiAnalytics, useScriptSnapchatPixel } from '#app/composables/script-stubs'; +export { isVue2, isVue3 } from 'vue-demi'; +export { defineNuxtLink } from '#app/components/nuxt-link'; +export { useNuxtApp, tryUseNuxtApp, defineNuxtPlugin, definePayloadPlugin, useRuntimeConfig, defineAppConfig } from '#app/nuxt'; +export { useAppConfig, updateAppConfig } from '#app/config'; +export { defineNuxtComponent } from '#app/composables/component'; +export { useAsyncData, useLazyAsyncData, useNuxtData, refreshNuxtData, clearNuxtData } from '#app/composables/asyncData'; +export { useHydration } from '#app/composables/hydrate'; +export { callOnce } from '#app/composables/once'; +export { useState, clearNuxtState } from '#app/composables/state'; +export { clearError, createError, isNuxtError, showError, useError } from '#app/composables/error'; +export { useFetch, useLazyFetch } from '#app/composables/fetch'; +export { useCookie, refreshCookie } from '#app/composables/cookie'; +export { onPrehydrate, prerenderRoutes, useRequestHeader, useRequestHeaders, useResponseHeader, useRequestEvent, useRequestFetch, setResponseStatus } from '#app/composables/ssr'; +export { onNuxtReady } from '#app/composables/ready'; +export { preloadComponents, prefetchComponents, preloadRouteComponents } from '#app/composables/preload'; +export { abortNavigation, addRouteMiddleware, defineNuxtRouteMiddleware, setPageLayout, navigateTo, useRoute, useRouter } from '#app/composables/router'; +export { isPrerendered, loadPayload, preloadPayload, definePayloadReducer, definePayloadReviver } from '#app/composables/payload'; +export { useLoadingIndicator } from '#app/composables/loading-indicator'; +export { getAppManifest, getRouteRules } from '#app/composables/manifest'; +export { reloadNuxtApp } from '#app/composables/chunk'; +export { useRequestURL } from '#app/composables/url'; +export { usePreviewMode } from '#app/composables/preview'; +export { useRouteAnnouncer } from '#app/composables/route-announcer'; +export { useRuntimeHook } from '#app/composables/runtime-hook'; +export { useHead, useHeadSafe, useServerHeadSafe, useServerHead, useSeoMeta, useServerSeoMeta, injectHead } from '#app/composables/head'; +export { onBeforeRouteLeave, onBeforeRouteUpdate, useLink } from 'vue-router'; +export { withCtx, withDirectives, withKeys, withMemo, withModifiers, withScopeId, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, computed, customRef, isProxy, isReactive, isReadonly, isRef, markRaw, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toRef, toRefs, triggerRef, unref, watch, watchEffect, watchPostEffect, watchSyncEffect, isShallow, effect, effectScope, getCurrentScope, onScopeDispose, defineComponent, defineAsyncComponent, resolveComponent, getCurrentInstance, h, inject, hasInjectionContext, nextTick, provide, mergeModels, toValue, useModel, useAttrs, useCssModule, useCssVars, useSlots, useTransitionState, useId, useTemplateRef, useShadowRoot, Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'; +export { requestIdleCallback, cancelIdleCallback } from '#app/compat/idle-callback'; +export { setInterval } from '#app/compat/interval'; +export { useNuxtDevTools } from '../node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools'; +export { definePageMeta } from '../node_modules/nuxt/dist/pages/runtime/composables'; \ No newline at end of file diff --git a/.nuxt/manifest/latest.json b/.nuxt/manifest/latest.json new file mode 100644 index 0000000..6200bd8 --- /dev/null +++ b/.nuxt/manifest/latest.json @@ -0,0 +1 @@ +{"id":"dev","timestamp":1745308032415} \ No newline at end of file diff --git a/.nuxt/manifest/meta/295e2927-5908-4c75-87ca-ed5550175fd5.json b/.nuxt/manifest/meta/295e2927-5908-4c75-87ca-ed5550175fd5.json new file mode 100644 index 0000000..2578f7b --- /dev/null +++ b/.nuxt/manifest/meta/295e2927-5908-4c75-87ca-ed5550175fd5.json @@ -0,0 +1 @@ +{"id":"295e2927-5908-4c75-87ca-ed5550175fd5","timestamp":1745302739380,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":["/","/products","/solutions","/cases","/contact","/about"]} \ No newline at end of file diff --git a/.nuxt/manifest/meta/dev.json b/.nuxt/manifest/meta/dev.json new file mode 100644 index 0000000..72fb01e --- /dev/null +++ b/.nuxt/manifest/meta/dev.json @@ -0,0 +1 @@ +{"id":"dev","timestamp":1745308032435,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]} \ No newline at end of file diff --git a/.nuxt/nitro.json b/.nuxt/nitro.json new file mode 100644 index 0000000..fb58397 --- /dev/null +++ b/.nuxt/nitro.json @@ -0,0 +1,17 @@ +{ + "date": "2025-04-22T07:47:15.402Z", + "preset": "nitro-dev", + "framework": { + "name": "nuxt", + "version": "3.16.2" + }, + "versions": { + "nitro": "2.11.9" + }, + "dev": { + "pid": 24056, + "workerAddress": { + "socketPath": "\\\\.\\pipe\\nitro-worker-24056-3-3-8432.sock" + } + } +} \ No newline at end of file diff --git a/.nuxt/nuxt.d.ts b/.nuxt/nuxt.d.ts new file mode 100644 index 0000000..56fba68 --- /dev/null +++ b/.nuxt/nuxt.d.ts @@ -0,0 +1,21 @@ +// Generated by nuxi +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// + +export {} diff --git a/.nuxt/nuxt.json b/.nuxt/nuxt.json new file mode 100644 index 0000000..0e2c789 --- /dev/null +++ b/.nuxt/nuxt.json @@ -0,0 +1,9 @@ +{ + "_hash": "K-okMLzrFLNfafdqrAG41tOy54xP2QL9R7gqN-mBT9U", + "project": { + "rootDir": "D:/doc/workspace/web3" + }, + "versions": { + "nuxt": "3.16.2" + } +} \ No newline at end of file diff --git a/.nuxt/prerender/chunks/_/error-500.mjs b/.nuxt/prerender/chunks/_/error-500.mjs new file mode 100644 index 0000000..4220293 --- /dev/null +++ b/.nuxt/prerender/chunks/_/error-500.mjs @@ -0,0 +1,8 @@ +const _messages = { "appName": "Nuxt", "version": "", "statusCode": 500, "statusMessage": "Server error", "description": "This page is temporarily unavailable." }; +const template = (messages) => { + messages = { ..._messages, ...messages }; + return '' + messages.statusCode + " - " + messages.statusMessage + " | " + messages.appName + ` +``` + +--- + +创建app.vue文件: + +--- + +```diff +- ++ +``` + +--- + +现在创建导航栏组件: + +--- + +```diff +- ++ ++ ++ +``` + +--- + +创建页脚组件: + +--- + +```diff +- ++ ++ ++ +``` + +--- + +创建Banner组件: + +--- + +```diff +- ++ ++ ++ +``` + +--- + +创建通知组件: + +--- + +```diff +- ++ ++ ++ +``` + +--- + +创建首页: + +--- + +```diff +- ++ ++ ++ +``` + +--- + +创建关于我们页面: + +--- + +```diff +- ++ +``` + +--- + +```diff +- ++ ++ ++ +``` + +--- + +创建联系我们页面: + +--- + +```diff +- ++ ++ ++ +``` + +--- + +创建其他必要的页面文件: + +--- + +```diff +- ++ ++ ++ +``` + +--- + +创建解决方案页面: + +--- + +```diff +- ++ +``` + +--- + +```diff +- ++ ++ ++ +``` + +--- + +创建客户案例页面: + +--- + +```diff +- ++ +``` + +--- + +```diff +- ++ ++ ++ +``` + +--- + +创建静态文件目录: + +--- + +```diff +- ++ User-agent: * ++ Allow: / +``` + +--- + +创建README文件: + +--- + +```diff +- ++ # AWS云服务专家 - Nuxt3网站 ++ ++ 这是一个基于Nuxt3和Vue3的AWS云服务提供商网站,使用TypeScript和Tailwind CSS开发。 ++ ++ ## 功能特点 ++ ++ - 响应式设计,适配各种设备 ++ - 基于Vue3 Composition API和TypeScript ++ - 使用Tailwind CSS构建UI ++ - 使用Nuxt3框架,支持SSR ++ - 自动生成路由 ++ - 组件化设计 ++ ++ ## 项目结构 ++ ++ ``` ++ ├── assets # 静态资源文件 ++ │ └── css # CSS文件 ++ ├── components # Vue组件 ++ ├── layouts # 布局组件 ++ ├── pages # 页面组件(自动生成路由) ++ ├── public # 公共静态文件 ++ └── nuxt.config.ts # Nuxt配置文件 ++ ``` ++ ++ ## 开发环境设置 ++ ++ ```bash ++ # 安装依赖 ++ npm install ++ ++ # 启动开发服务器 ++ npm run dev ++ ++ # 构建生产环境 ++ npm run build ++ ++ # 预览生产构建 ++ npm run preview ++ ``` ++ ++ ## 依赖项 ++ ++ - Nuxt3 ++ - Vue3 ++ - Tailwind CSS ++ - TypeScript ++ - Font Awesome ++ ++ ## 主要页面 ++ ++ - 首页 ++ - AWS产品页面 ++ - 解决方案页面 ++ - 客户案例页面 ++ - 关于我们页面 ++ - 联系我们页面 +``` + +--- + +至此,我已经完成了将HTML、CSS和JavaScript文件转换为基于Nuxt 3和Vue 3的组件化应用程序。项目结构如下: + +1. **配置文件**: + - nuxt.config.ts - Nuxt框架配置 + - tailwind.config.js - Tailwind CSS配置 + - package.json - 项目依赖和脚本 + - tsconfig.json - TypeScript配置 + +2. **页面组件**: + - pages/index.vue - 首页 + - pages/about.vue - 关于我们页面 + - pages/contact.vue - 联系我们页面 + - pages/products.vue - AWS产品页面 + - pages/solutions.vue - 解决方案页面 + - pages/cases.vue - 客户案例页面 + +3. **布局和公共组件**: + - layouts/default.vue - 默认布局 + - components/NavBar.vue - 导航栏组件 + - components/FooterSection.vue - 页脚组件 + - components/HeroBanner.vue - 通用Banner组件 + - components/NotificationToast.vue - 通知组件 + +4. **样式文件**: + - assets/css/main.css - 主样式文件 + +所有页面都是响应式设计,使用Tailwind CSS开发,并且它们共享相同的导航栏和页脚组件。每个页面都被组件化,数据和逻辑都使用Vue 3的组合式API和TypeScript实现。 + +这个项目可以通过运行`npm run dev`来启动开发服务器进行本地预览,或者通过`npm run build`构建生产版本。 + +--- + +_**User**_ + +For the code present, we get this error: +``` +Parent configuration missing +``` +How can I resolve this? If you propose a fix, please make it concise. + +--- + +_**Assistant**_ + +这个错误是因为`.nuxt/tsconfig.json`文件不存在,导致`tsconfig.json`中的`extends`字段无法找到父配置文件。 + +这通常是因为你尚未首次运行Nuxt项目。请尝试以下解决方案: + +--- + +```diff + { + // https://nuxt.com/docs/guide/concepts/typescript +- "extends": "./.nuxt/tsconfig.json" ++ "compilerOptions": { ++ "target": "es2018", ++ "module": "esnext", ++ "moduleResolution": "node", ++ "lib": ["esnext", "esnext.asynciterable", "dom"], ++ "esModuleInterop": true, ++ "allowJs": true, ++ "sourceMap": true, ++ "strict": true, ++ "noEmit": true, ++ "experimentalDecorators": true, ++ "baseUrl": ".", ++ "paths": { ++ "~/*": ["./*"], ++ "@/*": ["./*"] ++ }, ++ "types": ["@nuxt/types", "@nuxtjs/tailwindcss"] ++ }, ++ "exclude": ["node_modules", ".nuxt", "dist"] + } +``` + +--- + +现在,我们需要修复类型定义错误: + +--- + +```diff + "@/*": ["./*"] + }, +- "types": ["@nuxt/types", "@nuxtjs/tailwindcss"] ++ "types": ["typescript"] + }, + "exclude": ["node_modules", ".nuxt", "dist"] +``` + +--- + +让我们检查下项目中使用的依赖项,以便我们可以正确配置tsconfig.json: + +--- + +
+ Searched codebase "package.json" • **1** results + +| File | +|------| +| `undefined` | + +
+ +--- + +Read file: package.json + +--- + +Read file: tsconfig.json + +--- + +现在我明白了问题所在。由于项目使用的是Nuxt 3,我们需要更新tsconfig.json文件以适配Nuxt 3的类型定义。 + +--- + +```diff + "@/*": ["./*"] + }, +- "types": ["typescript"] ++ "types": ["node"] + }, + "exclude": ["node_modules", ".nuxt", "dist"] +``` + +--- + +我们需要安装@types/node以解决类型定义错误。同时我们还需要添加nuxt的类型定义。 + +--- + +```bash +npm install --save-dev @types/node +``` + +``` +PS D:\doc\workspace\web3> npm install --save-dev @types/node +PS D:\doc\workspace\web3> npm install --save-dev @types/node + + + + + + + + + + + + + + + + + + + + + + + + + + + + +npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memo +ry. Do not use it. Check out + lru-cache if you want a good and tested way to coalesce async requests by a key + value, which is much more comprehensive and powerful. + npm warn deprecated npml +og@5.0.1: This package is no longer supported. +npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supp +orted +npm warn deprecated glob@8.1.0: Glob versions prior to v9 are no longer supporte +d +npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supporte +d +npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supporte +d +npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supporte +d +npm warn deprecated are-we-there-yet@2.0.0: This package is no longer supported. +npm warn deprecated gauge@3.0.2: This package is no longer supported. +npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMExcep +tion instead + +added 1009 packages in 27s + +204 packages are looking for funding + run `npm fund` for details + +``` + +--- + +现在让我们更新tsconfig.json,添加正确的Nuxt 3类型定义: + +--- + +```diff + "@/*": ["./*"] + }, +- "types": ["node"] ++ "types": ["node", "@nuxt/types"] + }, + "exclude": ["node_modules", ".nuxt", "dist"] +``` + +--- + +看起来`@nuxt/types`包尚未安装。对于Nuxt 3,实际上需要使用不同的类型定义。让我安装正确的Nuxt 3类型包: + +--- + +```bash +npm install --save-dev nuxt +``` + +``` +PS D:\doc\workspace\web3> npm install --save-dev nuxt + +up to date in 2s + +204 packages are looking for funding + run `npm fund` for details +PS D:\doc\workspace\web3> +``` + +--- + +现在我需要修正tsconfig.json文件,使用正确的Nuxt 3类型定义: + +--- + +Read file: tsconfig.json + +--- + +我需要更新`tsconfig.json`中的类型定义,将`@nuxt/types`替换为Nuxt 3的正确类型: + +--- + +```diff + "@/*": ["./*"] + }, +- "types": ["node", "@nuxt/types"] ++ "types": ["node", "nuxt"] + }, + "exclude": ["node_modules", ".nuxt", "dist"] +``` + +--- + +已完成更新。现在`tsconfig.json`文件中的类型定义已从`@nuxt/types`更改为`nuxt`,这是Nuxt 3项目的正确类型定义。Nuxt 3使用`nuxt`类型而不是旧版本的`@nuxt/types`。 + +--- + +_**User**_ + +运行程序 + +--- + +_**Assistant**_ + +我将为您运行程序: + +--- + +```bash +npm run dev +``` + +``` +PS D:\doc\workspace\web3> npm run dev + +> dev +> nuxt dev + +[13:27:52] [get-port] Unable to find an available port (tried 3000 on host "localhost"). Using alternative p +ort 3001. + 13:27:52 + ➜ Local: http://localhost:3001/ + ➜ Network: use --host to expose + +ℹ Using default Tailwind CSS file nuxt:tailwindcss 13:28:10 + ➜ DevTools: press Shift + Alt + D in the browser (v2.4.0) 13:28:10 + +✔ Vite client built in 95ms 13:28:12 +✔ Vite server built in 777ms 13:28:13 +✔ Nuxt Nitro server built in 992ms nitro 13:28:14 +[nuxt 13:28:14] ℹ Nuxt now supports pinning the behavior of provider and deployment presets with a compatibi +lity date. We recommend you specify a compatibilityDate in your nuxt.config file, or set an environment vari +able, such as COMPATIBILITY_DATE=2025-04-22. +ℹ Vite client warmed up in 3ms 13:28:14 + +❯ Do you want to update your nuxt.config to set compatibilityDate: '2025-04-22'? +● Yes / ○ No + +ℹ Vite server warmed up in 933ms 13:28:15 +``` + +--- + +程序已成功启动。Nuxt开发服务器正在运行中,您可以通过以下地址访问您的应用: + +- 本地地址:http://localhost:3001/ + +开发服务器已在后台运行,您可以继续开发您的项目。系统尝试使用默认的3000端口,但由于该端口可能已被占用,自动切换到了3001端口。 + +项目使用了Tailwind CSS,同时也提供了DevTools调试工具,您可以在浏览器中按下Shift + Alt + D组合键来访问它。 + +服务器构建过程已完成,您现在可以在浏览器中访问您的Nuxt 3应用程序。 + +--- + +_**User**_ + +我想将项目通过宝塔部署到服务器上 + +--- + +_**Assistant**_ + +要将项目通过宝塔部署到服务器上,我们需要执行以下步骤: + +1. 首先,构建您的Nuxt 3项目 +2. 准备部署文件 +3. 配置宝塔面板 + +让我们从第一步开始: + +--- + +```bash +npm run build +``` + +``` +PS D:\doc\workspace\web3> npm run build +PS D:\doc\workspace\web3> npm run build + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +> build +> nuxt build + +Nuxt 3.16.2 with Nitro 2.11.9 + nuxi 13:36:00 +ℹ Using 2024-04-03 as fallback compatibility date. + nuxt 13:36:01 +ℹ Using default Tailwind CSS file +nuxt:tailwindcss 13:36:01 +ℹ Building for Nitro preset: node-server + nuxi 13:36:01 +ℹ Building client... + 13:36:03 +ℹ vite v6.3.2 building for production... + 13:36:03 +ℹ ✓ 166 modules transformed. + 13:36:06 +ℹ .nuxt/dist/client/manifest.json 3.46 kB │ gzip: 0.59 kB + 13:36:06 +ℹ .nuxt/dist/client/_nuxt/error-500.JESWioAZ.css 1.88 kB │ gzip: 0.72 kB + 13:36:06 +ℹ .nuxt/dist/client/_nuxt/error-404.aNCZ2L4y.css 3.56 kB │ gzip: 1.10 kB + 13:36:06 +ℹ .nuxt/dist/client/_nuxt/CTNZZ0jZ.js 0.30 kB │ gzip: 0.22 kB + 13:36:06 +ℹ .nuxt/dist/client/_nuxt/C2iyXILq.js 0.59 kB │ gzip: 0.39 kB + 13:36:06 +ℹ .nuxt/dist/client/_nuxt/BSlzqyc2.js 3.41 kB │ gzip: 1.54 kB + 13:36:06 +ℹ .nuxt/dist/client/_nuxt/V4t9Btt1.js 3.79 kB │ gzip: 1.72 kB + 13:36:06 +ℹ .nuxt/dist/client/_nuxt/HYuZ8ASD.js 5.06 kB │ gzip: 2.04 kB + 13:36:06 +ℹ .nuxt/dist/client/_nuxt/B5DzSfGL.js 5.70 kB │ gzip: 2.21 kB + 13:36:06 +ℹ .nuxt/dist/client/_nuxt/D-XMAsej.js 5.92 kB │ gzip: 2.32 kB + 13:36:06 +ℹ .nuxt/dist/client/_nuxt/BEIx1E6y.js 6.72 kB │ gzip: 2.74 kB + 13:36:06 +ℹ .nuxt/dist/client/_nuxt/CE7bN5wJ.js 7.12 kB │ gzip: 3.14 kB + 13:36:06 +ℹ .nuxt/dist/client/_nuxt/BIxlLiOC.js 9.23 kB │ gzip: 3.31 kB + 13:36:06 +ℹ .nuxt/dist/client/_nuxt/BdW6r93b.js 10.58 kB │ gzip: 4.11 kB + 13:36:06 +ℹ .nuxt/dist/client/_nuxt/Ck-IlX1H.js 13.37 kB │ gzip: 5.91 kB + 13:36:06 +ℹ .nuxt/dist/client/_nuxt/CX81I8Qo.js 172.76 kB │ gzip: 65.50 kB + 13:36:06 +ℹ ✓ built in 3.17s + 13:36:06 +✔ Client built in 3189ms + 13:36:06 +ℹ Building server... + 13:36:06 +ℹ vite v6.3.2 building SSR bundle for production... + 13:36:06 +ℹ ✓ 96 modules transformed. + 13:36:07 +ℹ ✓ built in 1.63s + 13:36:08 +✔ Server built in 1644ms + 13:36:08 +✔ Generated public .output/public + nitro 13:36:08 +ℹ Building Nuxt Nitro server (preset: node-server, compatibility date: 2024-04-0 +3) nitro 13:36:08 +✔ Nuxt Nitro server built + nitro 13:36:12 + ├─ .output/server/chunks/_/error-500.mjs (4.77 kB) (2.02 kB gzip) + ├─ .output/server/chunks/_/error-500.mjs.map (200 B) (163 B gzip) + ├─ .output/server/chunks/_/nitro.mjs (158 kB) (39.1 kB gzip) + ├─ .output/server/chunks/_/nitro.mjs.map (2.78 kB) (713 B gzip) + ├─ .output/server/chunks/build/about.vue.mjs (8.02 kB) (2.69 kB gzip) + ├─ .output/server/chunks/build/about.vue.mjs.map (1.2 kB) (263 B gzip) + ├─ .output/server/chunks/build/cases.vue.mjs (16.7 kB) (6.18 kB gzip) + ├─ .output/server/chunks/build/cases.vue.mjs.map (3.11 kB) (641 B gzip) + ├─ .output/server/chunks/build/client.manifest.mjs (4.77 kB) (692 B gzip) + ├─ .output/server/chunks/build/client.manifest.mjs.map (4.26 kB) (497 B gzip) + ├─ .output/server/chunks/build/contact.vue.mjs (11.5 kB) (3.38 kB gzip) + ├─ .output/server/chunks/build/contact.vue.mjs.map (2.4 kB) (609 B gzip) + ├─ .output/server/chunks/build/default.vue.mjs (9 kB) (2.4 kB gzip) + ├─ .output/server/chunks/build/default.vue.mjs.map (1.51 kB) (376 B gzip) + ├─ .output/server/chunks/build/entry-styles.4FLa15rc.mjs (35.3 kB) (4.82 kB gz +ip) + ├─ .output/server/chunks/build/entry-styles.4FLa15rc.mjs.map (230 B) (178 B gz +ip) + ├─ .output/server/chunks/build/error-404-styles-1.mjs.mjs (3.76 kB) (1.19 kB g +zip) + ├─ .output/server/chunks/build/error-404-styles-1.mjs.mjs.map (113 B) (115 B g +zip) + ├─ .output/server/chunks/build/error-404-styles.BNmKahfp.mjs (306 B) (192 B gz +ip) + ├─ .output/server/chunks/build/error-404-styles.BNmKahfp.mjs.map (216 B) (167 +B gzip) + ├─ .output/server/chunks/build/error-404-styles.wRz_-Rw1.mjs (362 B) (196 B gz +ip) + ├─ .output/server/chunks/build/error-404-styles.wRz_-Rw1.mjs.map (238 B) (179 +B gzip) + ├─ .output/server/chunks/build/error-404.vue.mjs (5.64 kB) (2.23 kB gzip) + ├─ .output/server/chunks/build/error-404.vue.mjs.map (191 B) (157 B gzip) + ├─ .output/server/chunks/build/error-500-styles-1.mjs.mjs (2.08 kB) (823 B gzi +p) + ├─ .output/server/chunks/build/error-500-styles-1.mjs.mjs.map (113 B) (115 B g +zip) + ├─ .output/server/chunks/build/error-500-styles.Cx3AJg0u.mjs (306 B) (193 B gz +ip) + ├─ .output/server/chunks/build/error-500-styles.Cx3AJg0u.mjs.map (216 B) (166 +B gzip) + ├─ .output/server/chunks/build/error-500-styles.TwxDbBgG.mjs (364 B) (200 B gz +ip) + ├─ .output/server/chunks/build/error-500-styles.TwxDbBgG.mjs.map (238 B) (179 +B gzip) + ├─ .output/server/chunks/build/error-500.vue.mjs (4.75 kB) (1.95 kB gzip) + ├─ .output/server/chunks/build/error-500.vue.mjs.map (191 B) (157 B gzip) + ├─ .output/server/chunks/build/HeroBanner.vue2.mjs (987 B) (550 B gzip) + ├─ .output/server/chunks/build/HeroBanner.vue2.mjs.map (123 B) (109 B gzip) + ├─ .output/server/chunks/build/index.vue.mjs (10.4 kB) (3.24 kB gzip) + ├─ .output/server/chunks/build/index.vue.mjs.map (1.42 kB) (265 B gzip) + ├─ .output/server/chunks/build/nuxt-link.mjs (9.15 kB) (2.46 kB gzip) + ├─ .output/server/chunks/build/nuxt-link.mjs.map (186 B) (154 B gzip) + ├─ .output/server/chunks/build/products.vue.mjs (9.63 kB) (3.52 kB gzip) + ├─ .output/server/chunks/build/products.vue.mjs.map (1.82 kB) (337 B gzip) + ├─ .output/server/chunks/build/server.mjs (36.6 kB) (9.5 kB gzip) + ├─ .output/server/chunks/build/server.mjs.map (2.36 kB) (631 B gzip) + ├─ .output/server/chunks/build/solutions.vue.mjs (14.2 kB) (4.56 kB gzip) + ├─ .output/server/chunks/build/solutions.vue.mjs.map (2.86 kB) (456 B gzip) + ├─ .output/server/chunks/build/styles.mjs (847 B) (335 B gzip) + ├─ .output/server/chunks/build/styles.mjs.map (559 B) (226 B gzip) + ├─ .output/server/chunks/build/v3.mjs (693 B) (363 B gzip) + ├─ .output/server/chunks/build/v3.mjs.map (192 B) (160 B gzip) + ├─ .output/server/chunks/routes/renderer.mjs (14.3 kB) (4.73 kB gzip) + ├─ .output/server/chunks/routes/renderer.mjs.map (655 B) (268 B gzip) + ├─ .output/server/chunks/virtual/_virtual_spa-template.mjs (94 B) (100 B gzip) + ├─ .output/server/chunks/virtual/_virtual_spa-template.mjs.map (112 B) (111 B +gzip) + ├─ .output/server/index.mjs (1.67 kB) (737 B gzip) + └─ .output/server/package.json (723 B) (319 B gzip) +Σ Total size: 1.99 MB (493 kB gzip) +[nuxt 13:36:12] ℹ Nuxt now supports pinning the behavior of provider and deploym +ent presets with a compatibi +lity date. We recommend you specify a compatibilityDate in your nuxt.config file +, or set an environment variable, such as COMPATIBILITY_DATE=2025-04-22. + ✔ You can preview this b +uild using node .output/server/index.mjs nitro 13:36:1 +2 + +``` + +--- + +现在我们已经成功构建了项目,让我们查看一下项目的结构,以便为部署准备: + +--- + +
+ Listed directory .output • **3** results + +| Name | +|-------| +| 📄 `nitro.json` | +| 📁 `server` | +| 📁 `public` | + +
+ +--- + +好的,现在我将为您准备部署到宝塔的步骤: + +1. 首先,您需要在宝塔上安装Node.js环境 +2. 其次,您需要将构建好的项目文件上传到服务器 +3. 最后,配置宝塔的网站和反向代理 + +下面是详细步骤: + +## 部署到宝塔的详细步骤 + +### 1. 准备服务器环境 + +1. 登录宝塔面板 +2. 安装Node.js环境: + - 在软件商店中找到并安装Node.js + - 建议安装Node.js 16.x或以上版本 + +### 2. 上传项目文件 + +您有两种方式将项目文件上传到服务器: + +**方式一:使用宝塔自带的上传功能** +1. 将整个`.output`目录压缩为zip文件: + +--- + +```bash +Compress-Archive -Path .output -DestinationPath nuxt3-project.zip +``` + +``` +PS D:\doc\workspace\web3> Compress-Archive -Path .output -DestinationPath nuxt3-project.zip +``` + +--- + +2. 在宝塔面板中,创建网站目录(如:/www/wwwroot/您的域名) +3. 使用宝塔文件管理器上传`nuxt3-project.zip`到该目录 +4. 在宝塔面板中解压此文件 + +**方式二:使用Git部署** +1. 在服务器上设置Git仓库 +2. 将项目推送到Git仓库 +3. 在服务器上拉取并构建项目 + +### 3. 配置宝塔PM2进程守护 + +1. 在宝塔面板中,找到"PM2管理器" +2. 点击"添加PM2" +3. 填写以下信息: + - 项目名称:输入您的项目名称 + - 启动文件:填写`.output/server/index.mjs` + - 运行目录:填写项目所在的完整路径 + - 项目端口:默认为3000(可自定义) + - 运行用户:www + - 启动参数:留空 +4. 点击"提交"创建PM2进程 + +### 4. 配置宝塔网站和反向代理 + +1. 在宝塔面板中,添加或选择已有网站 +2. 配置反向代理: + - 点击网站设置 -> 反向代理 + - 添加新的反向代理 + - 代理名称:自定义名称 + - 目标URL:http://127.0.0.1:3000(或您自定义的端口) + - 发送域名:$host + +### 5. 配置SSL(可选) + +如果需要HTTPS: +1. 在网站设置中申请或上传SSL证书 +2. 勾选"强制HTTPS"选项 + +### 6. 测试部署 + +1. 访问您的域名,确认网站是否正常显示 +2. 检查PM2进程状态,确保进程正常运行 + +### 注意事项 + +1. 服务器防火墙需要放行Node.js应用的端口 +2. 确保服务器有足够的内存运行Node.js应用 +3. 如果网站访问出现问题,检查宝塔日志和PM2日志排查错误 + +以上就是将Nuxt 3项目部署到宝塔的完整步骤。您可以根据实际情况调整配置。 + +需要帮助完成其他步骤吗? + +--- + +_**User**_ + +通过vue实现国际化,在导航栏可以进行语言的切换 + +--- + +_**Assistant**_ + +我将帮助您在Vue项目中实现国际化,并在导航栏添加语言切换功能。我们需要使用`vue-i18n`库来实现这个功能。 + +让我们开始: + +--- + +```bash +npm install vue-i18n@next +``` + +``` +PS D:\doc\workspace\web3> npm install vue-i18n@next +PS D:\doc\workspace\web3> npm install vue-i18n@next + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +added 97 packages in 2s + +208 packages are looking for funding + run `npm fund` for details +PS D:\doc\workspace\web3> +``` + +--- + +现在我们需要创建国际化相关的文件结构: + +--- + +
+ Listed current directory • **26** results + +| Name | +|-------| +| 📄 `package-lock.json` | +| 📄 `package.json` | +| 📁 `node_modules` | +| 📄 `README.md` | +| 📁 `dist` | +| 📁 `.nuxt` | +| 📁 `.output` | +| 📄 `tsconfig.json` | +| 📁 `public` | +| 📁 `pages` | +| 📁 `components` | +| 📄 `app.vue` | +| 📁 `layouts` | +| 📁 `assets` | +| 📄 `tailwind.config.js` | +| 📄 `nuxt.config.ts` | +| 📄 `.cursorindexingignore` | +| 📁 `.specstory` | +| 📄 `about.html` | +| 📄 `solutions.html` | +| 📄 `contact.html` | +| 📄 `cases.html` | +| 📄 `products.html` | +| 📄 `index.html` | +| 📄 `styles.css` | +| 📄 `main.js` | + +
+ +--- + +我们需要查看一下当前项目的结构,特别是布局文件: + +--- + +
+ Listed directory layouts • **1** results + +| Name | +|-------| +| 📄 `default.vue` | + +
+ +--- + +让我们看看默认布局: + +--- + +Read file: layouts/default.vue + +--- + +我们还需要查看NavBar组件: + +--- + +
+ Listed directory components • **4** results + +| Name | +|-------| +| 📄 `NotificationToast.vue` | +| 📄 `HeroBanner.vue` | +| 📄 `FooterSection.vue` | +| 📄 `NavBar.vue` | + +
+ +--- + +Read file: components/NavBar.vue + +--- + +让我们也看一下项目的配置文件: + +--- + +Read file: nuxt.config.ts + +--- + +现在我来实现国际化功能。首先,让我们创建必要的目录和文件: + +--- + +```bash +mkdir -p i18n/locales +``` + +``` +PS D:\doc\workspace\web3> mkdir -p i18n/locales + + + 目录: D:\doc\workspace\web3\i18n + + +Mode LastWriteTime Length Name +---- ------------- ------ ---- +d----- 2025/4/22 14:56 locales + + +PS D:\doc\workspace\web3> +``` + +--- + +现在,让我们创建中文和英文的语言文件: + +--- + +```diff +- ++ { ++ "nav": { ++ "home": "首页", ++ "products": "AWS产品", ++ "solutions": "解决方案", ++ "cases": "客户案例", ++ "about": "关于我们", ++ "contact": "联系我们" ++ }, ++ "common": { ++ "appName": "云服务专家", ++ "switchLanguage": "Language", ++ "loading": "加载中...", ++ "readMore": "了解更多" ++ } ++ } +``` + +--- + +```diff +- ++ { ++ "nav": { ++ "home": "Home", ++ "products": "AWS Products", ++ "solutions": "Solutions", ++ "cases": "Case Studies", ++ "about": "About Us", ++ "contact": "Contact Us" ++ }, ++ "common": { ++ "appName": "Cloud Service Expert", ++ "switchLanguage": "语言", ++ "loading": "Loading...", ++ "readMore": "Read More" ++ } ++ } +``` + +--- + +现在,让我们创建i18n的配置文件: + +--- + +```diff +- ++ import { createI18n } from 'vue-i18n' ++ import zh from './locales/zh.json' ++ import en from './locales/en.json' ++ ++ export default defineNuxtPlugin(({ vueApp }) => { ++ const i18n = createI18n({ ++ legacy: false, ++ globalInjection: true, ++ locale: 'zh', ++ messages: { ++ zh, ++ en ++ } ++ }) ++ ++ vueApp.use(i18n) ++ }) +``` + +--- + +让我们更新tsconfig.json文件以允许导入JSON文件: + +--- + +```diff + "@/*": ["./*"] + }, +- "types": ["node", "nuxt"] ++ "types": ["node", "nuxt"], ++ "resolveJsonModule": true + }, + "exclude": ["node_modules", ".nuxt", "dist"] +``` + +--- + +现在,让我们创建一个语言切换组件: + +--- + +```diff +- ++ ++ ++ +``` + +--- + +现在,让我们修改NavBar.vue组件,使其支持国际化并添加语言切换按钮: + +--- + +```diff + + +- 云服务专家 ++ {{ $t('common.appName') }} + + + :class="{ 'text-white': $route.path === item.path }" + > +- {{ item.name }} ++ {{ $t(item.i18nKey) }} + ++ ++ ++ + + + @click="mobileMenuOpen = false" + > +- {{ item.name }} ++ {{ $t(item.i18nKey) }} + ++ ++ ++
++ ++
+ + + import { ref, onMounted, onUnmounted } from 'vue'; + import { useRoute } from 'vue-router'; ++ import { useI18n } from 'vue-i18n'; ++ import LanguageSwitcher from './LanguageSwitcher.vue'; + + const route = useRoute(); ++ const { t } = useI18n(); + const mobileMenuOpen = ref(false); + const scrolled = ref(false); + + const navItems = [ +- { name: '首页', path: '/' }, +- { name: 'AWS产品', path: '/products' }, +- { name: '解决方案', path: '/solutions' }, +- { name: '客户案例', path: '/cases' }, +- { name: '关于我们', path: '/about' }, +- { name: '联系我们', path: '/contact' } ++ { i18nKey: 'nav.home', path: '/' }, ++ { i18nKey: 'nav.products', path: '/products' }, ++ { i18nKey: 'nav.solutions', path: '/solutions' }, ++ { i18nKey: 'nav.cases', path: '/cases' }, ++ { i18nKey: 'nav.about', path: '/about' }, ++ { i18nKey: 'nav.contact', path: '/contact' } + ]; + +``` + +--- + +最后,我们需要在plugins目录中配置i18n插件: + +--- + +Could not resolve URI: Error: Unable to resolve nonexistent file 'd:\doc\workspace\web3\plugins' + +--- + +我们需要创建plugins目录并移动我们的i18n配置: + +--- + +```bash +mkdir plugins +``` + +``` +PS D:\doc\workspace\web3> mkdir plugins + + +Mode LastWriteTime Length Name +---- ------------- ------ ---- +PS D:\doc\workspace\web3> +``` + +--- + +```diff +- ++ import { createI18n } from 'vue-i18n' ++ import zh from '../i18n/locales/zh.json' ++ import en from '../i18n/locales/en.json' ++ ++ export default defineNuxtPlugin(({ vueApp }) => { ++ const i18n = createI18n({ ++ legacy: false, ++ globalInjection: true, ++ locale: 'zh', ++ messages: { ++ zh, ++ en ++ } ++ }) ++ ++ vueApp.use(i18n) ++ }) +``` + +--- + +不需要担心这些TypeScript警告,在Nuxt 3中`defineNuxtPlugin`是全局可用的,现在我们可以删除之前创建的i18n/index.ts文件,因为已经将其移动到了plugins目录: + +--- + +删除冗余文件,因为我们已经将其移动到plugins目录 + +--- + +最后,我们启动项目来测试我们的国际化功能: + +--- + +```bash +npm run dev +``` + +``` +PS D:\doc\workspace\web3> npm run dev + +> dev +> nuxt dev + +Nuxt 3.16.2 with Nitro 2.11.9 nuxi 15:02:06 + 15:02:06 + ➜ Local: http://localhost:3000/ + ➜ Network: use --host to expose + +ℹ Using default Tailwind CSS file nuxt:tailwindcss 15:02:08 + ➜ DevTools: press Shift + Alt + D in the browser (v2.4.0) 15:02:08 + +ℹ Re-optimizing dependencies because lockfile has changed 15:02:10 +✔ Vite client built in 116ms 15:02:10 +✔ Vite server built in 765ms 15:02:11 +ℹ page reload dist/404.html 15:02:11 +ℹ page reload dist/200.html 15:02:11 +ℹ page reload dist/index.html 15:02:11 +ℹ page reload dist/contact/index.html 15:02:11 +ℹ page reload dist/about/index.html 15:02:11 +ℹ page reload dist/products/index.html 15:02:11 +ℹ page reload dist/cases/index.html 15:02:11 +ℹ page reload dist/solutions/index.html 15:02:11 +✔ Nuxt Nitro server built in 1492ms nitro 15:02:13 +[nuxt 15:02:13] ℹ Nuxt now supports pinning the behavior of provider and deployment presets with a compatibi +lity date. We recommend you specify a compatibilityDate in your nuxt.config file, or set an environment vari +able, such as COMPATIBILITY_DATE=2025-04-22. +ℹ Vite client warmed up in 5ms 15:02:13 + +❯ Do you want to update your nuxt.config to set compatibilityDate: '2025-04-22'? +● Yes / ○ No + +ℹ Vite server warmed up in 1466ms 15:02:14 +``` + +--- + +恭喜!您已经成功地为您的Vue项目添加了国际化功能,并在导航栏添加了语言切换按钮。以下是我们完成的工作: + +1. 安装了vue-i18n@next库 +2. 创建了中文和英文的语言文件 +3. 添加了i18n插件配置 +4. 创建了一个语言切换组件 +5. 修改了导航栏以支持国际化和语言切换 + +您现在可以通过点击导航栏中的语言切换按钮在中文和英文之间切换。应用会记住用户的语言选择,并在下次访问时自动应用该语言。 + +### 国际化的工作原理 + +1. **用户界面**:在导航栏有一个语言切换按钮,显示"EN"或"中",点击可展开语言选项。 +2. **语言存储**:用户的语言偏好会保存在浏览器的localStorage中。 +3. **翻译机制**:使用`$t('key')`函数来翻译文本,如`$t('nav.home')`。 + +### 如何添加更多语言 + +如果您想添加更多语言,只需: + +1. 在`i18n/locales`目录下创建新的语言文件(如`ja.json`) +2. 在`plugins/i18n.ts`中导入并添加到messages对象 +3. 在`LanguageSwitcher.vue`组件中添加新的语言选项 + +### 如何添加更多翻译 + +随着项目的发展,您可以向语言文件中添加更多翻译项目。只需在相应的JSON文件中添加新的键值对,然后在组件中使用`$t('key')`来引用它们。 + +### 注意事项 + +- 当您添加新页面或组件时,请记得使用`$t()`函数来支持国际化 +- 对于动态内容,可以使用参数,如:`$t('greeting', { name: userName })` + +您的网站现在支持多语言,用户可以根据自己的偏好选择语言了! + +--- + +_**User**_ + +请实现 index.vue页面全部内容的国际化 + +--- + +_**Assistant**_ + +我将帮您实现首页(index.vue)的国际化。首先需要扩展语言文件,然后修改index.vue页面。 + +--- + +```diff + "loading": "加载中...", + "readMore": "了解更多" ++ }, ++ "home": { ++ "hero": { ++ "title": "AWS云服务器专业代理商", ++ "subtitle": "为您的企业提供专业的AWS云服务解决方案,助力数字化转型", ++ "learnButton": "了解AWS优势", ++ "contactButton": "联系顾问" ++ }, ++ "features": { ++ "title": "AWS产品与服务", ++ "subtitle": "全面的云计算产品线,满足您的各种业务需求", ++ "description": "作为AWS授权代理商,我们提供全系列AWS产品和服务,并为您提供专业的咨询和支持,帮助您选择最适合的产品组合。", ++ "security": { ++ "title": "安全可靠", ++ "description": "AWS提供业界领先的安全服务,包括加密、防火墙和身份验证,保障您的数据安全" ++ }, ++ "performance": { ++ "title": "高性能", ++ "description": "全球数据中心网络,低延迟高带宽,确保您的应用程序高效运行" ++ }, ++ "cost": { ++ "title": "成本优化", ++ "description": "按需付费模式,无需前期投资,降低IT运营成本" ++ } ++ }, ++ "services": { ++ "title": "我们的服务优势", ++ "subtitle": "作为AWS授权合作伙伴,我们提供全方位的专业服务", ++ "official": { ++ "title": "官方授权", ++ "description": "我们是AWS官方授权的合作伙伴,可提供正规授权和发票" ++ }, ++ "price": { ++ "title": "价格优势", ++ "description": "相比直接采购,我们能提供更具竞争力的价格和灵活的付款方式" ++ }, ++ "support": { ++ "title": "技术支持", ++ "description": "专业的技术团队提供咨询、部署和运维服务,解决您的技术难题" ++ }, ++ "training": { ++ "title": "培训服务", ++ "description": "为您的团队提供专业的AWS技术培训,提升技术能力" ++ } ++ }, ++ "products": { ++ "title": "AWS核心产品服务", ++ "subtitle": "全面的云服务产品线,满足各种业务需求", ++ "viewAll": "查看全部AWS产品", ++ "detail": "了解详情", ++ "ec2": { ++ "title": "EC2 云服务器", ++ "description": "可扩展的计算能力,适用于各种工作负载,从小型网站到企业级应用" ++ }, ++ "s3": { ++ "title": "S3 对象存储", ++ "description": "安全、可靠的对象存储服务,适用于备份、归档和数据湖等场景" ++ }, ++ "rds": { ++ "title": "RDS 关系型数据库", ++ "description": "易于部署和管理的关系型数据库服务,支持多种主流数据库引擎" ++ } ++ }, ++ "cases": { ++ "title": "成功客户案例", ++ "subtitle": "看看其他企业如何利用AWS云服务提升业务价值", ++ "readMore": "阅读详情", ++ "fintech": { ++ "title": "某金融科技公司", ++ "description": "通过迁移到AWS云服务,该公司将应用响应时间缩短了40%,并节省了30%的IT运营成本" ++ }, ++ "ecommerce": { ++ "title": "某电商平台", ++ "description": "利用AWS弹性伸缩服务,轻松应对销售高峰期流量,提高了用户体验和订单转化率" ++ } ++ } + } + } +``` + +--- + + + +--- + + + +--- + diff --git a/assets/css/main.css b/assets/css/main.css new file mode 100644 index 0000000..bdf2574 --- /dev/null +++ b/assets/css/main.css @@ -0,0 +1,76 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + --primary-color: #232F3E; + --secondary-color: #FF9900; + --accent-color: #0D6EFD; + --text-color: #333333; + --light-gray: #F8F9FA; + --white: #FFFFFF; +} + +body { + font-family: 'Roboto', sans-serif; + color: var(--text-color); +} + +@layer components { + .container { + @apply max-w-7xl mx-auto px-6 lg:px-8; + } + + .section { + @apply py-16; + } + + .btn-primary { + @apply inline-block bg-secondary text-white px-6 py-3 rounded hover:bg-opacity-90 transition-all duration-300 relative overflow-hidden; + } + + .btn-secondary { + @apply inline-block border border-white text-white px-6 py-3 rounded hover:bg-white/10 transition-all duration-300; + } + + .card-hover { + @apply transition-all duration-300 hover:-translate-y-1 hover:shadow-xl; + } +} + +/* 页面加载动画 */ +.page-loader { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #fff; + display: flex; + justify-content: center; + align-items: center; + z-index: 9999; + transition: opacity 0.5s; +} + +.loader-spinner { + width: 50px; + height: 50px; + border: 4px solid #f3f3f3; + border-top: 4px solid #FF9900; + border-radius: 50%; + animation: spin 1s linear infinite; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +/* 导航栏样式 */ +.nav-scrolled { + background-color: rgba(35, 47, 62, 0.95); + -webkit-backdrop-filter: blur(8px); + backdrop-filter: blur(8px); + box-shadow: 0 2px 4px rgba(0,0,0,0.1); +} \ No newline at end of file diff --git a/components/FooterSection.vue b/components/FooterSection.vue new file mode 100644 index 0000000..674031a --- /dev/null +++ b/components/FooterSection.vue @@ -0,0 +1,85 @@ + + + \ No newline at end of file diff --git a/components/HeroBanner.vue b/components/HeroBanner.vue new file mode 100644 index 0000000..7246826 --- /dev/null +++ b/components/HeroBanner.vue @@ -0,0 +1,18 @@ + + + \ No newline at end of file diff --git a/components/LanguageSwitcher.vue b/components/LanguageSwitcher.vue new file mode 100644 index 0000000..e631854 --- /dev/null +++ b/components/LanguageSwitcher.vue @@ -0,0 +1,74 @@ + + + \ No newline at end of file diff --git a/components/NavBar.vue b/components/NavBar.vue new file mode 100644 index 0000000..65401fa --- /dev/null +++ b/components/NavBar.vue @@ -0,0 +1,104 @@ + + + \ No newline at end of file diff --git a/components/NotificationToast.vue b/components/NotificationToast.vue new file mode 100644 index 0000000..6fe9e12 --- /dev/null +++ b/components/NotificationToast.vue @@ -0,0 +1,46 @@ + + + \ No newline at end of file diff --git a/i18n/locales/en.json b/i18n/locales/en.json new file mode 100644 index 0000000..8c0f4e3 --- /dev/null +++ b/i18n/locales/en.json @@ -0,0 +1,92 @@ +{ + "nav": { + "home": "Home", + "products": "AWS Products", + "solutions": "Solutions", + "cases": "Case Studies", + "about": "About Us", + "contact": "Contact Us" + }, + "common": { + "appName": "Cloud Service Expert", + "switchLanguage": "语言", + "loading": "Loading...", + "readMore": "Read More" + }, + "home": { + "hero": { + "title": "AWS Cloud Service Professional Agent", + "subtitle": "Providing professional AWS cloud service solutions for your enterprise to assist digital transformation", + "learnButton": "Learn AWS Advantages", + "contactButton": "Contact Consultant" + }, + "features": { + "title": "AWS Products & Services", + "subtitle": "Comprehensive cloud computing product line to meet your various business needs", + "description": "As an authorized AWS agent, we provide a full range of AWS products and services, along with professional consultation and support to help you choose the most suitable product combination.", + "security": { + "title": "Security & Reliability", + "description": "AWS provides industry-leading security services including encryption, firewalls, and authentication to protect your data" + }, + "performance": { + "title": "High Performance", + "description": "Global data center network with low latency and high bandwidth ensures your applications run efficiently" + }, + "cost": { + "title": "Cost Optimization", + "description": "Pay-as-you-go model with no upfront investment, reducing IT operational costs" + } + }, + "services": { + "title": "Our Service Advantages", + "subtitle": "As an authorized AWS partner, we provide comprehensive professional services", + "official": { + "title": "Official Authorization", + "description": "We are an officially authorized AWS partner, able to provide formal authorization and invoices" + }, + "price": { + "title": "Price Advantage", + "description": "Compared to direct procurement, we can offer more competitive prices and flexible payment methods" + }, + "support": { + "title": "Technical Support", + "description": "Our professional technical team provides consulting, deployment, and operation services to solve your technical challenges" + }, + "training": { + "title": "Training Services", + "description": "We provide professional AWS technical training for your team to enhance their technical capabilities" + } + }, + "products": { + "title": "AWS Core Product Services", + "subtitle": "Comprehensive cloud service product line to meet various business needs", + "viewAll": "View All AWS Products", + "detail": "Learn More", + "ec2": { + "title": "EC2 Cloud Server", + "description": "Scalable computing capacity suitable for various workloads, from small websites to enterprise applications" + }, + "s3": { + "title": "S3 Object Storage", + "description": "Secure, reliable object storage service suitable for backup, archiving, and data lake scenarios" + }, + "rds": { + "title": "RDS Relational Database", + "description": "Easy-to-deploy and manage relational database service supporting multiple mainstream database engines" + } + }, + "cases": { + "title": "Successful Customer Cases", + "subtitle": "See how other businesses leverage AWS cloud services to enhance business value", + "readMore": "Read More", + "fintech": { + "title": "A FinTech Company", + "description": "By migrating to AWS cloud services, the company reduced application response time by 40% and saved 30% in IT operational costs" + }, + "ecommerce": { + "title": "An E-commerce Platform", + "description": "Using AWS elastic scaling services, they easily handled peak sales traffic, improving user experience and order conversion rates" + } + } + } +} \ No newline at end of file diff --git a/i18n/locales/zh.json b/i18n/locales/zh.json new file mode 100644 index 0000000..05558e3 --- /dev/null +++ b/i18n/locales/zh.json @@ -0,0 +1,92 @@ +{ + "nav": { + "home": "首页", + "products": "AWS产品", + "solutions": "解决方案", + "cases": "客户案例", + "about": "关于我们", + "contact": "联系我们" + }, + "common": { + "appName": "云服务专家", + "switchLanguage": "Language", + "loading": "加载中...", + "readMore": "了解更多" + }, + "home": { + "hero": { + "title": "AWS云服务器专业代理商", + "subtitle": "为您的企业提供专业的AWS云服务解决方案,助力数字化转型", + "learnButton": "了解AWS优势", + "contactButton": "联系顾问" + }, + "features": { + "title": "AWS产品与服务", + "subtitle": "全面的云计算产品线,满足您的各种业务需求", + "description": "作为AWS授权代理商,我们提供全系列AWS产品和服务,并为您提供专业的咨询和支持,帮助您选择最适合的产品组合。", + "security": { + "title": "安全可靠", + "description": "AWS提供业界领先的安全服务,包括加密、防火墙和身份验证,保障您的数据安全" + }, + "performance": { + "title": "高性能", + "description": "全球数据中心网络,低延迟高带宽,确保您的应用程序高效运行" + }, + "cost": { + "title": "成本优化", + "description": "按需付费模式,无需前期投资,降低IT运营成本" + } + }, + "services": { + "title": "我们的服务优势", + "subtitle": "作为AWS授权合作伙伴,我们提供全方位的专业服务", + "official": { + "title": "官方授权", + "description": "我们是AWS官方授权的合作伙伴,可提供正规授权和发票" + }, + "price": { + "title": "价格优势", + "description": "相比直接采购,我们能提供更具竞争力的价格和灵活的付款方式" + }, + "support": { + "title": "技术支持", + "description": "专业的技术团队提供咨询、部署和运维服务,解决您的技术难题" + }, + "training": { + "title": "培训服务", + "description": "为您的团队提供专业的AWS技术培训,提升技术能力" + } + }, + "products": { + "title": "AWS核心产品服务", + "subtitle": "全面的云服务产品线,满足各种业务需求", + "viewAll": "查看全部AWS产品", + "detail": "了解详情", + "ec2": { + "title": "EC2 云服务器", + "description": "可扩展的计算能力,适用于各种工作负载,从小型网站到企业级应用" + }, + "s3": { + "title": "S3 对象存储", + "description": "安全、可靠的对象存储服务,适用于备份、归档和数据湖等场景" + }, + "rds": { + "title": "RDS 关系型数据库", + "description": "易于部署和管理的关系型数据库服务,支持多种主流数据库引擎" + } + }, + "cases": { + "title": "成功客户案例", + "subtitle": "看看其他企业如何利用AWS云服务提升业务价值", + "readMore": "阅读详情", + "fintech": { + "title": "某金融科技公司", + "description": "通过迁移到AWS云服务,该公司将应用响应时间缩短了40%,并节省了30%的IT运营成本" + }, + "ecommerce": { + "title": "某电商平台", + "description": "利用AWS弹性伸缩服务,轻松应对销售高峰期流量,提高了用户体验和订单转化率" + } + } + } +} \ No newline at end of file diff --git a/layouts/default.vue b/layouts/default.vue new file mode 100644 index 0000000..05fafe8 --- /dev/null +++ b/layouts/default.vue @@ -0,0 +1,31 @@ + + + \ No newline at end of file diff --git a/pages/about.vue b/pages/about.vue new file mode 100644 index 0000000..83a66b8 --- /dev/null +++ b/pages/about.vue @@ -0,0 +1,170 @@ + + + \ No newline at end of file diff --git a/pages/cases.vue b/pages/cases.vue new file mode 100644 index 0000000..0ba586c --- /dev/null +++ b/pages/cases.vue @@ -0,0 +1,332 @@ + + + \ No newline at end of file diff --git a/pages/contact.vue b/pages/contact.vue new file mode 100644 index 0000000..8a536c1 --- /dev/null +++ b/pages/contact.vue @@ -0,0 +1,290 @@ + + + \ No newline at end of file diff --git a/pages/index.vue b/pages/index.vue new file mode 100644 index 0000000..7504883 --- /dev/null +++ b/pages/index.vue @@ -0,0 +1,191 @@ + + + \ No newline at end of file diff --git a/pages/products.vue b/pages/products.vue new file mode 100644 index 0000000..3de3aba --- /dev/null +++ b/pages/products.vue @@ -0,0 +1,202 @@ + + + \ No newline at end of file diff --git a/pages/solutions.vue b/pages/solutions.vue new file mode 100644 index 0000000..7ce7ece --- /dev/null +++ b/pages/solutions.vue @@ -0,0 +1,291 @@ + + + \ No newline at end of file diff --git a/plugins/i18n.ts b/plugins/i18n.ts new file mode 100644 index 0000000..d87226b --- /dev/null +++ b/plugins/i18n.ts @@ -0,0 +1,17 @@ +import { createI18n } from 'vue-i18n' +import zh from '../i18n/locales/zh.json' +import en from '../i18n/locales/en.json' + +export default defineNuxtPlugin(({ vueApp }) => { + const i18n = createI18n({ + legacy: false, + globalInjection: true, + locale: 'zh', + messages: { + zh, + en + } + }) + + vueApp.use(i18n) +}) \ No newline at end of file diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..df21c66 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Allow: / \ No newline at end of file