ignotum 0.0.18 → 0.0.19

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 (78) hide show
  1. package/README.md +73 -62
  2. package/dist/cli/Undici-C6Asbalt.mjs +30 -0
  3. package/dist/cli/Undici-C6Asbalt.mjs.map +1 -0
  4. package/dist/cli/bin.mjs +732 -24022
  5. package/dist/cli/bin.mjs.map +1 -1
  6. package/dist/platform/_headers +1 -1
  7. package/dist/platform/_ignotum/v1.1/client.js +12 -0
  8. package/dist/runtime/{api-BnUKx9cj-D49Tf0rX.d.ts → api-BnUKx9cj-K-F-SOLs.d.ts} +4 -4
  9. package/dist/runtime/{api-C-tltz6s.js → api-CrrSjYL1.js} +2 -2
  10. package/dist/runtime/{api-C-tltz6s.js.map → api-CrrSjYL1.js.map} +1 -1
  11. package/dist/runtime/{bootstrap-DlNIfH-r.js → bootstrap-CLVnD5vS.js} +4 -4
  12. package/dist/runtime/bootstrap-CLVnD5vS.js.map +1 -0
  13. package/dist/runtime/{bootstrap-DjTwGJao-DBx5zdFI.d.ts → bootstrap-DjTwGJao-DPi768T4.d.ts} +3 -3
  14. package/dist/runtime/client.d.ts +9 -9
  15. package/dist/runtime/client.js +4 -4
  16. package/dist/runtime/id-BPFV3D3V.d.ts +1 -0
  17. package/dist/runtime/{id-7an3nxTu-DZJSM5xh.d.ts → id-D87q-n2D-CDMwTSUR.d.ts} +2 -2
  18. package/dist/runtime/{id-BrEnxY-r.js → id-rzjaCxeF.js} +11 -2
  19. package/dist/runtime/{id-BrEnxY-r.js.map → id-rzjaCxeF.js.map} +1 -1
  20. package/dist/runtime/{index-Biaw5vdF.d.ts → index-BWHInzfU.d.ts} +3 -3
  21. package/dist/runtime/internal/api.d.ts +1 -1
  22. package/dist/runtime/internal/api.js +1 -1
  23. package/dist/runtime/internal/bootstrap.d.ts +1 -1
  24. package/dist/runtime/internal/bootstrap.js +1 -1
  25. package/dist/runtime/internal/client.d.ts +1 -1
  26. package/dist/runtime/internal/client.js +4 -4
  27. package/dist/runtime/internal/client.js.map +1 -1
  28. package/dist/runtime/internal/host.d.ts +6 -6
  29. package/dist/runtime/internal/host.js +3 -3
  30. package/dist/runtime/internal/routes.d.ts +1 -1
  31. package/dist/runtime/internal/server.d.ts +1 -1
  32. package/dist/runtime/internal/server.js +1 -1
  33. package/dist/runtime/internal/types.d.ts +2 -2
  34. package/dist/runtime/internal/types.js +1 -1
  35. package/dist/runtime/pagination-BPFV3D3V.d.ts +1 -0
  36. package/dist/runtime/{pagination--f4kMKf6.js → pagination-CfEleffG.js} +3 -2
  37. package/dist/runtime/pagination-CfEleffG.js.map +1 -0
  38. package/dist/runtime/result-Bq32FA7g.d.ts +1 -0
  39. package/dist/runtime/{router-C1eC9yy5.js → router-CfNPtoVO.js} +109 -60
  40. package/dist/runtime/router-CfNPtoVO.js.map +1 -0
  41. package/dist/runtime/{schema-BSjepoNF.js → schema-JtFb4BbG.js} +3 -3
  42. package/dist/runtime/{schema-BSjepoNF.js.map → schema-JtFb4BbG.js.map} +1 -1
  43. package/dist/runtime/server.d.ts +5 -5
  44. package/dist/runtime/server.js +2 -2
  45. package/dist/runtime/{sync-By2hX5ev.d.ts → sync-BMmV8oYt.d.ts} +2 -2
  46. package/dist/runtime/{sync-BwgS19Xy.js → sync-DUfp7S5R.js} +2 -2
  47. package/dist/runtime/{sync-BwgS19Xy.js.map → sync-DUfp7S5R.js.map} +1 -1
  48. package/dist/runtime/{types-DeCCyqLU-CHx7KFtx.d.ts → types-BeT6F0Pg-DMvRDN0c.d.ts} +5 -5
  49. package/package.json +9 -8
  50. package/src/cli/app-configuration.ts +44 -5
  51. package/src/cli/auth-client.ts +3 -3
  52. package/src/cli/build/managed-server.ts +3 -2
  53. package/src/cli/build/server.ts +2 -2
  54. package/src/cli/command.ts +18 -11
  55. package/src/cli/control-client.ts +2 -2
  56. package/src/cli/deploy.ts +27 -2
  57. package/src/cli/dev.ts +1 -1
  58. package/src/cli/managed-dev-platform.ts +13 -4
  59. package/src/cli/module-boundaries.ts +1 -1
  60. package/src/cli/new-app.ts +35 -6
  61. package/src/cli/package-manager.ts +1 -1
  62. package/src/cli/route-static.ts +7 -2
  63. package/src/cli/typecheck.ts +66 -0
  64. package/src/cli/upload-journal.ts +3 -3
  65. package/src/dev-runtime/database.ts +1 -1
  66. package/src/dev-runtime/files.ts +1 -1
  67. package/src/dev-runtime/managed-functions.ts +3 -2
  68. package/src/dev-runtime/managed-sync.ts +114 -105
  69. package/src/dev-runtime/managed-websocket.ts +11 -7
  70. package/src/dev-runtime/migrations.ts +2 -2
  71. package/src/dev-runtime/sync.ts +3 -3
  72. package/dist/platform/_ignotum/v1.0/client.js +0 -12
  73. package/dist/runtime/bootstrap-DlNIfH-r.js.map +0 -1
  74. package/dist/runtime/id-BI08JkmR.d.ts +0 -1
  75. package/dist/runtime/pagination--f4kMKf6.js.map +0 -1
  76. package/dist/runtime/pagination-BI08JkmR.d.ts +0 -1
  77. package/dist/runtime/result-BkziOG1L.d.ts +0 -1
  78. package/dist/runtime/router-C1eC9yy5.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"bootstrap-DlNIfH-r.js","names":["Versioned.upgrade","Versioned.initial"],"sources":["../../../shared/dist/routing/metadata.js","../../../shared/dist/routing.js","../../../platform/dist/versions/1/browser/router-history.js","../../../platform/dist/versions/1/browser/router-store.js","../../../platform/dist/versions/1/browser/route-boundaries.js","../../../platform/dist/versions/1/browser/bootstrap.js"],"sourcesContent":["import { Effect, Schema } from \"effect\";\nimport { LayoutMetadata, StaticMetadata, appDefinitionLimits } from \"@ignotum/contracts/routes\";\n//#region src/routing/metadata.ts\nconst MetadataInput = Schema.Struct({\n\tapplicationName: Schema.String.check(Schema.isMinLength(1), Schema.isMaxLength(256)),\n\tlayouts: Schema.Array(LayoutMetadata).check(Schema.isMaxLength(appDefinitionLimits.layouts)),\n\tpage: Schema.optional(StaticMetadata),\n\toutcome: Schema.Literals([\n\t\t\"Matched\",\n\t\t\"Invalid\",\n\t\t\"NotFound\"\n\t])\n}).annotate({ parseOptions: { onExcessProperty: \"error\" } });\nvar InvalidMetadata = class extends Schema.TaggedError()(\"InvalidMetadata\", { message: Schema.String }) {};\n/**\n* Layouts run from outermost to nearest. Values remain plain text: document writers must escape\n* HTML text and attributes, and browser writers must use textContent and setAttribute.\n* `remove` names managed tags absent from this result, including after navigation.\n*/\nconst resolveMetadata = Effect.fn(\"Routing.resolveMetadata\")(function* (input) {\n\tconst { applicationName, layouts, page, outcome } = yield* Schema.decodeEffect(MetadataInput)(input).pipe(Effect.mapError(() => InvalidMetadata.make({ message: \"Static metadata is invalid.\" })));\n\tlet title = applicationName;\n\tlet template;\n\tlet description;\n\tlet robots;\n\tfor (const layout of layouts) {\n\t\ttitle = layout.title ?? title;\n\t\ttemplate = layout.titleTemplate ?? template;\n\t\tdescription = layout.meta?.description ?? description;\n\t\trobots = layout.meta?.robots ?? robots;\n\t}\n\tconst matchedPage = outcome === \"NotFound\" ? void 0 : page;\n\tconst pageTitle = matchedPage?.title;\n\tif (pageTitle !== void 0) title = template === void 0 ? pageTitle : template.replace(\"%s\", () => pageTitle);\n\tdescription = matchedPage?.meta?.description ?? description;\n\trobots = outcome === \"Matched\" ? matchedPage?.meta?.robots ?? robots : \"noindex\";\n\tconst remove = [];\n\tif (description === void 0) remove.push(\"description\");\n\tif (robots === void 0) remove.push(\"robots\");\n\treturn {\n\t\ttitle,\n\t\tmeta: {\n\t\t\tdescription,\n\t\t\trobots\n\t\t},\n\t\tremove\n\t};\n});\n//#endregion\nexport { InvalidMetadata, MetadataInput, resolveMetadata };\n\n//# sourceMappingURL=metadata.js.map","import { RoutingDefinitionError, compilePatterns, matchDirectory, matchPattern, parsePattern, validateRoutePattern } from \"./routing/pattern.js\";\nimport { InvalidUrl, ParsedLocation, PartialLocation, UrlIssue, buildUrl, decodeRouteInputs, parseLocation } from \"./routing/url.js\";\nimport { InvalidMetadata, MetadataInput, resolveMetadata } from \"./routing/metadata.js\";\nimport { Effect } from \"effect\";\n//#region src/routing/index.ts\nconst reservedSegments = (segments) => segments[0] === \"_ignotum\";\n/** Accept a root-relative location before a URL parser can discard invalid dot segments. */\nconst matchLocation = Effect.fn(\"Routing.matchLocation\")(function* (patterns, input) {\n\tconst parsed = yield* parseLocation(input).pipe(Effect.result);\n\tif (parsed._tag === \"Failure\") {\n\t\tconst error = parsed.failure;\n\t\tconst partial = error.partial;\n\t\tconst segments = partial?.segments ?? [];\n\t\tconst reserved = reservedSegments(segments);\n\t\tconst branch = partial?.pathComplete ? matchPattern(patterns, segments) : matchDirectory(patterns, segments);\n\t\treturn {\n\t\t\t_tag: \"Invalid\",\n\t\t\tstatus: 400,\n\t\t\troute: !reserved && partial?.pathComplete ? branch.route : void 0,\n\t\t\tlayouts: reserved ? [] : branch.layouts,\n\t\t\treserved,\n\t\t\tlocation: void 0,\n\t\t\tissues: error.issues\n\t\t};\n\t}\n\tconst location = parsed.success;\n\tconst reserved = reservedSegments(location.segments);\n\tconst branch = matchPattern(patterns, location.segments);\n\tif (reserved || branch.route === void 0) return {\n\t\t_tag: \"NotFound\",\n\t\tstatus: 404,\n\t\tlayouts: reserved ? [] : branch.layouts,\n\t\treserved,\n\t\tlocation\n\t};\n\tconst route = branch.route;\n\tconst decoded = yield* decodeRouteInputs(route, branch.params, location.search).pipe(Effect.result);\n\tif (decoded._tag === \"Failure\") return {\n\t\t_tag: \"Invalid\",\n\t\tstatus: 400,\n\t\troute,\n\t\tlayouts: branch.layouts,\n\t\treserved: false,\n\t\tlocation,\n\t\tissues: decoded.failure.issues\n\t};\n\treturn {\n\t\t_tag: \"Matched\",\n\t\tstatus: 200,\n\t\troute,\n\t\tlayouts: branch.layouts,\n\t\treserved: false,\n\t\tlocation,\n\t\t...decoded.success\n\t};\n});\n/** Contains no URL, decoded values, or request-specific validation issues. */\nconst documentVariant = (outcome) => ({\n\toutcome: outcome._tag,\n\trouteId: outcome._tag === \"NotFound\" ? null : outcome.route?.id ?? null,\n\tlayoutIds: outcome.layouts.map((layout) => layout.id),\n\treserved: outcome.reserved\n});\nconst documentVariantKey = (outcome) => {\n\tconst variant = documentVariant(outcome);\n\treturn JSON.stringify([\n\t\tvariant.outcome,\n\t\tvariant.routeId,\n\t\tvariant.layoutIds,\n\t\tvariant.reserved\n\t]);\n};\n//#endregion\nexport { InvalidMetadata, InvalidUrl, MetadataInput, ParsedLocation, PartialLocation, RoutingDefinitionError, UrlIssue, buildUrl, compilePatterns, decodeRouteInputs, documentVariant, documentVariantKey, matchDirectory, matchLocation, matchPattern, parseLocation, parsePattern, resolveMetadata, validateRoutePattern };\n\n//# sourceMappingURL=routing.js.map","import { Deferred, Effect, Schema } from \"effect\";\nimport * as Versioned from \"@ignotum/contracts/versioned\";\n//#region src/versions/1/browser/router-history.ts\nconst HistoryEntryV1 = Schema.Struct({\n\tformatVersion: Schema.Literal(1),\n\tkey: Schema.String\n});\nconst HistoryEntryV2 = Schema.Struct({\n\tformatVersion: Schema.Literal(2),\n\tkey: Schema.String,\n\tindex: Schema.NullOr(Schema.Int)\n});\nconst HistoryEntry = Versioned.upgrade(Versioned.initial(HistoryEntryV1), HistoryEntryV2, (old) => ({\n\tformatVersion: 2,\n\tkey: old.key,\n\tindex: null\n}));\nconst HistoryState = Schema.Struct({ __ignotumRouter: HistoryEntry });\nconst StateObject = Schema.Record(Schema.String, Schema.Unknown);\nconst hrefOf = (browser) => `${browser.location.pathname}${browser.location.search}${browser.location.hash}`;\n/** Serializes router corrections to native traversal without adding duplicate entries. */\nvar RouterHistory = class {\n\tbrowser;\n\tonTraversal;\n\tcommitted;\n\tactual;\n\tpositions = /* @__PURE__ */ new Map();\n\tseeking;\n\toriginalScrollRestoration;\n\tdirection = -1;\n\tscrollPending = false;\n\texpectedKey;\n\tscroll = /* @__PURE__ */ new Map();\n\tconstructor(browser, onTraversal) {\n\t\tthis.browser = browser;\n\t\tthis.onTraversal = onTraversal;\n\t\tconst parsed = Schema.decodeUnknownOption(HistoryState)(browser.history.state);\n\t\tconst entry = parsed._tag === \"Some\" ? parsed.value.__ignotumRouter : void 0;\n\t\tthis.actual = this.committed = {\n\t\t\tkey: entry?.key ?? browser.crypto.randomUUID(),\n\t\t\tindex: entry?.index ?? 0,\n\t\t\thref: hrefOf(browser)\n\t\t};\n\t\tthis.write(this.actual, false);\n\t\tthis.originalScrollRestoration = browser.history.scrollRestoration;\n\t\tbrowser.history.scrollRestoration = \"manual\";\n\t\tbrowser.addEventListener(\"popstate\", this.onPop);\n\t\tbrowser.addEventListener(\"scroll\", this.saveScroll);\n\t}\n\twrite(position, push) {\n\t\tconst parsed = Schema.decodeUnknownOption(StateObject)(this.browser.history.state);\n\t\tconst owned = { __ignotumRouter: Schema.encodeSync(HistoryEntry)({\n\t\t\tformatVersion: 2,\n\t\t\tkey: position.key,\n\t\t\tindex: position.index\n\t\t}) };\n\t\tconst state = parsed._tag === \"Some\" ? {\n\t\t\t...parsed.value,\n\t\t\t...owned\n\t\t} : owned;\n\t\tif (push) this.browser.history.pushState(state, \"\", position.href);\n\t\telse this.browser.history.replaceState(state, \"\", position.href);\n\t\tthis.positions.set(position.key, position.index);\n\t}\n\tsaveScroll = () => {\n\t\tif (this.scrollPending) return;\n\t\tthis.scroll.set(this.committed.key, {\n\t\t\tx: this.browser.scrollX,\n\t\t\ty: this.browser.scrollY\n\t\t});\n\t};\n\tcaptureScroll() {\n\t\tthis.saveScroll();\n\t\tthis.scrollPending = true;\n\t\treturn this.scroll.get(this.committed.key) ?? {\n\t\t\tx: this.browser.scrollX,\n\t\t\ty: this.browser.scrollY\n\t\t};\n\t}\n\tfinishScroll() {\n\t\tthis.scrollPending = false;\n\t\tthis.saveScroll();\n\t}\n\trestoreSourceScroll() {\n\t\tif (!this.scrollPending) return;\n\t\tconst saved = this.scroll.get(this.committed.key);\n\t\tif (saved !== void 0) this.browser.scrollTo(saved.x, saved.y);\n\t\tthis.finishScroll();\n\t}\n\tonPop = () => {\n\t\tconst parsed = Schema.decodeUnknownOption(HistoryState)(this.browser.history.state);\n\t\tconst entry = parsed._tag === \"Some\" ? parsed.value.__ignotumRouter : void 0;\n\t\tconst key = entry?.key ?? this.browser.crypto.randomUUID();\n\t\tconst index = entry?.index ?? this.positions.get(key) ?? this.actual.index + this.direction;\n\t\tthis.actual = {\n\t\t\tkey,\n\t\t\tindex,\n\t\t\thref: hrefOf(this.browser)\n\t\t};\n\t\tthis.write(this.actual, false);\n\t\tconst expected = this.expectedKey;\n\t\tthis.expectedKey = void 0;\n\t\tconst seeking = this.seeking;\n\t\tif (seeking !== void 0 && (expected === key || seeking.position.key === key)) {\n\t\t\tthis.advanceSeek();\n\t\t\treturn;\n\t\t}\n\t\tif (seeking !== void 0) {\n\t\t\tthis.seeking = void 0;\n\t\t\tEffect.runSync(Deferred.succeed(seeking.done, false));\n\t\t}\n\t\tthis.onTraversal(this.actual);\n\t};\n\tadvanceSeek() {\n\t\tconst seeking = this.seeking;\n\t\tif (seeking === void 0 || this.expectedKey !== void 0) return;\n\t\tif (this.actual.key === seeking.position.key) {\n\t\t\tthis.seeking = void 0;\n\t\t\tEffect.runSync(Deferred.succeed(seeking.done, true));\n\t\t} else {\n\t\t\tthis.expectedKey = seeking.position.key;\n\t\t\tthis.browser.history.go(seeking.position.index - this.actual.index);\n\t\t}\n\t}\n\tseek(position) {\n\t\tif (this.seeking !== void 0) {\n\t\t\tif (this.seeking.position.key === position.key) return Effect.runPromise(Deferred.await(this.seeking.done));\n\t\t\tEffect.runSync(Deferred.succeed(this.seeking.done, false));\n\t\t}\n\t\tconst done = Deferred.makeUnsafe();\n\t\tthis.seeking = {\n\t\t\tposition,\n\t\t\tdone\n\t\t};\n\t\tthis.advanceSeek();\n\t\treturn Effect.runPromise(Deferred.await(done));\n\t}\n\tcommit(position, kind) {\n\t\tif (kind === \"push\" || kind === \"replace\") this.write(position, kind === \"push\");\n\t\tthis.actual = this.committed = position;\n\t}\n\tback = () => {\n\t\tthis.direction = -1;\n\t\tthis.browser.history.back();\n\t};\n\tforward = () => {\n\t\tthis.direction = 1;\n\t\tthis.browser.history.forward();\n\t};\n\tdispose() {\n\t\tthis.browser.removeEventListener(\"popstate\", this.onPop);\n\t\tthis.browser.removeEventListener(\"scroll\", this.saveScroll);\n\t\tthis.browser.history.scrollRestoration = this.originalScrollRestoration;\n\t\tif (this.seeking !== void 0) Effect.runSync(Deferred.succeed(this.seeking.done, false));\n\t}\n};\n//#endregion\nexport { RouterHistory };\n\n//# sourceMappingURL=router-history.js.map","import { RouterHistory } from \"./router-history.js\";\nimport { Deferred, Effect, Predicate, Schema } from \"effect\";\nimport { ServingSelection } from \"@ignotum/contracts/execution\";\nimport { compilePatterns, matchLocation, resolveMetadata } from \"@ignotum/shared/routing\";\n//#region src/versions/1/browser/router-store.ts\nconst ErrorComponent = Schema.declare((value) => Predicate.isFunction(value));\nconst InvalidComponent = Schema.declare((value) => Predicate.isFunction(value));\nconst NotFoundComponent = Schema.declare((value) => Predicate.isFunction(value));\nconst PageModule = Schema.Struct({\n\terror: Schema.optional(ErrorComponent),\n\tinvalid: Schema.optional(InvalidComponent),\n\tcomponent: Schema.declare((value) => Predicate.isFunction(value))\n});\nconst LayoutModule = Schema.Struct({\n\terror: Schema.optional(ErrorComponent),\n\tinvalid: Schema.optional(InvalidComponent),\n\tnotFound: Schema.optional(NotFoundComponent),\n\tcomponent: Schema.declare((value) => Predicate.isFunction(value))\n});\nconst ModuleExports = Schema.Record(Schema.String, Schema.Unknown);\nvar BranchLoadError = class extends Schema.TaggedError()(\"BranchLoadError\", {\n\terror: Schema.Unknown,\n\tbranch: Schema.declare((value) => Predicate.isObject(value))\n}) {};\nconst locationOf = (href, key, origin) => {\n\tconst parsed = new URL(href, origin);\n\tlet hash = parsed.hash.slice(1);\n\ttry {\n\t\thash = decodeURIComponent(hash);\n\t} catch {}\n\treturn {\n\t\tpathname: parsed.pathname,\n\t\tsearch: parsed.search,\n\t\thash,\n\t\tkey\n\t};\n};\n/** One store per mount. Load caches contain code and CSS only, never component/query state. */\nvar RouterStore = class {\n\tregistration;\n\tbrowser;\n\tselection;\n\tpatterns;\n\tlisteners = /* @__PURE__ */ new Set();\n\tmodules = /* @__PURE__ */ new Map();\n\tstyles = /* @__PURE__ */ new Map();\n\tstyleCleanups = /* @__PURE__ */ new Set();\n\tredirects = /* @__PURE__ */ new Set();\n\thistory;\n\tblockers = /* @__PURE__ */ new Set();\n\tblocked;\n\tupgrading = false;\n\tadmission;\n\tserial = 0;\n\ttransition;\n\tcommittedHref;\n\tdisposed = false;\n\tstarted = false;\n\tsnapshot = {\n\t\tlocation: void 0,\n\t\tbranch: void 0,\n\t\tnavigation: { status: \"idle\" },\n\t\tfailure: void 0,\n\t\tcommit: 0\n\t};\n\tconstructor(registration, selection, browser) {\n\t\tthis.registration = registration;\n\t\tthis.browser = browser;\n\t\tthis.selection = Schema.decodeSync(ServingSelection)(selection);\n\t\tthis.patterns = Effect.runSync(compilePatterns(registration.routes, registration.layouts));\n\t\tfor (const reference of [...registration.routes.map((route) => route.page), ...registration.layouts.map((layout) => layout.module)]) if (!registration.modules.has(reference.module)) throw new Error(`Client module '${reference.module}' is missing from registration.`);\n\t}\n\tgetSnapshot = () => this.snapshot;\n\tsubscribe = (listener) => {\n\t\tthis.listeners.add(listener);\n\t\treturn () => this.listeners.delete(listener);\n\t};\n\tupdate(snapshot) {\n\t\tthis.snapshot = snapshot;\n\t\tfor (const listener of this.listeners) listener();\n\t}\n\tstart() {\n\t\tif (this.started) throw new Error(\"The Ignotum router has already started.\");\n\t\tthis.started = true;\n\t\tthis.history = new RouterHistory(this.browser, this.onTraversal);\n\t\tthis.browser.addEventListener(\"beforeunload\", this.onBeforeUnload);\n\t\tconst position = this.history.committed;\n\t\treturn this.transitionTo(position.href, \"initial\", position.key, {}, position);\n\t}\n\tonTraversal = (position) => {\n\t\tthis.redirects.clear();\n\t\tthis.history?.seek(this.history.committed);\n\t\tthis.transitionTo(position.href, \"traverse\", position.key, {}, position);\n\t};\n\tback = () => this.history?.back();\n\tforward = () => this.history?.forward();\n\tonBeforeUnload = (event) => {\n\t\tif (this.upgrading || this.blockers.size === 0) return;\n\t\tevent.preventDefault();\n\t\tevent.returnValue = \"\";\n\t};\n\t/** Internal platform upgrade entry; route confirmation never delays this reload. */\n\tstopForUpgrade = () => {\n\t\tif (this.disposed) return;\n\t\tthis.upgrading = true;\n\t\tthis.browser.removeEventListener(\"beforeunload\", this.onBeforeUnload);\n\t\tthis.blockers.clear();\n\t\tthis.cancelPending();\n\t};\n\tupgrade = () => {\n\t\tif (this.disposed) return;\n\t\tthis.stopForUpgrade();\n\t\tthis.browser.location.reload();\n\t};\n\tsetAdmission(admission) {\n\t\tthis.admission = admission;\n\t}\n\tsetBlocker(id, when) {\n\t\tif (when) this.blockers.add(id);\n\t\telse this.blockers.delete(id);\n\t\tif (!when && this.blocked?.remaining.delete(id) === true) this.releaseBlocked();\n\t}\n\tgetBlocker(id) {\n\t\tconst blocked = this.blocked;\n\t\tconst from = this.snapshot.location;\n\t\tif (blocked === void 0 || from === void 0 || !blocked.remaining.has(id)) return { status: \"idle\" };\n\t\treturn {\n\t\t\tstatus: \"blocked\",\n\t\t\tfrom,\n\t\t\tto: blocked.transition.location,\n\t\t\tproceed: () => {\n\t\t\t\tif (this.blocked !== blocked) return;\n\t\t\t\tblocked.remaining.delete(id);\n\t\t\t\tthis.releaseBlocked();\n\t\t\t},\n\t\t\treset: () => {\n\t\t\t\tif (this.blocked !== blocked) return;\n\t\t\t\tthis.cancelPending();\n\t\t\t\tthis.update({\n\t\t\t\t\t...this.snapshot,\n\t\t\t\t\tnavigation: { status: \"idle\" }\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\t}\n\treleaseBlocked() {\n\t\tconst blocked = this.blocked;\n\t\tif (blocked === void 0) return;\n\t\tif (blocked.remaining.size === 0) {\n\t\t\tthis.blocked = void 0;\n\t\t\tthis.loadTransition(blocked.transition);\n\t\t} else this.update({ ...this.snapshot });\n\t}\n\tnavigate(href, options = {}, redirect = false) {\n\t\tif (this.disposed || this.upgrading) return Promise.resolve({ status: \"cancelled\" });\n\t\tif (!redirect) this.redirects.clear();\n\t\tif (href === this.committedHref) {\n\t\t\tthis.cancelPending();\n\t\t\tthis.update({\n\t\t\t\t...this.snapshot,\n\t\t\t\tnavigation: { status: \"idle\" },\n\t\t\t\tfailure: void 0\n\t\t\t});\n\t\t\treturn Promise.resolve({ status: \"committed\" });\n\t\t}\n\t\tif (redirect) {\n\t\t\tif (this.committedHref !== void 0) this.redirects.add(this.committedHref);\n\t\t\tif (this.redirects.has(href) || this.redirects.size >= 32) {\n\t\t\t\tconst error = /* @__PURE__ */ new Error(`Ignotum redirect loop at '${href}'.`);\n\t\t\t\tthis.cancelPending();\n\t\t\t\tthis.update({\n\t\t\t\t\t...this.snapshot,\n\t\t\t\t\tnavigation: { status: \"idle\" },\n\t\t\t\t\tfailure: {\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tretry: () => {\n\t\t\t\t\t\t\tthis.redirects.clear();\n\t\t\t\t\t\t\tthis.navigate(href, options, true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn Promise.resolve({\n\t\t\t\t\tstatus: \"failed\",\n\t\t\t\t\terror\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tconst key = options.replace === true ? this.snapshot.location?.key ?? this.browser.crypto.randomUUID() : this.browser.crypto.randomUUID();\n\t\treturn this.transitionTo(href, options.replace === true ? \"replace\" : \"push\", key, options);\n\t}\n\tpreload = async (href) => {\n\t\tif (this.disposed || this.upgrading || this.admission !== void 0 && !await this.admission.validate()) return;\n\t\tconst outcome = Effect.runSync(matchLocation(this.patterns, href));\n\t\tawait this.loadBranch(outcome, false);\n\t};\n\tcancelPending() {\n\t\tif (this.history !== void 0) this.history.seek(this.history.committed);\n\t\tthis.blocked = void 0;\n\t\tif (this.transition !== void 0) Effect.runSync(Deferred.succeed(this.transition.completion, { status: \"cancelled\" }));\n\t\tthis.transition = void 0;\n\t}\n\ttransitionTo(href, kind, key, options = {}, historyPosition) {\n\t\tif (this.disposed || this.upgrading) return Promise.resolve({ status: \"cancelled\" });\n\t\tconst sourceScroll = this.history?.captureScroll() ?? {\n\t\t\tx: this.browser.scrollX,\n\t\t\ty: this.browser.scrollY\n\t\t};\n\t\tthis.cancelPending();\n\t\tconst location = locationOf(href, key, this.browser.location.origin);\n\t\tconst previous = this.snapshot.location;\n\t\tconst searchOnly = previous !== void 0 && previous.pathname === location.pathname && previous.hash === location.hash;\n\t\tconst completion = Deferred.makeUnsafe();\n\t\tconst position = historyPosition ?? {\n\t\t\tkey,\n\t\t\thref,\n\t\t\tindex: (this.history?.committed.index ?? 0) + (kind === \"push\" ? 1 : 0)\n\t\t};\n\t\tconst transition = {\n\t\t\tid: ++this.serial,\n\t\t\thref,\n\t\t\tlocation,\n\t\t\tkind,\n\t\t\tcompletion,\n\t\t\tposition,\n\t\t\tscroll: options.scroll ?? (searchOnly ? \"preserve\" : \"auto\"),\n\t\t\tsearchOnly,\n\t\t\tsourceScroll\n\t\t};\n\t\tthis.transition = transition;\n\t\tif (kind !== \"initial\" && this.blockers.size > 0 && this.snapshot.location !== void 0) {\n\t\t\tthis.blocked = {\n\t\t\t\ttransition,\n\t\t\t\tremaining: new Set(this.blockers)\n\t\t\t};\n\t\t\tthis.update({\n\t\t\t\t...this.snapshot,\n\t\t\t\tnavigation: { status: \"idle\" },\n\t\t\t\tfailure: void 0\n\t\t\t});\n\t\t} else this.loadTransition(transition);\n\t\treturn Effect.runPromise(Deferred.await(completion));\n\t}\n\tloadTransition(transition) {\n\t\tconst { href, location, kind } = transition;\n\t\tconst outcome = Effect.runSync(matchLocation(this.patterns, href));\n\t\tthis.update({\n\t\t\t...this.snapshot,\n\t\t\tnavigation: {\n\t\t\t\tstatus: \"loading\",\n\t\t\t\tto: location\n\t\t\t},\n\t\t\tfailure: void 0\n\t\t});\n\t\tconst load = async () => {\n\t\t\tif (this.admission !== void 0 && !await this.admission.validate()) throw new Error(\"The app must verify its current selection before navigating.\");\n\t\t\tif (this.upgrading || this.disposed) throw new Error(\"The app is updating.\");\n\t\t\treturn this.loadBranch(outcome);\n\t\t};\n\t\tload().then(async (branch) => {\n\t\t\tif (this.transition !== transition || this.disposed) return;\n\t\t\ttry {\n\t\t\t\tconst history = this.history;\n\t\t\t\tif (history !== void 0) {\n\t\t\t\t\tif (!await history.seek(history.committed) || this.transition !== transition || this.disposed) return;\n\t\t\t\t\tif (kind === \"traverse\") {\n\t\t\t\t\t\tif (!await history.seek(transition.position) || this.transition !== transition || this.disposed) return;\n\t\t\t\t\t}\n\t\t\t\t\thistory.commit(transition.position, kind);\n\t\t\t\t}\n\t\t\t\tthis.applyMetadata(outcome);\n\t\t\t\tthis.committedHref = href;\n\t\t\t\tthis.update({\n\t\t\t\t\tlocation,\n\t\t\t\t\tbranch,\n\t\t\t\t\tnavigation: { status: \"idle\" },\n\t\t\t\t\tfailure: void 0,\n\t\t\t\t\tcommit: transition.id\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tthis.fail(transition, error);\n\t\t\t}\n\t\t}, (error) => {\n\t\t\tthis.fail(transition, error);\n\t\t\tif (!this.upgrading) this.admission?.recoverLoad();\n\t\t});\n\t}\n\t/** Called by the mounted view after Preact has committed the destination DOM. */\n\trendered(commit) {\n\t\tif (this.transition?.id !== commit || this.snapshot.commit !== commit) {\n\t\t\tif (this.snapshot.navigation.status === \"idle\" && this.blocked === void 0) this.history?.restoreSourceScroll();\n\t\t\treturn;\n\t\t}\n\t\tconst transition = this.transition;\n\t\tconst document = this.browser.document;\n\t\tif (!transition.searchOnly) {\n\t\t\tconst target = document.querySelector(\"#app main, #app [role=main]\") ?? document.getElementById(\"app\");\n\t\t\tif (target !== null) {\n\t\t\t\tif (!target.hasAttribute(\"tabindex\")) target.setAttribute(\"tabindex\", \"-1\");\n\t\t\t\ttarget.focus({ preventScroll: true });\n\t\t\t}\n\t\t}\n\t\tconst saved = this.history?.scroll.get(transition.location.key);\n\t\tif (transition.kind === \"traverse\" && saved !== void 0) this.browser.scrollTo(saved.x, saved.y);\n\t\telse if (transition.scroll === \"auto\") {\n\t\t\tconst target = transition.location.hash === \"\" ? null : document.getElementById(transition.location.hash);\n\t\t\tif (target !== null) target.scrollIntoView();\n\t\t\telse this.browser.scrollTo(0, 0);\n\t\t} else this.browser.scrollTo(transition.sourceScroll.x, transition.sourceScroll.y);\n\t\tthis.history?.finishScroll();\n\t\tEffect.runSync(Deferred.succeed(this.transition.completion, { status: \"committed\" }));\n\t\tthis.transition = void 0;\n\t}\n\tfail(transition, error) {\n\t\tif (this.transition !== transition || this.disposed) return;\n\t\tthis.transition = void 0;\n\t\tconst loadFailure = error instanceof BranchLoadError ? error : void 0;\n\t\tconst originalError = loadFailure === void 0 ? error : loadFailure.error;\n\t\tthis.update({\n\t\t\t...this.snapshot,\n\t\t\tnavigation: { status: \"idle\" },\n\t\t\tfailure: {\n\t\t\t\terror: originalError,\n\t\t\t\tbranch: transition.kind === \"initial\" ? void 0 : loadFailure?.branch,\n\t\t\t\tretry: () => {\n\t\t\t\t\tthis.transitionTo(transition.href, transition.kind, transition.location.key, { scroll: transition.scroll }, transition.position);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tEffect.runSync(Deferred.succeed(transition.completion, {\n\t\t\tstatus: \"failed\",\n\t\t\terror: originalError\n\t\t}));\n\t}\n\tloadStyle(href) {\n\t\tconst absolute = new URL(href, this.browser.location.origin).href;\n\t\tconst cached = this.styles.get(absolute);\n\t\tif (cached !== void 0) return cached;\n\t\tconst document = this.browser.document;\n\t\tconst existing = Array.from(document.querySelectorAll(\"link[rel=\\\"stylesheet\\\"]\")).find((link) => link.href === absolute);\n\t\tif (existing?.sheet !== null && existing?.sheet !== void 0) return Promise.resolve();\n\t\tconst link = existing ?? document.createElement(\"link\");\n\t\tconst promise = Effect.runPromise(Effect.callback((resume) => {\n\t\t\tconst cleanup = () => {\n\t\t\t\tlink.removeEventListener(\"load\", onLoad);\n\t\t\t\tlink.removeEventListener(\"error\", onError);\n\t\t\t\tthis.styleCleanups.delete(cancel);\n\t\t\t};\n\t\t\tconst onLoad = () => {\n\t\t\t\tcleanup();\n\t\t\t\tresume(Effect.void);\n\t\t\t};\n\t\t\tconst onError = () => {\n\t\t\t\tcleanup();\n\t\t\t\tlink.remove();\n\t\t\t\tresume(Effect.fail(/* @__PURE__ */ new Error(`Could not load route stylesheet '${href}'.`)));\n\t\t\t};\n\t\t\tconst cancel = () => {\n\t\t\t\tcleanup();\n\t\t\t\tif (existing === void 0) link.remove();\n\t\t\t\tresume(Effect.fail(/* @__PURE__ */ new Error(\"Router disposed.\")));\n\t\t\t};\n\t\t\tthis.styleCleanups.add(cancel);\n\t\t\tlink.addEventListener(\"load\", onLoad);\n\t\t\tlink.addEventListener(\"error\", onError);\n\t\t\tif (existing === void 0) {\n\t\t\t\tlink.rel = \"stylesheet\";\n\t\t\t\tlink.crossOrigin = \"anonymous\";\n\t\t\t\tlink.href = absolute;\n\t\t\t\tdocument.head.append(link);\n\t\t\t}\n\t\t\treturn Effect.sync(cleanup);\n\t\t})).catch((error) => {\n\t\t\tthis.styles.delete(absolute);\n\t\t\tthrow error;\n\t\t});\n\t\tthis.styles.set(absolute, promise);\n\t\treturn promise;\n\t}\n\tloadModule(id) {\n\t\tconst cached = this.modules.get(id);\n\t\tif (cached !== void 0) return cached;\n\t\tconst module = this.registration.modules.get(id);\n\t\tif (module === void 0) return Promise.reject(/* @__PURE__ */ new Error(`Client module '${id}' is not registered.`));\n\t\tconst loaded = Promise.resolve().then(module.load).then(Schema.decodeUnknownSync(ModuleExports)).catch((error) => {\n\t\t\tthis.modules.delete(id);\n\t\t\tthrow error;\n\t\t});\n\t\tthis.modules.set(id, loaded);\n\t\treturn loaded;\n\t}\n\tasync loadExport(reference) {\n\t\tconst exports = await this.loadModule(reference.module);\n\t\tif (!Object.hasOwn(exports, reference.exportName)) throw new Error(`Module '${reference.module}' has no '${reference.exportName}' export.`);\n\t\treturn exports[reference.exportName];\n\t}\n\tasync loadBranch(outcome, withStyles = true) {\n\t\tconst route = outcome._tag === \"NotFound\" ? void 0 : outcome.route;\n\t\tconst available = /* @__PURE__ */ new Map();\n\t\ttry {\n\t\t\tconst [layouts, page] = await Promise.all([\n\t\t\t\tPromise.all(outcome.layouts.map(async (layout) => {\n\t\t\t\t\tconst [loaded] = await Promise.all([this.loadExport(layout.module).then(Schema.decodeUnknownSync(LayoutModule)), withStyles ? Promise.all((this.registration.modules.get(layout.module.module)?.styles ?? []).map((href) => this.loadStyle(href))) : void 0]);\n\t\t\t\t\tconst result = {\n\t\t\t\t\t\tid: layout.id,\n\t\t\t\t\t\t...loaded\n\t\t\t\t\t};\n\t\t\t\t\tavailable.set(layout.id, result);\n\t\t\t\t\treturn result;\n\t\t\t\t})),\n\t\t\t\troute === void 0 ? void 0 : this.loadExport(route.page).then(Schema.decodeUnknownSync(PageModule)),\n\t\t\t\tPromise.all(withStyles ? [...this.registration.styles ?? [], ...route === void 0 ? [] : this.registration.modules.get(route.page.module)?.styles ?? []].map(async (href) => this.loadStyle(href)) : [])\n\t\t\t]);\n\t\t\treturn {\n\t\t\t\toutcome,\n\t\t\t\tlayouts,\n\t\t\t\tpage: page?.component,\n\t\t\t\tpageBoundaries: page\n\t\t\t};\n\t\t} catch (error) {\n\t\t\tconst layouts = [];\n\t\t\tfor (const definition of outcome.layouts) {\n\t\t\t\tconst loaded = available.get(definition.id);\n\t\t\t\tif (loaded === void 0) break;\n\t\t\t\tlayouts.push(loaded);\n\t\t\t}\n\t\t\tthrow BranchLoadError.make({\n\t\t\t\terror,\n\t\t\t\tbranch: {\n\t\t\t\t\toutcome,\n\t\t\t\t\tlayouts,\n\t\t\t\t\tpage: void 0\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\tsetRenderError(error) {\n\t\tif (this.snapshot.branch !== void 0) this.applyMetadata(this.snapshot.branch.outcome, error);\n\t}\n\tapplyMetadata(outcome, renderError = false) {\n\t\tconst resolved = Effect.runSync(resolveMetadata({\n\t\t\tapplicationName: this.registration.applicationName,\n\t\t\tlayouts: outcome.layouts.map((layout) => layout.metadata),\n\t\t\tpage: outcome._tag === \"NotFound\" ? void 0 : outcome.route?.metadata,\n\t\t\toutcome: renderError ? \"Invalid\" : outcome._tag\n\t\t}));\n\t\tconst document = this.browser.document;\n\t\tdocument.title = resolved.title;\n\t\tfor (const name of [\"description\", \"robots\"]) {\n\t\t\tconst tags = Array.from(document.head.querySelectorAll(`meta[name=\"${name}\"]`));\n\t\t\tconst value = resolved.meta[name];\n\t\t\tif (value === void 0) {\n\t\t\t\tfor (const tag of tags) tag.remove();\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst tag = tags.shift() ?? document.createElement(\"meta\");\n\t\t\tfor (const duplicate of tags) duplicate.remove();\n\t\t\ttag.name = name;\n\t\t\ttag.content = value;\n\t\t\tif (!tag.isConnected) document.head.append(tag);\n\t\t}\n\t}\n\tdispose() {\n\t\tthis.disposed = true;\n\t\tthis.cancelPending();\n\t\tthis.history?.dispose();\n\t\tthis.browser.removeEventListener(\"beforeunload\", this.onBeforeUnload);\n\t\tfor (const cleanup of this.styleCleanups) cleanup();\n\t\tthis.listeners.clear();\n\t}\n};\n//#endregion\nexport { BranchLoadError, RouterStore };\n\n//# sourceMappingURL=router-store.js.map","import { useErrorBoundary, useState } from \"preact/hooks\";\nimport { Fragment, createElement } from \"preact\";\n//#region src/versions/1/browser/route-boundaries.ts\nconst DefaultError = ({ error, retry }) => createElement(\"div\", { role: \"alert\" }, error instanceof Error ? error.message : \"This page could not load or render. \", createElement(\"button\", { onClick: retry }, \"Retry\"));\nconst Boundary = ({ children, component, branch, router, onRetry }) => {\n\tconst [failure, setFailure] = useState();\n\tconst [, reset] = useErrorBoundary((error) => {\n\t\tsetFailure({\n\t\t\tbranch,\n\t\t\terror\n\t\t});\n\t\trouter.setRenderError(true);\n\t});\n\treturn failure?.branch !== branch ? children : createElement(component, {\n\t\terror: failure.error,\n\t\tretry: () => {\n\t\t\trouter.setRenderError(false);\n\t\t\tonRetry?.();\n\t\t\tsetFailure(void 0);\n\t\t\treset();\n\t\t}\n\t});\n};\nconst Branch = ({ branch, location, router, failure }) => {\n\tconst outcome = branch.outcome;\n\tlet child;\n\tlet lastLayout = branch.layouts.length - 1;\n\tlet boundaryOwner;\n\tif (outcome._tag === \"Matched\" && branch.page !== void 0) child = createElement(branch.page, {\n\t\tkey: outcome.route.id,\n\t\tparams: outcome.params,\n\t\tsearchParams: outcome.searchParams\n\t});\n\telse if (outcome._tag === \"Invalid\" && branch.pageBoundaries?.invalid !== void 0) child = createElement(branch.pageBoundaries.invalid, {\n\t\tlocation,\n\t\tissues: outcome.issues\n\t});\n\telse {\n\t\tchild = createElement(\"main\", { \"data-ignotum-outcome\": outcome._tag }, outcome._tag === \"Invalid\" ? \"Invalid URL\" : \"Page not found\");\n\t\tfor (let index = lastLayout; index >= 0; index--) {\n\t\t\tconst layout = branch.layouts[index];\n\t\t\tif (outcome._tag === \"Invalid\" && layout.invalid !== void 0) {\n\t\t\t\tchild = createElement(layout.invalid, {\n\t\t\t\t\tlocation,\n\t\t\t\t\tissues: outcome.issues\n\t\t\t\t});\n\t\t\t\tlastLayout = index;\n\t\t\t\tboundaryOwner = index;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (outcome._tag === \"NotFound\" && layout.notFound !== void 0) {\n\t\t\t\tchild = createElement(layout.notFound, { location });\n\t\t\t\tlastLayout = index;\n\t\t\t\tboundaryOwner = index;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif (branch.pageBoundaries?.error !== void 0 && outcome._tag === \"Matched\") child = createElement(Boundary, {\n\t\tkey: \"page-boundary\",\n\t\tcomponent: branch.pageBoundaries.error,\n\t\tbranch,\n\t\trouter,\n\t\tchildren: child\n\t});\n\tlet sharedLayouts = 0;\n\twhile (sharedLayouts <= lastLayout && branch.layouts[sharedLayouts]?.id === failure?.branch?.layouts[sharedLayouts]?.id) sharedLayouts++;\n\tconst loadFailure = failure === void 0 ? null : createElement(LoadFailure, {\n\t\tfailure,\n\t\trouter,\n\t\tlayouts: branch.layouts.slice(0, sharedLayouts)\n\t});\n\tfor (let index = lastLayout; index >= 0; index--) {\n\t\tconst layout = branch.layouts[index];\n\t\tif (layout.error !== void 0 && index !== boundaryOwner) child = createElement(Boundary, {\n\t\t\tkey: layout.id,\n\t\t\tcomponent: layout.error,\n\t\t\tbranch,\n\t\t\trouter,\n\t\t\tchildren: child\n\t\t});\n\t\tchild = createElement(layout.component, {\n\t\t\tkey: layout.id,\n\t\t\tchildren: createElement(Fragment, {}, child, index === sharedLayouts - 1 ? loadFailure : null)\n\t\t});\n\t}\n\treturn createElement(Boundary, {\n\t\tcomponent: DefaultError,\n\t\tbranch,\n\t\trouter,\n\t\tchildren: createElement(Fragment, {}, child, sharedLayouts === 0 ? loadFailure : null)\n\t});\n};\nconst LoadFailure = ({ failure, router, layouts }) => {\n\tconst branch = failure.branch;\n\tif (branch === void 0) return createElement(\"div\", { \"data-ignotum-load-error\": \"\" }, createElement(DefaultError, failure));\n\tlet child = createElement(DefaultError, failure);\n\tlet found = false;\n\tfor (const layout of [...layouts ?? branch.layouts].reverse()) {\n\t\tif (layout.error === void 0) continue;\n\t\tif (!found) {\n\t\t\tchild = createElement(layout.error, {\n\t\t\t\terror: failure.error,\n\t\t\t\tretry: failure.retry\n\t\t\t});\n\t\t\tfound = true;\n\t\t} else child = createElement(Boundary, {\n\t\t\tcomponent: layout.error,\n\t\t\tbranch,\n\t\t\trouter,\n\t\t\tonRetry: failure.retry,\n\t\t\tchildren: child\n\t\t});\n\t}\n\treturn createElement(\"div\", { \"data-ignotum-load-error\": \"\" }, createElement(Boundary, {\n\t\tcomponent: DefaultError,\n\t\tbranch,\n\t\trouter,\n\t\tonRetry: failure.retry,\n\t\tchildren: child\n\t}));\n};\n//#endregion\nexport { Branch, DefaultError, LoadFailure };\n\n//# sourceMappingURL=route-boundaries.js.map","import { mountManagedSync } from \"./sync.js\";\nimport { RouterStore } from \"./router-store.js\";\nimport { RouterContext, useRouterSnapshot } from \"./router.js\";\nimport { Branch, LoadFailure } from \"./route-boundaries.js\";\nimport { useLayoutEffect, useState } from \"preact/hooks\";\nimport { Fragment, createElement, render } from \"preact\";\n//#region src/versions/1/browser/bootstrap.ts\nconst RouterView = ({ router }) => {\n\tconst snapshot = useRouterSnapshot(router);\n\tuseLayoutEffect(() => {\n\t\trouter.rendered(snapshot.commit);\n\t}, [router, snapshot]);\n\treturn createElement(RouterContext.Provider, { value: router }, snapshot.branch === void 0 || snapshot.location === void 0 ? createElement(\"div\", { role: \"status\" }, snapshot.failure === void 0 ? \"Loading…\" : null) : createElement(Branch, {\n\t\tbranch: snapshot.branch,\n\t\tlocation: snapshot.location,\n\t\trouter,\n\t\tfailure: snapshot.failure\n\t}), snapshot.failure !== void 0 && snapshot.branch === void 0 ? createElement(LoadFailure, {\n\t\tfailure: snapshot.failure,\n\t\trouter\n\t}) : null);\n};\nconst mounts = /* @__PURE__ */ new WeakSet();\nconst ManagedStatus = ({ client }) => {\n\tconst [snapshot, setSnapshot] = useState(client.upgrade.getSnapshot);\n\tuseLayoutEffect(() => client.upgrade.subscribe(() => setSnapshot(client.upgrade.getSnapshot())), [client]);\n\tif (snapshot.phase === \"ready\" && snapshot.recovery.length === 0) return null;\n\treturn createElement(\"aside\", {\n\t\t\"data-ignotum-update\": snapshot.phase,\n\t\trole: snapshot.phase === \"error\" ? \"alert\" : \"status\"\n\t}, snapshot.message ?? (snapshot.phase === \"connecting\" ? \"Connecting to the app…\" : null), snapshot.recovery.length === 0 ? null : createElement(\"ul\", null, snapshot.recovery.map((message) => createElement(\"li\", { key: message }, message))), snapshot.phase === \"error\" ? createElement(\"button\", {\n\t\ttype: \"button\",\n\t\tonClick: () => client.retry()\n\t}, \"Reload app\") : null, snapshot.recovery.length === 0 ? null : createElement(\"button\", {\n\t\ttype: \"button\",\n\t\tonClick: client.upgrade.dismissRecovery\n\t}, \"Dismiss\"));\n};\n/** The platform owns mounting. Generated registrations contain no Preact render/bootstrap code. */\nconst mountClient = (registration, selection) => {\n\tconst root = window.document.getElementById(\"app\");\n\tif (root === null) throw new Error(\"Ignotum mount element is missing.\");\n\tif (mounts.has(root)) throw new Error(\"The Ignotum client is already mounted.\");\n\tconst router = new RouterStore(registration, selection, window);\n\tconst managed = mountManagedSync(selection, window, {\n\t\tstopAdmission: router.stopForUpgrade,\n\t\treload: router.upgrade\n\t});\n\trouter.setAdmission({\n\t\tvalidate: managed.client.validate,\n\t\trecoverLoad: managed.client.recoverLoad\n\t});\n\trender(createElement(Fragment, null, createElement(ManagedStatus, { client: managed.client }), createElement(RouterView, { router })), root);\n\tconst ready = managed.client.whenReady().then((accepted) => accepted ? router.start() : { status: \"cancelled\" });\n\tmounts.add(root);\n\tlet disposed = false;\n\treturn {\n\t\tready,\n\t\tupgrade: () => managed.client.upgrade.require(),\n\t\tdispose: () => {\n\t\t\tif (disposed) return;\n\t\t\tdisposed = true;\n\t\t\tmounts.delete(root);\n\t\t\trouter.dispose();\n\t\t\tmanaged.dispose();\n\t\t\trender(null, root);\n\t\t}\n\t};\n};\n//#endregion\nexport { mountClient };\n\n//# sourceMappingURL=bootstrap.js.map"],"mappings":";;;;;;;AAGA,MAAM,gBAAgB,OAAO,OAAO;CACnC,iBAAiB,OAAO,OAAO,MAAM,OAAO,YAAY,CAAC,GAAG,OAAO,YAAY,GAAG,CAAC;CACnF,SAAS,OAAO,MAAM,cAAc,CAAC,CAAC,MAAM,OAAO,YAAY,oBAAoB,OAAO,CAAC;CAC3F,MAAM,OAAO,SAAS,cAAc;CACpC,SAAS,OAAO,SAAS;EACxB;EACA;EACA;CACD,CAAC;AACF,CAAC,CAAC,CAAC,SAAS,EAAE,cAAc,EAAE,kBAAkB,QAAQ,EAAE,CAAC;AAC3D,IAAI,kBAAkB,cAAc,OAAO,YAAY,CAAC,CAAC,mBAAmB,EAAE,SAAS,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;;;;;;AAMzG,MAAM,kBAAkB,OAAO,GAAG,yBAAyB,CAAC,CAAC,WAAW,OAAO;CAC9E,MAAM,EAAE,iBAAiB,SAAS,MAAM,YAAY,OAAO,OAAO,aAAa,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,KAAK,EAAE,SAAS,8BAA8B,CAAC,CAAC,CAAC;CACjM,IAAI,QAAQ;CACZ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,KAAK,MAAM,UAAU,SAAS;EAC7B,QAAQ,OAAO,SAAS;EACxB,WAAW,OAAO,iBAAiB;EACnC,cAAc,OAAO,MAAM,eAAe;EAC1C,SAAS,OAAO,MAAM,UAAU;CACjC;CACA,MAAM,cAAc,YAAY,aAAa,KAAK,IAAI;CACtD,MAAM,YAAY,aAAa;CAC/B,IAAI,cAAc,KAAK,GAAG,QAAQ,aAAa,KAAK,IAAI,YAAY,SAAS,QAAQ,YAAY,SAAS;CAC1G,cAAc,aAAa,MAAM,eAAe;CAChD,SAAS,YAAY,YAAY,aAAa,MAAM,UAAU,SAAS;CACvE,MAAM,SAAS,CAAC;CAChB,IAAI,gBAAgB,KAAK,GAAG,OAAO,KAAK,aAAa;CACrD,IAAI,WAAW,KAAK,GAAG,OAAO,KAAK,QAAQ;CAC3C,OAAO;EACN;EACA,MAAM;GACL;GACA;EACD;EACA;CACD;AACD,CAAC;;;AC1CD,MAAM,oBAAoB,aAAa,SAAS,OAAO;;AAEvD,MAAM,gBAAgB,OAAO,GAAG,uBAAuB,CAAC,CAAC,WAAW,UAAU,OAAO;CACpF,MAAM,SAAS,OAAO,cAAc,KAAK,CAAC,CAAC,KAAK,OAAO,MAAM;CAC7D,IAAI,OAAO,SAAS,WAAW;EAC9B,MAAM,QAAQ,OAAO;EACrB,MAAM,UAAU,MAAM;EACtB,MAAM,WAAW,SAAS,YAAY,CAAC;EACvC,MAAM,WAAW,iBAAiB,QAAQ;EAC1C,MAAM,SAAS,SAAS,eAAe,aAAa,UAAU,QAAQ,IAAI,eAAe,UAAU,QAAQ;EAC3G,OAAO;GACN,MAAM;GACN,QAAQ;GACR,OAAO,CAAC,YAAY,SAAS,eAAe,OAAO,QAAQ,KAAK;GAChE,SAAS,WAAW,CAAC,IAAI,OAAO;GAChC;GACA,UAAU,KAAK;GACf,QAAQ,MAAM;EACf;CACD;CACA,MAAM,WAAW,OAAO;CACxB,MAAM,WAAW,iBAAiB,SAAS,QAAQ;CACnD,MAAM,SAAS,aAAa,UAAU,SAAS,QAAQ;CACvD,IAAI,YAAY,OAAO,UAAU,KAAK,GAAG,OAAO;EAC/C,MAAM;EACN,QAAQ;EACR,SAAS,WAAW,CAAC,IAAI,OAAO;EAChC;EACA;CACD;CACA,MAAM,QAAQ,OAAO;CACrB,MAAM,UAAU,OAAO,kBAAkB,OAAO,OAAO,QAAQ,SAAS,MAAM,CAAC,CAAC,KAAK,OAAO,MAAM;CAClG,IAAI,QAAQ,SAAS,WAAW,OAAO;EACtC,MAAM;EACN,QAAQ;EACR;EACA,SAAS,OAAO;EAChB,UAAU;EACV;EACA,QAAQ,QAAQ,QAAQ;CACzB;CACA,OAAO;EACN,MAAM;EACN,QAAQ;EACR;EACA,SAAS,OAAO;EAChB,UAAU;EACV;EACA,GAAG,QAAQ;CACZ;AACD,CAAC;;;ACpDD,MAAM,iBAAiB,OAAO,OAAO;CACpC,eAAe,OAAO,QAAQ,CAAC;CAC/B,KAAK,OAAO;AACb,CAAC;AACD,MAAM,iBAAiB,OAAO,OAAO;CACpC,eAAe,OAAO,QAAQ,CAAC;CAC/B,KAAK,OAAO;CACZ,OAAO,OAAO,OAAO,OAAO,GAAG;AAChC,CAAC;AACD,MAAM,eAAeA,QAAkBC,QAAkB,cAAc,GAAG,iBAAiB,SAAS;CACnG,eAAe;CACf,KAAK,IAAI;CACT,OAAO;AACR,EAAE;AACF,MAAM,eAAe,OAAO,OAAO,EAAE,iBAAiB,aAAa,CAAC;AACpE,MAAM,cAAc,OAAO,OAAO,OAAO,QAAQ,OAAO,OAAO;AAC/D,MAAM,UAAU,YAAY,GAAG,QAAQ,SAAS,WAAW,QAAQ,SAAS,SAAS,QAAQ,SAAS;;AAEtG,IAAI,gBAAgB,MAAM;CACzB;CACA;CACA;CACA;CACA,4BAA4B,IAAI,IAAI;CACpC;CACA;CACA,YAAY;CACZ,gBAAgB;CAChB;CACA,yBAAyB,IAAI,IAAI;CACjC,YAAY,SAAS,aAAa;EACjC,KAAK,UAAU;EACf,KAAK,cAAc;EACnB,MAAM,SAAS,OAAO,oBAAoB,YAAY,CAAC,CAAC,QAAQ,QAAQ,KAAK;EAC7E,MAAM,QAAQ,OAAO,SAAS,SAAS,OAAO,MAAM,kBAAkB,KAAK;EAC3E,KAAK,SAAS,KAAK,YAAY;GAC9B,KAAK,OAAO,OAAO,QAAQ,OAAO,WAAW;GAC7C,OAAO,OAAO,SAAS;GACvB,MAAM,OAAO,OAAO;EACrB;EACA,KAAK,MAAM,KAAK,QAAQ,KAAK;EAC7B,KAAK,4BAA4B,QAAQ,QAAQ;EACjD,QAAQ,QAAQ,oBAAoB;EACpC,QAAQ,iBAAiB,YAAY,KAAK,KAAK;EAC/C,QAAQ,iBAAiB,UAAU,KAAK,UAAU;CACnD;CACA,MAAM,UAAU,MAAM;EACrB,MAAM,SAAS,OAAO,oBAAoB,WAAW,CAAC,CAAC,KAAK,QAAQ,QAAQ,KAAK;EACjF,MAAM,QAAQ,EAAE,iBAAiB,OAAO,WAAW,YAAY,CAAC,CAAC;GAChE,eAAe;GACf,KAAK,SAAS;GACd,OAAO,SAAS;EACjB,CAAC,EAAE;EACH,MAAM,QAAQ,OAAO,SAAS,SAAS;GACtC,GAAG,OAAO;GACV,GAAG;EACJ,IAAI;EACJ,IAAI,MAAM,KAAK,QAAQ,QAAQ,UAAU,OAAO,IAAI,SAAS,IAAI;OAC5D,KAAK,QAAQ,QAAQ,aAAa,OAAO,IAAI,SAAS,IAAI;EAC/D,KAAK,UAAU,IAAI,SAAS,KAAK,SAAS,KAAK;CAChD;CACA,mBAAmB;EAClB,IAAI,KAAK,eAAe;EACxB,KAAK,OAAO,IAAI,KAAK,UAAU,KAAK;GACnC,GAAG,KAAK,QAAQ;GAChB,GAAG,KAAK,QAAQ;EACjB,CAAC;CACF;CACA,gBAAgB;EACf,KAAK,WAAW;EAChB,KAAK,gBAAgB;EACrB,OAAO,KAAK,OAAO,IAAI,KAAK,UAAU,GAAG,KAAK;GAC7C,GAAG,KAAK,QAAQ;GAChB,GAAG,KAAK,QAAQ;EACjB;CACD;CACA,eAAe;EACd,KAAK,gBAAgB;EACrB,KAAK,WAAW;CACjB;CACA,sBAAsB;EACrB,IAAI,CAAC,KAAK,eAAe;EACzB,MAAM,QAAQ,KAAK,OAAO,IAAI,KAAK,UAAU,GAAG;EAChD,IAAI,UAAU,KAAK,GAAG,KAAK,QAAQ,SAAS,MAAM,GAAG,MAAM,CAAC;EAC5D,KAAK,aAAa;CACnB;CACA,cAAc;EACb,MAAM,SAAS,OAAO,oBAAoB,YAAY,CAAC,CAAC,KAAK,QAAQ,QAAQ,KAAK;EAClF,MAAM,QAAQ,OAAO,SAAS,SAAS,OAAO,MAAM,kBAAkB,KAAK;EAC3E,MAAM,MAAM,OAAO,OAAO,KAAK,QAAQ,OAAO,WAAW;EACzD,MAAM,QAAQ,OAAO,SAAS,KAAK,UAAU,IAAI,GAAG,KAAK,KAAK,OAAO,QAAQ,KAAK;EAClF,KAAK,SAAS;GACb;GACA;GACA,MAAM,OAAO,KAAK,OAAO;EAC1B;EACA,KAAK,MAAM,KAAK,QAAQ,KAAK;EAC7B,MAAM,WAAW,KAAK;EACtB,KAAK,cAAc,KAAK;EACxB,MAAM,UAAU,KAAK;EACrB,IAAI,YAAY,KAAK,MAAM,aAAa,OAAO,QAAQ,SAAS,QAAQ,MAAM;GAC7E,KAAK,YAAY;GACjB;EACD;EACA,IAAI,YAAY,KAAK,GAAG;GACvB,KAAK,UAAU,KAAK;GACpB,OAAO,QAAQ,SAAS,QAAQ,QAAQ,MAAM,KAAK,CAAC;EACrD;EACA,KAAK,YAAY,KAAK,MAAM;CAC7B;CACA,cAAc;EACb,MAAM,UAAU,KAAK;EACrB,IAAI,YAAY,KAAK,KAAK,KAAK,gBAAgB,KAAK,GAAG;EACvD,IAAI,KAAK,OAAO,QAAQ,QAAQ,SAAS,KAAK;GAC7C,KAAK,UAAU,KAAK;GACpB,OAAO,QAAQ,SAAS,QAAQ,QAAQ,MAAM,IAAI,CAAC;EACpD,OAAO;GACN,KAAK,cAAc,QAAQ,SAAS;GACpC,KAAK,QAAQ,QAAQ,GAAG,QAAQ,SAAS,QAAQ,KAAK,OAAO,KAAK;EACnE;CACD;CACA,KAAK,UAAU;EACd,IAAI,KAAK,YAAY,KAAK,GAAG;GAC5B,IAAI,KAAK,QAAQ,SAAS,QAAQ,SAAS,KAAK,OAAO,OAAO,WAAW,SAAS,MAAM,KAAK,QAAQ,IAAI,CAAC;GAC1G,OAAO,QAAQ,SAAS,QAAQ,KAAK,QAAQ,MAAM,KAAK,CAAC;EAC1D;EACA,MAAM,OAAO,SAAS,WAAW;EACjC,KAAK,UAAU;GACd;GACA;EACD;EACA,KAAK,YAAY;EACjB,OAAO,OAAO,WAAW,SAAS,MAAM,IAAI,CAAC;CAC9C;CACA,OAAO,UAAU,MAAM;EACtB,IAAI,SAAS,UAAU,SAAS,WAAW,KAAK,MAAM,UAAU,SAAS,MAAM;EAC/E,KAAK,SAAS,KAAK,YAAY;CAChC;CACA,aAAa;EACZ,KAAK,YAAY;EACjB,KAAK,QAAQ,QAAQ,KAAK;CAC3B;CACA,gBAAgB;EACf,KAAK,YAAY;EACjB,KAAK,QAAQ,QAAQ,QAAQ;CAC9B;CACA,UAAU;EACT,KAAK,QAAQ,oBAAoB,YAAY,KAAK,KAAK;EACvD,KAAK,QAAQ,oBAAoB,UAAU,KAAK,UAAU;EAC1D,KAAK,QAAQ,QAAQ,oBAAoB,KAAK;EAC9C,IAAI,KAAK,YAAY,KAAK,GAAG,OAAO,QAAQ,SAAS,QAAQ,KAAK,QAAQ,MAAM,KAAK,CAAC;CACvF;AACD;;;ACtJA,MAAM,iBAAiB,OAAO,SAAS,UAAU,UAAU,WAAW,KAAK,CAAC;AAC5E,MAAM,mBAAmB,OAAO,SAAS,UAAU,UAAU,WAAW,KAAK,CAAC;AAC9E,MAAM,oBAAoB,OAAO,SAAS,UAAU,UAAU,WAAW,KAAK,CAAC;AAC/E,MAAM,aAAa,OAAO,OAAO;CAChC,OAAO,OAAO,SAAS,cAAc;CACrC,SAAS,OAAO,SAAS,gBAAgB;CACzC,WAAW,OAAO,SAAS,UAAU,UAAU,WAAW,KAAK,CAAC;AACjE,CAAC;AACD,MAAM,eAAe,OAAO,OAAO;CAClC,OAAO,OAAO,SAAS,cAAc;CACrC,SAAS,OAAO,SAAS,gBAAgB;CACzC,UAAU,OAAO,SAAS,iBAAiB;CAC3C,WAAW,OAAO,SAAS,UAAU,UAAU,WAAW,KAAK,CAAC;AACjE,CAAC;AACD,MAAM,gBAAgB,OAAO,OAAO,OAAO,QAAQ,OAAO,OAAO;AACjE,IAAI,kBAAkB,cAAc,OAAO,YAAY,CAAC,CAAC,mBAAmB;CAC3E,OAAO,OAAO;CACd,QAAQ,OAAO,SAAS,UAAU,UAAU,SAAS,KAAK,CAAC;AAC5D,CAAC,CAAC,CAAC,CAAC;AACJ,MAAM,cAAc,MAAM,KAAK,WAAW;CACzC,MAAM,SAAS,IAAI,IAAI,MAAM,MAAM;CACnC,IAAI,OAAO,OAAO,KAAK,MAAM,CAAC;CAC9B,IAAI;EACH,OAAO,mBAAmB,IAAI;CAC/B,QAAQ,CAAC;CACT,OAAO;EACN,UAAU,OAAO;EACjB,QAAQ,OAAO;EACf;EACA;CACD;AACD;;AAEA,IAAI,cAAc,MAAM;CACvB;CACA;CACA;CACA;CACA,4BAA4B,IAAI,IAAI;CACpC,0BAA0B,IAAI,IAAI;CAClC,yBAAyB,IAAI,IAAI;CACjC,gCAAgC,IAAI,IAAI;CACxC,4BAA4B,IAAI,IAAI;CACpC;CACA,2BAA2B,IAAI,IAAI;CACnC;CACA,YAAY;CACZ;CACA,SAAS;CACT;CACA;CACA,WAAW;CACX,UAAU;CACV,WAAW;EACV,UAAU,KAAK;EACf,QAAQ,KAAK;EACb,YAAY,EAAE,QAAQ,OAAO;EAC7B,SAAS,KAAK;EACd,QAAQ;CACT;CACA,YAAY,cAAc,WAAW,SAAS;EAC7C,KAAK,eAAe;EACpB,KAAK,UAAU;EACf,KAAK,YAAY,OAAO,WAAW,gBAAgB,CAAC,CAAC,SAAS;EAC9D,KAAK,WAAW,OAAO,QAAQ,gBAAgB,aAAa,QAAQ,aAAa,OAAO,CAAC;EACzF,KAAK,MAAM,aAAa,CAAC,GAAG,aAAa,OAAO,KAAK,UAAU,MAAM,IAAI,GAAG,GAAG,aAAa,QAAQ,KAAK,WAAW,OAAO,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,QAAQ,IAAI,UAAU,MAAM,GAAG,MAAM,IAAI,MAAM,kBAAkB,UAAU,OAAO,gCAAgC;CAC1Q;CACA,oBAAoB,KAAK;CACzB,aAAa,aAAa;EACzB,KAAK,UAAU,IAAI,QAAQ;EAC3B,aAAa,KAAK,UAAU,OAAO,QAAQ;CAC5C;CACA,OAAO,UAAU;EAChB,KAAK,WAAW;EAChB,KAAK,MAAM,YAAY,KAAK,WAAW,SAAS;CACjD;CACA,QAAQ;EACP,IAAI,KAAK,SAAS,MAAM,IAAI,MAAM,yCAAyC;EAC3E,KAAK,UAAU;EACf,KAAK,UAAU,IAAI,cAAc,KAAK,SAAS,KAAK,WAAW;EAC/D,KAAK,QAAQ,iBAAiB,gBAAgB,KAAK,cAAc;EACjE,MAAM,WAAW,KAAK,QAAQ;EAC9B,OAAO,KAAK,aAAa,SAAS,MAAM,WAAW,SAAS,KAAK,CAAC,GAAG,QAAQ;CAC9E;CACA,eAAe,aAAa;EAC3B,KAAK,UAAU,MAAM;EACrB,KAAK,SAAS,KAAK,KAAK,QAAQ,SAAS;EACzC,KAAK,aAAa,SAAS,MAAM,YAAY,SAAS,KAAK,CAAC,GAAG,QAAQ;CACxE;CACA,aAAa,KAAK,SAAS,KAAK;CAChC,gBAAgB,KAAK,SAAS,QAAQ;CACtC,kBAAkB,UAAU;EAC3B,IAAI,KAAK,aAAa,KAAK,SAAS,SAAS,GAAG;EAChD,MAAM,eAAe;EACrB,MAAM,cAAc;CACrB;;CAEA,uBAAuB;EACtB,IAAI,KAAK,UAAU;EACnB,KAAK,YAAY;EACjB,KAAK,QAAQ,oBAAoB,gBAAgB,KAAK,cAAc;EACpE,KAAK,SAAS,MAAM;EACpB,KAAK,cAAc;CACpB;CACA,gBAAgB;EACf,IAAI,KAAK,UAAU;EACnB,KAAK,eAAe;EACpB,KAAK,QAAQ,SAAS,OAAO;CAC9B;CACA,aAAa,WAAW;EACvB,KAAK,YAAY;CAClB;CACA,WAAW,IAAI,MAAM;EACpB,IAAI,MAAM,KAAK,SAAS,IAAI,EAAE;OACzB,KAAK,SAAS,OAAO,EAAE;EAC5B,IAAI,CAAC,QAAQ,KAAK,SAAS,UAAU,OAAO,EAAE,MAAM,MAAM,KAAK,eAAe;CAC/E;CACA,WAAW,IAAI;EACd,MAAM,UAAU,KAAK;EACrB,MAAM,OAAO,KAAK,SAAS;EAC3B,IAAI,YAAY,KAAK,KAAK,SAAS,KAAK,KAAK,CAAC,QAAQ,UAAU,IAAI,EAAE,GAAG,OAAO,EAAE,QAAQ,OAAO;EACjG,OAAO;GACN,QAAQ;GACR;GACA,IAAI,QAAQ,WAAW;GACvB,eAAe;IACd,IAAI,KAAK,YAAY,SAAS;IAC9B,QAAQ,UAAU,OAAO,EAAE;IAC3B,KAAK,eAAe;GACrB;GACA,aAAa;IACZ,IAAI,KAAK,YAAY,SAAS;IAC9B,KAAK,cAAc;IACnB,KAAK,OAAO;KACX,GAAG,KAAK;KACR,YAAY,EAAE,QAAQ,OAAO;IAC9B,CAAC;GACF;EACD;CACD;CACA,iBAAiB;EAChB,MAAM,UAAU,KAAK;EACrB,IAAI,YAAY,KAAK,GAAG;EACxB,IAAI,QAAQ,UAAU,SAAS,GAAG;GACjC,KAAK,UAAU,KAAK;GACpB,KAAK,eAAe,QAAQ,UAAU;EACvC,OAAO,KAAK,OAAO,EAAE,GAAG,KAAK,SAAS,CAAC;CACxC;CACA,SAAS,MAAM,UAAU,CAAC,GAAG,WAAW,OAAO;EAC9C,IAAI,KAAK,YAAY,KAAK,WAAW,OAAO,QAAQ,QAAQ,EAAE,QAAQ,YAAY,CAAC;EACnF,IAAI,CAAC,UAAU,KAAK,UAAU,MAAM;EACpC,IAAI,SAAS,KAAK,eAAe;GAChC,KAAK,cAAc;GACnB,KAAK,OAAO;IACX,GAAG,KAAK;IACR,YAAY,EAAE,QAAQ,OAAO;IAC7B,SAAS,KAAK;GACf,CAAC;GACD,OAAO,QAAQ,QAAQ,EAAE,QAAQ,YAAY,CAAC;EAC/C;EACA,IAAI,UAAU;GACb,IAAI,KAAK,kBAAkB,KAAK,GAAG,KAAK,UAAU,IAAI,KAAK,aAAa;GACxE,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,KAAK,UAAU,QAAQ,IAAI;IAC1D,MAAM,wBAAwB,IAAI,MAAM,6BAA6B,KAAK,GAAG;IAC7E,KAAK,cAAc;IACnB,KAAK,OAAO;KACX,GAAG,KAAK;KACR,YAAY,EAAE,QAAQ,OAAO;KAC7B,SAAS;MACR;MACA,aAAa;OACZ,KAAK,UAAU,MAAM;OACrB,KAAK,SAAS,MAAM,SAAS,IAAI;MAClC;KACD;IACD,CAAC;IACD,OAAO,QAAQ,QAAQ;KACtB,QAAQ;KACR;IACD,CAAC;GACF;EACD;EACA,MAAM,MAAM,QAAQ,YAAY,OAAO,KAAK,SAAS,UAAU,OAAO,KAAK,QAAQ,OAAO,WAAW,IAAI,KAAK,QAAQ,OAAO,WAAW;EACxI,OAAO,KAAK,aAAa,MAAM,QAAQ,YAAY,OAAO,YAAY,QAAQ,KAAK,OAAO;CAC3F;CACA,UAAU,OAAO,SAAS;EACzB,IAAI,KAAK,YAAY,KAAK,aAAa,KAAK,cAAc,KAAK,KAAK,CAAC,MAAM,KAAK,UAAU,SAAS,GAAG;EACtG,MAAM,UAAU,OAAO,QAAQ,cAAc,KAAK,UAAU,IAAI,CAAC;EACjE,MAAM,KAAK,WAAW,SAAS,KAAK;CACrC;CACA,gBAAgB;EACf,IAAI,KAAK,YAAY,KAAK,GAAG,KAAK,QAAQ,KAAK,KAAK,QAAQ,SAAS;EACrE,KAAK,UAAU,KAAK;EACpB,IAAI,KAAK,eAAe,KAAK,GAAG,OAAO,QAAQ,SAAS,QAAQ,KAAK,WAAW,YAAY,EAAE,QAAQ,YAAY,CAAC,CAAC;EACpH,KAAK,aAAa,KAAK;CACxB;CACA,aAAa,MAAM,MAAM,KAAK,UAAU,CAAC,GAAG,iBAAiB;EAC5D,IAAI,KAAK,YAAY,KAAK,WAAW,OAAO,QAAQ,QAAQ,EAAE,QAAQ,YAAY,CAAC;EACnF,MAAM,eAAe,KAAK,SAAS,cAAc,KAAK;GACrD,GAAG,KAAK,QAAQ;GAChB,GAAG,KAAK,QAAQ;EACjB;EACA,KAAK,cAAc;EACnB,MAAM,WAAW,WAAW,MAAM,KAAK,KAAK,QAAQ,SAAS,MAAM;EACnE,MAAM,WAAW,KAAK,SAAS;EAC/B,MAAM,aAAa,aAAa,KAAK,KAAK,SAAS,aAAa,SAAS,YAAY,SAAS,SAAS,SAAS;EAChH,MAAM,aAAa,SAAS,WAAW;EACvC,MAAM,WAAW,mBAAmB;GACnC;GACA;GACA,QAAQ,KAAK,SAAS,UAAU,SAAS,MAAM,SAAS,SAAS,IAAI;EACtE;EACA,MAAM,aAAa;GAClB,IAAI,EAAE,KAAK;GACX;GACA;GACA;GACA;GACA;GACA,QAAQ,QAAQ,WAAW,aAAa,aAAa;GACrD;GACA;EACD;EACA,KAAK,aAAa;EAClB,IAAI,SAAS,aAAa,KAAK,SAAS,OAAO,KAAK,KAAK,SAAS,aAAa,KAAK,GAAG;GACtF,KAAK,UAAU;IACd;IACA,WAAW,IAAI,IAAI,KAAK,QAAQ;GACjC;GACA,KAAK,OAAO;IACX,GAAG,KAAK;IACR,YAAY,EAAE,QAAQ,OAAO;IAC7B,SAAS,KAAK;GACf,CAAC;EACF,OAAO,KAAK,eAAe,UAAU;EACrC,OAAO,OAAO,WAAW,SAAS,MAAM,UAAU,CAAC;CACpD;CACA,eAAe,YAAY;EAC1B,MAAM,EAAE,MAAM,UAAU,SAAS;EACjC,MAAM,UAAU,OAAO,QAAQ,cAAc,KAAK,UAAU,IAAI,CAAC;EACjE,KAAK,OAAO;GACX,GAAG,KAAK;GACR,YAAY;IACX,QAAQ;IACR,IAAI;GACL;GACA,SAAS,KAAK;EACf,CAAC;EACD,MAAM,OAAO,YAAY;GACxB,IAAI,KAAK,cAAc,KAAK,KAAK,CAAC,MAAM,KAAK,UAAU,SAAS,GAAG,MAAM,IAAI,MAAM,8DAA8D;GACjJ,IAAI,KAAK,aAAa,KAAK,UAAU,MAAM,IAAI,MAAM,sBAAsB;GAC3E,OAAO,KAAK,WAAW,OAAO;EAC/B;EACA,KAAK,CAAC,CAAC,KAAK,OAAO,WAAW;GAC7B,IAAI,KAAK,eAAe,cAAc,KAAK,UAAU;GACrD,IAAI;IACH,MAAM,UAAU,KAAK;IACrB,IAAI,YAAY,KAAK,GAAG;KACvB,IAAI,CAAC,MAAM,QAAQ,KAAK,QAAQ,SAAS,KAAK,KAAK,eAAe,cAAc,KAAK,UAAU;KAC/F,IAAI,SAAS,YACR;UAAA,CAAC,MAAM,QAAQ,KAAK,WAAW,QAAQ,KAAK,KAAK,eAAe,cAAc,KAAK,UAAU;KAAA;KAElG,QAAQ,OAAO,WAAW,UAAU,IAAI;IACzC;IACA,KAAK,cAAc,OAAO;IAC1B,KAAK,gBAAgB;IACrB,KAAK,OAAO;KACX;KACA;KACA,YAAY,EAAE,QAAQ,OAAO;KAC7B,SAAS,KAAK;KACd,QAAQ,WAAW;IACpB,CAAC;GACF,SAAS,OAAO;IACf,KAAK,KAAK,YAAY,KAAK;GAC5B;EACD,IAAI,UAAU;GACb,KAAK,KAAK,YAAY,KAAK;GAC3B,IAAI,CAAC,KAAK,WAAW,KAAK,WAAW,YAAY;EAClD,CAAC;CACF;;CAEA,SAAS,QAAQ;EAChB,IAAI,KAAK,YAAY,OAAO,UAAU,KAAK,SAAS,WAAW,QAAQ;GACtE,IAAI,KAAK,SAAS,WAAW,WAAW,UAAU,KAAK,YAAY,KAAK,GAAG,KAAK,SAAS,oBAAoB;GAC7G;EACD;EACA,MAAM,aAAa,KAAK;EACxB,MAAM,WAAW,KAAK,QAAQ;EAC9B,IAAI,CAAC,WAAW,YAAY;GAC3B,MAAM,SAAS,SAAS,cAAc,6BAA6B,KAAK,SAAS,eAAe,KAAK;GACrG,IAAI,WAAW,MAAM;IACpB,IAAI,CAAC,OAAO,aAAa,UAAU,GAAG,OAAO,aAAa,YAAY,IAAI;IAC1E,OAAO,MAAM,EAAE,eAAe,KAAK,CAAC;GACrC;EACD;EACA,MAAM,QAAQ,KAAK,SAAS,OAAO,IAAI,WAAW,SAAS,GAAG;EAC9D,IAAI,WAAW,SAAS,cAAc,UAAU,KAAK,GAAG,KAAK,QAAQ,SAAS,MAAM,GAAG,MAAM,CAAC;OACzF,IAAI,WAAW,WAAW,QAAQ;GACtC,MAAM,SAAS,WAAW,SAAS,SAAS,KAAK,OAAO,SAAS,eAAe,WAAW,SAAS,IAAI;GACxG,IAAI,WAAW,MAAM,OAAO,eAAe;QACtC,KAAK,QAAQ,SAAS,GAAG,CAAC;EAChC,OAAO,KAAK,QAAQ,SAAS,WAAW,aAAa,GAAG,WAAW,aAAa,CAAC;EACjF,KAAK,SAAS,aAAa;EAC3B,OAAO,QAAQ,SAAS,QAAQ,KAAK,WAAW,YAAY,EAAE,QAAQ,YAAY,CAAC,CAAC;EACpF,KAAK,aAAa,KAAK;CACxB;CACA,KAAK,YAAY,OAAO;EACvB,IAAI,KAAK,eAAe,cAAc,KAAK,UAAU;EACrD,KAAK,aAAa,KAAK;EACvB,MAAM,cAAc,iBAAiB,kBAAkB,QAAQ,KAAK;EACpE,MAAM,gBAAgB,gBAAgB,KAAK,IAAI,QAAQ,YAAY;EACnE,KAAK,OAAO;GACX,GAAG,KAAK;GACR,YAAY,EAAE,QAAQ,OAAO;GAC7B,SAAS;IACR,OAAO;IACP,QAAQ,WAAW,SAAS,YAAY,KAAK,IAAI,aAAa;IAC9D,aAAa;KACZ,KAAK,aAAa,WAAW,MAAM,WAAW,MAAM,WAAW,SAAS,KAAK,EAAE,QAAQ,WAAW,OAAO,GAAG,WAAW,QAAQ;IAChI;GACD;EACD,CAAC;EACD,OAAO,QAAQ,SAAS,QAAQ,WAAW,YAAY;GACtD,QAAQ;GACR,OAAO;EACR,CAAC,CAAC;CACH;CACA,UAAU,MAAM;EACf,MAAM,WAAW,IAAI,IAAI,MAAM,KAAK,QAAQ,SAAS,MAAM,CAAC,CAAC;EAC7D,MAAM,SAAS,KAAK,OAAO,IAAI,QAAQ;EACvC,IAAI,WAAW,KAAK,GAAG,OAAO;EAC9B,MAAM,WAAW,KAAK,QAAQ;EAC9B,MAAM,WAAW,MAAM,KAAK,SAAS,iBAAiB,0BAA0B,CAAC,CAAC,CAAC,MAAM,SAAS,KAAK,SAAS,QAAQ;EACxH,IAAI,UAAU,UAAU,QAAQ,UAAU,UAAU,KAAK,GAAG,OAAO,QAAQ,QAAQ;EACnF,MAAM,OAAO,YAAY,SAAS,cAAc,MAAM;EACtD,MAAM,UAAU,OAAO,WAAW,OAAO,UAAU,WAAW;GAC7D,MAAM,gBAAgB;IACrB,KAAK,oBAAoB,QAAQ,MAAM;IACvC,KAAK,oBAAoB,SAAS,OAAO;IACzC,KAAK,cAAc,OAAO,MAAM;GACjC;GACA,MAAM,eAAe;IACpB,QAAQ;IACR,OAAO,OAAO,IAAI;GACnB;GACA,MAAM,gBAAgB;IACrB,QAAQ;IACR,KAAK,OAAO;IACZ,OAAO,OAAO,qBAAqB,IAAI,MAAM,oCAAoC,KAAK,GAAG,CAAC,CAAC;GAC5F;GACA,MAAM,eAAe;IACpB,QAAQ;IACR,IAAI,aAAa,KAAK,GAAG,KAAK,OAAO;IACrC,OAAO,OAAO,qBAAqB,IAAI,MAAM,kBAAkB,CAAC,CAAC;GAClE;GACA,KAAK,cAAc,IAAI,MAAM;GAC7B,KAAK,iBAAiB,QAAQ,MAAM;GACpC,KAAK,iBAAiB,SAAS,OAAO;GACtC,IAAI,aAAa,KAAK,GAAG;IACxB,KAAK,MAAM;IACX,KAAK,cAAc;IACnB,KAAK,OAAO;IACZ,SAAS,KAAK,OAAO,IAAI;GAC1B;GACA,OAAO,OAAO,KAAK,OAAO;EAC3B,CAAC,CAAC,CAAC,CAAC,OAAO,UAAU;GACpB,KAAK,OAAO,OAAO,QAAQ;GAC3B,MAAM;EACP,CAAC;EACD,KAAK,OAAO,IAAI,UAAU,OAAO;EACjC,OAAO;CACR;CACA,WAAW,IAAI;EACd,MAAM,SAAS,KAAK,QAAQ,IAAI,EAAE;EAClC,IAAI,WAAW,KAAK,GAAG,OAAO;EAC9B,MAAM,SAAS,KAAK,aAAa,QAAQ,IAAI,EAAE;EAC/C,IAAI,WAAW,KAAK,GAAG,OAAO,QAAQ,uBAAuB,IAAI,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;EAClH,MAAM,SAAS,QAAQ,QAAQ,CAAC,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,OAAO,kBAAkB,aAAa,CAAC,CAAC,CAAC,OAAO,UAAU;GACjH,KAAK,QAAQ,OAAO,EAAE;GACtB,MAAM;EACP,CAAC;EACD,KAAK,QAAQ,IAAI,IAAI,MAAM;EAC3B,OAAO;CACR;CACA,MAAM,WAAW,WAAW;EAC3B,MAAM,UAAU,MAAM,KAAK,WAAW,UAAU,MAAM;EACtD,IAAI,CAAC,OAAO,OAAO,SAAS,UAAU,UAAU,GAAG,MAAM,IAAI,MAAM,WAAW,UAAU,OAAO,YAAY,UAAU,WAAW,UAAU;EAC1I,OAAO,QAAQ,UAAU;CAC1B;CACA,MAAM,WAAW,SAAS,aAAa,MAAM;EAC5C,MAAM,QAAQ,QAAQ,SAAS,aAAa,KAAK,IAAI,QAAQ;EAC7D,MAAM,4BAA4B,IAAI,IAAI;EAC1C,IAAI;GACH,MAAM,CAAC,SAAS,QAAQ,MAAM,QAAQ,IAAI;IACzC,QAAQ,IAAI,QAAQ,QAAQ,IAAI,OAAO,WAAW;KACjD,MAAM,CAAC,UAAU,MAAM,QAAQ,IAAI,CAAC,KAAK,WAAW,OAAO,MAAM,CAAC,CAAC,KAAK,OAAO,kBAAkB,YAAY,CAAC,GAAG,aAAa,QAAQ,KAAK,KAAK,aAAa,QAAQ,IAAI,OAAO,OAAO,MAAM,CAAC,EAAE,UAAU,CAAC,EAAA,CAAG,KAAK,SAAS,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;KAC5P,MAAM,SAAS;MACd,IAAI,OAAO;MACX,GAAG;KACJ;KACA,UAAU,IAAI,OAAO,IAAI,MAAM;KAC/B,OAAO;IACR,CAAC,CAAC;IACF,UAAU,KAAK,IAAI,KAAK,IAAI,KAAK,WAAW,MAAM,IAAI,CAAC,CAAC,KAAK,OAAO,kBAAkB,UAAU,CAAC;IACjG,QAAQ,IAAI,aAAa,CAAC,GAAG,KAAK,aAAa,UAAU,CAAC,GAAG,GAAG,UAAU,KAAK,IAAI,CAAC,IAAI,KAAK,aAAa,QAAQ,IAAI,MAAM,KAAK,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,SAAS,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC;GACvM,CAAC;GACD,OAAO;IACN;IACA;IACA,MAAM,MAAM;IACZ,gBAAgB;GACjB;EACD,SAAS,OAAO;GACf,MAAM,UAAU,CAAC;GACjB,KAAK,MAAM,cAAc,QAAQ,SAAS;IACzC,MAAM,SAAS,UAAU,IAAI,WAAW,EAAE;IAC1C,IAAI,WAAW,KAAK,GAAG;IACvB,QAAQ,KAAK,MAAM;GACpB;GACA,MAAM,gBAAgB,KAAK;IAC1B;IACA,QAAQ;KACP;KACA;KACA,MAAM,KAAK;IACZ;GACD,CAAC;EACF;CACD;CACA,eAAe,OAAO;EACrB,IAAI,KAAK,SAAS,WAAW,KAAK,GAAG,KAAK,cAAc,KAAK,SAAS,OAAO,SAAS,KAAK;CAC5F;CACA,cAAc,SAAS,cAAc,OAAO;EAC3C,MAAM,WAAW,OAAO,QAAQ,gBAAgB;GAC/C,iBAAiB,KAAK,aAAa;GACnC,SAAS,QAAQ,QAAQ,KAAK,WAAW,OAAO,QAAQ;GACxD,MAAM,QAAQ,SAAS,aAAa,KAAK,IAAI,QAAQ,OAAO;GAC5D,SAAS,cAAc,YAAY,QAAQ;EAC5C,CAAC,CAAC;EACF,MAAM,WAAW,KAAK,QAAQ;EAC9B,SAAS,QAAQ,SAAS;EAC1B,KAAK,MAAM,QAAQ,CAAC,eAAe,QAAQ,GAAG;GAC7C,MAAM,OAAO,MAAM,KAAK,SAAS,KAAK,iBAAiB,cAAc,KAAK,GAAG,CAAC;GAC9E,MAAM,QAAQ,SAAS,KAAK;GAC5B,IAAI,UAAU,KAAK,GAAG;IACrB,KAAK,MAAM,OAAO,MAAM,IAAI,OAAO;IACnC;GACD;GACA,MAAM,MAAM,KAAK,MAAM,KAAK,SAAS,cAAc,MAAM;GACzD,KAAK,MAAM,aAAa,MAAM,UAAU,OAAO;GAC/C,IAAI,OAAO;GACX,IAAI,UAAU;GACd,IAAI,CAAC,IAAI,aAAa,SAAS,KAAK,OAAO,GAAG;EAC/C;CACD;CACA,UAAU;EACT,KAAK,WAAW;EAChB,KAAK,cAAc;EACnB,KAAK,SAAS,QAAQ;EACtB,KAAK,QAAQ,oBAAoB,gBAAgB,KAAK,cAAc;EACpE,KAAK,MAAM,WAAW,KAAK,eAAe,QAAQ;EAClD,KAAK,UAAU,MAAM;CACtB;AACD;;;ACldA,MAAM,gBAAgB,EAAE,OAAO,YAAY,cAAc,OAAO,EAAE,MAAM,QAAQ,GAAG,iBAAiB,QAAQ,MAAM,UAAU,wCAAwC,cAAc,UAAU,EAAE,SAAS,MAAM,GAAG,OAAO,CAAC;AACxN,MAAM,YAAY,EAAE,UAAU,WAAW,QAAQ,QAAQ,cAAc;CACtE,MAAM,CAAC,SAAS,cAAc,SAAS;CACvC,MAAM,GAAG,SAAS,kBAAkB,UAAU;EAC7C,WAAW;GACV;GACA;EACD,CAAC;EACD,OAAO,eAAe,IAAI;CAC3B,CAAC;CACD,OAAO,SAAS,WAAW,SAAS,WAAW,cAAc,WAAW;EACvE,OAAO,QAAQ;EACf,aAAa;GACZ,OAAO,eAAe,KAAK;GAC3B,UAAU;GACV,WAAW,KAAK,CAAC;GACjB,MAAM;EACP;CACD,CAAC;AACF;AACA,MAAM,UAAU,EAAE,QAAQ,UAAU,QAAQ,cAAc;CACzD,MAAM,UAAU,OAAO;CACvB,IAAI;CACJ,IAAI,aAAa,OAAO,QAAQ,SAAS;CACzC,IAAI;CACJ,IAAI,QAAQ,SAAS,aAAa,OAAO,SAAS,KAAK,GAAG,QAAQ,cAAc,OAAO,MAAM;EAC5F,KAAK,QAAQ,MAAM;EACnB,QAAQ,QAAQ;EAChB,cAAc,QAAQ;CACvB,CAAC;MACI,IAAI,QAAQ,SAAS,aAAa,OAAO,gBAAgB,YAAY,KAAK,GAAG,QAAQ,cAAc,OAAO,eAAe,SAAS;EACtI;EACA,QAAQ,QAAQ;CACjB,CAAC;MACI;EACJ,QAAQ,cAAc,QAAQ,EAAE,wBAAwB,QAAQ,KAAK,GAAG,QAAQ,SAAS,YAAY,gBAAgB,gBAAgB;EACrI,KAAK,IAAI,QAAQ,YAAY,SAAS,GAAG,SAAS;GACjD,MAAM,SAAS,OAAO,QAAQ;GAC9B,IAAI,QAAQ,SAAS,aAAa,OAAO,YAAY,KAAK,GAAG;IAC5D,QAAQ,cAAc,OAAO,SAAS;KACrC;KACA,QAAQ,QAAQ;IACjB,CAAC;IACD,aAAa;IACb,gBAAgB;IAChB;GACD;GACA,IAAI,QAAQ,SAAS,cAAc,OAAO,aAAa,KAAK,GAAG;IAC9D,QAAQ,cAAc,OAAO,UAAU,EAAE,SAAS,CAAC;IACnD,aAAa;IACb,gBAAgB;IAChB;GACD;EACD;CACD;CACA,IAAI,OAAO,gBAAgB,UAAU,KAAK,KAAK,QAAQ,SAAS,WAAW,QAAQ,cAAc,UAAU;EAC1G,KAAK;EACL,WAAW,OAAO,eAAe;EACjC;EACA;EACA,UAAU;CACX,CAAC;CACD,IAAI,gBAAgB;CACpB,OAAO,iBAAiB,cAAc,OAAO,QAAQ,cAAc,EAAE,OAAO,SAAS,QAAQ,QAAQ,cAAc,EAAE,IAAI;CACzH,MAAM,cAAc,YAAY,KAAK,IAAI,OAAO,cAAc,aAAa;EAC1E;EACA;EACA,SAAS,OAAO,QAAQ,MAAM,GAAG,aAAa;CAC/C,CAAC;CACD,KAAK,IAAI,QAAQ,YAAY,SAAS,GAAG,SAAS;EACjD,MAAM,SAAS,OAAO,QAAQ;EAC9B,IAAI,OAAO,UAAU,KAAK,KAAK,UAAU,eAAe,QAAQ,cAAc,UAAU;GACvF,KAAK,OAAO;GACZ,WAAW,OAAO;GAClB;GACA;GACA,UAAU;EACX,CAAC;EACD,QAAQ,cAAc,OAAO,WAAW;GACvC,KAAK,OAAO;GACZ,UAAU,cAAc,UAAU,CAAC,GAAG,OAAO,UAAU,gBAAgB,IAAI,cAAc,IAAI;EAC9F,CAAC;CACF;CACA,OAAO,cAAc,UAAU;EAC9B,WAAW;EACX;EACA;EACA,UAAU,cAAc,UAAU,CAAC,GAAG,OAAO,kBAAkB,IAAI,cAAc,IAAI;CACtF,CAAC;AACF;AACA,MAAM,eAAe,EAAE,SAAS,QAAQ,cAAc;CACrD,MAAM,SAAS,QAAQ;CACvB,IAAI,WAAW,KAAK,GAAG,OAAO,cAAc,OAAO,EAAE,2BAA2B,GAAG,GAAG,cAAc,cAAc,OAAO,CAAC;CAC1H,IAAI,QAAQ,cAAc,cAAc,OAAO;CAC/C,IAAI,QAAQ;CACZ,KAAK,MAAM,UAAU,CAAC,GAAG,WAAW,OAAO,OAAO,CAAC,CAAC,QAAQ,GAAG;EAC9D,IAAI,OAAO,UAAU,KAAK,GAAG;EAC7B,IAAI,CAAC,OAAO;GACX,QAAQ,cAAc,OAAO,OAAO;IACnC,OAAO,QAAQ;IACf,OAAO,QAAQ;GAChB,CAAC;GACD,QAAQ;EACT,OAAO,QAAQ,cAAc,UAAU;GACtC,WAAW,OAAO;GAClB;GACA;GACA,SAAS,QAAQ;GACjB,UAAU;EACX,CAAC;CACF;CACA,OAAO,cAAc,OAAO,EAAE,2BAA2B,GAAG,GAAG,cAAc,UAAU;EACtF,WAAW;EACX;EACA;EACA,SAAS,QAAQ;EACjB,UAAU;CACX,CAAC,CAAC;AACH;;;AClHA,MAAM,cAAc,EAAE,aAAa;CAClC,MAAM,WAAW,kBAAkB,MAAM;CACzC,sBAAsB;EACrB,OAAO,SAAS,SAAS,MAAM;CAChC,GAAG,CAAC,QAAQ,QAAQ,CAAC;CACrB,OAAO,cAAc,cAAc,UAAU,EAAE,OAAO,OAAO,GAAG,SAAS,WAAW,KAAK,KAAK,SAAS,aAAa,KAAK,IAAI,cAAc,OAAO,EAAE,MAAM,SAAS,GAAG,SAAS,YAAY,KAAK,IAAI,aAAa,IAAI,IAAI,cAAc,QAAQ;EAC9O,QAAQ,SAAS;EACjB,UAAU,SAAS;EACnB;EACA,SAAS,SAAS;CACnB,CAAC,GAAG,SAAS,YAAY,KAAK,KAAK,SAAS,WAAW,KAAK,IAAI,cAAc,aAAa;EAC1F,SAAS,SAAS;EAClB;CACD,CAAC,IAAI,IAAI;AACV;AACA,MAAM,yBAAyB,IAAI,QAAQ;AAC3C,MAAM,iBAAiB,EAAE,aAAa;CACrC,MAAM,CAAC,UAAU,eAAe,SAAS,OAAO,QAAQ,WAAW;CACnE,sBAAsB,OAAO,QAAQ,gBAAgB,YAAY,OAAO,QAAQ,YAAY,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;CACzG,IAAI,SAAS,UAAU,WAAW,SAAS,SAAS,WAAW,GAAG,OAAO;CACzE,OAAO,cAAc,SAAS;EAC7B,uBAAuB,SAAS;EAChC,MAAM,SAAS,UAAU,UAAU,UAAU;CAC9C,GAAG,SAAS,YAAY,SAAS,UAAU,eAAe,2BAA2B,OAAO,SAAS,SAAS,WAAW,IAAI,OAAO,cAAc,MAAM,MAAM,SAAS,SAAS,KAAK,YAAY,cAAc,MAAM,EAAE,KAAK,QAAQ,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,UAAU,UAAU,cAAc,UAAU;EACvS,MAAM;EACN,eAAe,OAAO,MAAM;CAC7B,GAAG,YAAY,IAAI,MAAM,SAAS,SAAS,WAAW,IAAI,OAAO,cAAc,UAAU;EACxF,MAAM;EACN,SAAS,OAAO,QAAQ;CACzB,GAAG,SAAS,CAAC;AACd;;AAEA,MAAM,eAAe,cAAc,cAAc;CAChD,MAAM,OAAO,OAAO,SAAS,eAAe,KAAK;CACjD,IAAI,SAAS,MAAM,MAAM,IAAI,MAAM,mCAAmC;CACtE,IAAI,OAAO,IAAI,IAAI,GAAG,MAAM,IAAI,MAAM,wCAAwC;CAC9E,MAAM,SAAS,IAAI,YAAY,cAAc,WAAW,MAAM;CAC9D,MAAM,UAAU,iBAAiB,WAAW,QAAQ;EACnD,eAAe,OAAO;EACtB,QAAQ,OAAO;CAChB,CAAC;CACD,OAAO,aAAa;EACnB,UAAU,QAAQ,OAAO;EACzB,aAAa,QAAQ,OAAO;CAC7B,CAAC;CACD,OAAO,cAAc,UAAU,MAAM,cAAc,eAAe,EAAE,QAAQ,QAAQ,OAAO,CAAC,GAAG,cAAc,YAAY,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI;CAC3I,MAAM,QAAQ,QAAQ,OAAO,UAAU,CAAC,CAAC,MAAM,aAAa,WAAW,OAAO,MAAM,IAAI,EAAE,QAAQ,YAAY,CAAC;CAC/G,OAAO,IAAI,IAAI;CACf,IAAI,WAAW;CACf,OAAO;EACN;EACA,eAAe,QAAQ,OAAO,QAAQ,QAAQ;EAC9C,eAAe;GACd,IAAI,UAAU;GACd,WAAW;GACX,OAAO,OAAO,IAAI;GAClB,OAAO,QAAQ;GACf,QAAQ,QAAQ;GAChB,OAAO,MAAM,IAAI;EAClB;CACD;AACD"}
