@mindflight/mindbrain-personal-studio 0.6.1

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 (166) hide show
  1. package/.env.example +50 -0
  2. package/README.md +134 -0
  3. package/bin/mindbrain-studio.mjs +20 -0
  4. package/build/client/_app/immutable/assets/2.BXRKVU9n.css +1 -0
  5. package/build/client/_app/immutable/assets/2.BXRKVU9n.css.br +0 -0
  6. package/build/client/_app/immutable/assets/2.BXRKVU9n.css.gz +0 -0
  7. package/build/client/_app/immutable/chunks/-OSExkSk.js +2 -0
  8. package/build/client/_app/immutable/chunks/-OSExkSk.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/-OSExkSk.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/BIHI7g3E.js +1 -0
  11. package/build/client/_app/immutable/chunks/BIHI7g3E.js.br +2 -0
  12. package/build/client/_app/immutable/chunks/BIHI7g3E.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/BJB7pSge.js +1 -0
  14. package/build/client/_app/immutable/chunks/BJB7pSge.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/BJB7pSge.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/BNUkRZqg.js +1 -0
  17. package/build/client/_app/immutable/chunks/BNUkRZqg.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/BNUkRZqg.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/BP2JbIUZ.js +1 -0
  20. package/build/client/_app/immutable/chunks/BP2JbIUZ.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/BP2JbIUZ.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/BVrgUHq-.js +1 -0
  23. package/build/client/_app/immutable/chunks/BVrgUHq-.js.br +0 -0
  24. package/build/client/_app/immutable/chunks/BVrgUHq-.js.gz +0 -0
  25. package/build/client/_app/immutable/chunks/BmeSanva.js +1 -0
  26. package/build/client/_app/immutable/chunks/BmeSanva.js.br +0 -0
  27. package/build/client/_app/immutable/chunks/BmeSanva.js.gz +0 -0
  28. package/build/client/_app/immutable/chunks/BnkCgNCx.js +1 -0
  29. package/build/client/_app/immutable/chunks/BnkCgNCx.js.br +0 -0
  30. package/build/client/_app/immutable/chunks/BnkCgNCx.js.gz +0 -0
  31. package/build/client/_app/immutable/chunks/C5KYKPa8.js +311 -0
  32. package/build/client/_app/immutable/chunks/C5KYKPa8.js.br +0 -0
  33. package/build/client/_app/immutable/chunks/C5KYKPa8.js.gz +0 -0
  34. package/build/client/_app/immutable/chunks/CBDzfqXr.js +1 -0
  35. package/build/client/_app/immutable/chunks/CBDzfqXr.js.br +0 -0
  36. package/build/client/_app/immutable/chunks/CBDzfqXr.js.gz +0 -0
  37. package/build/client/_app/immutable/chunks/Cp9dXlPT.js +1 -0
  38. package/build/client/_app/immutable/chunks/Cp9dXlPT.js.br +0 -0
  39. package/build/client/_app/immutable/chunks/Cp9dXlPT.js.gz +0 -0
  40. package/build/client/_app/immutable/chunks/D0daF8Eh.js +2 -0
  41. package/build/client/_app/immutable/chunks/D0daF8Eh.js.br +0 -0
  42. package/build/client/_app/immutable/chunks/D0daF8Eh.js.gz +0 -0
  43. package/build/client/_app/immutable/chunks/D4SoBmS0.js +1 -0
  44. package/build/client/_app/immutable/chunks/D4SoBmS0.js.br +0 -0
  45. package/build/client/_app/immutable/chunks/D4SoBmS0.js.gz +0 -0
  46. package/build/client/_app/immutable/chunks/DpVrWha3.js +1 -0
  47. package/build/client/_app/immutable/chunks/DpVrWha3.js.br +0 -0
  48. package/build/client/_app/immutable/chunks/DpVrWha3.js.gz +0 -0
  49. package/build/client/_app/immutable/chunks/DyXQogav.js +1 -0
  50. package/build/client/_app/immutable/chunks/DyXQogav.js.br +0 -0
  51. package/build/client/_app/immutable/chunks/DyXQogav.js.gz +0 -0
  52. package/build/client/_app/immutable/chunks/Gs0cNFYG.js +1 -0
  53. package/build/client/_app/immutable/chunks/Gs0cNFYG.js.br +0 -0
  54. package/build/client/_app/immutable/chunks/Gs0cNFYG.js.gz +0 -0
  55. package/build/client/_app/immutable/chunks/NXeHtWpC.js +1 -0
  56. package/build/client/_app/immutable/chunks/NXeHtWpC.js.br +0 -0
  57. package/build/client/_app/immutable/chunks/NXeHtWpC.js.gz +0 -0
  58. package/build/client/_app/immutable/chunks/i0D5dc1Y.js +1 -0
  59. package/build/client/_app/immutable/chunks/i0D5dc1Y.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/i0D5dc1Y.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/nnWk1BBo.js +1 -0
  62. package/build/client/_app/immutable/chunks/nnWk1BBo.js.br +0 -0
  63. package/build/client/_app/immutable/chunks/nnWk1BBo.js.gz +0 -0
  64. package/build/client/_app/immutable/entry/app.CVz6aYsT.js +2 -0
  65. package/build/client/_app/immutable/entry/app.CVz6aYsT.js.br +0 -0
  66. package/build/client/_app/immutable/entry/app.CVz6aYsT.js.gz +0 -0
  67. package/build/client/_app/immutable/entry/start.Bt5tVOz8.js +1 -0
  68. package/build/client/_app/immutable/entry/start.Bt5tVOz8.js.br +2 -0
  69. package/build/client/_app/immutable/entry/start.Bt5tVOz8.js.gz +0 -0
  70. package/build/client/_app/immutable/nodes/0.C2sXq0eH.js +1 -0
  71. package/build/client/_app/immutable/nodes/0.C2sXq0eH.js.br +0 -0
  72. package/build/client/_app/immutable/nodes/0.C2sXq0eH.js.gz +0 -0
  73. package/build/client/_app/immutable/nodes/1.BBtxY46Q.js +1 -0
  74. package/build/client/_app/immutable/nodes/1.BBtxY46Q.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/1.BBtxY46Q.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/2.D0pSa9ko.js +9 -0
  77. package/build/client/_app/immutable/nodes/2.D0pSa9ko.js.br +0 -0
  78. package/build/client/_app/immutable/nodes/2.D0pSa9ko.js.gz +0 -0
  79. package/build/client/_app/version.json +1 -0
  80. package/build/client/_app/version.json.br +0 -0
  81. package/build/client/_app/version.json.gz +0 -0
  82. package/build/client/robots.txt +3 -0
  83. package/build/client/robots.txt.br +0 -0
  84. package/build/client/robots.txt.gz +0 -0
  85. package/build/env.js +70 -0
  86. package/build/env.js.map +1 -0
  87. package/build/handler.js +26 -0
  88. package/build/handler.js.map +1 -0
  89. package/build/index.js +149 -0
  90. package/build/index.js.map +1 -0
  91. package/build/server/chunks/chunks/edgeLinkModes.js-CfRqrZtd.js +50 -0
  92. package/build/server/chunks/chunks/edgeLinkModes.js-CfRqrZtd.js.map +1 -0
  93. package/build/server/chunks/chunks/environment.js-Bf8x1V_n.js +16 -0
  94. package/build/server/chunks/chunks/environment.js-Bf8x1V_n.js.map +1 -0
  95. package/build/server/chunks/chunks/exports.js-DFR3riS9.js +217 -0
  96. package/build/server/chunks/chunks/exports.js-DFR3riS9.js.map +1 -0
  97. package/build/server/chunks/chunks/false.js-CRHihH2U.js +4 -0
  98. package/build/server/chunks/chunks/false.js-CRHihH2U.js.map +1 -0
  99. package/build/server/chunks/chunks/graphRepository.js-D2DARfVY.js +280 -0
  100. package/build/server/chunks/chunks/graphRepository.js-D2DARfVY.js.map +1 -0
  101. package/build/server/chunks/chunks/internal.js-D8EA_he2.js +119 -0
  102. package/build/server/chunks/chunks/internal.js-D8EA_he2.js.map +1 -0
  103. package/build/server/chunks/chunks/mindbrainClient.js-BFAJqRSL.js +108 -0
  104. package/build/server/chunks/chunks/mindbrainClient.js-BFAJqRSL.js.map +1 -0
  105. package/build/server/chunks/chunks/ontologyInspect.js-Dm3l7KgF.js +13 -0
  106. package/build/server/chunks/chunks/ontologyInspect.js-Dm3l7KgF.js.map +1 -0
  107. package/build/server/chunks/chunks/render-context.js-CTu5Wkzp.js +475 -0
  108. package/build/server/chunks/chunks/render-context.js-CTu5Wkzp.js.map +1 -0
  109. package/build/server/chunks/chunks/renderer.js-DsOhU1UZ.js +1243 -0
  110. package/build/server/chunks/chunks/renderer.js-DsOhU1UZ.js.map +1 -0
  111. package/build/server/chunks/chunks/root.js-DCnlE3XY.js +2815 -0
  112. package/build/server/chunks/chunks/root.js-DCnlE3XY.js.map +1 -0
  113. package/build/server/chunks/chunks/shared-server.js-DaWdgxVh.js +11 -0
  114. package/build/server/chunks/chunks/shared-server.js-DaWdgxVh.js.map +1 -0
  115. package/build/server/chunks/chunks/shared.js-DuDDTJVi.js +1338 -0
  116. package/build/server/chunks/chunks/shared.js-DuDDTJVi.js.map +1 -0
  117. package/build/server/chunks/chunks/utils.js-DGYJFmnf.js +39 -0
  118. package/build/server/chunks/chunks/utils.js-DGYJFmnf.js.map +1 -0
  119. package/build/server/chunks/entries/endpoints/api/brain/_...path_/_server.ts.js-MgPpKBks.js +82 -0
  120. package/build/server/chunks/entries/endpoints/api/brain/_...path_/_server.ts.js-MgPpKBks.js.map +1 -0
  121. package/build/server/chunks/entries/endpoints/api/brain/health/_server.ts.js-DnJQNmWV.js +19 -0
  122. package/build/server/chunks/entries/endpoints/api/brain/health/_server.ts.js-DnJQNmWV.js.map +1 -0
  123. package/build/server/chunks/entries/endpoints/api/graph/_server.ts.js-Bxo7qHVz.js +37 -0
  124. package/build/server/chunks/entries/endpoints/api/graph/_server.ts.js-Bxo7qHVz.js.map +1 -0
  125. package/build/server/chunks/entries/endpoints/api/graph/count/_server.ts.js-BajaLnqp.js +37 -0
  126. package/build/server/chunks/entries/endpoints/api/graph/count/_server.ts.js-BajaLnqp.js.map +1 -0
  127. package/build/server/chunks/entries/endpoints/api/graph/ontologies/_server.ts.js-BFq2mbbX.js +146 -0
  128. package/build/server/chunks/entries/endpoints/api/graph/ontologies/_server.ts.js-BFq2mbbX.js.map +1 -0
  129. package/build/server/chunks/entries/endpoints/api/graph/schema-registry/_server.ts.js-Dyfsc-VA.js +154 -0
  130. package/build/server/chunks/entries/endpoints/api/graph/schema-registry/_server.ts.js-Dyfsc-VA.js.map +1 -0
  131. package/build/server/chunks/entries/endpoints/api/projections/catalog/_server.ts.js-Ds1RymA0.js +351 -0
  132. package/build/server/chunks/entries/endpoints/api/projections/catalog/_server.ts.js-Ds1RymA0.js.map +1 -0
  133. package/build/server/chunks/entries/fallbacks/error.svelte.js-B7V4yZjo.js +51 -0
  134. package/build/server/chunks/entries/fallbacks/error.svelte.js-B7V4yZjo.js.map +1 -0
  135. package/build/server/chunks/entries/pages/_layout.svelte.js-CoC9BAeH.js +15 -0
  136. package/build/server/chunks/entries/pages/_layout.svelte.js-CoC9BAeH.js.map +1 -0
  137. package/build/server/chunks/entries/pages/_page.svelte.js-DMEbD3K6.js +891 -0
  138. package/build/server/chunks/entries/pages/_page.svelte.js-DMEbD3K6.js.map +1 -0
  139. package/build/server/chunks/handler-BjXBCd1c.js +1698 -0
  140. package/build/server/chunks/handler-BjXBCd1c.js.map +1 -0
  141. package/build/server/chunks/index.js-BJYcV8V7.js +4183 -0
  142. package/build/server/chunks/index.js-BJYcV8V7.js.map +1 -0
  143. package/build/server/chunks/manifest.js-Ddaot0P4.js +91 -0
  144. package/build/server/chunks/manifest.js-Ddaot0P4.js.map +1 -0
  145. package/build/server/chunks/nodes/0.js-87v83UX9.js +9 -0
  146. package/build/server/chunks/nodes/0.js-87v83UX9.js.map +1 -0
  147. package/build/server/chunks/nodes/1.js-BRigw_9J.js +9 -0
  148. package/build/server/chunks/nodes/1.js-BRigw_9J.js.map +1 -0
  149. package/build/server/chunks/nodes/2.js-D9-B_qyX.js +9 -0
  150. package/build/server/chunks/nodes/2.js-D9-B_qyX.js.map +1 -0
  151. package/build/shims.js +33 -0
  152. package/build/shims.js.map +1 -0
  153. package/fixtures/minimal-graph.sqlite +0 -0
  154. package/package.json +81 -0
  155. package/scripts/backend-sqlite.mjs +190 -0
  156. package/scripts/build-serenity-v6-concept-review-pack.mjs +493 -0
  157. package/scripts/build-serenity-v6-review-pack.mjs +479 -0
  158. package/scripts/create-serenity-production-v6.mjs +627 -0
  159. package/scripts/dev-sqlite.mjs +86 -0
  160. package/scripts/export-serenity-v6-backup.mjs +178 -0
  161. package/scripts/import-serenity-v6-user-decisions.mjs +543 -0
  162. package/scripts/lib/sqlite-runtime.mjs +197 -0
  163. package/scripts/materialize-serenity-v6-snapshots.mjs +675 -0
  164. package/scripts/publish-npm.mjs +134 -0
  165. package/scripts/seed-immeuble-projections.mjs +169 -0
  166. package/scripts/studio-sqlite.mjs +74 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js-DuDDTJVi.js","sources":["../../../../node_modules/.pnpm/@sveltejs+kit@2.56.1_@sveltejs+vite-plugin-svelte@6.2.4_svelte@5.55.1_vite@7.3.1_@types_b6128aca79733c4841488f96218eb217/node_modules/@sveltejs/kit/src/exports/internal/index.js","../../../../node_modules/.pnpm/@sveltejs+kit@2.56.1_@sveltejs+vite-plugin-svelte@6.2.4_svelte@5.55.1_vite@7.3.1_@types_b6128aca79733c4841488f96218eb217/node_modules/@sveltejs/kit/src/runtime/utils.js","../../../../node_modules/.pnpm/@sveltejs+kit@2.56.1_@sveltejs+vite-plugin-svelte@6.2.4_svelte@5.55.1_vite@7.3.1_@types_b6128aca79733c4841488f96218eb217/node_modules/@sveltejs/kit/src/exports/index.js","../../../../node_modules/.pnpm/@sveltejs+kit@2.56.1_@sveltejs+vite-plugin-svelte@6.2.4_svelte@5.55.1_vite@7.3.1_@types_b6128aca79733c4841488f96218eb217/node_modules/@sveltejs/kit/src/runtime/server/constants.js","../../../../node_modules/.pnpm/@sveltejs+kit@2.56.1_@sveltejs+vite-plugin-svelte@6.2.4_svelte@5.55.1_vite@7.3.1_@types_b6128aca79733c4841488f96218eb217/node_modules/@sveltejs/kit/src/exports/internal/event.js","../../../../node_modules/.pnpm/@sveltejs+kit@2.56.1_@sveltejs+vite-plugin-svelte@6.2.4_svelte@5.55.1_vite@7.3.1_@types_b6128aca79733c4841488f96218eb217/node_modules/@sveltejs/kit/src/exports/internal/server.js","../../../../.svelte-kit/output/server/chunks/shared.js"],"sourcesContent":["/** @import { StandardSchemaV1 } from '@standard-schema/spec' */\n\nexport class HttpError {\n\t/**\n\t * @param {number} status\n\t * @param {{message: string} extends App.Error ? (App.Error | string | undefined) : App.Error} body\n\t */\n\tconstructor(status, body) {\n\t\tthis.status = status;\n\t\tif (typeof body === 'string') {\n\t\t\tthis.body = { message: body };\n\t\t} else if (body) {\n\t\t\tthis.body = body;\n\t\t} else {\n\t\t\tthis.body = { message: `Error: ${status}` };\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this.body);\n\t}\n}\n\nexport class Redirect {\n\t/**\n\t * @param {300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308} status\n\t * @param {string} location\n\t */\n\tconstructor(status, location) {\n\t\tthis.status = status;\n\t\tthis.location = location;\n\t}\n}\n\n/**\n * An error that was thrown from within the SvelteKit runtime that is not fatal and doesn't result in a 500, such as a 404.\n * `SvelteKitError` goes through `handleError`.\n * @extends Error\n */\nexport class SvelteKitError extends Error {\n\t/**\n\t * @param {number} status\n\t * @param {string} text\n\t * @param {string} message\n\t */\n\tconstructor(status, text, message) {\n\t\tsuper(message);\n\t\tthis.status = status;\n\t\tthis.text = text;\n\t}\n}\n\n/**\n * @template [T=undefined]\n */\nexport class ActionFailure {\n\t/**\n\t * @param {number} status\n\t * @param {T} data\n\t */\n\tconstructor(status, data) {\n\t\tthis.status = status;\n\t\tthis.data = data;\n\t}\n}\n\n/**\n * Error thrown when form validation fails imperatively\n */\nexport class ValidationError extends Error {\n\t/**\n\t * @param {StandardSchemaV1.Issue[]} issues\n\t */\n\tconstructor(issues) {\n\t\tsuper('Validation failed');\n\t\tthis.name = 'ValidationError';\n\t\tthis.issues = issues;\n\t}\n}\n\nexport { init_remote_functions } from './remote-functions.js';\n","import { BROWSER } from 'esm-env';\n\nexport const text_encoder = new TextEncoder();\nexport const text_decoder = new TextDecoder();\n\n/**\n * Like node's path.relative, but without using node\n * @param {string} from\n * @param {string} to\n */\nexport function get_relative_path(from, to) {\n\tconst from_parts = from.split(/[/\\\\]/);\n\tconst to_parts = to.split(/[/\\\\]/);\n\tfrom_parts.pop(); // get dirname\n\n\twhile (from_parts[0] === to_parts[0]) {\n\t\tfrom_parts.shift();\n\t\tto_parts.shift();\n\t}\n\n\tlet i = from_parts.length;\n\twhile (i--) from_parts[i] = '..';\n\n\treturn from_parts.concat(to_parts).join('/');\n}\n\n/**\n * @param {Uint8Array} bytes\n * @returns {string}\n */\nexport function base64_encode(bytes) {\n\t// Using `Buffer` is faster than iterating\n\tif (!BROWSER && globalThis.Buffer) {\n\t\treturn globalThis.Buffer.from(bytes).toString('base64');\n\t}\n\n\tlet binary = '';\n\n\tfor (let i = 0; i < bytes.length; i++) {\n\t\tbinary += String.fromCharCode(bytes[i]);\n\t}\n\n\treturn btoa(binary);\n}\n\n/**\n * @param {string} encoded\n * @returns {Uint8Array}\n */\nexport function base64_decode(encoded) {\n\t// Using `Buffer` is faster than iterating\n\tif (!BROWSER && globalThis.Buffer) {\n\t\tconst buffer = globalThis.Buffer.from(encoded, 'base64');\n\t\treturn new Uint8Array(buffer);\n\t}\n\n\tconst binary = atob(encoded);\n\tconst bytes = new Uint8Array(binary.length);\n\n\tfor (let i = 0; i < binary.length; i++) {\n\t\tbytes[i] = binary.charCodeAt(i);\n\t}\n\n\treturn bytes;\n}\n","/** @import { StandardSchemaV1 } from '@standard-schema/spec' */\n\nimport { HttpError, Redirect, ActionFailure, ValidationError } from './internal/index.js';\nimport { BROWSER, DEV } from 'esm-env';\nimport {\n\tadd_data_suffix,\n\tadd_resolution_suffix,\n\thas_data_suffix,\n\thas_resolution_suffix,\n\tstrip_data_suffix,\n\tstrip_resolution_suffix\n} from '../runtime/pathname.js';\nimport { text_encoder } from '../runtime/utils.js';\n\nexport { VERSION } from '../version.js';\n\n// TODO 3.0: remove these types as they are not used anymore (we can't remove them yet because that would be a breaking change)\n/**\n * @template {number} TNumber\n * @template {any[]} [TArray=[]]\n * @typedef {TNumber extends TArray['length'] ? TArray[number] : LessThan<TNumber, [...TArray, TArray['length']]>} LessThan\n */\n\n/**\n * @template {number} TStart\n * @template {number} TEnd\n * @typedef {Exclude<TEnd | LessThan<TEnd>, LessThan<TStart>>} NumericRange\n */\n\n// Keep the status codes as `number` because restricting to certain numbers makes it unnecessarily hard to use compared to the benefits\n// (we have runtime errors already to check for invalid codes). Also see https://github.com/sveltejs/kit/issues/11780\n\n// we have to repeat the JSDoc because the display for function overloads is broken\n// see https://github.com/microsoft/TypeScript/issues/55056\n\n/**\n * Throws an error with a HTTP status code and an optional message.\n * When called during request handling, this will cause SvelteKit to\n * return an error response without invoking `handleError`.\n * Make sure you're not catching the thrown error, which would prevent SvelteKit from handling it.\n * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599.\n * @param {App.Error} body An object that conforms to the App.Error type. If a string is passed, it will be used as the message property.\n * @overload\n * @param {number} status\n * @param {App.Error} body\n * @return {never}\n * @throws {HttpError} This error instructs SvelteKit to initiate HTTP error handling.\n * @throws {Error} If the provided status is invalid (not between 400 and 599).\n */\n/**\n * Throws an error with a HTTP status code and an optional message.\n * When called during request handling, this will cause SvelteKit to\n * return an error response without invoking `handleError`.\n * Make sure you're not catching the thrown error, which would prevent SvelteKit from handling it.\n * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599.\n * @param {{ message: string } extends App.Error ? App.Error | string | undefined : never} [body] An object that conforms to the App.Error type. If a string is passed, it will be used as the message property.\n * @overload\n * @param {number} status\n * @param {{ message: string } extends App.Error ? App.Error | string | undefined : never} [body]\n * @return {never}\n * @throws {HttpError} This error instructs SvelteKit to initiate HTTP error handling.\n * @throws {Error} If the provided status is invalid (not between 400 and 599).\n */\n/**\n * Throws an error with a HTTP status code and an optional message.\n * When called during request handling, this will cause SvelteKit to\n * return an error response without invoking `handleError`.\n * Make sure you're not catching the thrown error, which would prevent SvelteKit from handling it.\n * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599.\n * @param {{ message: string } extends App.Error ? App.Error | string | undefined : never} body An object that conforms to the App.Error type. If a string is passed, it will be used as the message property.\n * @return {never}\n * @throws {HttpError} This error instructs SvelteKit to initiate HTTP error handling.\n * @throws {Error} If the provided status is invalid (not between 400 and 599).\n */\nexport function error(status, body) {\n\tif ((!BROWSER || DEV) && (isNaN(status) || status < 400 || status > 599)) {\n\t\tthrow new Error(`HTTP error status codes must be between 400 and 599 — ${status} is invalid`);\n\t}\n\n\tthrow new HttpError(status, body);\n}\n\n/**\n * Checks whether this is an error thrown by {@link error}.\n * @template {number} T\n * @param {unknown} e\n * @param {T} [status] The status to filter for.\n * @return {e is (HttpError & { status: T extends undefined ? never : T })}\n */\nexport function isHttpError(e, status) {\n\tif (!(e instanceof HttpError)) return false;\n\treturn !status || e.status === status;\n}\n\n/**\n * Redirect a request. When called during request handling, SvelteKit will return a redirect response.\n * Make sure you're not catching the thrown redirect, which would prevent SvelteKit from handling it.\n *\n * Most common status codes:\n * * `303 See Other`: redirect as a GET request (often used after a form POST request)\n * * `307 Temporary Redirect`: redirect will keep the request method\n * * `308 Permanent Redirect`: redirect will keep the request method, SEO will be transferred to the new page\n *\n * [See all redirect status codes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#redirection_messages)\n *\n * @param {300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | ({} & number)} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#redirection_messages). Must be in the range 300-308.\n * @param {string | URL} location The location to redirect to.\n * @throws {Redirect} This error instructs SvelteKit to redirect to the specified location.\n * @throws {Error} If the provided status is invalid.\n * @return {never}\n */\nexport function redirect(status, location) {\n\tif ((!BROWSER || DEV) && (isNaN(status) || status < 300 || status > 308)) {\n\t\tthrow new Error('Invalid status code');\n\t}\n\n\tthrow new Redirect(\n\t\t// @ts-ignore\n\t\tstatus,\n\t\tlocation.toString()\n\t);\n}\n\n/**\n * Checks whether this is a redirect thrown by {@link redirect}.\n * @param {unknown} e The object to check.\n * @return {e is Redirect}\n */\nexport function isRedirect(e) {\n\treturn e instanceof Redirect;\n}\n\n/**\n * Create a JSON `Response` object from the supplied data.\n * @param {any} data The value that will be serialized as JSON.\n * @param {ResponseInit} [init] Options such as `status` and `headers` that will be added to the response. `Content-Type: application/json` and `Content-Length` headers will be added automatically.\n */\nexport function json(data, init) {\n\t// TODO deprecate this in favour of `Response.json` when it's\n\t// more widely supported\n\tconst body = JSON.stringify(data);\n\n\t// we can't just do `text(JSON.stringify(data), init)` because\n\t// it will set a default `content-type` header. duplicated code\n\t// means less duplicated work\n\tconst headers = new Headers(init?.headers);\n\tif (!headers.has('content-length')) {\n\t\theaders.set('content-length', text_encoder.encode(body).byteLength.toString());\n\t}\n\n\tif (!headers.has('content-type')) {\n\t\theaders.set('content-type', 'application/json');\n\t}\n\n\treturn new Response(body, {\n\t\t...init,\n\t\theaders\n\t});\n}\n\n/**\n * Create a `Response` object from the supplied body.\n * @param {string} body The value that will be used as-is.\n * @param {ResponseInit} [init] Options such as `status` and `headers` that will be added to the response. A `Content-Length` header will be added automatically.\n */\nexport function text(body, init) {\n\tconst headers = new Headers(init?.headers);\n\tif (!headers.has('content-length')) {\n\t\tconst encoded = text_encoder.encode(body);\n\t\theaders.set('content-length', encoded.byteLength.toString());\n\t\treturn new Response(encoded, {\n\t\t\t...init,\n\t\t\theaders\n\t\t});\n\t}\n\n\treturn new Response(body, {\n\t\t...init,\n\t\theaders\n\t});\n}\n\n/**\n * Create an `ActionFailure` object. Call when form submission fails.\n * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599.\n * @overload\n * @param {number} status\n * @returns {import('./public.js').ActionFailure<undefined>}\n */\n/**\n * Create an `ActionFailure` object. Call when form submission fails.\n * @template [T=undefined]\n * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599.\n * @param {T} data Data associated with the failure (e.g. validation errors)\n * @overload\n * @param {number} status\n * @param {T} data\n * @returns {import('./public.js').ActionFailure<T>}\n */\n/**\n * Create an `ActionFailure` object. Call when form submission fails.\n * @param {number} status\n * @param {any} [data]\n * @returns {import('./public.js').ActionFailure<any>}\n */\nexport function fail(status, data) {\n\t// @ts-expect-error unique symbol missing\n\treturn new ActionFailure(status, data);\n}\n\n/**\n * Checks whether this is an action failure thrown by {@link fail}.\n * @param {unknown} e The object to check.\n * @return {e is import('./public.js').ActionFailure}\n */\nexport function isActionFailure(e) {\n\treturn e instanceof ActionFailure;\n}\n\n/**\n * Use this to throw a validation error to imperatively fail form validation.\n * Can be used in combination with `issue` passed to form actions to create field-specific issues.\n *\n * @example\n * ```ts\n * import { invalid } from '@sveltejs/kit';\n * import { form } from '$app/server';\n * import { tryLogin } from '$lib/server/auth';\n * import * as v from 'valibot';\n *\n * export const login = form(\n * v.object({ name: v.string(), _password: v.string() }),\n * async ({ name, _password }) => {\n * const success = tryLogin(name, _password);\n * if (!success) {\n * invalid('Incorrect username or password');\n * }\n *\n * // ...\n * }\n * );\n * ```\n * @param {...(StandardSchemaV1.Issue | string)} issues\n * @returns {never}\n * @since 2.47.3\n */\nexport function invalid(...issues) {\n\tthrow new ValidationError(\n\t\tissues.map((issue) => (typeof issue === 'string' ? { message: issue } : issue))\n\t);\n}\n\n/**\n * Checks whether this is an validation error thrown by {@link invalid}.\n * @param {unknown} e The object to check.\n * @return {e is import('./public.js').ActionFailure}\n * @since 2.47.3\n */\nexport function isValidationError(e) {\n\treturn e instanceof ValidationError;\n}\n\n/**\n * Strips possible SvelteKit-internal suffixes and trailing slashes from the URL pathname.\n * Returns the normalized URL as well as a method for adding the potential suffix back\n * based on a new pathname (possibly including search) or URL.\n * ```js\n * import { normalizeUrl } from '@sveltejs/kit';\n *\n * const { url, denormalize } = normalizeUrl('/blog/post/__data.json');\n * console.log(url.pathname); // /blog/post\n * console.log(denormalize('/blog/post/a')); // /blog/post/a/__data.json\n * ```\n * @param {URL | string} url\n * @returns {{ url: URL, wasNormalized: boolean, denormalize: (url?: string | URL) => URL }}\n * @since 2.18.0\n */\nexport function normalizeUrl(url) {\n\turl = new URL(url, 'a://a');\n\n\tconst is_route_resolution = has_resolution_suffix(url.pathname);\n\tconst is_data_request = has_data_suffix(url.pathname);\n\tconst has_trailing_slash = url.pathname !== '/' && url.pathname.endsWith('/');\n\n\tif (is_route_resolution) {\n\t\turl.pathname = strip_resolution_suffix(url.pathname);\n\t} else if (is_data_request) {\n\t\turl.pathname = strip_data_suffix(url.pathname);\n\t} else if (has_trailing_slash) {\n\t\turl.pathname = url.pathname.slice(0, -1);\n\t}\n\n\treturn {\n\t\turl,\n\t\twasNormalized: is_data_request || is_route_resolution || has_trailing_slash,\n\t\tdenormalize: (new_url = url) => {\n\t\t\tnew_url = new URL(new_url, url);\n\t\t\tif (is_route_resolution) {\n\t\t\t\tnew_url.pathname = add_resolution_suffix(new_url.pathname);\n\t\t\t} else if (is_data_request) {\n\t\t\t\tnew_url.pathname = add_data_suffix(new_url.pathname);\n\t\t\t} else if (has_trailing_slash && !new_url.pathname.endsWith('/')) {\n\t\t\t\tnew_url.pathname += '/';\n\t\t\t}\n\t\t\treturn new_url;\n\t\t}\n\t};\n}\n","export const NULL_BODY_STATUS = [101, 103, 204, 205, 304];\n\n// eslint-disable-next-line n/prefer-global/process\nexport const IN_WEBCONTAINER = !!globalThis.process?.versions?.webcontainer;\n","/** @import { RequestEvent } from '@sveltejs/kit' */\n/** @import { RequestStore } from 'types' */\n/** @import { AsyncLocalStorage } from 'node:async_hooks' */\n\nimport { IN_WEBCONTAINER } from '../../runtime/server/constants.js';\n\n/** @type {RequestStore | null} */\nlet sync_store = null;\n\n/** @type {AsyncLocalStorage<RequestStore | null> | null} */\nlet als;\n\nimport('node:async_hooks')\n\t.then((hooks) => (als = new hooks.AsyncLocalStorage()))\n\t.catch(() => {\n\t\t// can't use AsyncLocalStorage, but can still call getRequestEvent synchronously.\n\t\t// this isn't behind `supports` because it's basically just StackBlitz (i.e.\n\t\t// in-browser usage) that doesn't support it AFAICT\n\t});\n\n/**\n * Returns the current `RequestEvent`. Can be used inside server hooks, server `load` functions, actions, and endpoints (and functions called by them).\n *\n * In environments without [`AsyncLocalStorage`](https://nodejs.org/api/async_context.html#class-asynclocalstorage), this must be called synchronously (i.e. not after an `await`).\n * @since 2.20.0\n *\n * @returns {RequestEvent}\n */\nexport function getRequestEvent() {\n\tconst event = try_get_request_store()?.event;\n\n\tif (!event) {\n\t\tlet message =\n\t\t\t'Can only read the current request event inside functions invoked during `handle`, such as server `load` functions, actions, endpoints, and other server hooks.';\n\n\t\tif (!als) {\n\t\t\tmessage +=\n\t\t\t\t' In environments without `AsyncLocalStorage`, the event must be read synchronously, not after an `await`.';\n\t\t}\n\n\t\tthrow new Error(message);\n\t}\n\n\treturn event;\n}\n\nexport function get_request_store() {\n\tconst result = try_get_request_store();\n\tif (!result) {\n\t\tlet message = 'Could not get the request store.';\n\n\t\tif (als) {\n\t\t\tmessage += ' This is an internal error.';\n\t\t} else {\n\t\t\tmessage +=\n\t\t\t\t' In environments without `AsyncLocalStorage`, the request store (used by e.g. remote functions) must be accessed synchronously, not after an `await`.' +\n\t\t\t\t' If it was accessed synchronously then this is an internal error.';\n\t\t}\n\n\t\tthrow new Error(message);\n\t}\n\treturn result;\n}\n\nexport function try_get_request_store() {\n\treturn sync_store ?? als?.getStore() ?? null;\n}\n\n/**\n * @template T\n * @param {RequestStore | null} store\n * @param {() => T} fn\n */\nexport function with_request_store(store, fn) {\n\ttry {\n\t\tsync_store = store;\n\t\treturn als ? als.run(store, fn) : fn();\n\t} finally {\n\t\t// Since AsyncLocalStorage is not working in webcontainers, we don't reset `sync_store`\n\t\t// and handle only one request at a time in `src/runtime/server/index.js`.\n\t\tif (!IN_WEBCONTAINER) {\n\t\t\tsync_store = null;\n\t\t}\n\t}\n}\n","/**\n * @template {{ tracing: { enabled: boolean, root: import('@opentelemetry/api').Span, current: import('@opentelemetry/api').Span } }} T\n * @param {T} event_like\n * @param {import('@opentelemetry/api').Span} current\n * @returns {T}\n */\nexport function merge_tracing(event_like, current) {\n\treturn {\n\t\t...event_like,\n\t\ttracing: {\n\t\t\t...event_like.tracing,\n\t\t\tcurrent\n\t\t}\n\t};\n}\n\nexport {\n\twith_request_store,\n\tgetRequestEvent,\n\tget_request_store,\n\ttry_get_request_store\n} from './event.js';\n","import { json, text } from \"@sveltejs/kit\";\nimport { SvelteKitError, HttpError } from \"@sveltejs/kit/internal\";\nimport { with_request_store } from \"@sveltejs/kit/internal/server\";\nimport { t as text_decoder, c as base64_decode, b as base64_encode } from \"./utils.js\";\nimport { D as DevalueError, i as is_primitive, g as get_type, a as is_plain_object$1, e as enumerable_symbols, s as stringify_key, b as stringify_string, v as valid_array_indices, c as experimental_async_required, d as get_render_context, u as uneval, h as hydratable_serialization_failed } from \"./render-context.js\";\nconst SVELTE_KIT_ASSETS = \"/_svelte_kit_assets\";\nconst ENDPOINT_METHODS = [\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"OPTIONS\", \"HEAD\"];\nconst MUTATIVE_METHODS = [\"POST\", \"PUT\", \"PATCH\", \"DELETE\"];\nconst PAGE_METHODS = [\"GET\", \"POST\", \"HEAD\"];\nfunction encode64(arraybuffer) {\n const dv = new DataView(arraybuffer);\n let binaryString = \"\";\n for (let i = 0; i < arraybuffer.byteLength; i++) {\n binaryString += String.fromCharCode(dv.getUint8(i));\n }\n return binaryToAscii(binaryString);\n}\nfunction decode64(string) {\n const binaryString = asciiToBinary(string);\n const arraybuffer = new ArrayBuffer(binaryString.length);\n const dv = new DataView(arraybuffer);\n for (let i = 0; i < arraybuffer.byteLength; i++) {\n dv.setUint8(i, binaryString.charCodeAt(i));\n }\n return arraybuffer;\n}\nconst KEY_STRING = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nfunction asciiToBinary(data) {\n if (data.length % 4 === 0) {\n data = data.replace(/==?$/, \"\");\n }\n let output = \"\";\n let buffer = 0;\n let accumulatedBits = 0;\n for (let i = 0; i < data.length; i++) {\n buffer <<= 6;\n buffer |= KEY_STRING.indexOf(data[i]);\n accumulatedBits += 6;\n if (accumulatedBits === 24) {\n output += String.fromCharCode((buffer & 16711680) >> 16);\n output += String.fromCharCode((buffer & 65280) >> 8);\n output += String.fromCharCode(buffer & 255);\n buffer = accumulatedBits = 0;\n }\n }\n if (accumulatedBits === 12) {\n buffer >>= 4;\n output += String.fromCharCode(buffer);\n } else if (accumulatedBits === 18) {\n buffer >>= 2;\n output += String.fromCharCode((buffer & 65280) >> 8);\n output += String.fromCharCode(buffer & 255);\n }\n return output;\n}\nfunction binaryToAscii(str) {\n let out = \"\";\n for (let i = 0; i < str.length; i += 3) {\n const groupsOfSix = [void 0, void 0, void 0, void 0];\n groupsOfSix[0] = str.charCodeAt(i) >> 2;\n groupsOfSix[1] = (str.charCodeAt(i) & 3) << 4;\n if (str.length > i + 1) {\n groupsOfSix[1] |= str.charCodeAt(i + 1) >> 4;\n groupsOfSix[2] = (str.charCodeAt(i + 1) & 15) << 2;\n }\n if (str.length > i + 2) {\n groupsOfSix[2] |= str.charCodeAt(i + 2) >> 6;\n groupsOfSix[3] = str.charCodeAt(i + 2) & 63;\n }\n for (let j = 0; j < groupsOfSix.length; j++) {\n if (typeof groupsOfSix[j] === \"undefined\") {\n out += \"=\";\n } else {\n out += KEY_STRING[groupsOfSix[j]];\n }\n }\n }\n return out;\n}\nconst UNDEFINED = -1;\nconst HOLE = -2;\nconst NAN = -3;\nconst POSITIVE_INFINITY = -4;\nconst NEGATIVE_INFINITY = -5;\nconst NEGATIVE_ZERO = -6;\nconst SPARSE = -7;\nfunction parse(serialized, revivers) {\n return unflatten(JSON.parse(serialized), revivers);\n}\nfunction unflatten(parsed, revivers) {\n if (typeof parsed === \"number\") return hydrate(parsed, true);\n if (!Array.isArray(parsed) || parsed.length === 0) {\n throw new Error(\"Invalid input\");\n }\n const values = (\n /** @type {any[]} */\n parsed\n );\n const hydrated = Array(values.length);\n let hydrating = null;\n function hydrate(index, standalone = false) {\n if (index === UNDEFINED) return void 0;\n if (index === NAN) return NaN;\n if (index === POSITIVE_INFINITY) return Infinity;\n if (index === NEGATIVE_INFINITY) return -Infinity;\n if (index === NEGATIVE_ZERO) return -0;\n if (standalone || typeof index !== \"number\") {\n throw new Error(`Invalid input`);\n }\n if (index in hydrated) return hydrated[index];\n const value = values[index];\n if (!value || typeof value !== \"object\") {\n hydrated[index] = value;\n } else if (Array.isArray(value)) {\n if (typeof value[0] === \"string\") {\n const type = value[0];\n const reviver = revivers && Object.hasOwn(revivers, type) ? revivers[type] : void 0;\n if (reviver) {\n let i = value[1];\n if (typeof i !== \"number\") {\n i = values.push(value[1]) - 1;\n }\n hydrating ??= /* @__PURE__ */ new Set();\n if (hydrating.has(i)) {\n throw new Error(\"Invalid circular reference\");\n }\n hydrating.add(i);\n hydrated[index] = reviver(hydrate(i));\n hydrating.delete(i);\n return hydrated[index];\n }\n switch (type) {\n case \"Date\":\n hydrated[index] = new Date(value[1]);\n break;\n case \"Set\":\n const set = /* @__PURE__ */ new Set();\n hydrated[index] = set;\n for (let i = 1; i < value.length; i += 1) {\n set.add(hydrate(value[i]));\n }\n break;\n case \"Map\":\n const map = /* @__PURE__ */ new Map();\n hydrated[index] = map;\n for (let i = 1; i < value.length; i += 2) {\n map.set(hydrate(value[i]), hydrate(value[i + 1]));\n }\n break;\n case \"RegExp\":\n hydrated[index] = new RegExp(value[1], value[2]);\n break;\n case \"Object\":\n const object = Object(value[1]);\n if (Object.hasOwn(object, \"__proto__\")) {\n throw new Error(\"Cannot parse an object with a `__proto__` property\");\n }\n hydrated[index] = object;\n break;\n case \"BigInt\":\n hydrated[index] = BigInt(value[1]);\n break;\n case \"null\":\n const obj = /* @__PURE__ */ Object.create(null);\n hydrated[index] = obj;\n for (let i = 1; i < value.length; i += 2) {\n if (value[i] === \"__proto__\") {\n throw new Error(\"Cannot parse an object with a `__proto__` property\");\n }\n obj[value[i]] = hydrate(value[i + 1]);\n }\n break;\n case \"Int8Array\":\n case \"Uint8Array\":\n case \"Uint8ClampedArray\":\n case \"Int16Array\":\n case \"Uint16Array\":\n case \"Int32Array\":\n case \"Uint32Array\":\n case \"Float32Array\":\n case \"Float64Array\":\n case \"BigInt64Array\":\n case \"BigUint64Array\": {\n if (values[value[1]][0] !== \"ArrayBuffer\") {\n throw new Error(\"Invalid data\");\n }\n const TypedArrayConstructor = globalThis[type];\n const buffer = hydrate(value[1]);\n const typedArray = new TypedArrayConstructor(buffer);\n hydrated[index] = value[2] !== void 0 ? typedArray.subarray(value[2], value[3]) : typedArray;\n break;\n }\n case \"ArrayBuffer\": {\n const base64 = value[1];\n if (typeof base64 !== \"string\") {\n throw new Error(\"Invalid ArrayBuffer encoding\");\n }\n const arraybuffer = decode64(base64);\n hydrated[index] = arraybuffer;\n break;\n }\n case \"Temporal.Duration\":\n case \"Temporal.Instant\":\n case \"Temporal.PlainDate\":\n case \"Temporal.PlainTime\":\n case \"Temporal.PlainDateTime\":\n case \"Temporal.PlainMonthDay\":\n case \"Temporal.PlainYearMonth\":\n case \"Temporal.ZonedDateTime\": {\n const temporalName = type.slice(9);\n hydrated[index] = Temporal[temporalName].from(value[1]);\n break;\n }\n case \"URL\": {\n const url = new URL(value[1]);\n hydrated[index] = url;\n break;\n }\n case \"URLSearchParams\": {\n const url = new URLSearchParams(value[1]);\n hydrated[index] = url;\n break;\n }\n default:\n throw new Error(`Unknown type ${type}`);\n }\n } else if (value[0] === SPARSE) {\n const len = value[1];\n if (!Number.isInteger(len) || len < 0) {\n throw new Error(\"Invalid input\");\n }\n const array = new Array(len);\n hydrated[index] = array;\n for (let i = 2; i < value.length; i += 2) {\n const idx = value[i];\n if (!Number.isInteger(idx) || idx < 0 || idx >= len) {\n throw new Error(\"Invalid input\");\n }\n array[idx] = hydrate(value[i + 1]);\n }\n } else {\n const array = new Array(value.length);\n hydrated[index] = array;\n for (let i = 0; i < value.length; i += 1) {\n const n = value[i];\n if (n === HOLE) continue;\n array[i] = hydrate(n);\n }\n }\n } else {\n const object = {};\n hydrated[index] = object;\n for (const key of Object.keys(value)) {\n if (key === \"__proto__\") {\n throw new Error(\"Cannot parse an object with a `__proto__` property\");\n }\n const n = value[key];\n object[key] = hydrate(n);\n }\n }\n return hydrated[index];\n }\n return hydrate(0);\n}\nfunction stringify$1(value, reducers) {\n const stringified = [];\n const indexes = /* @__PURE__ */ new Map();\n const custom = [];\n if (reducers) {\n for (const key of Object.getOwnPropertyNames(reducers)) {\n custom.push({ key, fn: reducers[key] });\n }\n }\n const keys = [];\n let p = 0;\n function flatten(thing) {\n if (thing === void 0) return UNDEFINED;\n if (Number.isNaN(thing)) return NAN;\n if (thing === Infinity) return POSITIVE_INFINITY;\n if (thing === -Infinity) return NEGATIVE_INFINITY;\n if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO;\n if (indexes.has(thing)) return indexes.get(thing);\n const index2 = p++;\n indexes.set(thing, index2);\n for (const { key, fn } of custom) {\n const value2 = fn(thing);\n if (value2) {\n stringified[index2] = `[\"${key}\",${flatten(value2)}]`;\n return index2;\n }\n }\n if (typeof thing === \"function\") {\n throw new DevalueError(`Cannot stringify a function`, keys, thing, value);\n }\n let str = \"\";\n if (is_primitive(thing)) {\n str = stringify_primitive(thing);\n } else {\n const type = get_type(thing);\n switch (type) {\n case \"Number\":\n case \"String\":\n case \"Boolean\":\n str = `[\"Object\",${stringify_primitive(thing)}]`;\n break;\n case \"BigInt\":\n str = `[\"BigInt\",${thing}]`;\n break;\n case \"Date\":\n const valid = !isNaN(thing.getDate());\n str = `[\"Date\",\"${valid ? thing.toISOString() : \"\"}\"]`;\n break;\n case \"URL\":\n str = `[\"URL\",${stringify_string(thing.toString())}]`;\n break;\n case \"URLSearchParams\":\n str = `[\"URLSearchParams\",${stringify_string(thing.toString())}]`;\n break;\n case \"RegExp\":\n const { source, flags } = thing;\n str = flags ? `[\"RegExp\",${stringify_string(source)},\"${flags}\"]` : `[\"RegExp\",${stringify_string(source)}]`;\n break;\n case \"Array\": {\n let mostly_dense = false;\n str = \"[\";\n for (let i = 0; i < thing.length; i += 1) {\n if (i > 0) str += \",\";\n if (Object.hasOwn(thing, i)) {\n keys.push(`[${i}]`);\n str += flatten(thing[i]);\n keys.pop();\n } else if (mostly_dense) {\n str += HOLE;\n } else {\n const populated_keys = valid_array_indices(\n /** @type {any[]} */\n thing\n );\n const population = populated_keys.length;\n const d = String(thing.length).length;\n const hole_cost = (thing.length - population) * 3;\n const sparse_cost = 4 + d + population * (d + 1);\n if (hole_cost > sparse_cost) {\n str = \"[\" + SPARSE + \",\" + thing.length;\n for (let j = 0; j < populated_keys.length; j++) {\n const key = populated_keys[j];\n keys.push(`[${key}]`);\n str += \",\" + key + \",\" + flatten(thing[key]);\n keys.pop();\n }\n break;\n } else {\n mostly_dense = true;\n str += HOLE;\n }\n }\n }\n str += \"]\";\n break;\n }\n case \"Set\":\n str = '[\"Set\"';\n for (const value2 of thing) {\n str += `,${flatten(value2)}`;\n }\n str += \"]\";\n break;\n case \"Map\":\n str = '[\"Map\"';\n for (const [key, value2] of thing) {\n keys.push(\n `.get(${is_primitive(key) ? stringify_primitive(key) : \"...\"})`\n );\n str += `,${flatten(key)},${flatten(value2)}`;\n keys.pop();\n }\n str += \"]\";\n break;\n case \"Int8Array\":\n case \"Uint8Array\":\n case \"Uint8ClampedArray\":\n case \"Int16Array\":\n case \"Uint16Array\":\n case \"Int32Array\":\n case \"Uint32Array\":\n case \"Float32Array\":\n case \"Float64Array\":\n case \"BigInt64Array\":\n case \"BigUint64Array\": {\n const typedArray = thing;\n str = '[\"' + type + '\",' + flatten(typedArray.buffer);\n const a = thing.byteOffset;\n const b = a + thing.byteLength;\n if (a > 0 || b !== typedArray.buffer.byteLength) {\n const m = +/(\\d+)/.exec(type)[1] / 8;\n str += `,${a / m},${b / m}`;\n }\n str += \"]\";\n break;\n }\n case \"ArrayBuffer\": {\n const arraybuffer = thing;\n const base64 = encode64(arraybuffer);\n str = `[\"ArrayBuffer\",\"${base64}\"]`;\n break;\n }\n case \"Temporal.Duration\":\n case \"Temporal.Instant\":\n case \"Temporal.PlainDate\":\n case \"Temporal.PlainTime\":\n case \"Temporal.PlainDateTime\":\n case \"Temporal.PlainMonthDay\":\n case \"Temporal.PlainYearMonth\":\n case \"Temporal.ZonedDateTime\":\n str = `[\"${type}\",${stringify_string(thing.toString())}]`;\n break;\n default:\n if (!is_plain_object$1(thing)) {\n throw new DevalueError(\n `Cannot stringify arbitrary non-POJOs`,\n keys,\n thing,\n value\n );\n }\n if (enumerable_symbols(thing).length > 0) {\n throw new DevalueError(\n `Cannot stringify POJOs with symbolic keys`,\n keys,\n thing,\n value\n );\n }\n if (Object.getPrototypeOf(thing) === null) {\n str = '[\"null\"';\n for (const key of Object.keys(thing)) {\n if (key === \"__proto__\") {\n throw new DevalueError(\n `Cannot stringify objects with __proto__ keys`,\n keys,\n thing,\n value\n );\n }\n keys.push(stringify_key(key));\n str += `,${stringify_string(key)},${flatten(thing[key])}`;\n keys.pop();\n }\n str += \"]\";\n } else {\n str = \"{\";\n let started = false;\n for (const key of Object.keys(thing)) {\n if (key === \"__proto__\") {\n throw new DevalueError(\n `Cannot stringify objects with __proto__ keys`,\n keys,\n thing,\n value\n );\n }\n if (started) str += \",\";\n started = true;\n keys.push(stringify_key(key));\n str += `${stringify_string(key)}:${flatten(thing[key])}`;\n keys.pop();\n }\n str += \"}\";\n }\n }\n }\n stringified[index2] = str;\n return index2;\n }\n const index = flatten(value);\n if (index < 0) return `${index}`;\n return `[${stringified.join(\",\")}]`;\n}\nfunction stringify_primitive(thing) {\n const type = typeof thing;\n if (type === \"string\") return stringify_string(thing);\n if (thing instanceof String) return stringify_string(thing.toString());\n if (thing === void 0) return UNDEFINED.toString();\n if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO.toString();\n if (type === \"bigint\") return `[\"BigInt\",\"${thing}\"]`;\n return String(thing);\n}\nfunction set_nested_value(object, path_string, value) {\n if (path_string.startsWith(\"n:\")) {\n path_string = path_string.slice(2);\n value = value === \"\" ? void 0 : parseFloat(value);\n } else if (path_string.startsWith(\"b:\")) {\n path_string = path_string.slice(2);\n value = value === \"on\";\n }\n deep_set(object, split_path(path_string), value);\n}\nfunction convert_formdata(data) {\n const result = {};\n for (let key of data.keys()) {\n const is_array = key.endsWith(\"[]\");\n let values = data.getAll(key);\n if (is_array) key = key.slice(0, -2);\n if (values.length > 1 && !is_array) {\n throw new Error(`Form cannot contain duplicated keys — \"${key}\" has ${values.length} values`);\n }\n values = values.filter(\n (entry) => typeof entry === \"string\" || entry.name !== \"\" || entry.size > 0\n );\n if (key.startsWith(\"n:\")) {\n key = key.slice(2);\n values = values.map((v) => v === \"\" ? void 0 : parseFloat(\n /** @type {string} */\n v\n ));\n } else if (key.startsWith(\"b:\")) {\n key = key.slice(2);\n values = values.map((v) => v === \"on\");\n }\n set_nested_value(result, key, is_array ? values : values[0]);\n }\n return result;\n}\nconst BINARY_FORM_CONTENT_TYPE = \"application/x-sveltekit-formdata\";\nconst BINARY_FORM_VERSION = 0;\nconst HEADER_BYTES = 1 + 4 + 2;\nasync function deserialize_binary_form(request) {\n if (request.headers.get(\"content-type\") !== BINARY_FORM_CONTENT_TYPE) {\n const form_data = await request.formData();\n return { data: convert_formdata(form_data), meta: {}, form_data };\n }\n if (!request.body) {\n throw deserialize_error(\"no body\");\n }\n const content_length = parseInt(request.headers.get(\"content-length\") ?? \"\");\n if (Number.isNaN(content_length)) {\n throw deserialize_error(\"invalid Content-Length header\");\n }\n const reader = request.body.getReader();\n const chunks = [];\n function get_chunk(index) {\n if (index in chunks) return chunks[index];\n let i = chunks.length;\n while (i <= index) {\n chunks[i] = reader.read().then((chunk) => chunk.value);\n i++;\n }\n return chunks[index];\n }\n async function get_buffer(offset, length) {\n let start_chunk;\n let chunk_start = 0;\n let chunk_index;\n for (chunk_index = 0; ; chunk_index++) {\n const chunk = await get_chunk(chunk_index);\n if (!chunk) return null;\n const chunk_end = chunk_start + chunk.byteLength;\n if (offset >= chunk_start && offset < chunk_end) {\n start_chunk = chunk;\n break;\n }\n chunk_start = chunk_end;\n }\n if (offset + length <= chunk_start + start_chunk.byteLength) {\n return start_chunk.subarray(offset - chunk_start, offset + length - chunk_start);\n }\n const chunks2 = [start_chunk.subarray(offset - chunk_start)];\n let cursor = start_chunk.byteLength - offset + chunk_start;\n while (cursor < length) {\n chunk_index++;\n let chunk = await get_chunk(chunk_index);\n if (!chunk) return null;\n if (chunk.byteLength > length - cursor) {\n chunk = chunk.subarray(0, length - cursor);\n }\n chunks2.push(chunk);\n cursor += chunk.byteLength;\n }\n const buffer = new Uint8Array(length);\n cursor = 0;\n for (const chunk of chunks2) {\n buffer.set(chunk, cursor);\n cursor += chunk.byteLength;\n }\n return buffer;\n }\n const header = await get_buffer(0, HEADER_BYTES);\n if (!header) throw deserialize_error(\"too short\");\n if (header[0] !== BINARY_FORM_VERSION) {\n throw deserialize_error(`got version ${header[0]}, expected version ${BINARY_FORM_VERSION}`);\n }\n const header_view = new DataView(header.buffer, header.byteOffset, header.byteLength);\n const data_length = header_view.getUint32(1, true);\n if (HEADER_BYTES + data_length > content_length) {\n throw deserialize_error(\"data overflow\");\n }\n const file_offsets_length = header_view.getUint16(5, true);\n if (HEADER_BYTES + data_length + file_offsets_length > content_length) {\n throw deserialize_error(\"file offset table overflow\");\n }\n const data_buffer = await get_buffer(HEADER_BYTES, data_length);\n if (!data_buffer) throw deserialize_error(\"data too short\");\n let file_offsets;\n let files_start_offset;\n if (file_offsets_length > 0) {\n const file_offsets_buffer = await get_buffer(HEADER_BYTES + data_length, file_offsets_length);\n if (!file_offsets_buffer) throw deserialize_error(\"file offset table too short\");\n const parsed_offsets = JSON.parse(text_decoder.decode(file_offsets_buffer));\n if (!Array.isArray(parsed_offsets) || parsed_offsets.some((n) => typeof n !== \"number\" || !Number.isInteger(n) || n < 0)) {\n throw deserialize_error(\"invalid file offset table\");\n }\n file_offsets = /** @type {Array<number>} */\n parsed_offsets;\n files_start_offset = HEADER_BYTES + data_length + file_offsets_length;\n }\n const file_spans = [];\n const [data, meta] = parse(text_decoder.decode(data_buffer), {\n File: ([name, type, size, last_modified, index]) => {\n if (typeof name !== \"string\" || typeof type !== \"string\" || typeof size !== \"number\" || typeof last_modified !== \"number\" || typeof index !== \"number\") {\n throw deserialize_error(\"invalid file metadata\");\n }\n let offset = file_offsets[index];\n if (offset === void 0) {\n throw deserialize_error(\"duplicate file offset table index\");\n }\n file_offsets[index] = void 0;\n offset += files_start_offset;\n if (offset + size > content_length) {\n throw deserialize_error(\"file data overflow\");\n }\n file_spans.push({ offset, size });\n return new Proxy(new LazyFile(name, type, size, last_modified, get_chunk, offset), {\n getPrototypeOf() {\n return File.prototype;\n }\n });\n }\n });\n file_spans.sort((a, b) => a.offset - b.offset || a.size - b.size);\n for (let i = 1; i < file_spans.length; i++) {\n const previous = file_spans[i - 1];\n const current = file_spans[i];\n const previous_end = previous.offset + previous.size;\n if (previous_end < current.offset) {\n throw deserialize_error(\"gaps in file data\");\n }\n if (previous_end > current.offset) {\n throw deserialize_error(\"overlapping file data\");\n }\n }\n void (async () => {\n let has_more = true;\n while (has_more) {\n const chunk = await get_chunk(chunks.length);\n has_more = !!chunk;\n }\n })();\n return { data, meta, form_data: null };\n}\nfunction deserialize_error(message) {\n return new SvelteKitError(400, \"Bad Request\", `Could not deserialize binary form: ${message}`);\n}\nclass LazyFile {\n /** @type {(index: number) => Promise<Uint8Array<ArrayBuffer> | undefined>} */\n #get_chunk;\n /** @type {number} */\n #offset;\n /**\n * @param {string} name\n * @param {string} type\n * @param {number} size\n * @param {number} last_modified\n * @param {(index: number) => Promise<Uint8Array<ArrayBuffer> | undefined>} get_chunk\n * @param {number} offset\n */\n constructor(name, type, size, last_modified, get_chunk, offset) {\n this.name = name;\n this.type = type;\n this.size = size;\n this.lastModified = last_modified;\n this.webkitRelativePath = \"\";\n this.#get_chunk = get_chunk;\n this.#offset = offset;\n this.arrayBuffer = this.arrayBuffer.bind(this);\n this.bytes = this.bytes.bind(this);\n this.slice = this.slice.bind(this);\n this.stream = this.stream.bind(this);\n this.text = this.text.bind(this);\n }\n /** @type {ArrayBuffer | undefined} */\n #buffer;\n async arrayBuffer() {\n this.#buffer ??= await new Response(this.stream()).arrayBuffer();\n return this.#buffer;\n }\n async bytes() {\n return new Uint8Array(await this.arrayBuffer());\n }\n /**\n * @param {number=} start\n * @param {number=} end\n * @param {string=} contentType\n */\n slice(start = 0, end = this.size, contentType = this.type) {\n if (start < 0) {\n start = Math.max(this.size + start, 0);\n } else {\n start = Math.min(start, this.size);\n }\n if (end < 0) {\n end = Math.max(this.size + end, 0);\n } else {\n end = Math.min(end, this.size);\n }\n const size = Math.max(end - start, 0);\n const file = new LazyFile(\n this.name,\n contentType,\n size,\n this.lastModified,\n this.#get_chunk,\n this.#offset + start\n );\n return file;\n }\n stream() {\n let cursor = 0;\n let chunk_index = 0;\n return new ReadableStream({\n start: async (controller) => {\n let chunk_start = 0;\n let start_chunk;\n for (chunk_index = 0; ; chunk_index++) {\n const chunk = await this.#get_chunk(chunk_index);\n if (!chunk) return null;\n const chunk_end = chunk_start + chunk.byteLength;\n if (this.#offset >= chunk_start && this.#offset < chunk_end) {\n start_chunk = chunk;\n break;\n }\n chunk_start = chunk_end;\n }\n if (this.#offset + this.size <= chunk_start + start_chunk.byteLength) {\n controller.enqueue(\n start_chunk.subarray(this.#offset - chunk_start, this.#offset + this.size - chunk_start)\n );\n controller.close();\n } else {\n controller.enqueue(start_chunk.subarray(this.#offset - chunk_start));\n cursor = start_chunk.byteLength - this.#offset + chunk_start;\n }\n },\n pull: async (controller) => {\n chunk_index++;\n let chunk = await this.#get_chunk(chunk_index);\n if (!chunk) {\n controller.error(\"incomplete file data\");\n controller.close();\n return;\n }\n if (chunk.byteLength > this.size - cursor) {\n chunk = chunk.subarray(0, this.size - cursor);\n }\n controller.enqueue(chunk);\n cursor += chunk.byteLength;\n if (cursor >= this.size) {\n controller.close();\n }\n }\n });\n }\n async text() {\n return text_decoder.decode(await this.arrayBuffer());\n }\n}\nconst path_regex = /^[a-zA-Z_$]\\w*(\\.[a-zA-Z_$]\\w*|\\[\\d+\\])*$/;\nfunction split_path(path) {\n if (!path_regex.test(path)) {\n throw new Error(`Invalid path ${path}`);\n }\n return path.split(/\\.|\\[|\\]/).filter(Boolean);\n}\nfunction check_prototype_pollution(key) {\n if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") {\n throw new Error(\n `Invalid key \"${key}\"`\n );\n }\n}\nfunction deep_set(object, keys, value) {\n let current = object;\n for (let i = 0; i < keys.length - 1; i += 1) {\n const key = keys[i];\n check_prototype_pollution(key);\n const is_array = /^\\d+$/.test(keys[i + 1]);\n const exists = Object.hasOwn(current, key);\n const inner = current[key];\n if (exists && is_array !== Array.isArray(inner)) {\n throw new Error(`Invalid array key ${keys[i + 1]}`);\n }\n if (!exists) {\n current[key] = is_array ? [] : {};\n }\n current = current[key];\n }\n const final_key = keys[keys.length - 1];\n check_prototype_pollution(final_key);\n current[final_key] = value;\n}\nfunction normalize_issue(issue, server = false) {\n const normalized = { name: \"\", path: [], message: issue.message, server };\n if (issue.path !== void 0) {\n let name = \"\";\n for (const segment of issue.path) {\n const key = (\n /** @type {string | number} */\n typeof segment === \"object\" ? segment.key : segment\n );\n normalized.path.push(key);\n if (typeof key === \"number\") {\n name += `[${key}]`;\n } else if (typeof key === \"string\") {\n name += name === \"\" ? key : \".\" + key;\n }\n }\n normalized.name = name;\n }\n return normalized;\n}\nfunction flatten_issues(issues) {\n const result = {};\n for (const issue of issues) {\n (result.$ ??= []).push(issue);\n let name = \"\";\n if (issue.path !== void 0) {\n for (const key of issue.path) {\n if (typeof key === \"number\") {\n name += `[${key}]`;\n } else if (typeof key === \"string\") {\n name += name === \"\" ? key : \".\" + key;\n }\n (result[name] ??= []).push(issue);\n }\n }\n }\n return result;\n}\nfunction deep_get(object, path) {\n let current = object;\n for (const key of path) {\n if (current == null || typeof current !== \"object\") {\n return current;\n }\n current = current[key];\n }\n return current;\n}\nfunction create_field_proxy(target, get_input, set_input, get_issues, path = []) {\n const get_value = () => {\n return deep_get(get_input(), path);\n };\n return new Proxy(target, {\n get(target2, prop) {\n if (typeof prop === \"symbol\") return target2[prop];\n if (/^\\d+$/.test(prop)) {\n return create_field_proxy({}, get_input, set_input, get_issues, [\n ...path,\n parseInt(prop, 10)\n ]);\n }\n const key = build_path_string(path);\n if (prop === \"set\") {\n const set_func = function(newValue) {\n set_input(path, newValue);\n return newValue;\n };\n return create_field_proxy(set_func, get_input, set_input, get_issues, [...path, prop]);\n }\n if (prop === \"value\") {\n return create_field_proxy(get_value, get_input, set_input, get_issues, [...path, prop]);\n }\n if (prop === \"issues\" || prop === \"allIssues\") {\n const issues_func = () => {\n const all_issues = get_issues()[key === \"\" ? \"$\" : key];\n if (prop === \"allIssues\") {\n return all_issues?.map((issue) => ({\n path: issue.path,\n message: issue.message\n }));\n }\n return all_issues?.filter((issue) => issue.name === key)?.map((issue) => ({\n path: issue.path,\n message: issue.message\n }));\n };\n return create_field_proxy(issues_func, get_input, set_input, get_issues, [...path, prop]);\n }\n if (prop === \"as\") {\n const as_func = (type, input_value) => {\n const is_array = type === \"file multiple\" || type === \"select multiple\" || type === \"checkbox\" && typeof input_value === \"string\";\n const prefix = type === \"number\" || type === \"range\" ? \"n:\" : type === \"checkbox\" && !is_array ? \"b:\" : \"\";\n const base_props = {\n name: prefix + key + (is_array ? \"[]\" : \"\"),\n get \"aria-invalid\"() {\n const issues = get_issues();\n return key in issues ? \"true\" : void 0;\n }\n };\n if (type !== \"text\" && type !== \"select\" && type !== \"select multiple\") {\n base_props.type = type === \"file multiple\" ? \"file\" : type;\n }\n if (type === \"submit\" || type === \"hidden\") {\n return Object.defineProperties(base_props, {\n value: { value: input_value, enumerable: true }\n });\n }\n if (type === \"select\" || type === \"select multiple\") {\n return Object.defineProperties(base_props, {\n multiple: { value: is_array, enumerable: true },\n value: {\n enumerable: true,\n get() {\n return input_value !== void 0 ? input_value : get_value();\n }\n }\n });\n }\n if (type === \"checkbox\" || type === \"radio\") {\n return Object.defineProperties(base_props, {\n value: { value: input_value ?? \"on\", enumerable: true },\n checked: {\n enumerable: true,\n get() {\n const value = get_value();\n if (type === \"radio\") {\n return value === input_value;\n }\n if (is_array) {\n return (value ?? []).includes(input_value);\n }\n return value;\n }\n }\n });\n }\n if (type === \"file\" || type === \"file multiple\") {\n return Object.defineProperties(base_props, {\n multiple: { value: is_array, enumerable: true },\n files: {\n enumerable: true,\n get() {\n const value = get_value();\n if (value instanceof File) {\n if (typeof DataTransfer !== \"undefined\") {\n const fileList = new DataTransfer();\n fileList.items.add(value);\n return fileList.files;\n }\n return { 0: value, length: 1 };\n }\n if (Array.isArray(value) && value.every((f) => f instanceof File)) {\n if (typeof DataTransfer !== \"undefined\") {\n const fileList = new DataTransfer();\n value.forEach((file) => fileList.items.add(file));\n return fileList.files;\n }\n const fileListLike = { length: value.length };\n value.forEach((file, index) => {\n fileListLike[index] = file;\n });\n return fileListLike;\n }\n return null;\n }\n }\n });\n }\n return Object.defineProperties(base_props, {\n value: {\n enumerable: true,\n get() {\n const value = input_value !== void 0 ? input_value : get_value();\n return value != null ? String(value) : \"\";\n }\n }\n });\n };\n return create_field_proxy(as_func, get_input, set_input, get_issues, [...path, \"as\"]);\n }\n return create_field_proxy({}, get_input, set_input, get_issues, [...path, prop]);\n }\n });\n}\nfunction build_path_string(path) {\n let result = \"\";\n for (const segment of path) {\n if (typeof segment === \"number\") {\n result += `[${segment}]`;\n } else {\n result += result === \"\" ? segment : \".\" + segment;\n }\n }\n return result;\n}\nfunction negotiate(accept, types) {\n const parts = [];\n accept.split(\",\").forEach((str, i) => {\n const match = /([^/ \\t]+)\\/([^; \\t]+)[ \\t]*(?:;[ \\t]*q=([0-9.]+))?/.exec(str);\n if (match) {\n const [, type, subtype, q = \"1\"] = match;\n parts.push({ type, subtype, q: +q, i });\n }\n });\n parts.sort((a, b) => {\n if (a.q !== b.q) {\n return b.q - a.q;\n }\n if (a.subtype === \"*\" !== (b.subtype === \"*\")) {\n return a.subtype === \"*\" ? 1 : -1;\n }\n if (a.type === \"*\" !== (b.type === \"*\")) {\n return a.type === \"*\" ? 1 : -1;\n }\n return a.i - b.i;\n });\n let accepted;\n let min_priority = Infinity;\n for (const mimetype of types) {\n const [type, subtype] = mimetype.split(\"/\");\n const priority = parts.findIndex(\n (part) => (part.type === type || part.type === \"*\") && (part.subtype === subtype || part.subtype === \"*\")\n );\n if (priority !== -1 && priority < min_priority) {\n accepted = mimetype;\n min_priority = priority;\n }\n }\n return accepted;\n}\nfunction is_content_type(request, ...types) {\n const type = request.headers.get(\"content-type\")?.split(\";\", 1)[0].trim() ?? \"\";\n return types.includes(type.toLowerCase());\n}\nfunction is_form_content_type(request) {\n return is_content_type(\n request,\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\",\n BINARY_FORM_CONTENT_TYPE\n );\n}\nfunction coalesce_to_error(err) {\n return err instanceof Error || err && /** @type {any} */\n err.name && /** @type {any} */\n err.message ? (\n /** @type {Error} */\n err\n ) : new Error(JSON.stringify(err));\n}\nfunction normalize_error(error) {\n return (\n /** @type {import('../exports/internal/index.js').Redirect | HttpError | SvelteKitError | Error} */\n error\n );\n}\nfunction get_status(error) {\n return error instanceof HttpError || error instanceof SvelteKitError ? error.status : 500;\n}\nfunction get_message(error) {\n return error instanceof SvelteKitError ? error.text : \"Internal Error\";\n}\nconst escape_html_attr_dict = {\n \"&\": \"&amp;\",\n '\"': \"&quot;\"\n // Svelte also escapes < because the escape function could be called inside a `noscript` there\n // https://github.com/sveltejs/svelte/security/advisories/GHSA-8266-84wp-wv5c\n // However, that doesn't apply in SvelteKit\n};\nconst escape_html_dict = {\n \"&\": \"&amp;\",\n \"<\": \"&lt;\"\n};\nconst surrogates = (\n // high surrogate without paired low surrogate\n \"[\\\\ud800-\\\\udbff](?![\\\\udc00-\\\\udfff])|[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]|[\\\\udc00-\\\\udfff]\"\n);\nconst escape_html_attr_regex = new RegExp(\n `[${Object.keys(escape_html_attr_dict).join(\"\")}]|` + surrogates,\n \"g\"\n);\nconst escape_html_regex = new RegExp(\n `[${Object.keys(escape_html_dict).join(\"\")}]|` + surrogates,\n \"g\"\n);\nfunction escape_html(str, is_attr) {\n const dict = is_attr ? escape_html_attr_dict : escape_html_dict;\n const escaped_str = str.replace(is_attr ? escape_html_attr_regex : escape_html_regex, (match) => {\n if (match.length === 2) {\n return match;\n }\n return dict[match] ?? `&#${match.charCodeAt(0)};`;\n });\n return escaped_str;\n}\nfunction method_not_allowed(mod, method) {\n return text(`${method} method not allowed`, {\n status: 405,\n headers: {\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405\n // \"The server must generate an Allow header field in a 405 status code response\"\n allow: allowed_methods(mod).join(\", \")\n }\n });\n}\nfunction allowed_methods(mod) {\n const allowed = ENDPOINT_METHODS.filter((method) => method in mod);\n if (\"GET\" in mod && !(\"HEAD\" in mod)) {\n allowed.push(\"HEAD\");\n }\n return allowed;\n}\nfunction get_global_name(options) {\n return `__sveltekit_${options.version_hash}`;\n}\nfunction static_error_page(options, status, message) {\n let page = options.templates.error({ status, message: escape_html(message) });\n return text(page, {\n headers: { \"content-type\": \"text/html; charset=utf-8\" },\n status\n });\n}\nasync function handle_fatal_error(event, state, options, error) {\n error = error instanceof HttpError ? error : coalesce_to_error(error);\n const status = get_status(error);\n const body = await handle_error_and_jsonify(event, state, options, error);\n const type = negotiate(event.request.headers.get(\"accept\") || \"text/html\", [\n \"application/json\",\n \"text/html\"\n ]);\n if (event.isDataRequest || type === \"application/json\") {\n return json(body, {\n status\n });\n }\n return static_error_page(options, status, body.message);\n}\nasync function handle_error_and_jsonify(event, state, options, error) {\n if (error instanceof HttpError) {\n return { message: \"Unknown Error\", ...error.body };\n }\n const status = get_status(error);\n const message = get_message(error);\n return await with_request_store(\n { event, state },\n () => options.hooks.handleError({ error, event, status, message })\n ) ?? { message };\n}\nfunction redirect_response(status, location) {\n const response = new Response(void 0, {\n status,\n headers: { location }\n });\n return response;\n}\nfunction clarify_devalue_error(event, error) {\n if (error.path) {\n return `Data returned from \\`load\\` while rendering ${event.route.id} is not serializable: ${error.message} (${error.path}). If you need to serialize/deserialize custom types, use transport hooks: https://svelte.dev/docs/kit/hooks#Universal-hooks-transport.`;\n }\n if (error.path === \"\") {\n return `Data returned from \\`load\\` while rendering ${event.route.id} is not a plain object`;\n }\n return error.message;\n}\nfunction serialize_uses(node) {\n const uses = {};\n if (node.uses && node.uses.dependencies.size > 0) {\n uses.dependencies = Array.from(node.uses.dependencies);\n }\n if (node.uses && node.uses.search_params.size > 0) {\n uses.search_params = Array.from(node.uses.search_params);\n }\n if (node.uses && node.uses.params.size > 0) {\n uses.params = Array.from(node.uses.params);\n }\n if (node.uses?.parent) uses.parent = 1;\n if (node.uses?.route) uses.route = 1;\n if (node.uses?.url) uses.url = 1;\n return uses;\n}\nfunction has_prerendered_path(manifest, pathname) {\n return manifest._.prerendered_routes.has(pathname) || pathname.at(-1) === \"/\" && manifest._.prerendered_routes.has(pathname.slice(0, -1));\n}\nfunction format_server_error(status, error, event) {\n const formatted_text = `\n\\x1B[1;31m[${status}] ${event.request.method} ${event.url.pathname}\\x1B[0m`;\n if (status === 404) {\n return formatted_text;\n }\n return `${formatted_text}\n${error.stack}`;\n}\nfunction get_node_type(node_id) {\n const parts = node_id?.split(\"/\");\n const filename = parts?.at(-1);\n if (!filename) return \"unknown\";\n const dot_parts = filename.split(\".\");\n return dot_parts.slice(0, -1).join(\".\");\n}\nfunction hydratable(key, fn) {\n {\n experimental_async_required();\n }\n const { hydratable: hydratable2 } = get_render_context();\n let entry = hydratable2.lookup.get(key);\n if (entry !== void 0) {\n return (\n /** @type {T} */\n entry.value\n );\n }\n const value = fn();\n entry = encode(key, value, hydratable2.unresolved_promises);\n hydratable2.lookup.set(key, entry);\n return value;\n}\nfunction encode(key, value, unresolved) {\n const entry = { value, serialized: \"\" };\n let uid = 1;\n entry.serialized = uneval(entry.value, (value2, uneval2) => {\n if (is_promise(value2)) {\n const placeholder = `\"${uid++}\"`;\n const p = value2.then((v) => {\n entry.serialized = entry.serialized.replace(placeholder, `r(${uneval2(v)})`);\n }).catch(\n (devalue_error) => hydratable_serialization_failed(\n key,\n serialization_stack(entry.stack, devalue_error?.stack)\n )\n );\n p.catch(() => {\n }).finally(() => unresolved?.delete(p));\n (entry.promises ??= []).push(p);\n return placeholder;\n }\n });\n return entry;\n}\nfunction is_promise(value) {\n return Object.prototype.toString.call(value) === \"[object Promise]\";\n}\nfunction serialization_stack(root_stack, uneval_stack) {\n let out = \"\";\n if (root_stack) {\n out += root_stack + \"\\n\";\n }\n if (uneval_stack) {\n out += \"Caused by:\\n\" + uneval_stack + \"\\n\";\n }\n return out || \"<missing stack trace>\";\n}\nconst INVALIDATED_PARAM = \"x-sveltekit-invalidated\";\nconst TRAILING_SLASH_PARAM = \"x-sveltekit-trailing-slash\";\nfunction stringify(data, transport) {\n const encoders = Object.fromEntries(Object.entries(transport).map(([k, v]) => [k, v.encode]));\n return stringify$1(data, encoders);\n}\nconst object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames(Object.prototype).sort().join(\"\\0\");\nfunction is_plain_object(thing) {\n if (typeof thing !== \"object\" || thing === null) return false;\n const proto = Object.getPrototypeOf(thing);\n return proto === Object.prototype || proto === null || Object.getPrototypeOf(proto) === null || Object.getOwnPropertyNames(proto).sort().join(\"\\0\") === object_proto_names;\n}\nfunction to_sorted(value, clones) {\n const clone = Object.getPrototypeOf(value) === null ? /* @__PURE__ */ Object.create(null) : {};\n clones.set(value, clone);\n Object.defineProperty(clone, remote_arg_marker, { value: true });\n for (const key of Object.keys(value).sort()) {\n const property = value[key];\n Object.defineProperty(clone, key, {\n value: clones.get(property) ?? property,\n enumerable: true,\n configurable: true,\n writable: true\n });\n }\n return clone;\n}\nconst remote_object = \"__skrao\";\nconst remote_map = \"__skram\";\nconst remote_set = \"__skras\";\nconst remote_regex_guard = \"__skrag\";\nconst remote_arg_marker = Symbol(remote_object);\nfunction create_remote_arg_reducers(transport, sort, remote_arg_clones) {\n const remote_fns_reducers = {\n [remote_regex_guard]: (\n /** @type {(value: unknown) => void} */\n (value) => {\n if (value instanceof RegExp) {\n throw new Error(\"Regular expressions are not valid remote function arguments\");\n }\n }\n )\n };\n if (sort) {\n remote_fns_reducers[remote_map] = (value) => {\n if (!(value instanceof Map)) {\n return;\n }\n const entries = [];\n for (const [key, val] of value) {\n entries.push([stringify2(key), stringify2(val)]);\n }\n return entries.sort(([a1, a2], [b1, b2]) => {\n if (a1 < b1) return -1;\n if (a1 > b1) return 1;\n if (a2 < b2) return -1;\n if (a2 > b2) return 1;\n return 0;\n });\n };\n remote_fns_reducers[remote_set] = (value) => {\n if (!(value instanceof Set)) {\n return;\n }\n const items = [];\n for (const item of value) {\n items.push(stringify2(item));\n }\n items.sort();\n return items;\n };\n remote_fns_reducers[remote_object] = (value) => {\n if (!is_plain_object(value)) {\n return;\n }\n if (Object.hasOwn(value, remote_arg_marker)) {\n return;\n }\n if (remote_arg_clones.has(value)) {\n return remote_arg_clones.get(value);\n }\n return to_sorted(value, remote_arg_clones);\n };\n }\n const user_reducers = Object.fromEntries(\n Object.entries(transport).map(([k, v]) => [k, v.encode])\n );\n const all_reducers = { ...user_reducers, ...remote_fns_reducers };\n const stringify2 = (value) => stringify$1(value, all_reducers);\n return all_reducers;\n}\nfunction create_remote_arg_revivers(transport) {\n const remote_fns_revivers = {\n /** @type {(value: unknown) => unknown} */\n [remote_object]: (value) => value,\n /** @type {(value: unknown) => Map<unknown, unknown>} */\n [remote_map]: (value) => {\n if (!Array.isArray(value)) {\n throw new Error(\"Invalid data for Map reviver\");\n }\n const map = /* @__PURE__ */ new Map();\n for (const item of value) {\n if (!Array.isArray(item) || item.length !== 2 || typeof item[0] !== \"string\" || typeof item[1] !== \"string\") {\n throw new Error(\"Invalid data for Map reviver\");\n }\n const [key, val] = item;\n map.set(parse$1(key), parse$1(val));\n }\n return map;\n },\n /** @type {(value: unknown) => Set<unknown>} */\n [remote_set]: (value) => {\n if (!Array.isArray(value)) {\n throw new Error(\"Invalid data for Set reviver\");\n }\n const set = /* @__PURE__ */ new Set();\n for (const item of value) {\n if (typeof item !== \"string\") {\n throw new Error(\"Invalid data for Set reviver\");\n }\n set.add(parse$1(item));\n }\n return set;\n }\n };\n const user_revivers = Object.fromEntries(\n Object.entries(transport).map(([k, v]) => [k, v.decode])\n );\n const all_revivers = { ...user_revivers, ...remote_fns_revivers };\n const parse$1 = (data) => parse(data, all_revivers);\n return all_revivers;\n}\nfunction stringify_remote_arg(value, transport, sort = true) {\n if (value === void 0) return \"\";\n const json_string = stringify$1(\n value,\n create_remote_arg_reducers(transport, sort, /* @__PURE__ */ new Map())\n );\n const bytes = new TextEncoder().encode(json_string);\n return base64_encode(bytes).replaceAll(\"=\", \"\").replaceAll(\"+\", \"-\").replaceAll(\"/\", \"_\");\n}\nfunction parse_remote_arg(string, transport) {\n if (!string) return void 0;\n const json_string = text_decoder.decode(\n // no need to add back `=` characters, atob can handle it\n base64_decode(string.replaceAll(\"-\", \"+\").replaceAll(\"_\", \"/\"))\n );\n return parse(json_string, create_remote_arg_revivers(transport));\n}\nfunction create_remote_key(id, payload) {\n return id + \"/\" + payload;\n}\nfunction split_remote_key(key) {\n const i = key.lastIndexOf(\"/\");\n if (i === -1) {\n throw new Error(`Invalid remote key: ${key}`);\n }\n return {\n id: key.slice(0, i),\n payload: key.slice(i + 1)\n };\n}\nfunction unfriendly_hydratable(key, fn) {\n if (!hydratable) {\n throw new Error(\"Remote functions require Svelte 5.44.0 or later\");\n }\n return hydratable(key, fn);\n}\nexport {\n normalize_issue as A,\n set_nested_value as B,\n flatten_issues as C,\n deep_set as D,\n ENDPOINT_METHODS as E,\n INVALIDATED_PARAM as I,\n MUTATIVE_METHODS as M,\n PAGE_METHODS as P,\n SVELTE_KIT_ASSETS as S,\n TRAILING_SLASH_PARAM as T,\n normalize_error as a,\n get_global_name as b,\n serialize_uses as c,\n clarify_devalue_error as d,\n get_node_type as e,\n escape_html as f,\n get_status as g,\n handle_error_and_jsonify as h,\n is_form_content_type as i,\n create_remote_key as j,\n static_error_page as k,\n stringify as l,\n method_not_allowed as m,\n negotiate as n,\n deserialize_binary_form as o,\n parse_remote_arg as p,\n split_remote_key as q,\n redirect_response as r,\n stringify$1 as s,\n has_prerendered_path as t,\n handle_fatal_error as u,\n format_server_error as v,\n stringify_remote_arg as w,\n unfriendly_hydratable as x,\n parse as y,\n create_field_proxy as z\n};\n"],"names":["is_plain_object$1"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
@@ -0,0 +1,39 @@
1
+ const text_encoder = new TextEncoder();
2
+ const text_decoder = new TextDecoder();
3
+ function get_relative_path(from, to) {
4
+ const from_parts = from.split(/[/\\]/);
5
+ const to_parts = to.split(/[/\\]/);
6
+ from_parts.pop();
7
+ while (from_parts[0] === to_parts[0]) {
8
+ from_parts.shift();
9
+ to_parts.shift();
10
+ }
11
+ let i = from_parts.length;
12
+ while (i--) from_parts[i] = "..";
13
+ return from_parts.concat(to_parts).join("/");
14
+ }
15
+ function base64_encode(bytes) {
16
+ if (globalThis.Buffer) {
17
+ return globalThis.Buffer.from(bytes).toString("base64");
18
+ }
19
+ let binary = "";
20
+ for (let i = 0; i < bytes.length; i++) {
21
+ binary += String.fromCharCode(bytes[i]);
22
+ }
23
+ return btoa(binary);
24
+ }
25
+ function base64_decode(encoded) {
26
+ if (globalThis.Buffer) {
27
+ const buffer = globalThis.Buffer.from(encoded, "base64");
28
+ return new Uint8Array(buffer);
29
+ }
30
+ const binary = atob(encoded);
31
+ const bytes = new Uint8Array(binary.length);
32
+ for (let i = 0; i < binary.length; i++) {
33
+ bytes[i] = binary.charCodeAt(i);
34
+ }
35
+ return bytes;
36
+ }
37
+
38
+ export { text_encoder as a, base64_decode as b, base64_encode as c, get_relative_path as g, text_decoder as t };
39
+ //# sourceMappingURL=utils.js-DGYJFmnf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js-DGYJFmnf.js","sources":["../../../../.svelte-kit/output/server/chunks/utils.js"],"sourcesContent":["const text_encoder = new TextEncoder();\nconst text_decoder = new TextDecoder();\nfunction get_relative_path(from, to) {\n const from_parts = from.split(/[/\\\\]/);\n const to_parts = to.split(/[/\\\\]/);\n from_parts.pop();\n while (from_parts[0] === to_parts[0]) {\n from_parts.shift();\n to_parts.shift();\n }\n let i = from_parts.length;\n while (i--) from_parts[i] = \"..\";\n return from_parts.concat(to_parts).join(\"/\");\n}\nfunction base64_encode(bytes) {\n if (globalThis.Buffer) {\n return globalThis.Buffer.from(bytes).toString(\"base64\");\n }\n let binary = \"\";\n for (let i = 0; i < bytes.length; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary);\n}\nfunction base64_decode(encoded) {\n if (globalThis.Buffer) {\n const buffer = globalThis.Buffer.from(encoded, \"base64\");\n return new Uint8Array(buffer);\n }\n const binary = atob(encoded);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n}\nexport {\n text_encoder as a,\n base64_encode as b,\n base64_decode as c,\n get_relative_path as g,\n text_decoder as t\n};\n"],"names":[],"mappings":"AAAK,MAAC,YAAY,GAAG,IAAI,WAAW;AAC/B,MAAC,YAAY,GAAG,IAAI,WAAW;AACpC,SAAS,iBAAiB,CAAC,IAAI,EAAE,EAAE,EAAE;AACrC,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACxC,EAAE,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;AACpC,EAAE,UAAU,CAAC,GAAG,EAAE;AAClB,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;AACxC,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,IAAI,QAAQ,CAAC,KAAK,EAAE;AACpB,EAAE;AACF,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM;AAC3B,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;AAClC,EAAE,OAAO,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9C;AACA,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,EAAE,IAAI,UAAU,CAAC,MAAM,EAAE;AACzB,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC3D,EAAE;AACF,EAAE,IAAI,MAAM,GAAG,EAAE;AACjB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3C,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB;AACA,SAAS,aAAa,CAAC,OAAO,EAAE;AAChC,EAAE,IAAI,UAAU,CAAC,MAAM,EAAE;AACzB,IAAI,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;AAC5D,IAAI,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC;AACjC,EAAE;AACF,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;AAC9B,EAAE,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AAC7C,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACnC,EAAE;AACF,EAAE,OAAO,KAAK;AACd;;;;"}
@@ -0,0 +1,82 @@
1
+ import { p as error } from '../../../../../chunks/shared.js-DuDDTJVi.js';
2
+ import { m as mindbrainUrl } from '../../../../../chunks/mindbrainClient.js-BFAJqRSL.js';
3
+ import '../../../../../chunks/utils.js-DGYJFmnf.js';
4
+ import '../../../../../chunks/render-context.js-CTu5Wkzp.js';
5
+ import 'node:crypto';
6
+ import 'node:fs';
7
+ import 'node:path';
8
+
9
+ function repairMindbrainJson(raw) {
10
+ return raw.replace(
11
+ /"kind":\.\{\s*\.value\s*=\s*\{\s*([^}]+)\s*\}\s*,\s*\.options\s*=\s*\.\{[^}]*\}\s*\}/g,
12
+ (_match, bytesStr) => {
13
+ const bytes = bytesStr.split(",").map((s) => Number(s.trim())).filter((n) => Number.isFinite(n));
14
+ return `"kind":"${String.fromCharCode(...bytes)}"`;
15
+ }
16
+ ).replace(/,,+/g, ",");
17
+ }
18
+ const TIMEOUT_MS = 15e3;
19
+ const GET_ALLOWED = [
20
+ /^ontology\/(list|graph|type|inspect)$/,
21
+ /^ontology\/taxonomy$/,
22
+ /^graph\/(entity|relation|subgraph)$/,
23
+ /^graph\/(diagnostics|gap-rules|rule-evaluations|rule-events)$/,
24
+ /^graph\/type-counts$/,
25
+ /^workspace\/list$/,
26
+ /^ghostcrab\/(search|graph-search|pack-projections|projection-get)$/,
27
+ /^ghostcrab\/artifact\/[^/]+$/,
28
+ /^ghostcrab\/artifact\/[^/]+\/events$/,
29
+ /^ghostcrab\/projections\/relevance$/,
30
+ /^collections\/facet-search$/
31
+ ];
32
+ const POST_ALLOWED = [
33
+ /^ontology\/taxonomy\/(value|dimension)$/,
34
+ /^ontology\/(entity-type|edge-type|property|triple)$/,
35
+ /^graph\/rule-evaluations\/run$/,
36
+ /^ghostcrab\/search$/,
37
+ /^ghostcrab\/artifact\/[^/]+\/refresh$/
38
+ ];
39
+ const GET = async ({ params, url, request }) => {
40
+ return proxyBrain(request.method, params.path ?? "", url.search);
41
+ };
42
+ const POST = async ({ params, url, request }) => {
43
+ const body = await request.text();
44
+ return proxyBrain(request.method, params.path ?? "", url.search, body, request.headers.get("content-type"));
45
+ };
46
+ async function proxyBrain(method, path, search, body, contentType) {
47
+ const segments = Array.isArray(path) ? path.join("/") : path;
48
+ const allowed = method === "POST" || method === "PUT" || method === "PATCH" ? POST_ALLOWED : GET_ALLOWED;
49
+ if (!allowed.some((pattern) => pattern.test(segments))) {
50
+ throw error(404, "MindBrain route is not exposed by this viewer proxy");
51
+ }
52
+ const target = mindbrainUrl(segments, search);
53
+ const controller = new AbortController();
54
+ const timer = setTimeout(() => controller.abort(), TIMEOUT_MS);
55
+ try {
56
+ const headers = new Headers();
57
+ if (contentType) headers.set("content-type", contentType);
58
+ const res = await fetch(target, {
59
+ method,
60
+ headers,
61
+ body: method === "GET" || method === "HEAD" ? void 0 : body,
62
+ signal: controller.signal
63
+ });
64
+ let text = await res.text();
65
+ if (segments === "graph/subgraph" && res.ok && text.includes('"kind":.')) {
66
+ text = repairMindbrainJson(text);
67
+ }
68
+ return new Response(text, {
69
+ status: res.status,
70
+ headers: {
71
+ "content-type": res.headers.get("content-type") ?? "application/json; charset=utf-8"
72
+ }
73
+ });
74
+ } catch (e) {
75
+ throw error(502, e instanceof Error ? e.message : "MindBrain proxy failed");
76
+ } finally {
77
+ clearTimeout(timer);
78
+ }
79
+ }
80
+
81
+ export { GET, POST };
82
+ //# sourceMappingURL=_server.ts.js-MgPpKBks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts.js-MgPpKBks.js","sources":["../../../../../../../../.svelte-kit/output/server/entries/endpoints/api/brain/_...path_/_server.ts.js"],"sourcesContent":["import { error } from \"@sveltejs/kit\";\nimport { m as mindbrainUrl } from \"../../../../../chunks/mindbrainClient.js\";\nfunction repairMindbrainJson(raw) {\n return raw.replace(\n /\"kind\":\\.\\{\\s*\\.value\\s*=\\s*\\{\\s*([^}]+)\\s*\\}\\s*,\\s*\\.options\\s*=\\s*\\.\\{[^}]*\\}\\s*\\}/g,\n (_match, bytesStr) => {\n const bytes = bytesStr.split(\",\").map((s) => Number(s.trim())).filter((n) => Number.isFinite(n));\n return `\"kind\":\"${String.fromCharCode(...bytes)}\"`;\n }\n ).replace(/,,+/g, \",\");\n}\nconst TIMEOUT_MS = 15e3;\nconst GET_ALLOWED = [\n /^ontology\\/(list|graph|type|inspect)$/,\n /^ontology\\/taxonomy$/,\n /^graph\\/(entity|relation|subgraph)$/,\n /^graph\\/(diagnostics|gap-rules|rule-evaluations|rule-events)$/,\n /^graph\\/type-counts$/,\n /^workspace\\/list$/,\n /^ghostcrab\\/(search|graph-search|pack-projections|projection-get)$/,\n /^ghostcrab\\/artifact\\/[^/]+$/,\n /^ghostcrab\\/artifact\\/[^/]+\\/events$/,\n /^ghostcrab\\/projections\\/relevance$/,\n /^collections\\/facet-search$/\n];\nconst POST_ALLOWED = [\n /^ontology\\/taxonomy\\/(value|dimension)$/,\n /^ontology\\/(entity-type|edge-type|property|triple)$/,\n /^graph\\/rule-evaluations\\/run$/,\n /^ghostcrab\\/search$/,\n /^ghostcrab\\/artifact\\/[^/]+\\/refresh$/\n];\nconst GET = async ({ params, url, request }) => {\n return proxyBrain(request.method, params.path ?? \"\", url.search);\n};\nconst POST = async ({ params, url, request }) => {\n const body = await request.text();\n return proxyBrain(request.method, params.path ?? \"\", url.search, body, request.headers.get(\"content-type\"));\n};\nasync function proxyBrain(method, path, search, body, contentType) {\n const segments = Array.isArray(path) ? path.join(\"/\") : path;\n const allowed = method === \"POST\" || method === \"PUT\" || method === \"PATCH\" ? POST_ALLOWED : GET_ALLOWED;\n if (!allowed.some((pattern) => pattern.test(segments))) {\n throw error(404, \"MindBrain route is not exposed by this viewer proxy\");\n }\n const target = mindbrainUrl(segments, search);\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), TIMEOUT_MS);\n try {\n const headers = new Headers();\n if (contentType) headers.set(\"content-type\", contentType);\n const res = await fetch(target, {\n method,\n headers,\n body: method === \"GET\" || method === \"HEAD\" ? void 0 : body,\n signal: controller.signal\n });\n let text = await res.text();\n if (segments === \"graph/subgraph\" && res.ok && text.includes('\"kind\":.')) {\n text = repairMindbrainJson(text);\n }\n return new Response(text, {\n status: res.status,\n headers: {\n \"content-type\": res.headers.get(\"content-type\") ?? \"application/json; charset=utf-8\"\n }\n });\n } catch (e) {\n throw error(502, e instanceof Error ? e.message : \"MindBrain proxy failed\");\n } finally {\n clearTimeout(timer);\n }\n}\nexport {\n GET,\n POST\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { j as json } from '../../../../../chunks/shared.js-DuDDTJVi.js';
2
+ import { r as resolveDataSource, a as resolveMindbrainRuntime, b as brainHealth } from '../../../../../chunks/mindbrainClient.js-BFAJqRSL.js';
3
+ import '../../../../../chunks/utils.js-DGYJFmnf.js';
4
+ import '../../../../../chunks/render-context.js-CTu5Wkzp.js';
5
+ import 'node:crypto';
6
+ import 'node:fs';
7
+ import 'node:path';
8
+
9
+ const GET = async () => {
10
+ if (resolveDataSource() === "sqlite-demo") {
11
+ return json({ online: false, mode: "sqlite-demo" });
12
+ }
13
+ const runtime = resolveMindbrainRuntime();
14
+ const online = await brainHealth();
15
+ return json({ online, mode: "brain", runtime });
16
+ };
17
+
18
+ export { GET };
19
+ //# sourceMappingURL=_server.ts.js-DnJQNmWV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts.js-DnJQNmWV.js","sources":["../../../../../../../../.svelte-kit/output/server/entries/endpoints/api/brain/health/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { r as resolveDataSource, a as resolveMindbrainRuntime, b as brainHealth } from \"../../../../../chunks/mindbrainClient.js\";\nconst GET = async () => {\n if (resolveDataSource() === \"sqlite-demo\") {\n return json({ online: false, mode: \"sqlite-demo\" });\n }\n const runtime = resolveMindbrainRuntime();\n const online = await brainHealth();\n return json({ online, mode: \"brain\", runtime });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;AAEK,MAAC,GAAG,GAAG,YAAY;AACxB,EAAE,IAAI,iBAAiB,EAAE,KAAK,aAAa,EAAE;AAC7C,IAAI,OAAO,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AACvD,EAAE;AACF,EAAE,MAAM,OAAO,GAAG,uBAAuB,EAAE;AAC3C,EAAE,MAAM,MAAM,GAAG,MAAM,WAAW,EAAE;AACpC,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACjD;;;;"}
@@ -0,0 +1,37 @@
1
+ import { j as json, p as error } from '../../../../chunks/shared.js-DuDDTJVi.js';
2
+ import { s as sanitizeOntologyParam, a as sanitizeTopKParam, b as sanitizeWorkspaceParam, g as getGraphRepository } from '../../../../chunks/graphRepository.js-D2DARfVY.js';
3
+ import { s as sanitizeEdgeLinkModeParam, e as edgeLabelsForLinkMode } from '../../../../chunks/edgeLinkModes.js-CfRqrZtd.js';
4
+ import '../../../../chunks/utils.js-DGYJFmnf.js';
5
+ import '../../../../chunks/render-context.js-CTu5Wkzp.js';
6
+ import 'node:child_process';
7
+ import 'node:fs';
8
+ import 'node:os';
9
+ import 'node:path';
10
+ import 'node:util';
11
+ import '../../../../chunks/shared-server.js-DaWdgxVh.js';
12
+
13
+ const GET = async ({ url }) => {
14
+ try {
15
+ const ontology = sanitizeOntologyParam(url.searchParams.get("ontology"));
16
+ const linkMode = sanitizeEdgeLinkModeParam(url.searchParams.get("linkMode"));
17
+ const edgeLabelAllowlist = edgeLabelsForLinkMode(linkMode);
18
+ const topKEdgesPerNode = sanitizeTopKParam(url.searchParams.get("topK"));
19
+ const workspace = sanitizeWorkspaceParam(url.searchParams.get("workspace"));
20
+ const body = await getGraphRepository().fetchGraph({
21
+ workspace,
22
+ ontology,
23
+ edgeLabelAllowlist,
24
+ topKEdgesPerNode
25
+ });
26
+ return json(body, {
27
+ headers: { "Cache-Control": "public, max-age=30, stale-while-revalidate=300" }
28
+ });
29
+ } catch (e) {
30
+ const message = e instanceof Error ? e.message || e.code || e.name : "Unknown database error";
31
+ console.error("[api/graph]", message);
32
+ throw error(500, message);
33
+ }
34
+ };
35
+
36
+ export { GET };
37
+ //# sourceMappingURL=_server.ts.js-Bxo7qHVz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts.js-Bxo7qHVz.js","sources":["../../../../../../../.svelte-kit/output/server/entries/endpoints/api/graph/_server.ts.js"],"sourcesContent":["import { json, error } from \"@sveltejs/kit\";\nimport { s as sanitizeOntologyParam, a as sanitizeTopKParam, b as sanitizeWorkspaceParam, g as getGraphRepository } from \"../../../../chunks/graphRepository.js\";\nimport { s as sanitizeEdgeLinkModeParam, e as edgeLabelsForLinkMode } from \"../../../../chunks/edgeLinkModes.js\";\nconst GET = async ({ url }) => {\n try {\n const ontology = sanitizeOntologyParam(url.searchParams.get(\"ontology\"));\n const linkMode = sanitizeEdgeLinkModeParam(url.searchParams.get(\"linkMode\"));\n const edgeLabelAllowlist = edgeLabelsForLinkMode(linkMode);\n const topKEdgesPerNode = sanitizeTopKParam(url.searchParams.get(\"topK\"));\n const workspace = sanitizeWorkspaceParam(url.searchParams.get(\"workspace\"));\n const body = await getGraphRepository().fetchGraph({\n workspace,\n ontology,\n edgeLabelAllowlist,\n topKEdgesPerNode\n });\n return json(body, {\n headers: { \"Cache-Control\": \"public, max-age=30, stale-while-revalidate=300\" }\n });\n } catch (e) {\n const message = e instanceof Error ? e.message || e.code || e.name : \"Unknown database error\";\n console.error(\"[api/graph]\", message);\n throw error(500, message);\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAGK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC/B,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC5E,IAAI,MAAM,QAAQ,GAAG,yBAAyB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChF,IAAI,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,QAAQ,CAAC;AAC9D,IAAI,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5E,IAAI,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC/E,IAAI,MAAM,IAAI,GAAG,MAAM,kBAAkB,EAAE,CAAC,UAAU,CAAC;AACvD,MAAM,SAAS;AACf,MAAM,QAAQ;AACd,MAAM,kBAAkB;AACxB,MAAM;AACN,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,CAAC,IAAI,EAAE;AACtB,MAAM,OAAO,EAAE,EAAE,eAAe,EAAE,gDAAgD;AAClF,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,wBAAwB;AACjG,IAAI,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC;AACzC,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;AAC7B,EAAE;AACF;;;;"}
@@ -0,0 +1,37 @@
1
+ import { j as json, p as error } from '../../../../../chunks/shared.js-DuDDTJVi.js';
2
+ import { s as sanitizeOntologyParam, a as sanitizeTopKParam, b as sanitizeWorkspaceParam, g as getGraphRepository } from '../../../../../chunks/graphRepository.js-D2DARfVY.js';
3
+ import { s as sanitizeEdgeLinkModeParam, e as edgeLabelsForLinkMode } from '../../../../../chunks/edgeLinkModes.js-CfRqrZtd.js';
4
+ import '../../../../../chunks/utils.js-DGYJFmnf.js';
5
+ import '../../../../../chunks/render-context.js-CTu5Wkzp.js';
6
+ import 'node:child_process';
7
+ import 'node:fs';
8
+ import 'node:os';
9
+ import 'node:path';
10
+ import 'node:util';
11
+ import '../../../../../chunks/shared-server.js-DaWdgxVh.js';
12
+
13
+ const GET = async ({ url }) => {
14
+ try {
15
+ const ontology = sanitizeOntologyParam(url.searchParams.get("ontology"));
16
+ const linkMode = sanitizeEdgeLinkModeParam(url.searchParams.get("linkMode"));
17
+ const edgeLabelAllowlist = edgeLabelsForLinkMode(linkMode);
18
+ const topKEdgesPerNode = sanitizeTopKParam(url.searchParams.get("topK"));
19
+ const workspace = sanitizeWorkspaceParam(url.searchParams.get("workspace"));
20
+ const counts = await getGraphRepository().countGraph({
21
+ workspace,
22
+ ontology,
23
+ edgeLabelAllowlist,
24
+ topKEdgesPerNode
25
+ });
26
+ return json(counts, {
27
+ headers: { "Cache-Control": "public, max-age=30, stale-while-revalidate=120" }
28
+ });
29
+ } catch (e) {
30
+ const message = e instanceof Error ? e.message : "Unknown error";
31
+ console.error("[api/graph/count]", message);
32
+ throw error(500, message);
33
+ }
34
+ };
35
+
36
+ export { GET };
37
+ //# sourceMappingURL=_server.ts.js-BajaLnqp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts.js-BajaLnqp.js","sources":["../../../../../../../../.svelte-kit/output/server/entries/endpoints/api/graph/count/_server.ts.js"],"sourcesContent":["import { json, error } from \"@sveltejs/kit\";\nimport { s as sanitizeOntologyParam, a as sanitizeTopKParam, b as sanitizeWorkspaceParam, g as getGraphRepository } from \"../../../../../chunks/graphRepository.js\";\nimport { s as sanitizeEdgeLinkModeParam, e as edgeLabelsForLinkMode } from \"../../../../../chunks/edgeLinkModes.js\";\nconst GET = async ({ url }) => {\n try {\n const ontology = sanitizeOntologyParam(url.searchParams.get(\"ontology\"));\n const linkMode = sanitizeEdgeLinkModeParam(url.searchParams.get(\"linkMode\"));\n const edgeLabelAllowlist = edgeLabelsForLinkMode(linkMode);\n const topKEdgesPerNode = sanitizeTopKParam(url.searchParams.get(\"topK\"));\n const workspace = sanitizeWorkspaceParam(url.searchParams.get(\"workspace\"));\n const counts = await getGraphRepository().countGraph({\n workspace,\n ontology,\n edgeLabelAllowlist,\n topKEdgesPerNode\n });\n return json(counts, {\n headers: { \"Cache-Control\": \"public, max-age=30, stale-while-revalidate=120\" }\n });\n } catch (e) {\n const message = e instanceof Error ? e.message : \"Unknown error\";\n console.error(\"[api/graph/count]\", message);\n throw error(500, message);\n }\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;;;;;;;AAGK,MAAC,GAAG,GAAG,OAAO,EAAE,GAAG,EAAE,KAAK;AAC/B,EAAE,IAAI;AACN,IAAI,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC5E,IAAI,MAAM,QAAQ,GAAG,yBAAyB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChF,IAAI,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,QAAQ,CAAC;AAC9D,IAAI,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5E,IAAI,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC/E,IAAI,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC,UAAU,CAAC;AACzD,MAAM,SAAS;AACf,MAAM,QAAQ;AACd,MAAM,kBAAkB;AACxB,MAAM;AACN,KAAK,CAAC;AACN,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE;AACxB,MAAM,OAAO,EAAE,EAAE,eAAe,EAAE,gDAAgD;AAClF,KAAK,CAAC;AACN,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,eAAe;AACpE,IAAI,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC;AAC/C,IAAI,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;AAC7B,EAAE;AACF;;;;"}