nuxt-ignis 0.5.0-rc.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/.data/content/contents.sqlite +0 -0
  2. package/.env +1 -1
  3. package/.nuxt/components.d.ts +414 -232
  4. package/.nuxt/content/components.ts +206 -108
  5. package/.nuxt/dev/index.mjs +1092 -726
  6. package/.nuxt/dev/index.mjs.map +1 -1
  7. package/.nuxt/dist/server/client.manifest.mjs +1 -18
  8. package/.nuxt/dist/server/client.precomputed.mjs +1 -0
  9. package/.nuxt/eslint-typegen.d.ts +115 -7
  10. package/.nuxt/eslint.config.d.mts +3 -3
  11. package/.nuxt/eslint.config.mjs +11 -11
  12. package/.nuxt/imports.d.ts +63 -59
  13. package/.nuxt/manifest/latest.json +1 -1
  14. package/.nuxt/manifest/meta/dev.json +1 -1
  15. package/.nuxt/mdc-highlighter.mjs +4 -0
  16. package/.nuxt/mdc-image-component.mjs +1 -1
  17. package/.nuxt/module/nuxt-robots.d.ts +12 -12
  18. package/.nuxt/module/nuxt-seo-utils.d.ts +10 -10
  19. package/.nuxt/module/nuxt-site-config.d.ts +11 -8
  20. package/.nuxt/module/nuxt-sitemap.d.ts +17 -17
  21. package/.nuxt/nitro.json +5 -5
  22. package/.nuxt/nuxt.d.ts +13 -9
  23. package/.nuxt/nuxt.json +2 -2
  24. package/.nuxt/nuxt.node.d.ts +13 -8
  25. package/.nuxt/tsconfig.app.json +197 -173
  26. package/.nuxt/tsconfig.json +199 -172
  27. package/.nuxt/tsconfig.node.json +108 -91
  28. package/.nuxt/tsconfig.server.json +131 -127
  29. package/.nuxt/tsconfig.shared.json +61 -56
  30. package/.nuxt/types/build.d.ts +2 -1
  31. package/.nuxt/types/components.d.ts +482 -300
  32. package/.nuxt/types/i18n-plugin.d.ts +2 -2
  33. package/.nuxt/types/imports.d.ts +689 -679
  34. package/.nuxt/types/modules.d.ts +36 -16
  35. package/.nuxt/types/nitro-imports.d.ts +250 -250
  36. package/.nuxt/types/nitro-nuxt.d.ts +4 -1
  37. package/.nuxt/types/nitro-routes.d.ts +20 -20
  38. package/.nuxt/types/plugins.d.ts +37 -37
  39. package/.nuxt/types/ui.d.ts +3 -3
  40. package/.nuxt/ui/drawer.ts +23 -0
  41. package/.nuxt/ui/progress.ts +3 -3
  42. package/.nuxt/ui-image-component.ts +1 -1
  43. package/.output/nitro.json +3 -3
  44. package/.output/public/_fonts/31PZhXd_YTCmsoiPQZc-xVtAWAkLogRFRj5mWplmKFE-6WsTw05QKugcwLySGc_b9CIheG8j8LRyo47qPL430Mk.woff2 +0 -0
  45. package/.output/public/_fonts/9FWLUGCSCYLRIRMtCzLrt4Go7DMFXOeN_pyCOJD_44Y-Yh2wNaqrq_e759vVlc3tX81lMwRu9ktkQJX_Svgs-VI.woff2 +0 -0
  46. package/.output/public/_fonts/BQnDL9FFy0Q_jvURlmv87luvmXLSMbSuXsfZv_R2Rkk-y5MVrLtP4J_1al8rz8R-MDaUOMAHckAWCwDrKhw25fY.woff2 +0 -0
  47. package/.output/public/_fonts/JSrPAbQHsQEdUrIE5Ts6fIQ2ymsa4i7HhiCpui6ulCc-_AoyGWssOn06OMh3ZY_GddBBPRny4Igxin4fT_1K6F4.woff2 +0 -0
  48. package/.output/public/_fonts/Jtqhy44WKYEjGWTSusP5YJfJv7Wf74QqgkBOI9u_77s-Rl_Bht5SvmaotE20bkavBEAJEEGEa0hcz3d_8yOeXmw.woff +0 -0
  49. package/.output/public/_fonts/M-60tFLmAJxdPjHsK-2ILWom5zPbu37lb3Qex2waL14-A9y4QcXALPi_RvQsmRsSFUxrT3_J213W4zPFIXetlbw.woff2 +0 -0
  50. package/.output/public/_fonts/T-ozk-QJ_Ck37B2RHPl2i-s_gAGGo7suFgagWoJ8bO4-maDXQ_nEXKAaLHm4Joud3DJR9EVzS7QXWMWK8YOTIcs.woff2 +0 -0
  51. package/.output/public/_fonts/TTYbISAfwy-y4uVGS9AH32sK7b2xJsoCESo64ryf8LU-y87nRMqBGo42rUOW9tWZa06o4oTa0USJrAMMoKDamgs.woff2 +0 -0
  52. package/.output/public/_fonts/Y_5DOsLit49q2i2tbcNxnyUen9__GPCX8mwAi03q1aA-pBCjVKDT5tBT3BJckh9uzNkfUWeUIBPz9Y8T55vcj8E.woff2 +0 -0
  53. package/.output/public/_fonts/ZHaz3DhCHNWhsElqYfuM71rfBBDgjuU2sd34vaYJwQg-71NZaZSGjxzAGjCMnCc2zS5rS_EGA0xHKPGCggWuXik.woff +0 -0
  54. package/.output/public/_fonts/h9PwCjip_BNPVO50hT4v29USWFv6H3ZlYx_IestfqgY-sYfLVuZXl9E1aYbn1S0pAr4zfdQ_WT7iBZhrgQY6N-4.woff2 +0 -0
  55. package/.output/public/_fonts/l00UCz_-QvI_NO8AGcu7ooAcrFDlxYUdxCSCh6gBwd4-vPjTZ3ztgw27A2TnHeCycxPvUtXWEVpG33_97ra6su8.woff2 +0 -0
  56. package/.output/public/_fonts/nuenOq7ZFSZ65QudJO7uQ0sOjDqow2WjfXrQh4S9gEc-uF81rxcswER5srfhzyLfPoGlKNAIt2C_BvkXFOc19rw.woff2 +0 -0
  57. package/.output/public/_fonts/pWMvGwciZ-EfQsfR2ueelhC7Jnt5K-8Px8PjPK0mDII-eT9iD0iZ9WWhTJs6V5GxXr0iaUwx_WxgGGriOiGb81o.woff2 +0 -0
  58. package/.output/public/_fonts/y3mP_zJcojQwJn30TpF_XxDzgeM6Nbk7MaRg1Ne0YcI-lFx13nqMCMgk_S70gRmwEHXlE5BLp1B4W82RpFihpMs.woff2 +0 -0
  59. package/.output/public/_fonts/zr3WxpLd5PmlBr7e4PWGkhZv6XTg70Pi4sCbC-CEV0Q-v2yL98XOiD3FkbiYlYYeAeTSVSkgAckeOp55Q5kHJmU.woff2 +0 -0
  60. package/.output/public/_ignis-config.json +1789 -1
  61. package/.output/public/_nuxt/0gZNo08M.js +1 -0
  62. package/.output/public/_nuxt/4etphg87.js +1 -0
  63. package/.output/public/_nuxt/7oEH3i-J.js +1 -0
  64. package/.output/public/_nuxt/B0GskE-x.js +1 -0
  65. package/.output/public/_nuxt/B2rRIZLd.js +1 -0
  66. package/.output/public/_nuxt/B3Twp4np.js +1 -0
  67. package/.output/public/_nuxt/B4dafB1u.js +1 -0
  68. package/.output/public/_nuxt/B5v-AhRa.js +1 -0
  69. package/.output/public/_nuxt/BGIWR6zS.js +1 -0
  70. package/.output/public/_nuxt/BPF61Z69.js +1 -0
  71. package/.output/public/_nuxt/BX7sSsxl.js +1 -0
  72. package/.output/public/_nuxt/BcGXkrpD.js +1 -0
  73. package/.output/public/_nuxt/Bdmjn2k2.js +1 -0
  74. package/.output/public/_nuxt/BkwIJBVH.js +1 -0
  75. package/.output/public/_nuxt/{DXBpKbsa.js → Bs7HqoDE.js} +47 -42
  76. package/.output/public/_nuxt/BxBcowlq.js +1 -0
  77. package/.output/public/_nuxt/BxjWLNqQ.js +1 -0
  78. package/.output/public/_nuxt/CJT046op.js +1 -0
  79. package/.output/public/_nuxt/CNoaFijS.js +1 -0
  80. package/.output/public/_nuxt/COOHDsMA.js +1 -0
  81. package/.output/public/_nuxt/CT_jQ1c7.js +1 -0
  82. package/.output/public/_nuxt/CzjEkwvT.js +1 -0
  83. package/.output/public/_nuxt/D0gc1iwv.js +35 -0
  84. package/.output/public/_nuxt/DHbdVh9f.js +94 -0
  85. package/.output/public/_nuxt/DPk_8xPF.js +1 -0
  86. package/.output/public/_nuxt/DS02jnv_.js +1 -0
  87. package/.output/public/_nuxt/DcZxay5W.js +1 -0
  88. package/.output/public/_nuxt/Dj4M1E-R.js +1 -0
  89. package/.output/public/_nuxt/DrlW3O6H.js +1 -0
  90. package/.output/public/_nuxt/DzHDVFEa.js +1 -0
  91. package/.output/public/_nuxt/Kgt6q5rz.js +1 -0
  92. package/.output/public/_nuxt/_RaG-8ca.js +1 -0
  93. package/.output/public/_nuxt/builds/latest.json +1 -1
  94. package/.output/public/_nuxt/builds/meta/458d3dfb-5eef-4d52-b92b-109ceaa7a1ab.json +1 -0
  95. package/.output/public/_nuxt/entry.CtpkPzPO.css +1 -0
  96. package/.output/public/_nuxt/error-404.DzDu4Ean.css +1 -0
  97. package/.output/public/_nuxt/error-500.BdNqqJx7.css +1 -0
  98. package/.output/public/_nuxt/nE6m0q_v.js +1 -0
  99. package/.output/public/_nuxt/vueform.CkWb7x1C.css +1 -0
  100. package/.output/public/_nuxt/wTHp3vgs.js +1 -0
  101. package/.output/public/_nuxt/zBYuFSAQ.js +1 -0
  102. package/.output/public/nuxt-spec.png +0 -0
  103. package/.output/server/chunks/_/error-500.mjs +1 -1
  104. package/.output/server/chunks/_/error-500.mjs.map +1 -1
  105. package/.output/server/chunks/_/nitro.mjs +624 -580
  106. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  107. package/.output/server/chunks/build/client.precomputed.mjs +4 -0
  108. package/.output/server/chunks/build/client.precomputed.mjs.map +1 -0
  109. package/.output/server/chunks/routes/renderer.mjs +10 -33
  110. package/.output/server/chunks/routes/renderer.mjs.map +1 -1
  111. package/.output/server/index.mjs.map +1 -1
  112. package/.output/server/node_modules/@babel/parser/lib/index.js +212 -145
  113. package/.output/server/node_modules/@babel/parser/package.json +3 -3
  114. package/.output/server/node_modules/@poppinss/utils/package.json +1 -1
  115. package/.output/server/node_modules/@shikijs/core/package.json +2 -2
  116. package/.output/server/node_modules/@shikijs/engine-javascript/package.json +2 -2
  117. package/.output/server/node_modules/@shikijs/engine-oniguruma/package.json +2 -2
  118. package/.output/server/node_modules/@shikijs/langs/dist/javascript.mjs +1 -1
  119. package/.output/server/node_modules/@shikijs/langs/dist/typescript.mjs +1 -1
  120. package/.output/server/node_modules/@shikijs/langs/package.json +11 -3
  121. package/.output/server/node_modules/@shikijs/themes/package.json +3 -3
  122. package/.output/server/node_modules/@shikijs/transformers/package.json +3 -3
  123. package/.output/server/node_modules/@shikijs/types/package.json +1 -1
  124. package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +131 -96
  125. package/.output/server/node_modules/@vue/compiler-core/package.json +4 -4
  126. package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +4 -1
  127. package/.output/server/node_modules/@vue/compiler-dom/package.json +3 -3
  128. package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +10 -1
  129. package/.output/server/node_modules/@vue/compiler-ssr/package.json +3 -3
  130. package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +4 -3
  131. package/.output/server/node_modules/@vue/reactivity/package.json +2 -2
  132. package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +25 -27
  133. package/.output/server/node_modules/@vue/runtime-core/package.json +3 -3
  134. package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +40 -14
  135. package/.output/server/node_modules/@vue/runtime-dom/package.json +4 -4
  136. package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +1 -1
  137. package/.output/server/node_modules/@vue/server-renderer/package.json +4 -4
  138. package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +1 -1
  139. package/.output/server/node_modules/@vue/shared/package.json +1 -1
  140. package/.output/server/node_modules/debug/package.json +1 -1
  141. package/.output/server/node_modules/detect-libc/lib/detect-libc.js +59 -13
  142. package/.output/server/node_modules/detect-libc/lib/elf.js +39 -0
  143. package/.output/server/node_modules/detect-libc/lib/filesystem.js +18 -8
  144. package/.output/server/node_modules/detect-libc/package.json +5 -2
  145. package/.output/server/node_modules/devalue/package.json +1 -1
  146. package/.output/server/node_modules/devalue/src/parse.js +7 -1
  147. package/.output/server/node_modules/devalue/src/uneval.js +9 -8
  148. package/.output/server/node_modules/fast-xml-parser/package.json +1 -1
  149. package/.output/server/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +297 -287
  150. package/.output/server/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +3 -2
  151. package/.output/server/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js +4 -4
  152. package/.output/server/node_modules/image-meta/dist/index.mjs +85 -4
  153. package/.output/server/node_modules/image-meta/package.json +12 -12
  154. package/.output/server/node_modules/is-arrayish/package.json +1 -1
  155. package/.output/server/node_modules/node-fetch-native/dist/chunks/multipart-parser.mjs +2 -2
  156. package/.output/server/node_modules/node-fetch-native/dist/node.mjs +10 -10
  157. package/.output/server/node_modules/node-fetch-native/package.json +13 -13
  158. package/.output/server/node_modules/node-mock-http/dist/index.mjs +1 -1
  159. package/.output/server/node_modules/node-mock-http/package.json +6 -6
  160. package/.output/server/node_modules/oauth4webapi/build/index.js +10 -8
  161. package/.output/server/node_modules/oauth4webapi/package.json +12 -12
  162. package/.output/server/node_modules/openid-client/build/index.js +1 -1
  163. package/.output/server/node_modules/openid-client/package.json +7 -7
  164. package/.output/server/node_modules/secure-json-parse/index.js +35 -0
  165. package/.output/server/node_modules/secure-json-parse/package.json +2 -3
  166. package/.output/server/node_modules/semver/classes/semver.js +19 -5
  167. package/.output/server/node_modules/semver/internal/identifiers.js +4 -0
  168. package/.output/server/node_modules/semver/package.json +3 -3
  169. package/.output/server/node_modules/shiki/package.json +9 -9
  170. package/.output/server/node_modules/simple-swizzle/package.json +1 -1
  171. package/.output/server/node_modules/unhead/dist/parser.mjs +508 -0
  172. package/.output/server/node_modules/unhead/dist/server.mjs +6 -513
  173. package/.output/server/node_modules/unhead/package.json +5 -1
  174. package/.output/server/node_modules/unist-util-is/lib/index.js +10 -5
  175. package/.output/server/node_modules/unist-util-is/package.json +12 -9
  176. package/.output/server/node_modules/unist-util-visit-parents/lib/index.js +8 -7
  177. package/.output/server/node_modules/unist-util-visit-parents/package.json +18 -13
  178. package/.output/server/node_modules/vue/dist/vue.cjs.js +1 -1
  179. package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +1 -1
  180. package/.output/server/node_modules/vue/package.json +6 -6
  181. package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +158 -53
  182. package/.output/server/node_modules/vue-bundle-renderer/package.json +16 -11
  183. package/.output/server/node_modules/vue-router/dist/devtools-BLCumUwL.mjs +1218 -0
  184. package/.output/server/node_modules/vue-router/dist/vue-router.mjs +1459 -3688
  185. package/.output/server/node_modules/vue-router/package.json +43 -38
  186. package/.output/server/node_modules/vue-router/vue-router.node.mjs +2 -0
  187. package/.output/server/node_modules/yaml/dist/stringify/stringifyString.js +1 -1
  188. package/.output/server/node_modules/yaml/package.json +2 -1
  189. package/.output/server/package.json +39 -39
  190. package/README.md +4 -0
  191. package/app/app.vue +2 -2
  192. package/app/assets/css/ignis-open-props.css +4 -5
  193. package/app/components/CurrentTime.vue +8 -1
  194. package/app/components/ignis/{IgnisInfo.vue → IgnisContent.vue} +3 -3
  195. package/app/components/ignis/{IgnisConfig.vue → IgnisContentConfig.vue} +5 -1
  196. package/app/components/ignis/IgnisContentFeatures.vue +102 -0
  197. package/app/components/ignis/{IgnisWelcome.vue → IgnisContentWelcome.vue} +2 -2
  198. package/app/components/ignis/IgnisFooter.vue +11 -3
  199. package/app/pages/_ignis-config.vue +1 -1
  200. package/app/pages/_ignis-info.vue +1 -1
  201. package/app/pages/_ignis-welcome.vue +1 -1
  202. package/app/pages/index.vue +2 -2
  203. package/bin/cli.js +66 -0
  204. package/bin/set-app-vue.js +20 -0
  205. package/bin/set-css.js +5 -8
  206. package/bin/set-eslint.js +5 -8
  207. package/bin/setup.js +211 -45
  208. package/features.ts +17 -8
  209. package/nuxt.config.ts +10 -5
  210. package/package.json +19 -21
  211. package/public/_ignis-config.json +1789 -1
  212. package/test/config/css-multiple.txt +30 -24
  213. package/test/config/css-nuxt-ui.txt +34 -28
  214. package/test/config/css-open-props.txt +1812 -1805
  215. package/test/config/css-single.txt +28 -22
  216. package/test/config/css-tailwind.txt +55 -48
  217. package/test/config/custom-lang.txt +27 -21
  218. package/test/config/db-neon.txt +28 -22
  219. package/test/config/db-supabase.txt +31 -25
  220. package/test/config/default.txt +27 -21
  221. package/test/config/equipment-1-composable.txt +33 -27
  222. package/test/config/equipment-2-plugins.txt +34 -28
  223. package/test/config/equipment-all.txt +38 -32
  224. package/test/config/forms-formkit.txt +32 -26
  225. package/test/config/forms-vueform.txt +28 -22
  226. package/test/config/i18n.txt +36 -30
  227. package/test/config/no-default-css.txt +24 -18
  228. package/test/config/open-props.txt +1811 -1804
  229. package/test/config/seo-ssr-false.txt +35 -29
  230. package/test/config/ui-nuxt-ui.txt +33 -27
  231. package/test/config/ui-tailwind.txt +54 -47
  232. package/test/features.test.ts +33 -33
  233. package/.nuxt/dist/server/client.manifest.json +0 -18
  234. package/.nuxt/i18n.options.mjs +0 -165
  235. package/.nuxt/nuxt-i18n-logger.mjs +0 -1
  236. package/.output/public/_nuxt/1soVlS0z.js +0 -1
  237. package/.output/public/_nuxt/B7rsWaa2.js +0 -1
  238. package/.output/public/_nuxt/BA2WKEAc.js +0 -1
  239. package/.output/public/_nuxt/BE_a_Zhd.js +0 -1
  240. package/.output/public/_nuxt/BFreiu22.js +0 -1
  241. package/.output/public/_nuxt/BLcTglbc.js +0 -1
  242. package/.output/public/_nuxt/Bhd4_yFT.js +0 -1
  243. package/.output/public/_nuxt/Bi2eMDmd.js +0 -1
  244. package/.output/public/_nuxt/BiUZ9mZX.js +0 -1
  245. package/.output/public/_nuxt/Bm30MqE0.js +0 -1
  246. package/.output/public/_nuxt/Bnm5Nral.js +0 -1
  247. package/.output/public/_nuxt/BrY1radz.js +0 -35
  248. package/.output/public/_nuxt/Bs3IGOdt.js +0 -1
  249. package/.output/public/_nuxt/ByaiRTkI.js +0 -1
  250. package/.output/public/_nuxt/CA578xwz.js +0 -1
  251. package/.output/public/_nuxt/CDttUXKg.js +0 -1
  252. package/.output/public/_nuxt/CSN71QT8.js +0 -1
  253. package/.output/public/_nuxt/CmzFGS1a.js +0 -90
  254. package/.output/public/_nuxt/CqCaqSd2.js +0 -1
  255. package/.output/public/_nuxt/D8v-efI7.js +0 -1
  256. package/.output/public/_nuxt/DR4hWRk7.js +0 -1
  257. package/.output/public/_nuxt/DRroQ-Xq.js +0 -1
  258. package/.output/public/_nuxt/DStnBfJS.js +0 -1
  259. package/.output/public/_nuxt/DXTYyv-V.js +0 -1
  260. package/.output/public/_nuxt/DXbccJ2T.js +0 -1
  261. package/.output/public/_nuxt/DeS1g0YT.js +0 -1
  262. package/.output/public/_nuxt/Deb6R53f.js +0 -1
  263. package/.output/public/_nuxt/DiDHllLr.js +0 -1
  264. package/.output/public/_nuxt/DyCICqRh.js +0 -1
  265. package/.output/public/_nuxt/DzT4wm3Y.js +0 -1
  266. package/.output/public/_nuxt/E8nje24C.js +0 -1
  267. package/.output/public/_nuxt/builds/meta/9a624d26-216d-4e69-b3a7-54b68357876f.json +0 -1
  268. package/.output/public/_nuxt/dJ-vStNn.js +0 -1
  269. package/.output/public/_nuxt/entry.jMyW6Sg0.css +0 -1
  270. package/.output/public/_nuxt/error-404.BGUbR0Uk.css +0 -1
  271. package/.output/public/_nuxt/error-500.CQfkKpQ2.css +0 -1
  272. package/.output/public/_nuxt/sHsV3x2B.js +0 -1
  273. package/.output/public/_nuxt/sQEqbbg2.js +0 -1
  274. package/.output/public/_nuxt/vueform.ChEauysg.css +0 -1
  275. package/.output/server/chunks/build/client.manifest.mjs +0 -511
  276. package/.output/server/chunks/build/client.manifest.mjs.map +0 -1
  277. package/.output/server/node_modules/vue-router/dist/vue-router.node.mjs +0 -2
  278. package/app/components/ignis/IgnisFeatureList.vue +0 -111
  279. /package/app/components/ignis/{IgnisFeature.vue → IgnisContentFeaturesDetail.vue} +0 -0