@@ -1 +0,0 @@
1
- import "./types-DeCCyqLU-CHx7KFtx.js";
@@ -1 +0,0 @@
1
- {"version":3,"file":"pagination--f4kMKf6.js","names":[],"sources":["../../../contracts/dist/runtime/pagination.js"],"sourcesContent":["import { initial } from \"../versioned.js\";\nimport { encodeCanonicalJson } from \"../json.js\";\nimport { Encoding, Result, Schema } from \"effect\";\n//#region src/runtime/pagination.ts\nconst PaginationCursor = Schema.String.check(Schema.isBase64Url()).pipe(Schema.brand(\"ignotum/runtime/PaginationCursor\"));\nconst PaginationPageSize = Schema.Int.check(Schema.isBetween({\n\tminimum: 1,\n\tmaximum: 1e3\n})).pipe(Schema.brand(\"ignotum/runtime/PaginationPageSize\"));\nconst PaginationOptions = Schema.Struct({\n\tcursor: Schema.NullOr(PaginationCursor),\n\tpageSize: PaginationPageSize\n});\nconst TablePosition = Schema.Struct({\n\ttype: Schema.Literal(\"Table\"),\n\tcreatedAt: Schema.Int,\n\tid: Schema.String\n});\nconst IndexPosition = Schema.Struct({\n\ttype: Schema.Literal(\"Index\"),\n\tkey: Schema.String.check(Schema.isPattern(/^(?:[0-9a-f]{2})*$/)).pipe(Schema.brand(\"ignotum/runtime/EncodedIndexKey\"))\n});\nconst PaginationPosition = Schema.Union([TablePosition, IndexPosition]);\nconst CursorPayloadV1 = Schema.Struct({\n\tversion: Schema.Literal(1),\n\tquery: Schema.String,\n\tposition: PaginationPosition\n});\nconst CursorPayload = initial(CursorPayloadV1);\nconst CursorPayloadJson = Schema.fromJsonString(CursorPayload);\nconst paginationQueryIdentity = (tableId, index, lower, upper, order) => encodeCanonicalJson([\n\ttableId,\n\tindex,\n\tlower ?? null,\n\tupper ?? null,\n\torder\n]);\nconst encodePaginationCursor = (query, position) => PaginationCursor.make(Encoding.encodeBase64Url(Schema.encodeSync(CursorPayloadJson)({\n\tversion: 1,\n\tquery,\n\tposition\n})));\nconst decodePaginationCursor = (cursor) => Schema.decodeSync(CursorPayloadJson)(Result.getOrThrow(Encoding.decodeBase64UrlString(cursor)));\n//#endregion\nexport { PaginationCursor, PaginationOptions, PaginationPageSize, PaginationPosition, decodePaginationCursor, encodePaginationCursor, paginationQueryIdentity };\n\n//# sourceMappingURL=pagination.js.map"],"mappings":";;;AAIA,MAAM,mBAAmB,OAAO,OAAO,MAAM,OAAO,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,MAAM,kCAAkC,CAAC;AACxH,MAAM,qBAAqB,OAAO,IAAI,MAAM,OAAO,UAAU;CAC5D,SAAS;CACT,SAAS;AACV,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,MAAM,oCAAoC,CAAC;AACjC,OAAO,OAAO;CACvC,QAAQ,OAAO,OAAO,gBAAgB;CACtC,UAAU;AACX,CAAC;AACD,MAAM,gBAAgB,OAAO,OAAO;CACnC,MAAM,OAAO,QAAQ,OAAO;CAC5B,WAAW,OAAO;CAClB,IAAI,OAAO;AACZ,CAAC;AACD,MAAM,gBAAgB,OAAO,OAAO;CACnC,MAAM,OAAO,QAAQ,OAAO;CAC5B,KAAK,OAAO,OAAO,MAAM,OAAO,UAAU,oBAAoB,CAAC,CAAC,CAAC,KAAK,OAAO,MAAM,iCAAiC,CAAC;AACtH,CAAC;AACD,MAAM,qBAAqB,OAAO,MAAM,CAAC,eAAe,aAAa,CAAC;AACtE,MAAM,kBAAkB,OAAO,OAAO;CACrC,SAAS,OAAO,QAAQ,CAAC;CACzB,OAAO,OAAO;CACd,UAAU;AACX,CAAC;AACD,MAAM,gBAAgB,QAAQ,eAAe;AACnB,OAAO,eAAe,aAAa"}
@@ -1 +0,0 @@
1
- import "./types-DeCCyqLU-CHx7KFtx.js";
@@ -1 +0,0 @@
1
- import "./id-7an3nxTu-DZJSM5xh.js";