@@ -3,41 +3,41 @@ import { Server } from 'node:http';
3
3
  import { resolve as resolve$1, dirname, join } from 'node:path';
4
4
  import crypto$1 from 'node:crypto';
5
5
  import { parentPort, threadId } from 'node:worker_threads';
6
- import { defineEventHandler, handleCacheHeaders, splitCookiesString, createEvent, fetchWithEvent, isEvent, eventHandler, setHeaders, sendRedirect, proxyRequest, getRequestHeader, setResponseHeaders, setResponseStatus, send, getRequestHeaders, setResponseHeader, appendResponseHeader, getRequestURL, getResponseHeader, setCookie, getResponseStatus, createError, useSession, getRequestHost, getRequestProtocol, getQuery as getQuery$1, removeResponseHeader, handleCors, getRequestIP, readMultipartFormData, readBody, setHeader, getHeader, getRouterParam, lazyEventHandler, useBase, createApp, createRouter as createRouter$1, toNodeListener, getResponseStatusText } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/h3@1.15.4/node_modules/h3/dist/index.mjs';
7
- import { escapeHtml } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/@vue+shared@3.5.21/node_modules/@vue/shared/dist/shared.cjs.js';
8
- import { createRenderer, getRequestDependencies, getPreloadLinks, getPrefetchLinks } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/vue-bundle-renderer@2.1.2/node_modules/vue-bundle-renderer/dist/runtime.mjs';
6
+ import { defineEventHandler, handleCacheHeaders, splitCookiesString, createEvent, fetchWithEvent, isEvent, eventHandler, setHeaders, sendRedirect, proxyRequest, getRequestHeader, setResponseHeaders, setResponseStatus, send, getRequestHeaders, setResponseHeader, appendResponseHeader, getRequestURL, getResponseHeader, setCookie, getResponseStatus, createError, useSession, getRequestHost, getRequestProtocol, getQuery as getQuery$1, removeResponseHeader, readBody, handleCors, getRequestIP, readMultipartFormData, setHeader, getHeader, getRouterParam, lazyEventHandler, useBase, createApp, createRouter as createRouter$1, toNodeListener, getResponseStatusText } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/h3@1.15.4/node_modules/h3/dist/index.mjs';
7
+ import { escapeHtml } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/@vue+shared@3.5.22/node_modules/@vue/shared/dist/shared.cjs.js';
8
+ import { createRenderer, getRequestDependencies, getPreloadLinks, getPrefetchLinks } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/vue-bundle-renderer@2.2.0/node_modules/vue-bundle-renderer/dist/runtime.mjs';
9
9
  import destr, { destr as destr$1 } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/destr@2.0.5/node_modules/destr/dist/index.mjs';
10
- import { renderToString } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/vue@3.5.21_typescript@5.9.2/node_modules/vue/server-renderer/index.mjs';
10
+ import { renderToString } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/vue@3.5.22_typescript@5.9.3/node_modules/vue/server-renderer/index.mjs';
11
11
  import { klona } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/klona@2.0.6/node_modules/klona/dist/index.mjs';
12
12
  import defu, { defuFn, defu as defu$1, createDefu } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/defu@6.1.4/node_modules/defu/dist/defu.mjs';
13
13
  import { snakeCase } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/scule@1.3.0/node_modules/scule/dist/index.mjs';
14
- import { createHead as createHead$1, propsToString, renderSSRHead } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/unhead@2.0.17/node_modules/unhead/dist/server.mjs';
15
- import { stringify, uneval } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/devalue@5.3.2/node_modules/devalue/index.js';
16
- import { isVNode, toValue, isRef } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/vue@3.5.21_typescript@5.9.2/node_modules/vue/index.mjs';
14
+ import { createHead as createHead$1, propsToString, renderSSRHead } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/unhead@2.0.19/node_modules/unhead/dist/server.mjs';
15
+ import { stringify, uneval } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/devalue@5.4.2/node_modules/devalue/index.js';
16
+ import { toValue, isVNode, isRef } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/vue@3.5.22_typescript@5.9.3/node_modules/vue/index.mjs';
17
17
  import { createHooks } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/hookable@5.5.3/node_modules/hookable/dist/index.mjs';
18
18
  import { createFetch, Headers as Headers$1 } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/ofetch@1.4.1/node_modules/ofetch/dist/node.mjs';
19
19
  import { fetchNodeRequestHandler, callNodeRequestHandler } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/node-mock-http@1.0.3/node_modules/node-mock-http/dist/index.mjs';
20
- import { prefixStorage } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/unstorage@1.17.1_@netlify+b_759b95addce6e69d7bbd1e082a58d04a/node_modules/unstorage/dist/index.mjs';
21
- import { createStorage } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/unstorage@1.16.1_@netlify+b_9cf69b3be37fa3a2f05e3500b3bf38a1/node_modules/unstorage/dist/index.mjs';
22
- import unstorage_47drivers_47fs from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/unstorage@1.16.1_@netlify+b_9cf69b3be37fa3a2f05e3500b3bf38a1/node_modules/unstorage/drivers/fs.mjs';
23
- import unstorage_47drivers_47lru_45cache from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/unstorage@1.16.1_@netlify+b_9cf69b3be37fa3a2f05e3500b3bf38a1/node_modules/unstorage/drivers/lru-cache.mjs';
20
+ import { createStorage, prefixStorage } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/unstorage@1.17.1_db0@0.3.4__a86534b8094dbeae67245bf21e3092f9/node_modules/unstorage/dist/index.mjs';
21
+ import unstorage_47drivers_47fs from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/unstorage@1.17.1_db0@0.3.4__a86534b8094dbeae67245bf21e3092f9/node_modules/unstorage/drivers/fs.mjs';
22
+ import unstorage_47drivers_47lru_45cache from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/unstorage@1.17.1_db0@0.3.4__a86534b8094dbeae67245bf21e3092f9/node_modules/unstorage/drivers/lru-cache.mjs';
24
23
  import { digest, hash as hash$1 } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/index.mjs';
25
24
  import { toRouteMatcher, createRouter } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/radix3@1.1.2/node_modules/radix3/dist/index.mjs';
26
25
  import { readFile } from 'node:fs/promises';
27
- import consola, { consola as consola$1, createConsola } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/index.mjs';
26
+ import consola, { createConsola, consola as consola$1 } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/index.mjs';
28
27
  import { ErrorParser } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/youch-core@0.3.3/node_modules/youch-core/build/index.js';
29
28
  import { Youch } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/youch@4.1.0-beta.11/node_modules/youch/build/index.js';
30
29
  import { SourceMapConsumer } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/source-map@0.7.6/node_modules/source-map/source-map.js';
31
- import { AsyncLocalStorage } from 'node:async_hooks';
32
- import { getContext } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/unctx@2.4.1/node_modules/unctx/dist/index.mjs';
33
- import { captureRawStackTrace, parseRawStackTrace } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/errx@0.1.0/node_modules/errx/dist/index.js';
34
30
  import devalue from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/@nuxt+devalue@2.0.2/node_modules/@nuxt/devalue/dist/devalue.mjs';
35
31
  import { createPathIndexLanguageParser, parseAcceptLanguage } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/@intlify+utils@0.13.0/node_modules/@intlify/utils/dist/index.mjs';
36
32
  import { parse } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/cookie-es@2.0.0/node_modules/cookie-es/dist/index.mjs';
37
- import { createRouterMatcher } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/vue-router@4.5.1_vue@3.5.21_typescript@5.9.2_/node_modules/vue-router/dist/vue-router.node.mjs';
33
+ import { createRouterMatcher } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/vue-router@4.6.3_vue@3.5.22_typescript@5.9.3_/node_modules/vue-router/vue-router.node.mjs';
34
+ import { AsyncLocalStorage } from 'node:async_hooks';
35
+ import { getContext } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/unctx@2.4.1/node_modules/unctx/dist/index.mjs';
36
+ import { captureRawStackTrace, parseRawStackTrace } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/errx@0.1.0/node_modules/errx/dist/index.js';
38
37
  import fs, { promises } from 'node:fs';
39
38
  import { fileURLToPath } from 'node:url';
40
39
  import { dirname as dirname$1, resolve as resolve$2 } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/pathe@1.1.2/node_modules/pathe/dist/index.mjs';
40
+ import { walkResolver } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/unhead@2.0.19/node_modules/unhead/dist/utils.mjs';
41
41
  import { FilterXSS } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/xss@1.0.15/node_modules/xss/lib/index.js';
42
42
  import { basename, resolve as resolve$3, isAbsolute } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/index.mjs';
43
43
  import { getIcons } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/@iconify+utils@2.3.0/node_modules/@iconify/utils/lib/index.mjs';
@@ -46,10 +46,9 @@ import { neon } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/@neondata
46
46
  import SqlString from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/sqlstring@2.3.3/node_modules/sqlstring/index.js';
47
47
  import Fuse from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/fuse.js@7.1.0/node_modules/fuse.js/dist/fuse.mjs';
48
48
  import { diffLines } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/diff@8.0.2/node_modules/diff/libesm/index.js';
49
- import MagicString from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/magic-string@0.30.19/node_modules/magic-string/dist/magic-string.es.mjs';
50
- import { walkResolver } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/unhead@2.0.17/node_modules/unhead/dist/utils.mjs';
51
- import localAdapter from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/db0@0.3.2_better-sqlite3@12.2.0/node_modules/db0/dist/connectors/better-sqlite3.mjs';
52
- import { ipxFSStorage, ipxHttpStorage, createIPX, createIPXH3Handler } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/ipx@2.1.1_@netlify+blobs@9._a634e1c7c669fe2189c48f824236382e/node_modules/ipx/dist/index.mjs';
49
+ import MagicString from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/magic-string@0.30.21/node_modules/magic-string/dist/magic-string.es.mjs';
50
+ import localAdapter from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/db0@0.3.4_better-sqlite3@12.2.0/node_modules/db0/dist/connectors/better-sqlite3.mjs';
51
+ import { ipxFSStorage, ipxHttpStorage, createIPX, createIPXH3Handler } from 'file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/ipx@2.1.1_db0@0.3.4_better-sqlite3@12.2.0__ioredis@5.8.2/node_modules/ipx/dist/index.mjs';
53
52
 
54
53
  const HASH_RE = /#/g;
55
54
  const AMPERSAND_RE = /&/g;
@@ -1289,7 +1288,7 @@ const _inlineRuntimeConfig = {
1289
1288
  }
1290
1289
  },
1291
1290
  "nuxt-scripts": {
1292
- "version": "0.11.13",
1291
+ "version": "0.13.0",
1293
1292
  "defaultScriptOptions": {
1294
1293
  "trigger": "onNuxtReady"
1295
1294
  }
@@ -1322,7 +1321,7 @@ const _inlineRuntimeConfig = {
1322
1321
  "loadStrategy": "server-first"
1323
1322
  },
1324
1323
  "nuxt-link-checker": {
1325
- "version": "4.3.2",
1324
+ "version": "4.3.6",
1326
1325
  "hasSitemapModule": true,
1327
1326
  "rootDir": "C:/Git/nuxt-ignis/core",
1328
1327
  "excludeLinks": [],
@@ -1385,7 +1384,7 @@ const _inlineRuntimeConfig = {
1385
1384
  }
1386
1385
  },
1387
1386
  "nuxt-scripts": {
1388
- "version": "0.11.13"
1387
+ "version": "0.13.0"
1389
1388
  },
1390
1389
  "private": {
1391
1390
  "basicAuth": false
@@ -1884,12 +1883,12 @@ const _inlineRuntimeConfig = {
1884
1883
  "description": "A ready-to-use setup for your next application in Nuxt"
1885
1884
  }
1886
1885
  ],
1887
- "version": "3.2.8",
1886
+ "version": "3.2.11",
1888
1887
  "debug": false,
1889
1888
  "multiTenancy": []
1890
1889
  },
1891
1890
  "nuxt-robots": {
1892
- "version": "5.5.5",
1891
+ "version": "5.5.6",
1893
1892
  "isNuxtContentV2": false,
1894
1893
  "debug": false,
1895
1894
  "credits": true,
@@ -1904,7 +1903,8 @@ const _inlineRuntimeConfig = {
1904
1903
  "allow": [],
1905
1904
  "contentUsage": [],
1906
1905
  "_indexable": true,
1907
- "_rules": []
1906
+ "_rules": [],
1907
+ "_normalized": true
1908
1908
  }
1909
1909
  ],
1910
1910
  "sitemap": [
@@ -1921,7 +1921,8 @@ const _inlineRuntimeConfig = {
1921
1921
  "alias": {},
1922
1922
  "fs": {
1923
1923
  "dir": [
1924
- "C:/Git/nuxt-ignis/core/public"
1924
+ "C:/Git/nuxt-ignis/core/public",
1925
+ "C:/Git/nuxt-ignis/core/node_modules/.pnpm/nuxt-spec@0.1.14_@parcel+wa_1bd0a416d5aa2d7243737211ee57c1e5/node_modules/nuxt-spec/public"
1925
1926
  ]
1926
1927
  },
1927
1928
  "http": {
@@ -2091,6 +2092,335 @@ function hasReqHeader(event, name, includes) {
2091
2092
  return value && typeof value === "string" && value.toLowerCase().includes(includes);
2092
2093
  }
2093
2094
 
2095
+ const iframeStorageBridge = (nonce) => (
2096
+ /* js */
2097
+ `
2098
+ (function() {
2099
+ const memoryStore = {};
2100
+
2101
+ const NONCE = ${JSON.stringify(nonce)}
2102
+
2103
+ const mockStorage = {
2104
+ getItem: function(key) {
2105
+ return memoryStore[key] !== undefined ? memoryStore[key] : null;
2106
+ },
2107
+ setItem: function(key, value) {
2108
+ memoryStore[key] = String(value);
2109
+ window.parent.postMessage({
2110
+ type: 'storage-set',
2111
+ key: key,
2112
+ value: String(value),
2113
+ nonce: NONCE
2114
+ }, '*');
2115
+ },
2116
+ removeItem: function(key) {
2117
+ delete memoryStore[key];
2118
+ window.parent.postMessage({
2119
+ type: 'storage-remove',
2120
+ key: key,
2121
+ nonce: NONCE
2122
+ }, '*');
2123
+ },
2124
+ clear: function() {
2125
+ for (const key in memoryStore) {
2126
+ delete memoryStore[key];
2127
+ }
2128
+ window.parent.postMessage({
2129
+ type: 'storage-clear',
2130
+ nonce: NONCE
2131
+ }, '*');
2132
+ },
2133
+ key: function(index) {
2134
+ const keys = Object.keys(memoryStore);
2135
+ return keys[index] !== undefined ? keys[index] : null;
2136
+ },
2137
+ get length() {
2138
+ return Object.keys(memoryStore).length;
2139
+ }
2140
+ };
2141
+
2142
+ try {
2143
+ Object.defineProperty(window, 'localStorage', {
2144
+ value: mockStorage,
2145
+ writable: false,
2146
+ configurable: true
2147
+ });
2148
+ } catch (e) {
2149
+ window.localStorage = mockStorage;
2150
+ }
2151
+
2152
+ window.addEventListener('message', function(event) {
2153
+ if (event.data.type === 'storage-sync-data' && event.data.nonce === NONCE) {
2154
+ const data = event.data.data;
2155
+ for (const key in data) {
2156
+ if (Object.prototype.hasOwnProperty.call(data, key)) {
2157
+ memoryStore[key] = data[key];
2158
+ }
2159
+ }
2160
+ if (typeof window.initTheme === 'function') {
2161
+ window.initTheme();
2162
+ }
2163
+ window.dispatchEvent(new Event('storage-ready'));
2164
+ }
2165
+ });
2166
+
2167
+ window.parent.postMessage({
2168
+ type: 'storage-sync-request',
2169
+ nonce: NONCE
2170
+ }, '*');
2171
+ })();
2172
+ `
2173
+ );
2174
+ const parentStorageBridge = (nonce) => (
2175
+ /* js */
2176
+ `
2177
+ (function() {
2178
+ const host = document.querySelector('nuxt-error-overlay');
2179
+ if (!host) return;
2180
+
2181
+ // Wait for shadow root to be attached
2182
+ const checkShadow = setInterval(function() {
2183
+ if (host.shadowRoot) {
2184
+ clearInterval(checkShadow);
2185
+ const iframe = host.shadowRoot.getElementById('frame');
2186
+ if (!iframe) return;
2187
+
2188
+ const NONCE = ${JSON.stringify(nonce)}
2189
+
2190
+ window.addEventListener('message', function(event) {
2191
+ if (!event.data || event.data.nonce !== NONCE) return;
2192
+
2193
+ const data = event.data;
2194
+
2195
+ if (data.type === 'storage-set') {
2196
+ localStorage.setItem(data.key, data.value);
2197
+ } else if (data.type === 'storage-remove') {
2198
+ localStorage.removeItem(data.key);
2199
+ } else if (data.type === 'storage-clear') {
2200
+ localStorage.clear();
2201
+ } else if (data.type === 'storage-sync-request') {
2202
+ const allData = {};
2203
+ for (let i = 0; i < localStorage.length; i++) {
2204
+ const key = localStorage.key(i);
2205
+ allData[key] = localStorage.getItem(key);
2206
+ }
2207
+ iframe.contentWindow.postMessage({
2208
+ type: 'storage-sync-data',
2209
+ data: allData,
2210
+ nonce: NONCE
2211
+ }, '*');
2212
+ }
2213
+ });
2214
+ }
2215
+ }, 10);
2216
+ })();
2217
+ `
2218
+ );
2219
+ const errorCSS = (
2220
+ /* css */
2221
+ `
2222
+ :host {
2223
+ --preview-width: 240px;
2224
+ --preview-height: 180px;
2225
+ --base-width: 1200px;
2226
+ --base-height: 900px;
2227
+ --z-base: 999999998;
2228
+ all: initial;
2229
+ display: contents;
2230
+ }
2231
+ .sr-only {
2232
+ position: absolute;
2233
+ width: 1px;
2234
+ height: 1px;
2235
+ padding: 0;
2236
+ margin: -1px;
2237
+ overflow: hidden;
2238
+ clip: rect(0, 0, 0, 0);
2239
+ white-space: nowrap;
2240
+ border-width: 0;
2241
+ }
2242
+ #frame {
2243
+ position: fixed;
2244
+ left: 0;
2245
+ top: 0;
2246
+ width: 100vw;
2247
+ height: 100vh;
2248
+ z-index: var(--z-base);
2249
+ }
2250
+ #frame[inert] {
2251
+ right: 5px;
2252
+ bottom: 5px;
2253
+ left: auto;
2254
+ top: auto;
2255
+ width: var(--base-width);
2256
+ height: var(--base-height);
2257
+ transform: scale(calc(240 / 1200));
2258
+ transform-origin: bottom right;
2259
+ overflow: hidden;
2260
+ border-radius: calc(1200 * 8px / 240);
2261
+ }
2262
+ #preview {
2263
+ position: fixed;
2264
+ right: 5px;
2265
+ bottom: 5px;
2266
+ width: var(--preview-width);
2267
+ height: var(--preview-height);
2268
+ overflow: hidden;
2269
+ border-radius: 8px;
2270
+ pointer-events: none;
2271
+ z-index: var(--z-base);
2272
+ background: white;
2273
+ display: none;
2274
+ }
2275
+ #frame:not([inert]) + #preview {
2276
+ display: block;
2277
+ }
2278
+ #toggle {
2279
+ position: fixed;
2280
+ right: 5px;
2281
+ bottom: 5px;
2282
+ width: var(--preview-width);
2283
+ height: var(--preview-height);
2284
+ background: none;
2285
+ border: 3px solid #00DC82;
2286
+ border-radius: 8px;
2287
+ cursor: pointer;
2288
+ opacity: 0.8;
2289
+ transition: opacity 0.2s, box-shadow 0.2s;
2290
+ z-index: calc(var(--z-base) + 1);
2291
+ }
2292
+ #toggle:hover,
2293
+ #toggle:focus {
2294
+ opacity: 1;
2295
+ box-shadow: 0 0 20px rgba(0, 220, 130, 0.6);
2296
+ }
2297
+ #toggle:focus-visible {
2298
+ outline: 3px solid #00DC82;
2299
+ outline-offset: 3px;
2300
+ box-shadow: 0 0 24px rgba(0, 220, 130, 0.8);
2301
+ }
2302
+ @media (prefers-reduced-motion: reduce) {
2303
+ #toggle {
2304
+ transition: none;
2305
+ }
2306
+ }
2307
+ `
2308
+ );
2309
+ function webComponentScript(base64HTML) {
2310
+ return (
2311
+ /* js */
2312
+ `
2313
+ (function() {
2314
+ try {
2315
+ const host = document.querySelector('nuxt-error-overlay');
2316
+ if (!host) return;
2317
+
2318
+ const shadow = host.attachShadow({ mode: 'open' });
2319
+
2320
+ // Create elements
2321
+ const style = document.createElement('style');
2322
+ style.textContent = ${JSON.stringify(errorCSS)};
2323
+
2324
+ const iframe = document.createElement('iframe');
2325
+ iframe.id = 'frame';
2326
+ iframe.src = 'data:text/html;base64,${base64HTML}';
2327
+ iframe.title = 'Detailed error stack trace';
2328
+ iframe.setAttribute('sandbox', 'allow-scripts allow-same-origin');
2329
+
2330
+ const preview = document.createElement('div');
2331
+ preview.id = 'preview';
2332
+
2333
+ const button = document.createElement('button');
2334
+ button.id = 'toggle';
2335
+ button.setAttribute('aria-expanded', 'true');
2336
+ button.setAttribute('type', 'button');
2337
+ button.innerHTML = '<span class="sr-only">Toggle detailed error view</span>';
2338
+
2339
+ const liveRegion = document.createElement('div');
2340
+ liveRegion.setAttribute('role', 'status');
2341
+ liveRegion.setAttribute('aria-live', 'polite');
2342
+ liveRegion.className = 'sr-only';
2343
+
2344
+ // Update preview snapshot
2345
+ function updatePreview() {
2346
+ try {
2347
+ let previewIframe = preview.querySelector('iframe');
2348
+ if (!previewIframe) {
2349
+ previewIframe = document.createElement('iframe');
2350
+ previewIframe.style.cssText = 'width: 1200px; height: 900px; transform: scale(0.2); transform-origin: top left; border: none;';
2351
+ previewIframe.setAttribute('sandbox', 'allow-scripts allow-same-origin');
2352
+ preview.appendChild(previewIframe);
2353
+ }
2354
+
2355
+ const doctype = document.doctype ? '<!DOCTYPE ' + document.doctype.name + '>' : '';
2356
+ const cleanedHTML = document.documentElement.outerHTML
2357
+ .replace(/<nuxt-error-overlay[^>]*>.*?<\\/nuxt-error-overlay>/gs, '')
2358
+ .replace(/<script[^>]*>.*?<\\/script>/gs, '');
2359
+
2360
+ const iframeDoc = previewIframe.contentDocument || previewIframe.contentWindow.document;
2361
+ iframeDoc.open();
2362
+ iframeDoc.write(doctype + cleanedHTML);
2363
+ iframeDoc.close();
2364
+ } catch (error) {
2365
+ console.error('Failed to update preview:', error);
2366
+ }
2367
+ }
2368
+
2369
+ function toggleView() {
2370
+ const isMinimized = iframe.hasAttribute('inert');
2371
+
2372
+ if (isMinimized) {
2373
+ updatePreview();
2374
+ iframe.removeAttribute('inert');
2375
+ button.setAttribute('aria-expanded', 'true');
2376
+ liveRegion.textContent = 'Showing detailed error view';
2377
+ setTimeout(function() {
2378
+ try { iframe.contentWindow.focus(); } catch {}
2379
+ }, 100);
2380
+ } else {
2381
+ iframe.setAttribute('inert', '');
2382
+ button.setAttribute('aria-expanded', 'false');
2383
+ liveRegion.textContent = 'Showing error page';
2384
+ button.focus();
2385
+ }
2386
+ }
2387
+
2388
+ button.onclick = toggleView;
2389
+
2390
+ document.addEventListener('keydown', function(e) {
2391
+ if ((e.key === 'Escape' || e.key === 'Esc') && !iframe.hasAttribute('inert')) {
2392
+ toggleView();
2393
+ }
2394
+ });
2395
+
2396
+ // Append to shadow DOM
2397
+ shadow.appendChild(style);
2398
+ shadow.appendChild(liveRegion);
2399
+ shadow.appendChild(iframe);
2400
+ shadow.appendChild(preview);
2401
+ shadow.appendChild(button);
2402
+
2403
+ // Initialize preview
2404
+ setTimeout(updatePreview, 100);
2405
+
2406
+ } catch (error) {
2407
+ console.error('Failed to initialize Nuxt error overlay:', error);
2408
+ }
2409
+ })();
2410
+ `
2411
+ );
2412
+ }
2413
+ function generateErrorOverlayHTML(html) {
2414
+ const nonce = Array.from(crypto.getRandomValues(new Uint8Array(16)), (b) => b.toString(16).padStart(2, "0")).join("");
2415
+ const errorPage = html.replace("<head>", `<head><script>${iframeStorageBridge(nonce)}<\/script>`);
2416
+ const base64HTML = Buffer.from(errorPage, "utf8").toString("base64");
2417
+ return `
2418
+ <script>${parentStorageBridge(nonce)}<\/script>
2419
+ <nuxt-error-overlay></nuxt-error-overlay>
2420
+ <script>${webComponentScript(base64HTML)}<\/script>
2421
+ `;
2422
+ }
2423
+
2094
2424
  const errorHandler$0 = (async function errorhandler(error, event, { defaultHandler }) {
2095
2425
  if (event.handled || isJsonRequest(event)) {
2096
2426
  return;
@@ -2127,7 +2457,7 @@ const errorHandler$0 = (async function errorhandler(error, event, { defaultHandl
2127
2457
  return;
2128
2458
  }
2129
2459
  if (!res) {
2130
- const { template } = await Promise.resolve().then(function () { return errorDev; }) ;
2460
+ const { template } = await Promise.resolve().then(function () { return error500; });
2131
2461
  {
2132
2462
  errorObject.description = errorObject.message;
2133
2463
  }
@@ -2143,7 +2473,10 @@ const errorHandler$0 = (async function errorhandler(error, event, { defaultHandl
2143
2473
  setResponseHeader(event, header, value);
2144
2474
  }
2145
2475
  setResponseStatus(event, res.status && res.status !== 200 ? res.status : defaultRes.status, res.statusText || defaultRes.statusText);
2146
- return send(event, html);
2476
+ {
2477
+ const prettyResponse = await defaultHandler(error, event, { json: false });
2478
+ return send(event, html.replace("</body>", `${generateErrorOverlayHTML(prettyResponse.body)}</body>`));
2479
+ }
2147
2480
  });
2148
2481
 
2149
2482
  function defineNitroErrorHandler(handler) {
@@ -2297,104 +2630,12 @@ if (!window.__NUXT_DEVTOOLS_TIME_METRIC__) {
2297
2630
  window.__NUXT_DEVTOOLS_TIME_METRIC__.appInit = Date.now()
2298
2631
  `;
2299
2632
 
2300
- const _8rXJ5gi2jjm6ZLiNC6RxBUo8R7ynM5gptK8L0zbCFQ = (function(nitro) {
2633
+ const _BtrFLZJJX4guWuKOA_LeWxs2CgWrqhdN2KXJO0Oc_Y = (function(nitro) {
2301
2634
  nitro.hooks.hook("render:html", (htmlContext) => {
2302
2635
  htmlContext.head.push(`<script>${script$1}<\/script>`);
2303
2636
  });
2304
2637
  });
2305
2638
 
2306
- const rootDir = "C:/Git/nuxt-ignis/core";
2307
-
2308
- const appHead = {"link":[],"meta":[{"name":"viewport","content":"width=device-width, initial-scale=1"},{"charset":"utf-8"},{"property":"og:type","content":"website"}],"style":[],"script":[],"noscript":[],"htmlAttrs":{"lang":"en-US"},"title":"Custom Nuxt Ignis App"};
2309
-
2310
- const appRootTag = "div";
2311
-
2312
- const appRootAttrs = {"id":"__nuxt","class":"isolate"};
2313
-
2314
- const appTeleportTag = "div";
2315
-
2316
- const appTeleportAttrs = {"id":"teleports"};
2317
-
2318
- const appSpaLoaderTag = "div";
2319
-
2320
- const appSpaLoaderAttrs = {"id":"__nuxt-loader"};
2321
-
2322
- const appId = "nuxt-app";
2323
-
2324
- const devReducers = {
2325
- VNode: (data) => isVNode(data) ? { type: data.type, props: data.props } : void 0,
2326
- URL: (data) => data instanceof URL ? data.toString() : void 0
2327
- };
2328
- const asyncContext = getContext("nuxt-dev", { asyncContext: true, AsyncLocalStorage });
2329
- const _C5dktXJXfxqFLCjiJpMI3mLwt62BBvXqsghDTYFkfd0 = (nitroApp) => {
2330
- const handler = nitroApp.h3App.handler;
2331
- nitroApp.h3App.handler = (event) => {
2332
- return asyncContext.callAsync({ logs: [], event }, () => handler(event));
2333
- };
2334
- onConsoleLog((_log) => {
2335
- const ctx = asyncContext.tryUse();
2336
- if (!ctx) {
2337
- return;
2338
- }
2339
- const rawStack = captureRawStackTrace();
2340
- if (!rawStack || rawStack.includes("runtime/vite-node.mjs")) {
2341
- return;
2342
- }
2343
- const trace = [];
2344
- let filename = "";
2345
- for (const entry of parseRawStackTrace(rawStack)) {
2346
- if (entry.source === globalThis._importMeta_.url) {
2347
- continue;
2348
- }
2349
- if (EXCLUDE_TRACE_RE.test(entry.source)) {
2350
- continue;
2351
- }
2352
- filename ||= entry.source.replace(withTrailingSlash(rootDir), "");
2353
- trace.push({
2354
- ...entry,
2355
- source: entry.source.startsWith("file://") ? entry.source.replace("file://", "") : entry.source
2356
- });
2357
- }
2358
- const log = {
2359
- ..._log,
2360
- // Pass along filename to allow the client to display more info about where log comes from
2361
- filename,
2362
- // Clean up file names in stack trace
2363
- stack: trace
2364
- };
2365
- ctx.logs.push(log);
2366
- });
2367
- nitroApp.hooks.hook("afterResponse", () => {
2368
- const ctx = asyncContext.tryUse();
2369
- if (!ctx) {
2370
- return;
2371
- }
2372
- return nitroApp.hooks.callHook("dev:ssr-logs", { logs: ctx.logs, path: ctx.event.path });
2373
- });
2374
- nitroApp.hooks.hook("render:html", (htmlContext) => {
2375
- const ctx = asyncContext.tryUse();
2376
- if (!ctx) {
2377
- return;
2378
- }
2379
- try {
2380
- const reducers = Object.assign(/* @__PURE__ */ Object.create(null), devReducers, ctx.event.context._payloadReducers);
2381
- htmlContext.bodyAppend.unshift(`<script type="application/json" data-nuxt-logs="${appId}">${stringify(ctx.logs, reducers)}<\/script>`);
2382
- } catch (e) {
2383
- const shortError = e instanceof Error && "toString" in e ? ` Received \`${e.toString()}\`.` : "";
2384
- console.warn(`[nuxt] Failed to stringify dev server logs.${shortError} You can define your own reducer/reviver for rich types following the instructions in https://nuxt.com/docs/api/composables/use-nuxt-app#payload.`);
2385
- }
2386
- });
2387
- };
2388
- const EXCLUDE_TRACE_RE = /\/node_modules\/(?:.*\/)?(?:nuxt|nuxt-nightly|nuxt-edge|nuxt3|consola|@vue)\/|core\/runtime\/nitro/;
2389
- function onConsoleLog(callback) {
2390
- consola$1.addReporter({
2391
- log(logObj) {
2392
- callback(logObj);
2393
- }
2394
- });
2395
- consola$1.wrapConsole();
2396
- }
2397
-
2398
2639
  const _phrzZ3NodVihtWltdnRcquocEakKXP5smwHsyvnDKGI = defineNitroPlugin((nitroApp) => {
2399
2640
  if (process.env.NUXT_OAUTH_FACEBOOK_CLIENT_ID && process.env.NUXT_OAUTH_FACEBOOK_CLIENT_SECRET || process.env.NUXT_OAUTH_INSTAGRAM_CLIENT_ID && process.env.NUXT_OAUTH_INSTAGRAM_CLIENT_SECRET) {
2400
2641
  nitroApp.hooks.hook("render:html", (html) => {
@@ -2503,7 +2744,7 @@ function getSiteConfig(e, _options) {
2503
2744
  return e.context.siteConfig.get(options);
2504
2745
  }
2505
2746
 
2506
- const _YpZ2yIH6JowdSzwuKYJp9FsmSkR3hxRbNRBJp6GUT5E = defineNitroPlugin(async (nitroApp) => {
2747
+ const _kdGf6XFSXDve3yeB4UoLLimvhaR3WS7IOBVNHP9Q8 = defineNitroPlugin(async (nitroApp) => {
2507
2748
  nitroApp.hooks.hook("render:html", async (ctx, { event }) => {
2508
2749
  getRouteRules(event);
2509
2750
  process.env.NUXT_COMPONENT_ISLANDS && event.path.startsWith("/__nuxt_island");
@@ -2824,6 +3065,34 @@ function matchPathToRule(path, _rules) {
2824
3065
  function asArray(v) {
2825
3066
  return typeof v === "undefined" ? [] : Array.isArray(v) ? v : [v];
2826
3067
  }
3068
+ function normalizeGroup(group) {
3069
+ if (group._normalized) {
3070
+ const resolvedGroup = group;
3071
+ const disallow2 = asArray(resolvedGroup.disallow);
3072
+ resolvedGroup._indexable = !disallow2.includes("/");
3073
+ resolvedGroup._rules = [
3074
+ ...resolvedGroup.disallow.filter(Boolean).map((r) => ({ pattern: r, allow: false })),
3075
+ ...resolvedGroup.allow.map((r) => ({ pattern: r, allow: true }))
3076
+ ];
3077
+ return resolvedGroup;
3078
+ }
3079
+ const disallow = asArray(group.disallow);
3080
+ const allow = asArray(group.allow).filter((rule) => Boolean(rule));
3081
+ const contentUsage = asArray(group.contentUsage).filter((rule) => Boolean(rule));
3082
+ return {
3083
+ ...group,
3084
+ userAgent: group.userAgent ? asArray(group.userAgent) : ["*"],
3085
+ disallow,
3086
+ allow,
3087
+ contentUsage,
3088
+ _indexable: !disallow.includes("/"),
3089
+ _rules: [
3090
+ ...disallow.filter(Boolean).map((r) => ({ pattern: r, allow: false })),
3091
+ ...allow.map((r) => ({ pattern: r, allow: true }))
3092
+ ],
3093
+ _normalized: true
3094
+ };
3095
+ }
2827
3096
  function generateRobotsTxt({ groups, sitemaps }) {
2828
3097
  const lines = [];
2829
3098
  for (const group of groups) {
@@ -2883,11 +3152,12 @@ async function resolveRobotsTxtContext(e, nitro = useNitroApp()) {
2883
3152
  ...JSON.parse(JSON.stringify({ groups, sitemaps }))
2884
3153
  };
2885
3154
  await nitro.hooks.callHook("robots:config", generateRobotsTxtCtx);
3155
+ generateRobotsTxtCtx.groups = generateRobotsTxtCtx.groups.map(normalizeGroup);
2886
3156
  nitro._robots.ctx = generateRobotsTxtCtx;
2887
3157
  return generateRobotsTxtCtx;
2888
3158
  }
2889
3159
 
2890
- const _erfli8nSouXxPAOx_3hBKRyfOfqP4HbAz72JiAOVNXU = defineNitroPlugin(async (nitroApp) => {
3160
+ const _TdbS07hodDvxCZZuDol6xBiLqU3edXD7OlgwtHY2s = defineNitroPlugin(async (nitroApp) => {
2891
3161
  const { isNuxtContentV2, robotsDisabledValue, botDetection } = useRuntimeConfigNuxtRobots();
2892
3162
  if (botDetection !== false) {
2893
3163
  nitroApp._robotsPatternMap = createPatternMap();
@@ -2939,7 +3209,7 @@ function createI18nContext() {
2939
3209
  }
2940
3210
 
2941
3211
  /*!
2942
- * shared v11.1.11
3212
+ * shared v11.1.12
2943
3213
  * (c) 2025 kazuya kawaguchi
2944
3214
  * Released under the MIT License.
2945
3215
  */
@@ -3133,6 +3403,22 @@ const setupVueI18nOptions = async (defaultLocale) => {
3133
3403
  return options;
3134
3404
  };
3135
3405
 
3406
+ const appHead = {"link":[],"meta":[{"name":"viewport","content":"width=device-width, initial-scale=1"},{"charset":"utf-8"},{"property":"og:type","content":"website"}],"style":[],"script":[],"noscript":[],"htmlAttrs":{"lang":"en-US"},"title":"Custom Nuxt Ignis App"};
3407
+
3408
+ const appRootTag = "div";
3409
+
3410
+ const appRootAttrs = {"id":"__nuxt","class":"isolate"};
3411
+
3412
+ const appTeleportTag = "div";
3413
+
3414
+ const appTeleportAttrs = {"id":"teleports"};
3415
+
3416
+ const appSpaLoaderTag = "div";
3417
+
3418
+ const appSpaLoaderAttrs = {"id":"__nuxt-loader"};
3419
+
3420
+ const appId = "nuxt-app";
3421
+
3136
3422
  function useRuntimeI18n(nuxtApp) {
3137
3423
  {
3138
3424
  return useRuntimeConfig().public.i18n;
@@ -3261,7 +3547,7 @@ function* detect(detectors, detection, path) {
3261
3547
  }
3262
3548
  yield { locale: detection.fallbackLocale, source: "fallback" };
3263
3549
  }
3264
- const _spgBdUlETZLGHXUseqq5mr1o951fF8amn_jiBHpzi1o = defineNitroPlugin(async (nitro) => {
3550
+ const _LoVVNyMOiEEEXN0qXs2724FMLdNnKMllA3Qq3f7Cis = defineNitroPlugin(async (nitro) => {
3265
3551
  const runtimeI18n = useRuntimeI18n();
3266
3552
  const rootRedirect = resolveRootRedirect(runtimeI18n.rootRedirect);
3267
3553
  const _defaultLocale = runtimeI18n.defaultLocale || "";
@@ -3333,6 +3619,9 @@ const _spgBdUlETZLGHXUseqq5mr1o951fF8amn_jiBHpzi1o = defineNitroPlugin(async (ni
3333
3619
  const options = await setupVueI18nOptions(getDefaultLocaleForDomain(getHost(event)) || _defaultLocale);
3334
3620
  const url = getRequestURL(event);
3335
3621
  const ctx = createI18nContext();
3622
+ const localeConfigs = createLocaleConfigs(options.fallbackLocale);
3623
+ ctx.vueI18nOptions = options;
3624
+ ctx.localeConfigs = localeConfigs;
3336
3625
  event.context.nuxtI18n = ctx;
3337
3626
  {
3338
3627
  const detector = useDetectors(event, detection);
@@ -3354,15 +3643,88 @@ const _spgBdUlETZLGHXUseqq5mr1o951fF8amn_jiBHpzi1o = defineNitroPlugin(async (ni
3354
3643
  return;
3355
3644
  }
3356
3645
  }
3357
- const localeConfigs = createLocaleConfigs(options.fallbackLocale);
3358
- ctx.vueI18nOptions = options;
3359
- ctx.localeConfigs = localeConfigs;
3360
3646
  });
3361
3647
  nitro.hooks.hook("render:html", (htmlContext, { event }) => {
3362
3648
  tryUseI18nContext(event);
3363
3649
  });
3364
3650
  });
3365
3651
 
3652
+ const rootDir = "C:/Git/nuxt-ignis/core";
3653
+
3654
+ const devReducers = {
3655
+ VNode: (data) => isVNode(data) ? { type: data.type, props: data.props } : void 0,
3656
+ URL: (data) => data instanceof URL ? data.toString() : void 0
3657
+ };
3658
+ const asyncContext = getContext("nuxt-dev", { asyncContext: true, AsyncLocalStorage });
3659
+ const _RUfzQNDUEpmSa5oqfVEnKCUX54f3cwFkfKdkDjSLpc = (nitroApp) => {
3660
+ const handler = nitroApp.h3App.handler;
3661
+ nitroApp.h3App.handler = (event) => {
3662
+ return asyncContext.callAsync({ logs: [], event }, () => handler(event));
3663
+ };
3664
+ onConsoleLog((_log) => {
3665
+ const ctx = asyncContext.tryUse();
3666
+ if (!ctx) {
3667
+ return;
3668
+ }
3669
+ const rawStack = captureRawStackTrace();
3670
+ if (!rawStack || rawStack.includes("runtime/vite-node.mjs")) {
3671
+ return;
3672
+ }
3673
+ const trace = [];
3674
+ let filename = "";
3675
+ for (const entry of parseRawStackTrace(rawStack)) {
3676
+ if (entry.source === globalThis._importMeta_.url) {
3677
+ continue;
3678
+ }
3679
+ if (EXCLUDE_TRACE_RE.test(entry.source)) {
3680
+ continue;
3681
+ }
3682
+ filename ||= entry.source.replace(withTrailingSlash(rootDir), "");
3683
+ trace.push({
3684
+ ...entry,
3685
+ source: entry.source.startsWith("file://") ? entry.source.replace("file://", "") : entry.source
3686
+ });
3687
+ }
3688
+ const log = {
3689
+ ..._log,
3690
+ // Pass along filename to allow the client to display more info about where log comes from
3691
+ filename,
3692
+ // Clean up file names in stack trace
3693
+ stack: trace
3694
+ };
3695
+ ctx.logs.push(log);
3696
+ });
3697
+ nitroApp.hooks.hook("afterResponse", () => {
3698
+ const ctx = asyncContext.tryUse();
3699
+ if (!ctx) {
3700
+ return;
3701
+ }
3702
+ return nitroApp.hooks.callHook("dev:ssr-logs", { logs: ctx.logs, path: ctx.event.path });
3703
+ });
3704
+ nitroApp.hooks.hook("render:html", (htmlContext) => {
3705
+ const ctx = asyncContext.tryUse();
3706
+ if (!ctx) {
3707
+ return;
3708
+ }
3709
+ try {
3710
+ const reducers = Object.assign(/* @__PURE__ */ Object.create(null), devReducers, ctx.event.context._payloadReducers);
3711
+ htmlContext.bodyAppend.unshift(`<script type="application/json" data-nuxt-logs="${appId}">${stringify(ctx.logs, reducers)}<\/script>`);
3712
+ } catch (e) {
3713
+ const shortError = e instanceof Error && "toString" in e ? ` Received \`${e.toString()}\`.` : "";
3714
+ console.warn(`[nuxt] Failed to stringify dev server logs.${shortError} You can define your own reducer/reviver for rich types following the instructions in https://nuxt.com/docs/4.x/api/composables/use-nuxt-app#payload.`);
3715
+ }
3716
+ });
3717
+ };
3718
+ const EXCLUDE_TRACE_RE = /\/node_modules\/(?:.*\/)?(?:nuxt|nuxt-nightly|nuxt-edge|nuxt3|consola|@vue)\/|core\/runtime\/nitro/;
3719
+ function onConsoleLog(callback) {
3720
+ consola$1.addReporter({
3721
+ log(logObj) {
3722
+ callback(logObj);
3723
+ }
3724
+ });
3725
+ consola$1.wrapConsole();
3726
+ }
3727
+
3366
3728
  const script = "\"use strict\";(()=>{const t=window,e=document.documentElement,c=[\"dark\",\"light\"],n=getStorageValue(\"localStorage\",\"nuxt-color-mode\")||\"system\";let i=n===\"system\"?u():n;const r=e.getAttribute(\"data-color-mode-forced\");r&&(i=r),l(i),t[\"__NUXT_COLOR_MODE__\"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=\"\"+o+\"\",a=\"\";e.classList?e.classList.add(s):e.className+=\" \"+s,a&&e.setAttribute(\"data-\"+a,o)}function d(o){const s=\"\"+o+\"\",a=\"\";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,\"g\"),\"\"),a&&e.removeAttribute(\"data-\"+a)}function f(o){return t.matchMedia(\"(prefers-color-scheme\"+o+\")\")}function u(){if(t.matchMedia&&f(\"\").media!==\"not all\"){for(const o of c)if(f(\":\"+o).matches)return o}return\"light\"}})();function getStorageValue(t,e){switch(t){case\"localStorage\":return window.localStorage.getItem(e);case\"sessionStorage\":return window.sessionStorage.getItem(e);case\"cookie\":return getCookie(e);default:return null}}function getCookie(t){const c=(\"; \"+window.document.cookie).split(\"; \"+t+\"=\");if(c.length===2)return c.pop()?.split(\";\").shift()}";
3367
3729
 
3368
3730
  const _7V99JalBsmMpJ4Im6qwrWJC2toR4GkZuF5sU0ekK6TU = (function(nitro) {
@@ -4026,8 +4388,9 @@ function getNitroOrigin(e) {
4026
4388
  protocol = getRequestProtocol(e, { xForwardedProto: true }) || protocol;
4027
4389
  }
4028
4390
  if (typeof host === "string" && host.includes(":")) {
4029
- port = host.split(":").pop();
4030
- host = host.split(":")[0] || false;
4391
+ const hostParts = host.split(":");
4392
+ port = hostParts.pop();
4393
+ host = hostParts.join(":") || false;
4031
4394
  }
4032
4395
  port = port ? `:${port}` : "";
4033
4396
  return withTrailingSlash(`${protocol}://${host}${port}`);
@@ -4315,7 +4678,7 @@ function getSiteRobotConfig(e) {
4315
4678
  let indexable = getSiteIndexable(e);
4316
4679
  const queryIndexableEnabled = String(query.mockProductionEnv) === "true" || query.mockProductionEnv === "";
4317
4680
  {
4318
- const { _context } = useSiteConfig(e, { debug: debug || true });
4681
+ const { _context } = getSiteConfig(e, { debug: debug || true });
4319
4682
  if (queryIndexableEnabled) {
4320
4683
  indexable = true;
4321
4684
  hints.push("You are mocking a production enviroment with ?mockProductionEnv query.");
@@ -4373,13 +4736,13 @@ function getPathRobotConfig(e, options) {
4373
4736
  ...nitroApp._robots.ctx.groups.filter((g) => g.userAgent.includes("*"))
4374
4737
  ];
4375
4738
  for (const group of groups) {
4376
- if (!group._indexable) {
4739
+ if (group._indexable === false) {
4377
4740
  return {
4378
4741
  indexable: false,
4379
4742
  rule: robotsDisabledValue,
4380
4743
  debug: {
4381
4744
  source: "/robots.txt",
4382
- line: `Disallow: /`
4745
+ line: JSON.stringify(group)
4383
4746
  }
4384
4747
  };
4385
4748
  }
@@ -4603,7 +4966,7 @@ function backwardsCompatibleSecurity(securityHeaders) {
4603
4966
  return securityHeadersAsObject;
4604
4967
  }
4605
4968
 
4606
- const _gSapWj_aXcOBDstJv2CcBjzMNihwELdV7AybchEoQ = defineNitroPlugin(async (nitroApp) => {
4969
+ const _4Vm6PaMZNaFiyqlri4J_3If2IWln0vpRDlJmQDnf2jo = defineNitroPlugin(async (nitroApp) => {
4607
4970
  const appSecurityOptions = getAppSecurityOptions();
4608
4971
  const runtimeConfig = useRuntimeConfig();
4609
4972
  for (const route in runtimeConfig.nitro.routeRules) {
@@ -4647,11 +5010,11 @@ const _gSapWj_aXcOBDstJv2CcBjzMNihwELdV7AybchEoQ = defineNitroPlugin(async (nitr
4647
5010
  await nitroApp.hooks.callHook("nuxt-security:ready");
4648
5011
  });
4649
5012
 
4650
- const sriHashes = {"/_nuxt/builds/meta/dev.json":"sha384-BAr/lPHTvTjjLsy3qkOmm0HuROp26ZiElugz137DvLEy9p7YdHa/1iCYWVP2qOJT","/_nuxt/builds/latest.json":"sha384-sC7woeQcWJOtWr4wp9+Gepl9X78bS6vHwDzXNHK6OIi/k7/S/djlH+ipJmVpYqYw","/_fonts/aPa9az0DeE4U5rqM-Ov0Vl_obQis_d6sScLNygGkvxw-s32Y9TxBLZRr_ebRHQ3l3q1g2j_0tPT879PPSBGrj8A.woff2":"sha384-A9QxCE9lPVXbqJLKywOZu/0mfnagppo3gIkNb0hL/czBrJVkLds+u6RpiSG0NvFo","/_fonts/EP1810cmAtyahQPDHB6nvBzRkIG5RcNv4u5vTy1aYHU-Ih_Po7WkbhDymI0Y_ntmpz__bZJprHiu7_c5N_X6AAA.woff2":"sha384-+PmgyN4qjpS0OKS3tzpnBzL+tElvEVNQIl0m4fERgMbCABP2lX0btd+ZJmtW2ArI","/_fonts/JNWOTRocaYj0gq52vW_s7sHAdSMUetrRmhhggCVxyZ0-TnR4PP30hI5UWldZ0knUBrHkvIoiDWYXwn2v1NtCh80.woff2":"sha384-iUZRizg1CuPUg7n1OkqSVEIjaw34zUc6NUPJrGHoQTVQsmIF65vPx9MOTD5ONTvH","/_fonts/kgyHMsxRmhh06xcV0yKMKdTKQBsQpXGi7erqwaqgjXg-55rzD39AWoqYSkQOLHuoKZUDVcDSlXRKdaymIN2dXes.woff":"sha384-0W1DksASmFMz/uEJlqgSE9CoI0NaZE4S+FkNmGlcELBL96bPDmMQzEvaMOgKBqd1","/_fonts/XbAtjIvy1UErjg9eu_v7X3zPLS_AwsmqVsR9fG-JB6o-H99o9_8BZXq7ey5UyS99Wn9zX0V0anvpXEqAqavcJlQ.woff2":"sha384-KWAx1TYOYzHt7smA8HF6EuuKxlQjXkwztw0PEe7lPd2nXNzhGpdobMAoGJ5RXTOm","/_fonts/ZLm6CLvwhQbamZ73M80jbqz7DuOkHlT_HRyXHG7YfVs-eYLoSJPWhqR5CE0c8XPABls8kE_7Fc7F2x7Gtfsg_8M.woff2":"sha384-6OEfO361yZtm7FjffN3HFcdErLtYooL76nG9prK0CbRoC1eKwh4EPFE78Ps30v4m","/favicon.ico":"sha384-x2T3iOzKywneSaP2gJEP0rRMwHl8sn+3H9G4Ju88fvyUp2m9x+jXF24LHhf6GCV0","/nuxt-ignis.png":"sha384-0A9c4mBzqU5z5xKB2ef9Sho451aXKA/G+oarzjR3hWMQaIvKYguRW7wYg95Yfei4","/unsplash.jpg":"sha384-66n0HIHfBVzK8qdw7zVfgwJ5htcrV6EtN2DQmlyxUIu46/kEKMRMqFrWKYm8bP18","/_ignis-config.json":"sha384-aZr8bj3KrNO8df9WhdCSB1e76THHUYiOt/W4fb4IwdiSdXwVVh+B8ZFLIFOiH8a3"};
5013
+ const sriHashes = {"/_nuxt/builds/meta/dev.json":"sha384-i2aKcwf8wmjsMZWP7i+maCPvo0WJJspgCSfzGe2yox9C7TQvWDJtP0XRgEfqJQty","/_nuxt/builds/latest.json":"sha384-N9HDWmCbKN7hUtn3kyTguvuIbqtI1LHte95u0fM6Jklt0tE2/rMGvuwIdg+PZPWu","/_fonts/aPa9az0DeE4U5rqM-Ov0Vl_obQis_d6sScLNygGkvxw-s32Y9TxBLZRr_ebRHQ3l3q1g2j_0tPT879PPSBGrj8A.woff2":"sha384-A9QxCE9lPVXbqJLKywOZu/0mfnagppo3gIkNb0hL/czBrJVkLds+u6RpiSG0NvFo","/_fonts/EP1810cmAtyahQPDHB6nvBzRkIG5RcNv4u5vTy1aYHU-Ih_Po7WkbhDymI0Y_ntmpz__bZJprHiu7_c5N_X6AAA.woff2":"sha384-+PmgyN4qjpS0OKS3tzpnBzL+tElvEVNQIl0m4fERgMbCABP2lX0btd+ZJmtW2ArI","/_fonts/JNWOTRocaYj0gq52vW_s7sHAdSMUetrRmhhggCVxyZ0-TnR4PP30hI5UWldZ0knUBrHkvIoiDWYXwn2v1NtCh80.woff2":"sha384-iUZRizg1CuPUg7n1OkqSVEIjaw34zUc6NUPJrGHoQTVQsmIF65vPx9MOTD5ONTvH","/_fonts/kgyHMsxRmhh06xcV0yKMKdTKQBsQpXGi7erqwaqgjXg-55rzD39AWoqYSkQOLHuoKZUDVcDSlXRKdaymIN2dXes.woff":"sha384-0W1DksASmFMz/uEJlqgSE9CoI0NaZE4S+FkNmGlcELBL96bPDmMQzEvaMOgKBqd1","/_fonts/XbAtjIvy1UErjg9eu_v7X3zPLS_AwsmqVsR9fG-JB6o-H99o9_8BZXq7ey5UyS99Wn9zX0V0anvpXEqAqavcJlQ.woff2":"sha384-KWAx1TYOYzHt7smA8HF6EuuKxlQjXkwztw0PEe7lPd2nXNzhGpdobMAoGJ5RXTOm","/_fonts/ZLm6CLvwhQbamZ73M80jbqz7DuOkHlT_HRyXHG7YfVs-eYLoSJPWhqR5CE0c8XPABls8kE_7Fc7F2x7Gtfsg_8M.woff2":"sha384-6OEfO361yZtm7FjffN3HFcdErLtYooL76nG9prK0CbRoC1eKwh4EPFE78Ps30v4m","/favicon.ico":"sha384-qOhXBYvwwZHHuXW10XxZvVu9Mzkpqf/fw3zEOxCGyqOoKqyHbeudntAaY6nKOTro","/nuxt-ignis.png":"sha384-0A9c4mBzqU5z5xKB2ef9Sho451aXKA/G+oarzjR3hWMQaIvKYguRW7wYg95Yfei4","/unsplash.jpg":"sha384-66n0HIHfBVzK8qdw7zVfgwJ5htcrV6EtN2DQmlyxUIu46/kEKMRMqFrWKYm8bP18","/_ignis-config.json":"sha384-OirE9KJS/YdF0Hkpt3AuMm9dq4Q6ligBbS2HMCVsRodjc4ObE44Rwj9wG0i0TuL+","/nuxt-spec.png":"sha384-lqerIwfMImy74T5uRR9ogeRAvkGehx21V4QBTVB0a6Zp+2VTFMZmjOtNAAti72LU"};
4651
5014
 
4652
5015
  const SCRIPT_RE$1 = /<script((?=[^>]+\bsrc="([^"]+)")(?![^>]+\bintegrity="[^"]+")[^>]+)(?:\/>|><\/script>)/g;
4653
5016
  const LINK_RE$1 = /<link((?=[^>]+\brel="(?:stylesheet|preload|modulepreload)")(?=[^>]+\bhref="([^"]+)")(?![^>]+\bintegrity="[\w\-+/=]+")[^>]+)>/g;
4654
- const _5Gy3UyRtKUuVqd12unQmy0z1zc8hIzldB80_dzpQ23E = defineNitroPlugin((nitroApp) => {
5017
+ const _7dOV7LP1d6k7UjPtnpR35H26iiEGkqk5GWbFJRIaFQ = defineNitroPlugin((nitroApp) => {
4655
5018
  nitroApp.hooks.hook("render:html", (html, { event }) => {
4656
5019
  const rules = resolveSecurityRules(event);
4657
5020
  if (!rules.enabled || !rules.sri) {
@@ -4694,7 +5057,7 @@ function generateRandomNonce() {
4694
5057
  return nonce;
4695
5058
  }
4696
5059
 
4697
- const _objLxw4c24OQwgusyFOCvIbmzoCJ2Pz4D8lhIZFY1JQ = defineNitroPlugin((nitroApp) => {
5060
+ const _bcf5ErvzNaqmFXYH3amyw4lXQvxpHMitUC1M6Tloys = defineNitroPlugin((nitroApp) => {
4698
5061
  {
4699
5062
  return;
4700
5063
  }
@@ -4704,7 +5067,7 @@ const LINK_RE = /<link([^>]*?>)/gi;
4704
5067
  const NONCE_RE = /nonce="[^"]+"/i;
4705
5068
  const SCRIPT_RE = /<script([^>]*?>)/gi;
4706
5069
  const STYLE_RE = /<style([^>]*?>)/gi;
4707
- const _PjpjGPMJatRuHR5kEnLDC3aJKf_fndQcsyoonhzfw = defineNitroPlugin((nitroApp) => {
5070
+ const _bnDr2rawczHHxYffyrIiQQAgQ2arBj7ot1j1Q38bV74 = defineNitroPlugin((nitroApp) => {
4708
5071
  nitroApp.hooks.hook("request", (event) => {
4709
5072
  if (event.context.security?.nonce) {
4710
5073
  return;
@@ -4750,7 +5113,7 @@ const _PjpjGPMJatRuHR5kEnLDC3aJKf_fndQcsyoonhzfw = defineNitroPlugin((nitroApp)
4750
5113
  });
4751
5114
  });
4752
5115
 
4753
- const _cIreCnsWTjJxKFyMbCP3eAdLGbO_5UkgEAreq1lDm4 = defineNitroPlugin((nitroApp) => {
5116
+ const _Bsob0YNmfepHfePUd2JvgJLMdWllVeL_4evfw7u1T4 = defineNitroPlugin((nitroApp) => {
4754
5117
  nitroApp.hooks.hook("render:html", (response, { event }) => {
4755
5118
  if (response.island) {
4756
5119
  return;
@@ -4798,13 +5161,13 @@ function updateCspVariables(csp, nonce, scriptHashes, styleHashes) {
4798
5161
  return generatedCsp;
4799
5162
  }
4800
5163
 
4801
- const _u8N3kBmnC2E6JO2NqBiGz81oaJYNnRzptNjzpfpiI1k = defineNitroPlugin((nitroApp) => {
5164
+ const _MFHW7RwBYpGi7ypYpUs4noT4MkmKhWp42NED3_tFw8 = defineNitroPlugin((nitroApp) => {
4802
5165
  {
4803
5166
  return;
4804
5167
  }
4805
5168
  });
4806
5169
 
4807
- const _UgEtMa7r8HiOHlCLxgmi9Frsxhe6Fe4ElqVHUYu_dU = defineNitroPlugin((nitroApp) => {
5170
+ const _WGoGltCkvjyszwqp4ncggAngTNT0LjmCJ07K9ejco = defineNitroPlugin((nitroApp) => {
4808
5171
  nitroApp.hooks.hook("render:response", (response, { event }) => {
4809
5172
  const rules = resolveSecurityRules(event);
4810
5173
  if (rules.enabled && rules.headers) {
@@ -4827,7 +5190,7 @@ const _UgEtMa7r8HiOHlCLxgmi9Frsxhe6Fe4ElqVHUYu_dU = defineNitroPlugin((nitroApp)
4827
5190
  });
4828
5191
  });
4829
5192
 
4830
- const _kN9zs2bOFCxUacg79NP36rpL3aW9h9TMl5vG2BVdMs = defineNitroPlugin((nitroApp) => {
5193
+ const _A415alzmzNvROQZ8AeeoPviXW2dqDT3QcR4fiPYIeD4 = defineNitroPlugin((nitroApp) => {
4831
5194
  nitroApp.hooks.hook("beforeResponse", (event) => {
4832
5195
  const rules = resolveSecurityRules(event);
4833
5196
  if (rules.enabled && rules.hidePoweredBy && !event.node.res.headersSent) {
@@ -4836,7 +5199,7 @@ const _kN9zs2bOFCxUacg79NP36rpL3aW9h9TMl5vG2BVdMs = defineNitroPlugin((nitroApp)
4836
5199
  });
4837
5200
  });
4838
5201
 
4839
- const _Kq6y7Sh0mf9lxAI6vTjjPDcADCtmFIfYIuD5XYzpqiM = defineNitroPlugin(async (nitroApp) => {
5202
+ const _zx7ORanOQesZSIooVG7NvNwboquqxPtY8WKNATdsroM = defineNitroPlugin(async (nitroApp) => {
4840
5203
  {
4841
5204
  const prerenderedHeaders = await useStorage("assets:nuxt-security").getItem("headers.json") || {};
4842
5205
  nitroApp.hooks.hook("beforeResponse", (event) => {
@@ -4852,22 +5215,22 @@ const _Kq6y7Sh0mf9lxAI6vTjjPDcADCtmFIfYIuD5XYzpqiM = defineNitroPlugin(async (ni
4852
5215
  });
4853
5216
 
4854
5217
  const plugins = [
4855
- _8rXJ5gi2jjm6ZLiNC6RxBUo8R7ynM5gptK8L0zbCFQ,
4856
- _C5dktXJXfxqFLCjiJpMI3mLwt62BBvXqsghDTYFkfd0,
5218
+ _BtrFLZJJX4guWuKOA_LeWxs2CgWrqhdN2KXJO0Oc_Y,
4857
5219
  _phrzZ3NodVihtWltdnRcquocEakKXP5smwHsyvnDKGI,
4858
- _YpZ2yIH6JowdSzwuKYJp9FsmSkR3hxRbNRBJp6GUT5E,
4859
- _erfli8nSouXxPAOx_3hBKRyfOfqP4HbAz72JiAOVNXU,
4860
- _spgBdUlETZLGHXUseqq5mr1o951fF8amn_jiBHpzi1o,
5220
+ _kdGf6XFSXDve3yeB4UoLLimvhaR3WS7IOBVNHP9Q8,
5221
+ _TdbS07hodDvxCZZuDol6xBiLqU3edXD7OlgwtHY2s,
5222
+ _LoVVNyMOiEEEXN0qXs2724FMLdNnKMllA3Qq3f7Cis,
5223
+ _RUfzQNDUEpmSa5oqfVEnKCUX54f3cwFkfKdkDjSLpc,
4861
5224
  _7V99JalBsmMpJ4Im6qwrWJC2toR4GkZuF5sU0ekK6TU,
4862
- _gSapWj_aXcOBDstJv2CcBjzMNihwELdV7AybchEoQ,
4863
- _5Gy3UyRtKUuVqd12unQmy0z1zc8hIzldB80_dzpQ23E,
4864
- _objLxw4c24OQwgusyFOCvIbmzoCJ2Pz4D8lhIZFY1JQ,
4865
- _PjpjGPMJatRuHR5kEnLDC3aJKf_fndQcsyoonhzfw,
4866
- _cIreCnsWTjJxKFyMbCP3eAdLGbO_5UkgEAreq1lDm4,
4867
- _u8N3kBmnC2E6JO2NqBiGz81oaJYNnRzptNjzpfpiI1k,
4868
- _UgEtMa7r8HiOHlCLxgmi9Frsxhe6Fe4ElqVHUYu_dU,
4869
- _kN9zs2bOFCxUacg79NP36rpL3aW9h9TMl5vG2BVdMs,
4870
- _Kq6y7Sh0mf9lxAI6vTjjPDcADCtmFIfYIuD5XYzpqiM
5225
+ _4Vm6PaMZNaFiyqlri4J_3If2IWln0vpRDlJmQDnf2jo,
5226
+ _7dOV7LP1d6k7UjPtnpR35H26iiEGkqk5GWbFJRIaFQ,
5227
+ _bcf5ErvzNaqmFXYH3amyw4lXQvxpHMitUC1M6Tloys,
5228
+ _bnDr2rawczHHxYffyrIiQQAgQ2arBj7ot1j1Q38bV74,
5229
+ _Bsob0YNmfepHfePUd2JvgJLMdWllVeL_4evfw7u1T4,
5230
+ _MFHW7RwBYpGi7ypYpUs4noT4MkmKhWp42NED3_tFw8,
5231
+ _WGoGltCkvjyszwqp4ncggAngTNT0LjmCJ07K9ejco,
5232
+ _A415alzmzNvROQZ8AeeoPviXW2dqDT3QcR4fiPYIeD4,
5233
+ _zx7ORanOQesZSIooVG7NvNwboquqxPtY8WKNATdsroM
4871
5234
  ];
4872
5235
 
4873
5236
  const assets = {};
@@ -4895,7 +5258,7 @@ function getAsset (id) {
4895
5258
 
4896
5259
  const METHODS = /* @__PURE__ */ new Set(["HEAD", "GET"]);
4897
5260
  const EncodingMap = { gzip: ".gz", br: ".br" };
4898
- const _8HJSn3 = eventHandler((event) => {
5261
+ const _R9eK6g = eventHandler((event) => {
4899
5262
  if (event.method && !METHODS.has(event.method)) {
4900
5263
  return;
4901
5264
  }
@@ -4959,14 +5322,323 @@ const _8HJSn3 = eventHandler((event) => {
4959
5322
  return readAsset(id);
4960
5323
  });
4961
5324
 
4962
- const defaultThrowErrorValue = { throwError: true };
4963
- const defaultSecurityConfig = (serverlUrl, strict) => {
4964
- const defaultConfig = {
4965
- strict,
4966
- headers: {
4967
- crossOriginResourcePolicy: "same-origin",
4968
- crossOriginOpenerPolicy: "same-origin",
4969
- crossOriginEmbedderPolicy: "unsafe-none" ,
5325
+ const VueResolver = (_, value) => {
5326
+ return isRef(value) ? toValue(value) : value;
5327
+ };
5328
+
5329
+ const headSymbol = "usehead";
5330
+ // @__NO_SIDE_EFFECTS__
5331
+ function vueInstall(head) {
5332
+ const plugin = {
5333
+ install(app) {
5334
+ app.config.globalProperties.$unhead = head;
5335
+ app.config.globalProperties.$head = head;
5336
+ app.provide(headSymbol, head);
5337
+ }
5338
+ };
5339
+ return plugin.install;
5340
+ }
5341
+
5342
+ // @__NO_SIDE_EFFECTS__
5343
+ function resolveUnrefHeadInput(input) {
5344
+ return walkResolver(input, VueResolver);
5345
+ }
5346
+
5347
+ // @__NO_SIDE_EFFECTS__
5348
+ function createHead(options = {}) {
5349
+ const head = createHead$1({
5350
+ ...options,
5351
+ propResolvers: [VueResolver]
5352
+ });
5353
+ head.install = vueInstall(head);
5354
+ return head;
5355
+ }
5356
+
5357
+ const unheadOptions = {
5358
+ disableDefaults: true,
5359
+ };
5360
+
5361
+ function createSSRContext(event) {
5362
+ const ssrContext = {
5363
+ url: event.path,
5364
+ event,
5365
+ runtimeConfig: useRuntimeConfig(event),
5366
+ noSSR: true,
5367
+ head: createHead(unheadOptions),
5368
+ error: false,
5369
+ nuxt: void 0,
5370
+ /* NuxtApp */
5371
+ payload: {},
5372
+ _payloadReducers: /* @__PURE__ */ Object.create(null),
5373
+ modules: /* @__PURE__ */ new Set()
5374
+ };
5375
+ return ssrContext;
5376
+ }
5377
+ function setSSRError(ssrContext, error) {
5378
+ ssrContext.error = true;
5379
+ ssrContext.payload = { error };
5380
+ ssrContext.url = error.url;
5381
+ }
5382
+
5383
+ const APP_ROOT_OPEN_TAG = `<${appRootTag}${propsToString(appRootAttrs)}>`;
5384
+ const APP_ROOT_CLOSE_TAG = `</${appRootTag}>`;
5385
+ const getServerEntry = () => Promise.resolve().then(function () { return server$1; }).then((r) => r.default || r);
5386
+ const getClientManifest = () => import('file://C:/Git/nuxt-ignis/core/.nuxt//dist/server/client.manifest.mjs').then((r) => r.default || r).then((r) => typeof r === "function" ? r() : r);
5387
+ const getSSRRenderer = lazyCachedFunction(async () => {
5388
+ const createSSRApp = await getServerEntry();
5389
+ if (!createSSRApp) {
5390
+ throw new Error("Server bundle is not available");
5391
+ }
5392
+ const precomputed = void 0 ;
5393
+ const renderer = createRenderer(createSSRApp, {
5394
+ precomputed,
5395
+ manifest: await getClientManifest() ,
5396
+ renderToString: renderToString$1,
5397
+ buildAssetsURL
5398
+ });
5399
+ async function renderToString$1(input, context) {
5400
+ const html = await renderToString(input, context);
5401
+ if (process.env.NUXT_VITE_NODE_OPTIONS) {
5402
+ renderer.rendererContext.updateManifest(await getClientManifest());
5403
+ }
5404
+ return APP_ROOT_OPEN_TAG + html + APP_ROOT_CLOSE_TAG;
5405
+ }
5406
+ return renderer;
5407
+ });
5408
+ const getSPARenderer = lazyCachedFunction(async () => {
5409
+ const precomputed = void 0 ;
5410
+ const spaTemplate = await Promise.resolve().then(function () { return _virtual__spaTemplate; }).then((r) => r.template).catch(() => "").then((r) => {
5411
+ {
5412
+ const APP_SPA_LOADER_OPEN_TAG = `<${appSpaLoaderTag}${propsToString(appSpaLoaderAttrs)}>`;
5413
+ const APP_SPA_LOADER_CLOSE_TAG = `</${appSpaLoaderTag}>`;
5414
+ const appTemplate = APP_ROOT_OPEN_TAG + APP_ROOT_CLOSE_TAG;
5415
+ const loaderTemplate = r ? APP_SPA_LOADER_OPEN_TAG + r + APP_SPA_LOADER_CLOSE_TAG : "";
5416
+ return appTemplate + loaderTemplate;
5417
+ }
5418
+ });
5419
+ const renderer = createRenderer(() => () => {
5420
+ }, {
5421
+ precomputed,
5422
+ manifest: await getClientManifest() ,
5423
+ renderToString: () => spaTemplate,
5424
+ buildAssetsURL
5425
+ });
5426
+ const result = await renderer.renderToString({});
5427
+ const renderToString = (ssrContext) => {
5428
+ const config = useRuntimeConfig(ssrContext.event);
5429
+ ssrContext.modules ||= /* @__PURE__ */ new Set();
5430
+ ssrContext.payload.serverRendered = false;
5431
+ ssrContext.config = {
5432
+ public: config.public,
5433
+ app: config.app
5434
+ };
5435
+ return Promise.resolve(result);
5436
+ };
5437
+ return {
5438
+ rendererContext: renderer.rendererContext,
5439
+ renderToString
5440
+ };
5441
+ });
5442
+ function lazyCachedFunction(fn) {
5443
+ let res = null;
5444
+ return () => {
5445
+ if (res === null) {
5446
+ res = fn().catch((err) => {
5447
+ res = null;
5448
+ throw err;
5449
+ });
5450
+ }
5451
+ return res;
5452
+ };
5453
+ }
5454
+ function getRenderer(ssrContext) {
5455
+ return getSPARenderer() ;
5456
+ }
5457
+ const getSSRStyles = lazyCachedFunction(() => Promise.resolve().then(function () { return styles$1; }).then((r) => r.default || r));
5458
+
5459
+ async function renderInlineStyles(usedModules) {
5460
+ const styleMap = await getSSRStyles();
5461
+ const inlinedStyles = /* @__PURE__ */ new Set();
5462
+ for (const mod of usedModules) {
5463
+ if (mod in styleMap && styleMap[mod]) {
5464
+ for (const style of await styleMap[mod]()) {
5465
+ inlinedStyles.add(style);
5466
+ }
5467
+ }
5468
+ }
5469
+ return Array.from(inlinedStyles).map((style) => ({ innerHTML: style }));
5470
+ }
5471
+
5472
+ const ROOT_NODE_REGEX = new RegExp(`^<${appRootTag}[^>]*>([\\s\\S]*)<\\/${appRootTag}>$`);
5473
+ function getServerComponentHTML(body) {
5474
+ const match = body.match(ROOT_NODE_REGEX);
5475
+ return match?.[1] || body;
5476
+ }
5477
+ const SSR_SLOT_TELEPORT_MARKER = /^uid=([^;]*);slot=(.*)$/;
5478
+ const SSR_CLIENT_TELEPORT_MARKER = /^uid=([^;]*);client=(.*)$/;
5479
+ const SSR_CLIENT_SLOT_MARKER = /^island-slot=([^;]*);(.*)$/;
5480
+ function getSlotIslandResponse(ssrContext) {
5481
+ if (!ssrContext.islandContext || !Object.keys(ssrContext.islandContext.slots).length) {
5482
+ return void 0;
5483
+ }
5484
+ const response = {};
5485
+ for (const [name, slot] of Object.entries(ssrContext.islandContext.slots)) {
5486
+ response[name] = {
5487
+ ...slot,
5488
+ fallback: ssrContext.teleports?.[`island-fallback=${name}`]
5489
+ };
5490
+ }
5491
+ return response;
5492
+ }
5493
+ function getClientIslandResponse(ssrContext) {
5494
+ if (!ssrContext.islandContext || !Object.keys(ssrContext.islandContext.components).length) {
5495
+ return void 0;
5496
+ }
5497
+ const response = {};
5498
+ for (const [clientUid, component] of Object.entries(ssrContext.islandContext.components)) {
5499
+ const html = ssrContext.teleports?.[clientUid]?.replaceAll("<!--teleport start anchor-->", "") || "";
5500
+ response[clientUid] = {
5501
+ ...component,
5502
+ html,
5503
+ slots: getComponentSlotTeleport(clientUid, ssrContext.teleports ?? {})
5504
+ };
5505
+ }
5506
+ return response;
5507
+ }
5508
+ function getComponentSlotTeleport(clientUid, teleports) {
5509
+ const entries = Object.entries(teleports);
5510
+ const slots = {};
5511
+ for (const [key, value] of entries) {
5512
+ const match = key.match(SSR_CLIENT_SLOT_MARKER);
5513
+ if (match) {
5514
+ const [, id, slot] = match;
5515
+ if (!slot || clientUid !== id) {
5516
+ continue;
5517
+ }
5518
+ slots[slot] = value;
5519
+ }
5520
+ }
5521
+ return slots;
5522
+ }
5523
+ function replaceIslandTeleports(ssrContext, html) {
5524
+ const { teleports, islandContext } = ssrContext;
5525
+ if (islandContext || !teleports) {
5526
+ return html;
5527
+ }
5528
+ for (const key in teleports) {
5529
+ const matchClientComp = key.match(SSR_CLIENT_TELEPORT_MARKER);
5530
+ if (matchClientComp) {
5531
+ const [, uid, clientId] = matchClientComp;
5532
+ if (!uid || !clientId) {
5533
+ continue;
5534
+ }
5535
+ html = html.replace(new RegExp(` data-island-uid="${uid}" data-island-component="${clientId}"[^>]*>`), (full) => {
5536
+ return full + teleports[key];
5537
+ });
5538
+ continue;
5539
+ }
5540
+ const matchSlot = key.match(SSR_SLOT_TELEPORT_MARKER);
5541
+ if (matchSlot) {
5542
+ const [, uid, slot] = matchSlot;
5543
+ if (!uid || !slot) {
5544
+ continue;
5545
+ }
5546
+ html = html.replace(new RegExp(` data-island-uid="${uid}" data-island-slot="${slot}"[^>]*>`), (full) => {
5547
+ return full + teleports[key];
5548
+ });
5549
+ }
5550
+ }
5551
+ return html;
5552
+ }
5553
+
5554
+ const ISLAND_SUFFIX_RE = /\.json(?:\?.*)?$/;
5555
+ const _SxA8c9 = defineEventHandler(async (event) => {
5556
+ const nitroApp = useNitroApp();
5557
+ setResponseHeaders(event, {
5558
+ "content-type": "application/json;charset=utf-8",
5559
+ "x-powered-by": "Nuxt"
5560
+ });
5561
+ const islandContext = await getIslandContext(event);
5562
+ const ssrContext = {
5563
+ ...createSSRContext(event),
5564
+ islandContext,
5565
+ noSSR: false,
5566
+ url: islandContext.url
5567
+ };
5568
+ const renderer = await getSSRRenderer();
5569
+ const renderResult = await renderer.renderToString(ssrContext).catch(async (err) => {
5570
+ await ssrContext.nuxt?.hooks.callHook("app:error", err);
5571
+ throw err;
5572
+ });
5573
+ if (ssrContext.payload?.error) {
5574
+ throw ssrContext.payload.error;
5575
+ }
5576
+ const inlinedStyles = await renderInlineStyles(ssrContext.modules ?? []);
5577
+ await ssrContext.nuxt?.hooks.callHook("app:rendered", { ssrContext, renderResult });
5578
+ if (inlinedStyles.length) {
5579
+ ssrContext.head.push({ style: inlinedStyles });
5580
+ }
5581
+ {
5582
+ const { styles } = getRequestDependencies(ssrContext, renderer.rendererContext);
5583
+ const link = [];
5584
+ for (const resource of Object.values(styles)) {
5585
+ if ("inline" in getQuery(resource.file)) {
5586
+ continue;
5587
+ }
5588
+ if (resource.file.includes("scoped") && !resource.file.includes("pages/")) {
5589
+ link.push({ rel: "stylesheet", href: renderer.rendererContext.buildAssetsURL(resource.file), crossorigin: "" });
5590
+ }
5591
+ }
5592
+ if (link.length) {
5593
+ ssrContext.head.push({ link }, { mode: "server" });
5594
+ }
5595
+ }
5596
+ const islandHead = {};
5597
+ for (const entry of ssrContext.head.entries.values()) {
5598
+ for (const [key, value] of Object.entries(resolveUnrefHeadInput(entry.input))) {
5599
+ const currentValue = islandHead[key];
5600
+ if (Array.isArray(currentValue)) {
5601
+ currentValue.push(...value);
5602
+ }
5603
+ islandHead[key] = value;
5604
+ }
5605
+ }
5606
+ const islandResponse = {
5607
+ id: islandContext.id,
5608
+ head: islandHead,
5609
+ html: getServerComponentHTML(renderResult.html),
5610
+ components: getClientIslandResponse(ssrContext),
5611
+ slots: getSlotIslandResponse(ssrContext)
5612
+ };
5613
+ await nitroApp.hooks.callHook("render:island", islandResponse, { event, islandContext });
5614
+ return islandResponse;
5615
+ });
5616
+ async function getIslandContext(event) {
5617
+ let url = event.path || "";
5618
+ const componentParts = url.substring("/__nuxt_island".length + 1).replace(ISLAND_SUFFIX_RE, "").split("_");
5619
+ const hashId = componentParts.length > 1 ? componentParts.pop() : void 0;
5620
+ const componentName = componentParts.join("_");
5621
+ const context = event.method === "GET" ? getQuery$1(event) : await readBody(event);
5622
+ const ctx = {
5623
+ url: "/",
5624
+ ...context,
5625
+ id: hashId,
5626
+ name: componentName,
5627
+ props: destr$1(context.props) || {},
5628
+ slots: {},
5629
+ components: {}
5630
+ };
5631
+ return ctx;
5632
+ }
5633
+
5634
+ const defaultThrowErrorValue = { throwError: true };
5635
+ const defaultSecurityConfig = (serverlUrl, strict) => {
5636
+ const defaultConfig = {
5637
+ strict,
5638
+ headers: {
5639
+ crossOriginResourcePolicy: "same-origin",
5640
+ crossOriginOpenerPolicy: "same-origin",
5641
+ crossOriginEmbedderPolicy: "unsafe-none" ,
4970
5642
  contentSecurityPolicy: {
4971
5643
  "base-uri": ["'none'"],
4972
5644
  "font-src": ["'self'", "https:", "data:"],
@@ -5052,7 +5724,7 @@ const defaultSecurityConfig = (serverlUrl, strict) => {
5052
5724
 
5053
5725
  const FILE_UPLOAD_HEADER = "multipart/form-data";
5054
5726
  const defaultSizeLimiter = defaultSecurityConfig("").requestSizeLimiter;
5055
- const _SIzUZO = defineEventHandler((event) => {
5727
+ const _0WQsJo = defineEventHandler((event) => {
5056
5728
  const rules = resolveSecurityRules(event);
5057
5729
  if (rules.enabled && rules.requestSizeLimiter) {
5058
5730
  const requestSizeLimiter = defu(
@@ -5078,7 +5750,7 @@ const _SIzUZO = defineEventHandler((event) => {
5078
5750
  }
5079
5751
  });
5080
5752
 
5081
- const _BvB659 = defineEventHandler((event) => {
5753
+ const _fTCRwx = defineEventHandler((event) => {
5082
5754
  const rules = resolveSecurityRules(event);
5083
5755
  if (rules.enabled && rules.corsHandler) {
5084
5756
  const { corsHandler } = rules;
@@ -5103,7 +5775,7 @@ const _BvB659 = defineEventHandler((event) => {
5103
5775
  }
5104
5776
  });
5105
5777
 
5106
- const _CWLHQE = defineEventHandler((event) => {
5778
+ const _XNXCfD = defineEventHandler((event) => {
5107
5779
  const rules = resolveSecurityRules(event);
5108
5780
  if (rules.enabled && rules.allowedMethodsRestricter) {
5109
5781
  const { allowedMethodsRestricter } = rules;
@@ -5123,7 +5795,7 @@ const _CWLHQE = defineEventHandler((event) => {
5123
5795
 
5124
5796
  const storage$1 = useStorage("#rate-limiter-storage");
5125
5797
  const defaultRateLimiter = defaultSecurityConfig("").rateLimiter;
5126
- const _YQqgeV = defineEventHandler(async (event) => {
5798
+ const _MMBZXf = defineEventHandler(async (event) => {
5127
5799
  const rules = resolveSecurityRules(event);
5128
5800
  const route = resolveSecurityRoute(event);
5129
5801
  if (rules.enabled && rules.rateLimiter) {
@@ -5186,7 +5858,7 @@ function getIP(event, customIpHeader) {
5186
5858
  return ip;
5187
5859
  }
5188
5860
 
5189
- const _4kfKT2 = defineEventHandler(async (event) => {
5861
+ const _6UgyB1 = defineEventHandler(async (event) => {
5190
5862
  const rules = resolveSecurityRules(event);
5191
5863
  if (rules.enabled && rules.xssValidator) {
5192
5864
  const filterOpt = {
@@ -5230,7 +5902,7 @@ const _4kfKT2 = defineEventHandler(async (event) => {
5230
5902
 
5231
5903
  const warnOnceSet = /* @__PURE__ */ new Set();
5232
5904
  const DEFAULT_ENDPOINT = "https://api.iconify.design";
5233
- const _idskfX = defineCachedEventHandler(async (event) => {
5905
+ const _HWrzav = defineCachedEventHandler(async (event) => {
5234
5906
  const url = getRequestURL(event);
5235
5907
  if (!url)
5236
5908
  return createError({ status: 400, message: "Invalid icon request" });
@@ -5392,7 +6064,7 @@ const _DkeHIc = eventHandler(async (event) => {
5392
6064
  return data;
5393
6065
  });
5394
6066
 
5395
- const _4yeSj_ = eventHandler(async (e) => {
6067
+ const _HNUtXX = eventHandler(async (e) => {
5396
6068
  if (e.context._initedSiteConfig)
5397
6069
  return;
5398
6070
  const runtimeConfig = useRuntimeConfig(e);
@@ -5443,7 +6115,7 @@ const _4yeSj_ = eventHandler(async (e) => {
5443
6115
  e.context._initedSiteConfig = true;
5444
6116
  });
5445
6117
 
5446
- const _sdUr1X = eventHandler(async (e) => {
6118
+ const _NLXa3j = eventHandler(async (e) => {
5447
6119
  const siteConfig = getSiteConfig(e);
5448
6120
  const nitroOrigin = getNitroOrigin(e);
5449
6121
  const runtimeConfig = useRuntimeConfig(e);
@@ -5457,7 +6129,7 @@ const _sdUr1X = eventHandler(async (e) => {
5457
6129
  };
5458
6130
  });
5459
6131
 
5460
- const _JROMdU = defineEventHandler(async (e) => {
6132
+ const _WLd7Ho = defineEventHandler(async (e) => {
5461
6133
  const nitroApp = useNitroApp();
5462
6134
  const { indexable, hints } = getSiteRobotConfig(e);
5463
6135
  const { credits, isNuxtContentV2, cacheControl } = useRuntimeConfigNuxtRobots(e);
@@ -5516,7 +6188,7 @@ const _JROMdU = defineEventHandler(async (e) => {
5516
6188
  return hookCtx.robotsTxt;
5517
6189
  });
5518
6190
 
5519
- const _1uGGz3 = defineEventHandler(async (e) => {
6191
+ const _mUSd9H = defineEventHandler(async (e) => {
5520
6192
  if (e.path === "/robots.txt" || e.path.startsWith("/__") || e.path.startsWith("/api") || e.path.startsWith("/_nuxt"))
5521
6193
  return;
5522
6194
  const nuxtRobotsConfig = useRuntimeConfigNuxtRobots(e);
@@ -5530,7 +6202,7 @@ const _1uGGz3 = defineEventHandler(async (e) => {
5530
6202
  }
5531
6203
  });
5532
6204
 
5533
- const _2Dwz_N = defineEventHandler(async (e) => {
6205
+ const _2pyPvz = defineEventHandler(async (e) => {
5534
6206
  const runtimeConfig = useRuntimeConfigNuxtRobots(e);
5535
6207
  const { indexable, hints } = getSiteRobotConfig(e);
5536
6208
  const siteConfig = useSiteConfig(e);
@@ -5550,7 +6222,7 @@ const _2Dwz_N = defineEventHandler(async (e) => {
5550
6222
  };
5551
6223
  });
5552
6224
 
5553
- const _AqiY5O = defineEventHandler(async (e) => {
6225
+ const _ABgk2N = defineEventHandler(async (e) => {
5554
6226
  const query = getQuery$1(e);
5555
6227
  const path = query.path;
5556
6228
  delete query.path;
@@ -5574,7 +6246,7 @@ const _AqiY5O = defineEventHandler(async (e) => {
5574
6246
  };
5575
6247
  });
5576
6248
 
5577
- const _UMjgla = defineEventHandler(async (e) => {
6249
+ const _kdhSXr = defineEventHandler(async (e) => {
5578
6250
  const collections = [];
5579
6251
  for (const collection in contentManifest) {
5580
6252
  if (contentManifest[collection].fields.sitemap) {
@@ -6021,7 +6693,7 @@ async function parseSitemapXml(xml) {
6021
6693
  if (!xml) {
6022
6694
  throw new Error("Empty XML input provided");
6023
6695
  }
6024
- const { XMLParser } = await import('file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/fast-xml-parser@5.2.5/node_modules/fast-xml-parser/src/fxp.js');
6696
+ const { XMLParser } = await import('file://C:/Git/nuxt-ignis/core/node_modules/.pnpm/fast-xml-parser@5.3.0/node_modules/fast-xml-parser/src/fxp.js');
6025
6697
  const parser = new XMLParser({
6026
6698
  isArray: (tagName) => ["url", "image", "video", "link", "tag", "price"].includes(tagName),
6027
6699
  removeNSPrefix: true,
@@ -6194,7 +6866,7 @@ async function resolveSitemapSources(sources, event) {
6194
6866
  )).flat();
6195
6867
  }
6196
6868
 
6197
- const _FNFU63 = defineEventHandler(async (e) => {
6869
+ const _dK0h0J = defineEventHandler(async (e) => {
6198
6870
  const _runtimeConfig = useSitemapRuntimeConfig();
6199
6871
  const { sitemaps: _sitemaps } = _runtimeConfig;
6200
6872
  const runtimeConfig = { ..._runtimeConfig };
@@ -6216,7 +6888,7 @@ const _FNFU63 = defineEventHandler(async (e) => {
6216
6888
  };
6217
6889
  });
6218
6890
 
6219
- const _NXU9EA = defineEventHandler(async (e) => {
6891
+ const _KL_OxC = defineEventHandler(async (e) => {
6220
6892
  const fixPath = createSitePathResolver(e, { absolute: false, withBase: true });
6221
6893
  const { sitemapName: fallbackSitemapName, cacheMaxAgeSeconds, version, xslColumns, xslTips } = useSitemapRuntimeConfig();
6222
6894
  setHeader(e, "Content-Type", "application/xslt+xml");
@@ -7223,7 +7895,7 @@ async function createSitemap(event, definition, runtimeConfig) {
7223
7895
  return xml;
7224
7896
  }
7225
7897
 
7226
- const _DaaVlT = defineEventHandler(async (e) => {
7898
+ const _ZZjWkS = defineEventHandler(async (e) => {
7227
7899
  const runtimeConfig = useSitemapRuntimeConfig();
7228
7900
  const { sitemaps } = runtimeConfig;
7229
7901
  if ("index" in sitemaps) {
@@ -7819,7 +8491,7 @@ function isInternalRoute(path) {
7819
8491
  const lastSegment = path.split("/").pop() || path;
7820
8492
  return lastSegment.includes(".") || path.startsWith("/__") || path.startsWith("@");
7821
8493
  }
7822
- const _1zkkVk = defineEventHandler(async (e) => {
8494
+ const _OhYEOR = defineEventHandler(async (e) => {
7823
8495
  const { tasks, ids, path } = await readBody(e);
7824
8496
  const runtimeConfig = useRuntimeConfig().public["nuxt-link-checker"] || {};
7825
8497
  const partialCtx = {
@@ -7858,520 +8530,214 @@ const _1zkkVk = defineEventHandler(async (e) => {
7858
8530
  resolve$3(runtimeConfig.rootDir, links.find((l) => l.file && l.link === path)?.file),
7859
8531
  ...paths.map((p) => {
7860
8532
  const [filepath] = p.split(":");
7861
- return filepath;
7862
- })
7863
- ].filter(Boolean);
7864
- if (!result.passes) {
7865
- result.sources = (await Promise.all(filePaths.map(async (filepath) => await generateFileLinkPreviews(filepath, link)))).filter((s) => s.previews.length);
7866
- result.diff = await Promise.all((result.sources || []).map(async ({ filepath }) => generateFileLinkDiff(filepath, link, result.fix)));
7867
- }
7868
- return result;
7869
- })
7870
- );
7871
- });
7872
-
7873
- const contentLinkProvider = async (e) => {
7874
- const collections = [];
7875
- for (const collection in contentManifest) {
7876
- if ("path" in contentManifest[collection].fields) {
7877
- collections.push(collection);
7878
- }
7879
- }
7880
- const contentList = [];
7881
- for (const collection of collections) {
7882
- contentList.push(queryCollection(e, collection).select("id", "path", "title").where("path", "IS NOT NULL").all());
7883
- }
7884
- const results = await Promise.all(contentList);
7885
- return results.flat().map((d) => {
7886
- return {
7887
- link: d.path,
7888
- title: d.title,
7889
- file: d.id
7890
- };
7891
- });
7892
- };
7893
-
7894
- const pagePaths = [
7895
- {
7896
- "title": "",
7897
- "link": "/"
7898
- },
7899
- {
7900
- "title": "",
7901
- "link": "/_ignis-info"
7902
- },
7903
- {
7904
- "title": "",
7905
- "link": "/_ignis-config"
7906
- },
7907
- {
7908
- "title": "",
7909
- "link": "/_ignis-welcome"
7910
- }
7911
- ];
7912
-
7913
- const _hzh2Z2 = defineCachedEventHandler(async (e) => {
7914
- const runtimeConfig = useRuntimeConfig().public["nuxt-link-checker"] || {};
7915
- const linkDb = [
7916
- ...pagePaths
7917
- ];
7918
- if (runtimeConfig.hasSitemapModule) {
7919
- const sitemapDebug = await $fetch("/__sitemap__/debug.json");
7920
- const entries = sitemapDebug.globalSources.map((source) => source.urls).flat();
7921
- linkDb.push(...entries.map((s) => ({ path: s.loc, title: "" })));
7922
- }
7923
- if (contentLinkProvider) {
7924
- const links = await contentLinkProvider(e);
7925
- linkDb.push(...links);
7926
- }
7927
- return linkDb;
7928
- }, {
7929
- maxAge: 10
7930
- // avoid thrashing
7931
- });
7932
-
7933
- const _ayesxE = defineEventHandler(async (e) => {
7934
- return {
7935
- runtimeConfig: useRuntimeConfig(e).public["nuxt-link-checker"]
7936
- };
7937
- });
7938
-
7939
- const fileMapping = {};
7940
-
7941
- const _mC0LgX = defineEventHandler(async (e) => {
7942
- const path = parseURL(e.path).pathname;
7943
- if (fileMapping[path]) {
7944
- if (path.endsWith(".svg"))
7945
- setHeader(e, "Content-Type", "image/svg+xml");
7946
- else if (path.endsWith(".png"))
7947
- setHeader(e, "Content-Type", "image/png");
7948
- else if (path.endsWith(".jpg") || path.endsWith(".jpeg"))
7949
- setHeader(e, "Content-Type", "image/jpeg");
7950
- return fs.readFileSync(fileMapping[path]);
7951
- }
7952
- });
7953
-
7954
- const storage = prefixStorage(useStorage(), "i18n");
7955
- function cachedFunctionI18n(fn, opts) {
7956
- opts = { maxAge: 1, ...opts };
7957
- const pending = {};
7958
- async function get(key, resolver) {
7959
- const isPending = pending[key];
7960
- if (!isPending) {
7961
- pending[key] = Promise.resolve(resolver());
7962
- }
7963
- try {
7964
- return await pending[key];
7965
- } finally {
7966
- delete pending[key];
7967
- }
7968
- }
7969
- return async (...args) => {
7970
- const key = [opts.name, opts.getKey(...args)].join(":").replace(/:\/$/, ":index");
7971
- const maxAge = opts.maxAge ?? 1;
7972
- const isCacheable = !opts.shouldBypassCache(...args) && maxAge >= 0;
7973
- const cache = isCacheable && await storage.getItemRaw(key);
7974
- if (!cache || cache.ttl < Date.now()) {
7975
- pending[key] = Promise.resolve(fn(...args));
7976
- const value = await get(key, () => fn(...args));
7977
- if (isCacheable) {
7978
- await storage.setItemRaw(key, { ttl: Date.now() + maxAge * 1e3, value, mtime: Date.now() });
7979
- }
7980
- return value;
7981
- }
7982
- return cache.value;
7983
- };
7984
- }
7985
-
7986
- const _getMessages = async (locale) => {
7987
- return { [locale]: await getLocaleMessagesMerged(locale, localeLoaders[locale]) };
7988
- };
7989
- cachedFunctionI18n(_getMessages, {
7990
- name: "messages",
7991
- maxAge: -1 ,
7992
- getKey: (locale) => locale,
7993
- shouldBypassCache: (locale) => !isLocaleCacheable(locale)
7994
- });
7995
- const getMessages = _getMessages ;
7996
- const _getMergedMessages = async (locale, fallbackLocales) => {
7997
- const merged = {};
7998
- try {
7999
- if (fallbackLocales.length > 0) {
8000
- const messages = await Promise.all(fallbackLocales.map(getMessages));
8001
- for (const message2 of messages) {
8002
- deepCopy(message2, merged);
8003
- }
8004
- }
8005
- const message = await getMessages(locale);
8006
- deepCopy(message, merged);
8007
- return merged;
8008
- } catch (e) {
8009
- throw new Error("Failed to merge messages: " + e.message);
8010
- }
8011
- };
8012
- const getMergedMessages = cachedFunctionI18n(_getMergedMessages, {
8013
- name: "merged-single",
8014
- maxAge: -1 ,
8015
- getKey: (locale, fallbackLocales) => `${locale}-[${[...new Set(fallbackLocales)].sort().join("-")}]`,
8016
- shouldBypassCache: (locale, fallbackLocales) => !isLocaleWithFallbacksCacheable(locale, fallbackLocales)
8017
- });
8018
- const _getAllMergedMessages = async (locales) => {
8019
- const merged = {};
8020
- try {
8021
- const messages = await Promise.all(locales.map(getMessages));
8022
- for (const message of messages) {
8023
- deepCopy(message, merged);
8024
- }
8025
- return merged;
8026
- } catch (e) {
8027
- throw new Error("Failed to merge messages: " + e.message);
8028
- }
8029
- };
8030
- cachedFunctionI18n(_getAllMergedMessages, {
8031
- name: "merged-all",
8032
- maxAge: -1 ,
8033
- getKey: (locales) => locales.join("-"),
8034
- shouldBypassCache: (locales) => !locales.every((locale) => isLocaleCacheable(locale))
8533
+ return filepath;
8534
+ })
8535
+ ].filter(Boolean);
8536
+ if (!result.passes) {
8537
+ result.sources = (await Promise.all(filePaths.map(async (filepath) => await generateFileLinkPreviews(filepath, link)))).filter((s) => s.previews.length);
8538
+ result.diff = await Promise.all((result.sources || []).map(async ({ filepath }) => generateFileLinkDiff(filepath, link, result.fix)));
8539
+ }
8540
+ return result;
8541
+ })
8542
+ );
8035
8543
  });
8036
8544
 
8037
- const _messagesHandler = defineEventHandler(async (event) => {
8038
- const locale = getRouterParam(event, "locale");
8039
- if (!locale) {
8040
- throw createError({ status: 400, message: "Locale not specified." });
8041
- }
8042
- const ctx = useI18nContext(event);
8043
- if (ctx.localeConfigs && locale in ctx.localeConfigs === false) {
8044
- throw createError({ status: 404, message: `Locale '${locale}' not found.` });
8545
+ const contentLinkProvider = async (e) => {
8546
+ const collections = [];
8547
+ for (const collection in contentManifest) {
8548
+ if ("path" in contentManifest[collection].fields) {
8549
+ collections.push(collection);
8550
+ }
8045
8551
  }
8046
- const messages = await getMergedMessages(locale, ctx.localeConfigs?.[locale]?.fallbacks ?? []);
8047
- deepCopy(messages, ctx.messages);
8048
- return ctx.messages;
8049
- });
8050
- const _cachedMessageLoader = defineCachedFunction(_messagesHandler, {
8051
- name: "i18n:messages-internal",
8052
- maxAge: -1 ,
8053
- getKey: (event) => [getRouterParam(event, "locale") ?? "null", getRouterParam(event, "hash") ?? "null"].join("-"),
8054
- shouldBypassCache(event) {
8055
- const locale = getRouterParam(event, "locale");
8056
- if (locale == null) return false;
8057
- return !useI18nContext(event).localeConfigs?.[locale]?.cacheable;
8552
+ const contentList = [];
8553
+ for (const collection of collections) {
8554
+ contentList.push(queryCollection(e, collection).select("id", "path", "title").where("path", "IS NOT NULL").all());
8058
8555
  }
8059
- });
8060
- defineCachedEventHandler(_cachedMessageLoader, {
8061
- name: "i18n:messages",
8062
- maxAge: -1 ,
8063
- swr: false,
8064
- getKey: (event) => [getRouterParam(event, "locale") ?? "null", getRouterParam(event, "hash") ?? "null"].join("-")
8065
- });
8066
- const _WlSuKH = _messagesHandler ;
8067
-
8068
- const VueResolver = (_, value) => {
8069
- return isRef(value) ? toValue(value) : value;
8070
- };
8071
-
8072
- const headSymbol = "usehead";
8073
- function vueInstall(head) {
8074
- const plugin = {
8075
- install(app) {
8076
- app.config.globalProperties.$unhead = head;
8077
- app.config.globalProperties.$head = head;
8078
- app.provide(headSymbol, head);
8079
- }
8080
- };
8081
- return plugin.install;
8082
- }
8083
-
8084
- function resolveUnrefHeadInput(input) {
8085
- return walkResolver(input, VueResolver);
8086
- }
8087
-
8088
- function createHead(options = {}) {
8089
- const head = createHead$1({
8090
- ...options,
8091
- propResolvers: [VueResolver]
8556
+ const results = await Promise.all(contentList);
8557
+ return results.flat().map((d) => {
8558
+ return {
8559
+ link: d.path,
8560
+ title: d.title,
8561
+ file: d.id
8562
+ };
8092
8563
  });
8093
- head.install = vueInstall(head);
8094
- return head;
8095
- }
8096
-
8097
- const unheadOptions = {
8098
- disableDefaults: true,
8099
8564
  };
8100
8565
 
8101
- function createSSRContext(event) {
8102
- const ssrContext = {
8103
- url: event.path,
8104
- event,
8105
- runtimeConfig: useRuntimeConfig(event),
8106
- noSSR: true,
8107
- head: createHead(unheadOptions),
8108
- error: false,
8109
- nuxt: void 0,
8110
- /* NuxtApp */
8111
- payload: {},
8112
- _payloadReducers: /* @__PURE__ */ Object.create(null),
8113
- modules: /* @__PURE__ */ new Set()
8114
- };
8115
- return ssrContext;
8116
- }
8117
- function setSSRError(ssrContext, error) {
8118
- ssrContext.error = true;
8119
- ssrContext.payload = { error };
8120
- ssrContext.url = error.url;
8121
- }
8122
-
8123
- const APP_ROOT_OPEN_TAG = `<${appRootTag}${propsToString(appRootAttrs)}>`;
8124
- const APP_ROOT_CLOSE_TAG = `</${appRootTag}>`;
8125
- const getServerEntry = () => Promise.resolve().then(function () { return server$1; }).then((r) => r.default || r);
8126
- const getClientManifest = () => import('file://C:/Git/nuxt-ignis/core/.nuxt//dist/server/client.manifest.mjs').then((r) => r.default || r).then((r) => typeof r === "function" ? r() : r);
8127
- const getSSRRenderer = lazyCachedFunction(async () => {
8128
- const manifest = await getClientManifest();
8129
- if (!manifest) {
8130
- throw new Error("client.manifest is not available");
8566
+ const pagePaths = [
8567
+ {
8568
+ "title": "",
8569
+ "link": "/"
8570
+ },
8571
+ {
8572
+ "title": "",
8573
+ "link": "/_ignis-info"
8574
+ },
8575
+ {
8576
+ "title": "",
8577
+ "link": "/_ignis-config"
8578
+ },
8579
+ {
8580
+ "title": "",
8581
+ "link": "/_ignis-welcome"
8131
8582
  }
8132
- const createSSRApp = await getServerEntry();
8133
- if (!createSSRApp) {
8134
- throw new Error("Server bundle is not available");
8583
+ ];
8584
+
8585
+ const _rTmegy = defineCachedEventHandler(async (e) => {
8586
+ const runtimeConfig = useRuntimeConfig().public["nuxt-link-checker"] || {};
8587
+ const linkDb = [
8588
+ ...pagePaths
8589
+ ];
8590
+ if (runtimeConfig.hasSitemapModule) {
8591
+ const sitemapDebug = await $fetch("/__sitemap__/debug.json");
8592
+ const entries = sitemapDebug.globalSources.map((source) => source.urls).flat();
8593
+ linkDb.push(...entries.map((s) => ({ path: s.loc, title: "" })));
8135
8594
  }
8136
- const options = {
8137
- manifest,
8138
- renderToString: renderToString$1,
8139
- buildAssetsURL
8140
- };
8141
- const renderer = createRenderer(createSSRApp, options);
8142
- async function renderToString$1(input, context) {
8143
- const html = await renderToString(input, context);
8144
- if (process.env.NUXT_VITE_NODE_OPTIONS) {
8145
- renderer.rendererContext.updateManifest(await getClientManifest());
8146
- }
8147
- return APP_ROOT_OPEN_TAG + html + APP_ROOT_CLOSE_TAG;
8595
+ if (contentLinkProvider) {
8596
+ const links = await contentLinkProvider(e);
8597
+ linkDb.push(...links);
8148
8598
  }
8149
- return renderer;
8599
+ return linkDb;
8600
+ }, {
8601
+ maxAge: 10
8602
+ // avoid thrashing
8150
8603
  });
8151
- const getSPARenderer = lazyCachedFunction(async () => {
8152
- const manifest = await getClientManifest();
8153
- const spaTemplate = await Promise.resolve().then(function () { return _virtual__spaTemplate; }).then((r) => r.template).catch(() => "").then((r) => {
8154
- {
8155
- const APP_SPA_LOADER_OPEN_TAG = `<${appSpaLoaderTag}${propsToString(appSpaLoaderAttrs)}>`;
8156
- const APP_SPA_LOADER_CLOSE_TAG = `</${appSpaLoaderTag}>`;
8157
- const appTemplate = APP_ROOT_OPEN_TAG + APP_ROOT_CLOSE_TAG;
8158
- const loaderTemplate = r ? APP_SPA_LOADER_OPEN_TAG + r + APP_SPA_LOADER_CLOSE_TAG : "";
8159
- return appTemplate + loaderTemplate;
8160
- }
8161
- });
8162
- const options = {
8163
- manifest,
8164
- renderToString: () => spaTemplate,
8165
- buildAssetsURL
8166
- };
8167
- const renderer = createRenderer(() => () => {
8168
- }, options);
8169
- const result = await renderer.renderToString({});
8170
- const renderToString = (ssrContext) => {
8171
- const config = useRuntimeConfig(ssrContext.event);
8172
- ssrContext.modules ||= /* @__PURE__ */ new Set();
8173
- ssrContext.payload.serverRendered = false;
8174
- ssrContext.config = {
8175
- public: config.public,
8176
- app: config.app
8177
- };
8178
- return Promise.resolve(result);
8179
- };
8604
+
8605
+ const _NU4oGC = defineEventHandler(async (e) => {
8180
8606
  return {
8181
- rendererContext: renderer.rendererContext,
8182
- renderToString
8607
+ runtimeConfig: useRuntimeConfig(e).public["nuxt-link-checker"]
8183
8608
  };
8184
8609
  });
8185
- function lazyCachedFunction(fn) {
8186
- let res = null;
8187
- return () => {
8188
- if (res === null) {
8189
- res = fn().catch((err) => {
8190
- res = null;
8191
- throw err;
8192
- });
8193
- }
8194
- return res;
8195
- };
8196
- }
8197
- function getRenderer(ssrContext) {
8198
- return getSPARenderer() ;
8199
- }
8200
- const getSSRStyles = lazyCachedFunction(() => Promise.resolve().then(function () { return styles$1; }).then((r) => r.default || r));
8201
8610
 
8202
- async function renderInlineStyles(usedModules) {
8203
- const styleMap = await getSSRStyles();
8204
- const inlinedStyles = /* @__PURE__ */ new Set();
8205
- for (const mod of usedModules) {
8206
- if (mod in styleMap && styleMap[mod]) {
8207
- for (const style of await styleMap[mod]()) {
8208
- inlinedStyles.add(style);
8209
- }
8210
- }
8211
- }
8212
- return Array.from(inlinedStyles).map((style) => ({ innerHTML: style }));
8213
- }
8611
+ const fileMapping = {};
8214
8612
 
8215
- const ROOT_NODE_REGEX = new RegExp(`^<${appRootTag}[^>]*>([\\s\\S]*)<\\/${appRootTag}>$`);
8216
- function getServerComponentHTML(body) {
8217
- const match = body.match(ROOT_NODE_REGEX);
8218
- return match?.[1] || body;
8219
- }
8220
- const SSR_SLOT_TELEPORT_MARKER = /^uid=([^;]*);slot=(.*)$/;
8221
- const SSR_CLIENT_TELEPORT_MARKER = /^uid=([^;]*);client=(.*)$/;
8222
- const SSR_CLIENT_SLOT_MARKER = /^island-slot=([^;]*);(.*)$/;
8223
- function getSlotIslandResponse(ssrContext) {
8224
- if (!ssrContext.islandContext || !Object.keys(ssrContext.islandContext.slots).length) {
8225
- return void 0;
8226
- }
8227
- const response = {};
8228
- for (const [name, slot] of Object.entries(ssrContext.islandContext.slots)) {
8229
- response[name] = {
8230
- ...slot,
8231
- fallback: ssrContext.teleports?.[`island-fallback=${name}`]
8232
- };
8233
- }
8234
- return response;
8235
- }
8236
- function getClientIslandResponse(ssrContext) {
8237
- if (!ssrContext.islandContext || !Object.keys(ssrContext.islandContext.components).length) {
8238
- return void 0;
8239
- }
8240
- const response = {};
8241
- for (const [clientUid, component] of Object.entries(ssrContext.islandContext.components)) {
8242
- const html = ssrContext.teleports?.[clientUid]?.replaceAll("<!--teleport start anchor-->", "") || "";
8243
- response[clientUid] = {
8244
- ...component,
8245
- html,
8246
- slots: getComponentSlotTeleport(clientUid, ssrContext.teleports ?? {})
8247
- };
8613
+ const _s5gHA6 = defineEventHandler(async (e) => {
8614
+ const path = parseURL(e.path).pathname;
8615
+ if (fileMapping[path]) {
8616
+ if (path.endsWith(".svg"))
8617
+ setHeader(e, "Content-Type", "image/svg+xml");
8618
+ else if (path.endsWith(".png"))
8619
+ setHeader(e, "Content-Type", "image/png");
8620
+ else if (path.endsWith(".jpg") || path.endsWith(".jpeg"))
8621
+ setHeader(e, "Content-Type", "image/jpeg");
8622
+ return fs.readFileSync(fileMapping[path]);
8248
8623
  }
8249
- return response;
8250
- }
8251
- function getComponentSlotTeleport(clientUid, teleports) {
8252
- const entries = Object.entries(teleports);
8253
- const slots = {};
8254
- for (const [key, value] of entries) {
8255
- const match = key.match(SSR_CLIENT_SLOT_MARKER);
8256
- if (match) {
8257
- const [, id, slot] = match;
8258
- if (!slot || clientUid !== id) {
8259
- continue;
8260
- }
8261
- slots[slot] = value;
8624
+ });
8625
+
8626
+ const storage = prefixStorage(useStorage(), "i18n");
8627
+ function cachedFunctionI18n(fn, opts) {
8628
+ opts = { maxAge: 1, ...opts };
8629
+ const pending = {};
8630
+ async function get(key, resolver) {
8631
+ const isPending = pending[key];
8632
+ if (!isPending) {
8633
+ pending[key] = Promise.resolve(resolver());
8262
8634
  }
8263
- }
8264
- return slots;
8265
- }
8266
- function replaceIslandTeleports(ssrContext, html) {
8267
- const { teleports, islandContext } = ssrContext;
8268
- if (islandContext || !teleports) {
8269
- return html;
8270
- }
8271
- for (const key in teleports) {
8272
- const matchClientComp = key.match(SSR_CLIENT_TELEPORT_MARKER);
8273
- if (matchClientComp) {
8274
- const [, uid, clientId] = matchClientComp;
8275
- if (!uid || !clientId) {
8276
- continue;
8277
- }
8278
- html = html.replace(new RegExp(` data-island-uid="${uid}" data-island-component="${clientId}"[^>]*>`), (full) => {
8279
- return full + teleports[key];
8280
- });
8281
- continue;
8635
+ try {
8636
+ return await pending[key];
8637
+ } finally {
8638
+ delete pending[key];
8282
8639
  }
8283
- const matchSlot = key.match(SSR_SLOT_TELEPORT_MARKER);
8284
- if (matchSlot) {
8285
- const [, uid, slot] = matchSlot;
8286
- if (!uid || !slot) {
8287
- continue;
8640
+ }
8641
+ return async (...args) => {
8642
+ const key = [opts.name, opts.getKey(...args)].join(":").replace(/:\/$/, ":index");
8643
+ const maxAge = opts.maxAge ?? 1;
8644
+ const isCacheable = !opts.shouldBypassCache(...args) && maxAge >= 0;
8645
+ const cache = isCacheable && await storage.getItemRaw(key);
8646
+ if (!cache || cache.ttl < Date.now()) {
8647
+ pending[key] = Promise.resolve(fn(...args));
8648
+ const value = await get(key, () => fn(...args));
8649
+ if (isCacheable) {
8650
+ await storage.setItemRaw(key, { ttl: Date.now() + maxAge * 1e3, value, mtime: Date.now() });
8288
8651
  }
8289
- html = html.replace(new RegExp(` data-island-uid="${uid}" data-island-slot="${slot}"[^>]*>`), (full) => {
8290
- return full + teleports[key];
8291
- });
8652
+ return value;
8292
8653
  }
8293
- }
8294
- return html;
8654
+ return cache.value;
8655
+ };
8295
8656
  }
8296
8657
 
8297
- const ISLAND_SUFFIX_RE = /\.json(?:\?.*)?$/;
8298
- const _SxA8c9 = defineEventHandler(async (event) => {
8299
- const nitroApp = useNitroApp();
8300
- setResponseHeaders(event, {
8301
- "content-type": "application/json;charset=utf-8",
8302
- "x-powered-by": "Nuxt"
8303
- });
8304
- const islandContext = await getIslandContext(event);
8305
- const ssrContext = {
8306
- ...createSSRContext(event),
8307
- islandContext,
8308
- noSSR: false,
8309
- url: islandContext.url
8310
- };
8311
- const renderer = await getSSRRenderer();
8312
- const renderResult = await renderer.renderToString(ssrContext).catch(async (error) => {
8313
- await ssrContext.nuxt?.hooks.callHook("app:error", error);
8314
- throw error;
8315
- });
8316
- const inlinedStyles = await renderInlineStyles(ssrContext.modules ?? []);
8317
- await ssrContext.nuxt?.hooks.callHook("app:rendered", { ssrContext, renderResult });
8318
- if (inlinedStyles.length) {
8319
- ssrContext.head.push({ style: inlinedStyles });
8320
- }
8321
- {
8322
- const { styles } = getRequestDependencies(ssrContext, renderer.rendererContext);
8323
- const link = [];
8324
- for (const resource of Object.values(styles)) {
8325
- if ("inline" in getQuery(resource.file)) {
8326
- continue;
8327
- }
8328
- if (resource.file.includes("scoped") && !resource.file.includes("pages/")) {
8329
- link.push({ rel: "stylesheet", href: renderer.rendererContext.buildAssetsURL(resource.file), crossorigin: "" });
8658
+ const _getMessages = async (locale) => {
8659
+ return { [locale]: await getLocaleMessagesMerged(locale, localeLoaders[locale]) };
8660
+ };
8661
+ cachedFunctionI18n(_getMessages, {
8662
+ name: "messages",
8663
+ maxAge: -1 ,
8664
+ getKey: (locale) => locale,
8665
+ shouldBypassCache: (locale) => !isLocaleCacheable(locale)
8666
+ });
8667
+ const getMessages = _getMessages ;
8668
+ const _getMergedMessages = async (locale, fallbackLocales) => {
8669
+ const merged = {};
8670
+ try {
8671
+ if (fallbackLocales.length > 0) {
8672
+ const messages = await Promise.all(fallbackLocales.map(getMessages));
8673
+ for (const message2 of messages) {
8674
+ deepCopy(message2, merged);
8330
8675
  }
8331
8676
  }
8332
- if (link.length) {
8333
- ssrContext.head.push({ link }, { mode: "server" });
8334
- }
8677
+ const message = await getMessages(locale);
8678
+ deepCopy(message, merged);
8679
+ return merged;
8680
+ } catch (e) {
8681
+ throw new Error("Failed to merge messages: " + e.message);
8335
8682
  }
8336
- const islandHead = {};
8337
- for (const entry of ssrContext.head.entries.values()) {
8338
- for (const [key, value] of Object.entries(resolveUnrefHeadInput(entry.input))) {
8339
- const currentValue = islandHead[key];
8340
- if (Array.isArray(currentValue)) {
8341
- currentValue.push(...value);
8342
- }
8343
- islandHead[key] = value;
8683
+ };
8684
+ const getMergedMessages = cachedFunctionI18n(_getMergedMessages, {
8685
+ name: "merged-single",
8686
+ maxAge: -1 ,
8687
+ getKey: (locale, fallbackLocales) => `${locale}-[${[...new Set(fallbackLocales)].sort().join("-")}]`,
8688
+ shouldBypassCache: (locale, fallbackLocales) => !isLocaleWithFallbacksCacheable(locale, fallbackLocales)
8689
+ });
8690
+ const _getAllMergedMessages = async (locales) => {
8691
+ const merged = {};
8692
+ try {
8693
+ const messages = await Promise.all(locales.map(getMessages));
8694
+ for (const message of messages) {
8695
+ deepCopy(message, merged);
8344
8696
  }
8697
+ return merged;
8698
+ } catch (e) {
8699
+ throw new Error("Failed to merge messages: " + e.message);
8345
8700
  }
8346
- const islandResponse = {
8347
- id: islandContext.id,
8348
- head: islandHead,
8349
- html: getServerComponentHTML(renderResult.html),
8350
- components: getClientIslandResponse(ssrContext),
8351
- slots: getSlotIslandResponse(ssrContext)
8352
- };
8353
- await nitroApp.hooks.callHook("render:island", islandResponse, { event, islandContext });
8354
- return islandResponse;
8701
+ };
8702
+ cachedFunctionI18n(_getAllMergedMessages, {
8703
+ name: "merged-all",
8704
+ maxAge: -1 ,
8705
+ getKey: (locales) => locales.join("-"),
8706
+ shouldBypassCache: (locales) => !locales.every((locale) => isLocaleCacheable(locale))
8355
8707
  });
8356
- async function getIslandContext(event) {
8357
- let url = event.path || "";
8358
- const componentParts = url.substring("/__nuxt_island".length + 1).replace(ISLAND_SUFFIX_RE, "").split("_");
8359
- const hashId = componentParts.length > 1 ? componentParts.pop() : void 0;
8360
- const componentName = componentParts.join("_");
8361
- const context = event.method === "GET" ? getQuery$1(event) : await readBody(event);
8362
- const ctx = {
8363
- url: "/",
8364
- ...context,
8365
- id: hashId,
8366
- name: componentName,
8367
- props: destr$1(context.props) || {},
8368
- slots: {},
8369
- components: {}
8370
- };
8371
- return ctx;
8372
- }
8373
8708
 
8374
- const _sNpFQR = eventHandler(async (event) => {
8709
+ const _messagesHandler = defineEventHandler(async (event) => {
8710
+ const locale = getRouterParam(event, "locale");
8711
+ if (!locale) {
8712
+ throw createError({ status: 400, message: "Locale not specified." });
8713
+ }
8714
+ const ctx = useI18nContext(event);
8715
+ if (ctx.localeConfigs && locale in ctx.localeConfigs === false) {
8716
+ throw createError({ status: 404, message: `Locale '${locale}' not found.` });
8717
+ }
8718
+ const messages = await getMergedMessages(locale, ctx.localeConfigs?.[locale]?.fallbacks ?? []);
8719
+ deepCopy(messages, ctx.messages);
8720
+ return ctx.messages;
8721
+ });
8722
+ const _cachedMessageLoader = defineCachedFunction(_messagesHandler, {
8723
+ name: "i18n:messages-internal",
8724
+ maxAge: -1 ,
8725
+ getKey: (event) => [getRouterParam(event, "locale") ?? "null", getRouterParam(event, "hash") ?? "null"].join("-"),
8726
+ shouldBypassCache(event) {
8727
+ const locale = getRouterParam(event, "locale");
8728
+ if (locale == null) return false;
8729
+ return !useI18nContext(event).localeConfigs?.[locale]?.cacheable;
8730
+ }
8731
+ });
8732
+ defineCachedEventHandler(_cachedMessageLoader, {
8733
+ name: "i18n:messages",
8734
+ maxAge: -1 ,
8735
+ swr: false,
8736
+ getKey: (event) => [getRouterParam(event, "locale") ?? "null", getRouterParam(event, "hash") ?? "null"].join("-")
8737
+ });
8738
+ const _NNSCLT = _messagesHandler ;
8739
+
8740
+ const _Q1fkYk = eventHandler(async (event) => {
8375
8741
  const collection = getRouterParam(event, "collection");
8376
8742
  setHeader(event, "Content-Type", "text/plain");
8377
8743
  const data = await useStorage().getItem(`build:content:database.compressed.mjs`) || "";
@@ -8653,7 +9019,7 @@ function cleanupQuery(query, options = { removeString: false }) {
8653
9019
  return result;
8654
9020
  }
8655
9021
 
8656
- const _tqzIw4 = eventHandler(async (event) => {
9022
+ const _5WVRB1 = eventHandler(async (event) => {
8657
9023
  const { sql } = await readBody(event);
8658
9024
  const collection = getRouterParam(event, "collection");
8659
9025
  assertSafeQuery(sql, collection);
@@ -8664,7 +9030,7 @@ const _tqzIw4 = eventHandler(async (event) => {
8664
9030
  return loadDatabaseAdapter(conf).all(sql);
8665
9031
  });
8666
9032
 
8667
- const _B2tVPX = lazyEventHandler(() => {
9033
+ const _6_zlrq = lazyEventHandler(() => {
8668
9034
  const opts = useRuntimeConfig().ipx || {};
8669
9035
  const fsDir = opts?.fs?.dir ? (Array.isArray(opts.fs.dir) ? opts.fs.dir : [opts.fs.dir]).map((dir) => isAbsolute(dir) ? dir : fileURLToPath(new URL(dir, globalThis._importMeta_.url))) : void 0;
8670
9036
  const fsStorage = opts.fs?.dir ? ipxFSStorage({ ...opts.fs, dir: fsDir }) : void 0;
@@ -8683,18 +9049,19 @@ const _B2tVPX = lazyEventHandler(() => {
8683
9049
  });
8684
9050
 
8685
9051
  const _lazy_u5Dhoc = () => Promise.resolve().then(function () { return neonTest$1; });
8686
- const _lazy_AYQMJl = () => Promise.resolve().then(function () { return renderer$1; });
9052
+ const _lazy_xpKmMm = () => Promise.resolve().then(function () { return renderer$1; });
8687
9053
 
8688
9054
  const handlers = [
8689
- { route: '', handler: _8HJSn3, lazy: false, middleware: true, method: undefined },
9055
+ { route: '', handler: _R9eK6g, lazy: false, middleware: true, method: undefined },
8690
9056
  { route: '/api/neonTest', handler: _lazy_u5Dhoc, lazy: true, middleware: false, method: undefined },
8691
- { route: '/__nuxt_error', handler: _lazy_AYQMJl, lazy: true, middleware: false, method: undefined },
8692
- { route: '', handler: _SIzUZO, lazy: false, middleware: false, method: undefined },
8693
- { route: '', handler: _BvB659, lazy: false, middleware: false, method: undefined },
8694
- { route: '', handler: _CWLHQE, lazy: false, middleware: false, method: undefined },
8695
- { route: '', handler: _YQqgeV, lazy: false, middleware: false, method: undefined },
8696
- { route: '', handler: _4kfKT2, lazy: false, middleware: false, method: undefined },
8697
- { route: '/api/_nuxt_icon/:collection', handler: _idskfX, lazy: false, middleware: false, method: undefined },
9057
+ { route: '/__nuxt_error', handler: _lazy_xpKmMm, lazy: true, middleware: false, method: undefined },
9058
+ { route: '/__nuxt_island/**', handler: _SxA8c9, lazy: false, middleware: false, method: undefined },
9059
+ { route: '', handler: _0WQsJo, lazy: false, middleware: false, method: undefined },
9060
+ { route: '', handler: _fTCRwx, lazy: false, middleware: false, method: undefined },
9061
+ { route: '', handler: _XNXCfD, lazy: false, middleware: false, method: undefined },
9062
+ { route: '', handler: _MMBZXf, lazy: false, middleware: false, method: undefined },
9063
+ { route: '', handler: _6UgyB1, lazy: false, middleware: false, method: undefined },
9064
+ { route: '/api/_nuxt_icon/:collection', handler: _HWrzav, lazy: false, middleware: false, method: undefined },
8698
9065
  { route: '/api/_neon/raw', handler: _TMe9Qo, lazy: false, middleware: false, method: undefined },
8699
9066
  { route: '/api/_neon/count', handler: _8GcqiV, lazy: false, middleware: false, method: undefined },
8700
9067
  { route: '/api/_neon/select', handler: _bdtZK_, lazy: false, middleware: false, method: undefined },
@@ -8703,28 +9070,27 @@ const handlers = [
8703
9070
  { route: '/api/_neon/delete', handler: _e8NFRG, lazy: false, middleware: false, method: undefined },
8704
9071
  { route: '/api/_auth/session', handler: _VVR0b3, lazy: false, middleware: false, method: "delete" },
8705
9072
  { route: '/api/_auth/session', handler: _DkeHIc, lazy: false, middleware: false, method: "get" },
8706
- { route: '', handler: _4yeSj_, lazy: false, middleware: true, method: undefined },
8707
- { route: '/__site-config__/debug.json', handler: _sdUr1X, lazy: false, middleware: false, method: undefined },
8708
- { route: '/robots.txt', handler: _JROMdU, lazy: false, middleware: false, method: undefined },
8709
- { route: '', handler: _1uGGz3, lazy: false, middleware: true, method: undefined },
8710
- { route: '/__robots__/debug.json', handler: _2Dwz_N, lazy: false, middleware: false, method: undefined },
8711
- { route: '/__robots__/debug-path.json', handler: _AqiY5O, lazy: false, middleware: false, method: undefined },
8712
- { route: '/__sitemap__/nuxt-content-urls.json', handler: _UMjgla, lazy: false, middleware: false, method: undefined },
8713
- { route: '/__sitemap__/debug.json', handler: _FNFU63, lazy: false, middleware: false, method: undefined },
8714
- { route: '/__sitemap__/style.xsl', handler: _NXU9EA, lazy: false, middleware: false, method: undefined },
8715
- { route: '/sitemap.xml', handler: _DaaVlT, lazy: false, middleware: false, method: undefined },
8716
- { route: '/__link-checker__/inspect', handler: _1zkkVk, lazy: false, middleware: false, method: undefined },
8717
- { route: '/__link-checker__/links', handler: _hzh2Z2, lazy: false, middleware: false, method: undefined },
8718
- { route: '/__link-checker__/debug.json', handler: _ayesxE, lazy: false, middleware: false, method: undefined },
8719
- { route: '', handler: _mC0LgX, lazy: false, middleware: true, method: undefined },
8720
- { route: '/_i18n/:hash/:locale/messages.json', handler: _WlSuKH, lazy: false, middleware: false, method: undefined },
8721
- { route: '/__nuxt_island/**', handler: _SxA8c9, lazy: false, middleware: false, method: undefined },
8722
- { route: '/__nuxt_content/:collection/sql_dump.txt', handler: _sNpFQR, lazy: false, middleware: false, method: undefined },
8723
- { route: '/__nuxt_content/:collection/query', handler: _tqzIw4, lazy: false, middleware: false, method: undefined },
8724
- { route: '/_ipx/**', handler: _B2tVPX, lazy: false, middleware: false, method: undefined },
8725
- { route: '/_fonts/**', handler: _lazy_AYQMJl, lazy: true, middleware: false, method: undefined },
8726
- { route: '/_scripts/**', handler: _lazy_AYQMJl, lazy: true, middleware: false, method: undefined },
8727
- { route: '/**', handler: _lazy_AYQMJl, lazy: true, middleware: false, method: undefined }
9073
+ { route: '', handler: _HNUtXX, lazy: false, middleware: true, method: undefined },
9074
+ { route: '/__site-config__/debug.json', handler: _NLXa3j, lazy: false, middleware: false, method: undefined },
9075
+ { route: '/robots.txt', handler: _WLd7Ho, lazy: false, middleware: false, method: undefined },
9076
+ { route: '', handler: _mUSd9H, lazy: false, middleware: true, method: undefined },
9077
+ { route: '/__robots__/debug.json', handler: _2pyPvz, lazy: false, middleware: false, method: undefined },
9078
+ { route: '/__robots__/debug-path.json', handler: _ABgk2N, lazy: false, middleware: false, method: undefined },
9079
+ { route: '/__sitemap__/nuxt-content-urls.json', handler: _kdhSXr, lazy: false, middleware: false, method: undefined },
9080
+ { route: '/__sitemap__/debug.json', handler: _dK0h0J, lazy: false, middleware: false, method: undefined },
9081
+ { route: '/__sitemap__/style.xsl', handler: _KL_OxC, lazy: false, middleware: false, method: undefined },
9082
+ { route: '/sitemap.xml', handler: _ZZjWkS, lazy: false, middleware: false, method: undefined },
9083
+ { route: '/__link-checker__/inspect', handler: _OhYEOR, lazy: false, middleware: false, method: undefined },
9084
+ { route: '/__link-checker__/links', handler: _rTmegy, lazy: false, middleware: false, method: undefined },
9085
+ { route: '/__link-checker__/debug.json', handler: _NU4oGC, lazy: false, middleware: false, method: undefined },
9086
+ { route: '', handler: _s5gHA6, lazy: false, middleware: true, method: undefined },
9087
+ { route: '/_i18n/:hash/:locale/messages.json', handler: _NNSCLT, lazy: false, middleware: false, method: undefined },
9088
+ { route: '/__nuxt_content/:collection/sql_dump.txt', handler: _Q1fkYk, lazy: false, middleware: false, method: undefined },
9089
+ { route: '/__nuxt_content/:collection/query', handler: _5WVRB1, lazy: false, middleware: false, method: undefined },
9090
+ { route: '/_ipx/**', handler: _6_zlrq, lazy: false, middleware: false, method: undefined },
9091
+ { route: '/_fonts/**', handler: _lazy_xpKmMm, lazy: true, middleware: false, method: undefined },
9092
+ { route: '/_scripts/**', handler: _lazy_xpKmMm, lazy: true, middleware: false, method: undefined },
9093
+ { route: '/**', handler: _lazy_xpKmMm, lazy: true, middleware: false, method: undefined }
8728
9094
  ];
8729
9095
 
8730
9096
  function createNitroApp() {
@@ -8954,13 +9320,13 @@ async function shutdown() {
8954
9320
  parentPort?.postMessage({ event: "exit" });
8955
9321
  }
8956
9322
 
8957
- const _messages = { "appName": "Nuxt", "statusCode": 500, "statusMessage": "Server error", "description": "An error occurred in the application and the page could not be served.", "stack": "" };
9323
+ const _messages = { "appName": "Nuxt", "statusCode": 500, "statusMessage": "Internal server error", "description": "This page is temporarily unavailable.", "refresh": "Refresh this page" };
8958
9324
  const template$1 = (messages) => {
8959
9325
  messages = { ..._messages, ...messages };
8960
- return '<!DOCTYPE html><html lang="en"><head><title>' + escapeHtml(messages.statusCode) + " - " + escapeHtml(messages.statusMessage || "Internal Server Error") + `</title><meta charset="utf-8"><meta content="width=device-width,initial-scale=1.0,minimum-scale=1.0" name="viewport"><script>!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)}}();<\/script><style>*,: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: }.absolute{position:absolute}.top-6{top:1.5rem}.z-10{z-index:10}.mx-auto{margin-left:auto;margin-right:auto}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.inline-block{display:inline-block}.h-auto{height:auto}.min-h-screen{min-height:100vh}.flex{display:flex}.flex-1{flex:1 1 0%}.flex-col{flex-direction:column}.overflow-y-auto{overflow-y:auto}.border{border-width:1px}.border-b-0{border-bottom-width:0}.border-black\\/5{border-color:#0000000d}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.bg-gray-50\\/50{background-color:#f5f5f580}.bg-white{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.p-8{padding:2rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.pt-12{padding-top:3rem}.text-6xl{font-size:3.75rem;line-height:1}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-black{--un-text-opacity:1;color:rgb(0 0 0/var(--un-text-opacity))}.hover\\:text-\\[\\#00DC82\\]:hover{--un-text-opacity:1;color:rgb(0 220 130/var(--un-text-opacity))}.font-light{font-weight:300}.font-medium{font-weight:500}.leading-tight{line-height:1.25}.font-sans{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}.hover\\:underline:hover{text-decoration-line:underline}.underline-offset-3{text-underline-offset:3px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){.dark\\:border-white\\/10{border-color:#ffffff1a}.dark\\:bg-\\[\\#020420\\]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\\:bg-white\\/5{background-color:#ffffff0d}.dark\\:text-white{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media (min-width:640px){.sm\\:right-6{right:1.5rem}.sm\\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\\:text-8xl{font-size:6rem;line-height:1}}</style></head><body class="antialiased bg-white dark:bg-[#020420] dark:text-white flex flex-col font-sans min-h-screen pt-12 px-10 text-black"><h1 class="font-medium mb-4 sm:text-8xl text-6xl">` + escapeHtml(messages.statusCode) + '</h1><p class="font-light leading-tight mb-8 sm:text-2xl text-xl">' + escapeHtml(messages.description) + '</p><a href="https://nuxt.com/docs/getting-started/error-handling?utm_source=nuxt-error-dev-page" target="_blank" class="absolute font-medium hover:text-[#00DC82] hover:underline inline-block mx-auto sm:right-6 text-sm top-6 underline-offset-3">Customize this page</a><div class="bg-gray-50/50 border border-b-0 border-black/5 dark:bg-white/5 dark:border-white/10 flex-1 h-auto overflow-y-auto rounded-t-md"><div class="font-light leading-tight p-8 text-xl z-10">' + escapeHtml(messages.stack) + "</div></div></body></html>";
9326
+ return '<!DOCTYPE html><html lang="en"><head><title>' + escapeHtml(messages.statusCode) + " - " + escapeHtml(messages.statusMessage) + " | " + escapeHtml(messages.appName) + `</title><meta charset="utf-8"><meta content="width=device-width,initial-scale=1.0,minimum-scale=1.0" name="viewport"><script>!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)}}();<\/script><style>*,: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,h2{font-size:inherit;font-weight:inherit}h1,h2,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: }.grid{display:grid}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.max-w-520px{max-width:520px}.min-h-screen{min-height:100vh}.place-content-center{place-content:center}.overflow-hidden{overflow:hidden}.bg-white{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2{padding-left:.5rem;padding-right:.5rem}.text-center{text-align:center}.text-\\[80px\\]{font-size:80px}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\\[\\#020420\\]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\\[\\#64748B\\]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.font-semibold{font-weight:600}.leading-none{line-height:1}.tracking-wide{letter-spacing:.025em}.font-sans{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}.tabular-nums{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\\:bg-\\[\\#020420\\]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\\:text-white{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\\:text-\\[110px\\]{font-size:110px}.sm\\:text-3xl{font-size:1.875rem;line-height:2.25rem}}</style></head><body class="antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"><div class="max-w-520px text-center"><h1 class="font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]">` + escapeHtml(messages.statusCode) + '</h1><h2 class="font-semibold mb-2 sm:text-3xl text-2xl">' + escapeHtml(messages.statusMessage) + '</h2><p class="mb-4 px-2 text-[#64748B] text-md">' + escapeHtml(messages.description) + "</p></div></body></html>";
8961
9327
  };
8962
9328
 
8963
- const errorDev = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
9329
+ const error500 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
8964
9330
  __proto__: null,
8965
9331
  template: template$1
8966
9332
  }, Symbol.toStringTag, { value: 'Module' }));
@@ -9007,6 +9373,27 @@ const i18n_config$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.definePrope
9007
9373
  default: i18n_config
9008
9374
  }, Symbol.toStringTag, { value: 'Module' }));
9009
9375
 
9376
+ const server = () => {};
9377
+
9378
+ const server$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
9379
+ __proto__: null,
9380
+ default: server
9381
+ }, Symbol.toStringTag, { value: 'Module' }));
9382
+
9383
+ const template = "";
9384
+
9385
+ const _virtual__spaTemplate = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
9386
+ __proto__: null,
9387
+ template: template
9388
+ }, Symbol.toStringTag, { value: 'Module' }));
9389
+
9390
+ const styles = {};
9391
+
9392
+ const styles$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
9393
+ __proto__: null,
9394
+ default: styles
9395
+ }, Symbol.toStringTag, { value: 'Module' }));
9396
+
9010
9397
  const sources$1 = [
9011
9398
  {
9012
9399
  "context": {
@@ -9065,27 +9452,6 @@ const childSources = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProper
9065
9452
  sources: sources
9066
9453
  }, Symbol.toStringTag, { value: 'Module' }));
9067
9454
 
9068
- const server = () => {};
9069
-
9070
- const server$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
9071
- __proto__: null,
9072
- default: server
9073
- }, Symbol.toStringTag, { value: 'Module' }));
9074
-
9075
- const template = "";
9076
-
9077
- const _virtual__spaTemplate = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
9078
- __proto__: null,
9079
- template: template
9080
- }, Symbol.toStringTag, { value: 'Module' }));
9081
-
9082
- const styles = {};
9083
-
9084
- const styles$1 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
9085
- __proto__: null,
9086
- default: styles
9087
- }, Symbol.toStringTag, { value: 'Module' }));
9088
-
9089
9455
  const neonTest = defineEventHandler(async () => {
9090
9456
  const config = useRuntimeConfig().public.ignis;
9091
9457
  if (config.preset.db === "neon" || config.neon === true) {