@toa.io/extensions.configuration 1.0.0-alpha.284 → 1.0.0-alpha.286

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 (92) hide show
  1. package/components/configuration.values/manifest.toa.yaml +14 -21
  2. package/components/configuration.values/migrations/0001-system-properties.yaml +14 -0
  3. package/components/configuration.values/migrations/0002-indexes.yaml +7 -0
  4. package/components/configuration.values/operations/create.js +1 -2
  5. package/components/configuration.values/operations/fetch.js +1 -1
  6. package/components/configuration.values/operations/get.js +1 -1
  7. package/components/configuration.values/operations/lib/map.js +1 -1
  8. package/components/configuration.values/operations/lib/resolve.js +3 -3
  9. package/components/configuration.values/operations/list.js +1 -1
  10. package/components/configuration.values/source/create.ts +3 -5
  11. package/components/configuration.values/source/fetch.ts +12 -10
  12. package/components/configuration.values/source/get.ts +2 -3
  13. package/components/configuration.values/source/lib/map.test.ts +7 -2
  14. package/components/configuration.values/source/lib/map.ts +3 -3
  15. package/components/configuration.values/source/lib/resolve.ts +9 -6
  16. package/components/configuration.values/source/list.ts +8 -6
  17. package/components/configuration.values/tsconfig.tsbuildinfo +1 -1
  18. package/components/configuration.values/types/toa.d.ts +5 -5
  19. package/cucumber.mjs +3 -0
  20. package/features/site/index.html +6 -2
  21. package/features/steps/UI.ts +20 -13
  22. package/notes/consistency.md +10 -9
  23. package/package.json +6 -6
  24. package/readme.md +15 -14
  25. package/schemas/annotation.cos.yaml +1 -1
  26. package/source/Aspect.test.ts +32 -8
  27. package/source/Aspect.ts +28 -19
  28. package/source/Client.test.ts +31 -14
  29. package/source/Client.ts +41 -48
  30. package/source/Composition.ts +6 -6
  31. package/source/Factory.ts +7 -7
  32. package/source/Secret.test.ts +1 -1
  33. package/source/Secret.ts +5 -5
  34. package/source/UI.ts +33 -32
  35. package/source/configuration.test.ts +14 -8
  36. package/source/configuration.ts +11 -15
  37. package/source/const.ts +13 -1
  38. package/source/context.ts +2 -2
  39. package/source/deployment.test.ts +37 -12
  40. package/source/deployment.ts +45 -19
  41. package/source/epoch.test.ts +8 -2
  42. package/source/epoch.ts +6 -5
  43. package/source/index.ts +1 -1
  44. package/source/manifest.test.ts +12 -6
  45. package/source/manifest.ts +1 -1
  46. package/transpiled/Aspect.d.ts +2 -1
  47. package/transpiled/Aspect.js +15 -3
  48. package/transpiled/Aspect.js.map +1 -1
  49. package/transpiled/Client.d.ts +1 -1
  50. package/transpiled/Client.js +8 -2
  51. package/transpiled/Client.js.map +1 -1
  52. package/transpiled/Composition.js +2 -2
  53. package/transpiled/Composition.js.map +1 -1
  54. package/transpiled/Factory.d.ts +2 -1
  55. package/transpiled/Factory.js.map +1 -1
  56. package/transpiled/Secret.js.map +1 -1
  57. package/transpiled/UI.js +2 -1
  58. package/transpiled/UI.js.map +1 -1
  59. package/transpiled/configuration.js.map +1 -1
  60. package/transpiled/const.d.ts +8 -1
  61. package/transpiled/const.js +10 -0
  62. package/transpiled/const.js.map +1 -1
  63. package/transpiled/context.d.ts +1 -1
  64. package/transpiled/context.js.map +1 -1
  65. package/transpiled/deployment.d.ts +3 -0
  66. package/transpiled/deployment.js +19 -5
  67. package/transpiled/deployment.js.map +1 -1
  68. package/transpiled/epoch.js +3 -1
  69. package/transpiled/epoch.js.map +1 -1
  70. package/transpiled/index.d.ts +1 -1
  71. package/transpiled/index.js +1 -1
  72. package/transpiled/index.js.map +1 -1
  73. package/transpiled/manifest.js.map +1 -1
  74. package/tsconfig.tsbuildinfo +1 -1
  75. package/ui/dist/_app/immutable/chunks/{mvspXr3J.js → 6fUKYVLr.js} +2 -2
  76. package/ui/dist/_app/immutable/chunks/{p9RyiXQ-.js → BGxZNgfH.js} +1 -1
  77. package/ui/dist/_app/immutable/chunks/{Bxde3uE_.js → By3hKJVT.js} +1 -1
  78. package/ui/dist/_app/immutable/chunks/DamfpXnK.js +1 -0
  79. package/ui/dist/_app/immutable/chunks/{_I_MUoRn.js → vHown6GG.js} +1 -1
  80. package/ui/dist/_app/immutable/entry/{app.C1VIepN7.js → app.cjzrCTnf.js} +2 -2
  81. package/ui/dist/_app/immutable/entry/start.C18omPso.js +1 -0
  82. package/ui/dist/_app/immutable/nodes/{0.D_0dtFej.js → 0.DjKXI3st.js} +1 -1
  83. package/ui/dist/_app/immutable/nodes/{1.DFlgHh-H.js → 1.Dh71z_Aw.js} +1 -1
  84. package/ui/dist/_app/immutable/nodes/{2.BIHgAxXR.js → 2.TzrOmdn2.js} +1 -1
  85. package/ui/dist/_app/immutable/nodes/3.DlvWZctZ.js +1 -0
  86. package/ui/dist/_app/immutable/nodes/{4.BZMuJGfA.js → 4.D8kjaqXl.js} +1 -1
  87. package/ui/dist/_app/version.json +1 -1
  88. package/ui/dist/index.html +28 -23
  89. package/CHANGELOG.md +0 -372
  90. package/ui/dist/_app/immutable/chunks/BzG-gka8.js +0 -1
  91. package/ui/dist/_app/immutable/entry/start.BQWCs_Pq.js +0 -1
  92. package/ui/dist/_app/immutable/nodes/3.R-_yCt5X.js +0 -1
@@ -1 +1 @@
1
- {"version":"1788614955706"}
1
+ {"version":"1788667387413"}
@@ -1,33 +1,38 @@
1
1
  <!doctype html>
2
2
  <html translate="no" lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <meta name="robots" content="noindex,nofollow" />
7
- <meta name="google" content="notranslate" />
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <meta name="robots" content="noindex,nofollow" />
7
+ <meta name="google" content="notranslate" />
8
8
 
9
- <!-- `/.configuration`, so they resolve under the path the page is mounted at -->
10
- <link rel="icon" href="/.configuration/favicon.ico" sizes="32x32" />
11
- <link rel="icon" href="/.configuration/favicon-96x96.png" type="image/png" sizes="96x96" />
12
- <link rel="apple-touch-icon" href="/.configuration/apple-touch-icon.png" />
9
+ <!-- `/.configuration`, so they resolve under the path the page is mounted at -->
10
+ <link rel="icon" href="/.configuration/favicon.ico" sizes="32x32" />
11
+ <link
12
+ rel="icon"
13
+ href="/.configuration/favicon-96x96.png"
14
+ type="image/png"
15
+ sizes="96x96"
16
+ />
17
+ <link rel="apple-touch-icon" href="/.configuration/apple-touch-icon.png" />
13
18
 
14
- <link href="/.configuration/_app/immutable/entry/start.BQWCs_Pq.js" rel="modulepreload">
15
- <link href="/.configuration/_app/immutable/chunks/BzG-gka8.js" rel="modulepreload">
19
+ <link href="/.configuration/_app/immutable/entry/start.C18omPso.js" rel="modulepreload">
20
+ <link href="/.configuration/_app/immutable/chunks/DamfpXnK.js" rel="modulepreload">
16
21
  <link href="/.configuration/_app/immutable/chunks/CcD_ISxM.js" rel="modulepreload">
17
- <link href="/.configuration/_app/immutable/entry/app.C1VIepN7.js" rel="modulepreload">
22
+ <link href="/.configuration/_app/immutable/entry/app.cjzrCTnf.js" rel="modulepreload">
18
23
  <link href="/.configuration/_app/immutable/chunks/xihTtKlq.js" rel="modulepreload">
19
- <link href="/.configuration/_app/immutable/nodes/0.D_0dtFej.js" rel="modulepreload">
20
- <link href="/.configuration/_app/immutable/chunks/mvspXr3J.js" rel="modulepreload">
21
- <link href="/.configuration/_app/immutable/chunks/_I_MUoRn.js" rel="modulepreload">
24
+ <link href="/.configuration/_app/immutable/nodes/0.DjKXI3st.js" rel="modulepreload">
25
+ <link href="/.configuration/_app/immutable/chunks/6fUKYVLr.js" rel="modulepreload">
26
+ <link href="/.configuration/_app/immutable/chunks/vHown6GG.js" rel="modulepreload">
22
27
  <link href="/.configuration/_app/env.js" rel="modulepreload">
23
28
 
24
29
  <link href="/.configuration/_app/immutable/assets/0.CNS8Cqhc.css" rel="stylesheet">
25
- </head>
26
- <body data-sveltekit-preload-data="hover">
27
- <div style="display: contents">
30
+ </head>
31
+ <body data-sveltekit-preload-data="hover">
32
+ <div style="display: contents">
28
33
  <script>
29
34
  {
30
- __sveltekit_1mnh5aw = {
35
+ __sveltekit_4rgjmm = {
31
36
  base: "/.configuration",
32
37
  assets: "/.configuration",
33
38
  env: null
@@ -36,11 +41,11 @@
36
41
  const element = document.currentScript.parentElement;
37
42
 
38
43
  import("/.configuration/_app/env.js").then(({ env }) => {
39
- __sveltekit_1mnh5aw.env = env;
44
+ __sveltekit_4rgjmm.env = env;
40
45
 
41
46
  Promise.all([
42
- import("/.configuration/_app/immutable/entry/start.BQWCs_Pq.js"),
43
- import("/.configuration/_app/immutable/entry/app.C1VIepN7.js")
47
+ import("/.configuration/_app/immutable/entry/start.C18omPso.js"),
48
+ import("/.configuration/_app/immutable/entry/app.cjzrCTnf.js")
44
49
  ]).then(([kit, app]) => {
45
50
  kit.start(app, element);
46
51
  });
@@ -48,5 +53,5 @@
48
53
  }
49
54
  </script>
50
55
  </div>
51
- </body>
56
+ </body>
52
57
  </html>
package/CHANGELOG.md DELETED
@@ -1,372 +0,0 @@
1
- # Change Log
2
-
3
- All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
-
6
- # [1.0.0-alpha.284](https://github.com/toa-io/toa/compare/v1.0.0-alpha.283...v1.0.0-alpha.284) (2026-09-05)
7
-
8
- ### Bug Fixes
9
-
10
- * **build:** an operations directory holds modules and nothing else ([21a8ca1](https://github.com/toa-io/toa/commit/21a8ca19f1c45aef6cbb443ada0a909d325e76e8))
11
-
12
- ### Features
13
-
14
- * **cadence:** calls a component makes to itself, and calls it puts off ([8bbde5f](https://github.com/toa-io/toa/commit/8bbde5fc89e8e5549d5aa2bfcddb1beec0871565))
15
-
16
-
17
- # [1.0.0-alpha.283](https://github.com/toa-io/toa/compare/v1.0.0-alpha.282...v1.0.0-alpha.283) (2026-09-04)
18
-
19
- ### Bug Fixes
20
-
21
- * **cli:** an assignment hands back the new state, not nothing ([91304e9](https://github.com/toa-io/toa/commit/91304e9e9a3bba5933b7421b7a0ffff0c2e47795))
22
- * **storages:** take `Maybe` from core, not from the deprecated package ([bcaeeb3](https://github.com/toa-io/toa/commit/bcaeeb3c76c89af34e94ff569a210d21b7e87f64))
23
-
24
- ### Features
25
-
26
- * **cli:** a type module is declarations, so it sits beside a component's source ([ca755d9](https://github.com/toa-io/toa/commit/ca755d93d1a04b7697dd0dd12eb59e5b6e2a71d1))
27
- * **cli:** the built-in components ship types generated from their manifests ([bd7db9e](https://github.com/toa-io/toa/commit/bd7db9e88e46c1060223761898932239127f389a))
28
- * **extensions:** an extension declares what it puts on a component's context ([133bc2a](https://github.com/toa-io/toa/commit/133bc2aad1e45a2d4aa68a08a5e44ca48d3b7414))
29
-
30
-
31
- # [1.0.0-alpha.282](https://github.com/toa-io/toa/compare/v1.0.0-alpha.281...v1.0.0-alpha.282) (2026-09-03)
32
-
33
- ### Features
34
-
35
- * **core:** a Host for extensions ([6315eac](https://github.com/toa-io/toa/commit/6315eac1e9fb05be472272de06385c54ad5934ce))
36
-
37
-
38
- # [1.0.0-alpha.281](https://github.com/toa-io/toa/compare/v1.0.0-alpha.280...v1.0.0-alpha.281) (2026-09-03)
39
-
40
- ### Bug Fixes
41
-
42
- * **deps:** state the cookie bump where npm can resolve it ([11fcdf8](https://github.com/toa-io/toa/commit/11fcdf874ee33107901b5c06435ab10fba64870f))
43
-
44
-
45
- # [1.0.0-alpha.280](https://github.com/toa-io/toa/compare/v1.0.0-alpha.279...v1.0.0-alpha.280) (2026-09-03)
46
-
47
- ### Bug Fixes
48
-
49
- * **deps:** update cookie in UI lockfiles ([d32106b](https://github.com/toa-io/toa/commit/d32106be40728156e82858f37b4d04163d1e1652))
50
-
51
-
52
- # [1.0.0-alpha.278](https://github.com/toa-io/toa/compare/v1.0.0-alpha.277...v1.0.0-alpha.278) (2026-09-03)
53
-
54
- **Note:** Version bump only for package @toa.io/extensions.configuration
55
-
56
-
57
-
58
-
59
-
60
- # [1.0.0-alpha.277](https://github.com/toa-io/toa/compare/v1.0.0-alpha.276...v1.0.0-alpha.277) (2026-09-03)
61
-
62
- ### Bug Fixes
63
-
64
- * drop the build output that landed beside the sources ([a724f69](https://github.com/toa-io/toa/commit/a724f6921190e5c9d945e33c6035bb12d832e5c8))
65
-
66
-
67
- # [1.0.0-alpha.276](https://github.com/toa-io/toa/compare/v1.0.0-alpha.275...v1.0.0-alpha.276) (2026-09-03)
68
-
69
-
70
- ### Features
71
-
72
- * **configuration:** log the epoch a value was resolved under ([ff51ff6](https://github.com/toa-io/toa/commit/ff51ff629592159eeac562059ceb944f193ad7e8))
73
-
74
-
75
-
76
-
77
-
78
- # [1.0.0-alpha.275](https://github.com/toa-io/toa/compare/v1.0.0-alpha.274...v1.0.0-alpha.275) (2026-09-02)
79
-
80
-
81
- ### Bug Fixes
82
-
83
- * **configuration:** ship the component's code and the built page ([6ffe988](https://github.com/toa-io/toa/commit/6ffe988a9e67025c114e74ba94665b28a2cafaa1))
84
- * **introspection:** keep a sideways scroll off the browser's back gesture ([419e012](https://github.com/toa-io/toa/commit/419e012ce093bcd0429dc93fe457bbd964cfc11c))
85
-
86
-
87
- ### Features
88
-
89
- * **ui:** give both consoles a favicon ([27d3881](https://github.com/toa-io/toa/commit/27d3881eda10e59dc4c9c5ef38c2a58b71e1448d))
90
- * **ui:** leave signing out to its icon ([a82fbab](https://github.com/toa-io/toa/commit/a82fbab513706436254348a5e35115dc3721873f))
91
-
92
-
93
-
94
-
95
-
96
- # [1.0.0-alpha.274](https://github.com/toa-io/toa/compare/v1.0.0-alpha.273...v1.0.0-alpha.274) (2026-09-02)
97
-
98
-
99
- * Configuration is served by a component, followed live, and kept per epoch (#1017) ([b05997d](https://github.com/toa-io/toa/commit/b05997d3adb784f238a222cb46878b23859339a2)), closes [#1017](https://github.com/toa-io/toa/issues/1017)
100
-
101
-
102
- ### Features
103
-
104
- * **configuration:** drop the label from the epoch ([4baaff5](https://github.com/toa-io/toa/commit/4baaff5b22d00719142a65d56b50a1b100b29fbd))
105
-
106
-
107
- ### BREAKING CHANGES
108
-
109
- * a secret configuration value is an object, not a string;
110
- read it with `unwrap()`.
111
-
112
- Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
113
-
114
- * test(configuration): wait for the second round rather than assume it
115
-
116
- Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
117
-
118
- * refactor(configuration)!: read a secret with its own unwrap
119
-
120
- Component code depends on no Toa package, so a secret is read as
121
- `context.configuration.apiKey.unwrap()` and the helper in `@toa.io/generic`
122
- goes. A value a component reads as a secret is therefore given as a reference:
123
- `identity.basic` no longer defaults `pepper` to `''`, the development context
124
- and the feature harness give the token keys, the federation client secret and
125
- the signing key as references, and the harness has a step for the secrets a
126
- scenario refers to. CONTRIBUTING states the rule.
127
- * `identity.basic` `pepper` has no default; a value read as a
128
- secret must be given as a `$NAME` reference.
129
-
130
- Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
131
-
132
- * feat(configuration): list the configurations
133
-
134
- `configuration.values.list` returns every component's configuration for its
135
- deployed epoch, by component name, and `GET /configuration/values/` serves it
136
- behind `system:configuration:get`.
137
-
138
- Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
139
-
140
- * fix(exposition): write a value in YAML the way its toJSON says
141
-
142
- A redacted secret in a reply was dumped as an empty object; it is written as
143
- `<REDACTED>`, as JSON and msgpack already write it.
144
-
145
- Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
146
-
147
- * test(configuration): a secret is an object, and stays redacted in a reply
148
-
149
- A component with `{ a: 1, b: $SECRET_B }` returns its configuration as
150
- `{ a: 1, b: '<REDACTED>' }` and the secret itself through `unwrap()`. The reply
151
- step also accepts a reply as a caller across a process boundary receives it,
152
- since a call within the process hands the object over as it is.
153
-
154
- Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
155
-
156
- * chore(schemas): bump the dependencies
157
-
158
- ajv 8.18.0 to 8.20.0, ajv-formats 2.1.1 to 3.0.1, better-ajv-errors 1.2.0
159
- to 2.0.3, fast-glob 3.2.12 to 3.3.3 and js-yaml 4.3.1 to 5.4.1 — the version
160
- exposition already uses. The three majors keep the CommonJS entry points this
161
- library calls: ajv-formats as a function, better-ajv-errors as .default, and
162
- js-yaml's load.
163
-
164
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
165
-
166
- * feat(configuration)!: serve the schema with the value
167
-
168
- GET /configuration/values/:component/ answers { configuration, schema, epoch }
169
- where it answered with the configuration alone, and list carries the schema of
170
- every component. Nothing reads a configuration without needing to know what it
171
- is checked against, and the schema was only ever on the values service.
172
-
173
- An epoch the deployment does not know has no schema; the value stored for it
174
- is still returned.
175
-
176
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
177
-
178
- * feat(configuration): publish a configuration UI
179
-
180
- The values service serves a page at /.configuration on port 8003, out of the
181
- directory ui builds: the configured components, a screen per component showing
182
- what it holds now, and a dialog creating the next one. Reading needs
183
- system:configuration:get and creating needs system:configuration:create.
184
-
185
- A configuration is immutable, so the dialog opens on the current value and what
186
- is left out of it is left out of the component. The editor takes YAML, the
187
- schema is applied before anything is sent, and a secret is a reference the page
188
- never shows.
189
-
190
- The page is always published: the annotation is the per-component values map
191
- and has nowhere to carry a switch.
192
-
193
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
194
-
195
- * feat(introspection): link a component to its configuration
196
-
197
- A card carrying @toa.io/extensions.configuration reads that extension as a link
198
- to the configuration UI rather than as a name, and configuration joins the
199
- namespaces the runtime provides, so its components band under System.
200
-
201
- Deployed, both pages sit behind the same ingress and the path alone is right;
202
- locally each console has its own port.
203
-
204
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
205
-
206
- * feat(introspection): scroll the map, zoom with a modifier
207
-
208
- The map was grabbed to move and zoomed with a bare wheel, which is neither what
209
- a page does nor what the wheel does anywhere else. A plain scroll now pans on
210
- both axes and the wheel scales only with the modifier held — a trackpad pinch
211
- arrives as one of those on every platform.
212
-
213
- A card's own scrollable box keeps its wheel, in both paths.
214
-
215
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
216
-
217
- * refactor(introspection): centre the filter in the header
218
-
219
- The sides take equal space, which is what leaves the filter between them.
220
- Neither side may shrink under what it holds, or the tabs run out from under
221
- their side and across the filter, and the filter across the sign-out button;
222
- the title gives way instead.
223
-
224
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
225
-
226
- * fix(configuration): connect the UI to the values service
227
-
228
- The page was declared as a dependency from inside `open`, and a connector connects
229
- what it depends on before `open` runs — so the server was constructed and never
230
- listened. Nothing caught it: the UI feature builds the server itself.
231
-
232
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
233
-
234
- * feat(configuration)!: reserve resources in the annotation
235
-
236
- The values service deploys like any other and must state what it may take, but the
237
- annotation is a map of component ids and had nowhere to put it — so `toa env` failed
238
- for every context using configuration unless it declared a context-wide `resources`.
239
-
240
- `resources` is now the service's own, read the way `introspection` and `realtime` read
241
- theirs. A component actually named `resources` is written `default.resources`, which is
242
- what its id is anyway.
243
-
244
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
245
-
246
- * feat(configuration): follow the system colour scheme
247
-
248
- The dark tokens were behind a `.dark` class nothing sets, and the `dark:` variant was
249
- pointed at that class too — so a component's own dark styling never applied either.
250
- Both now key off `prefers-color-scheme`, and `color-scheme` hands the native chrome
251
- the same answer.
252
-
253
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
254
-
255
- * feat(introspection): follow the system colour scheme
256
-
257
- The dark tokens were behind a `.dark` class nothing sets, and the `dark:` variant was
258
- pointed at that class too — so a component's own dark styling never applied either.
259
- Both now key off `prefers-color-scheme`, and `color-scheme` hands the native chrome
260
- the same answer.
261
-
262
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
263
-
264
- * feat(configuration): present a change as an edit of what is there
265
-
266
- A configuration is immutable and creating one replaces the whole of it, but the dialog
267
- opens on the current value and the page never shows an older one — so what the reader
268
- does is edit. The words follow: Edit rather than New, Update rather than Create, and
269
- the paragraph explaining the model goes, along with the field's label, which the title
270
- above it already said.
271
-
272
- The editor also stayed as wide as its longest line — `field-sizing: content` sizes to
273
- content, and no `max-width` clamps that — so a long value painted outside the dialog.
274
- It is fixed now, the dialog takes the width the screen has rather than a fixed step,
275
- and the band held for errors no longer leaves a gap when there are none.
276
-
277
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
278
-
279
- * feat(configuration): mark a component that keeps a secret
280
-
281
- A key after the name on the row, wherever the configuration holds a reference, however
282
- deep. The predicate reads the same lines the value screen renders, so the two cannot
283
- disagree about what counts as a secret.
284
-
285
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
286
-
287
- * feat(configuration): lead back to the list from the title
288
-
289
- Every address ends in a slash, so the way up is the address itself on the list and one
290
- level above it on a component's screen — which holds wherever the page is mounted.
291
-
292
- Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
293
-
294
-
295
-
296
-
297
-
298
- # [1.0.0-alpha.273](https://github.com/toa-io/toa/compare/v1.0.0-alpha.272...v1.0.0-alpha.273) (2026-09-02)
299
-
300
- **Note:** Version bump only for package @toa.io/extensions.configuration
301
-
302
-
303
-
304
-
305
-
306
- # [1.0.0-alpha.272](https://github.com/toa-io/toa/compare/v1.0.0-alpha.271...v1.0.0-alpha.272) (2026-09-01)
307
-
308
- **Note:** Version bump only for package @toa.io/extensions.configuration
309
-
310
-
311
-
312
-
313
-
314
- # [1.0.0-alpha.270](https://github.com/toa-io/toa/compare/v1.0.0-alpha.269...v1.0.0-alpha.270) (2026-08-31)
315
-
316
- **Note:** Version bump only for package @toa.io/extensions.configuration
317
-
318
-
319
-
320
-
321
-
322
- # [1.0.0-alpha.266](https://github.com/toa-io/toa/compare/v1.0.0-alpha.265...v1.0.0-alpha.266) (2026-08-29)
323
-
324
- **Note:** Version bump only for package @toa.io/extensions.configuration
325
-
326
-
327
-
328
-
329
-
330
- # [1.0.0-alpha.265](https://github.com/toa-io/toa/compare/v1.0.0-alpha.264...v1.0.0-alpha.265) (2026-08-29)
331
-
332
- **Note:** Version bump only for package @toa.io/extensions.configuration
333
-
334
-
335
-
336
-
337
-
338
- # [1.0.0-alpha.264](https://github.com/toa-io/toa/compare/v1.0.0-alpha.263...v1.0.0-alpha.264) (2026-08-29)
339
-
340
- **Note:** Version bump only for package @toa.io/extensions.configuration
341
-
342
-
343
-
344
-
345
-
346
- # [1.0.0-alpha.263](https://github.com/toa-io/toa/compare/v1.0.0-alpha.262...v1.0.0-alpha.263) (2026-08-29)
347
-
348
- **Note:** Version bump only for package @toa.io/extensions.configuration
349
-
350
-
351
-
352
-
353
-
354
- # [1.0.0-alpha.262](https://github.com/toa-io/toa/compare/v1.0.0-alpha.261...v1.0.0-alpha.262) (2026-08-28)
355
-
356
- **Note:** Version bump only for package @toa.io/extensions.configuration
357
-
358
-
359
-
360
-
361
-
362
- # [1.0.0-alpha.259](https://github.com/toa-io/toa/compare/v1.0.0-alpha.258...v1.0.0-alpha.259) (2026-08-24)
363
-
364
- **Note:** Version bump only for package @toa.io/extensions.configuration
365
-
366
-
367
-
368
-
369
-
370
- # [1.0.0-alpha.257](https://github.com/toa-io/toa/compare/v1.0.0-alpha.256...v1.0.0-alpha.257) (2026-08-24)
371
-
372
- **Note:** Version bump only for package @toa.io/extensions.configuration
@@ -1 +0,0 @@
1
- import{B as e,H as t,V as n,ht as r,it as i,n as a,ot as o,t as s}from"./CcD_ISxM.js";var c=class{constructor(e,t){this.status=e,this.body=typeof t==`string`?{message:t}:t||{message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},l=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},u=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function d(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function f(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function p(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(){}function g(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function _(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var v=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&y.delete(x(e)),v(e,t));var y=new Map;function ee(e,t){let n=x(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=_(e));let i=r.getAttribute(`data-ttl`);return i&&y.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function b(e,t,n){if(y.size>0){let t=x(e,n),r=y.get(t);if(r){if(performance.now()<r.ttl&&[`default`,`force-cache`,`only-if-cached`,void 0].includes(n?.cache))return new Response(r.body,r.init);y.delete(t)}}return window.fetch(t,n)}function x(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){let e=[];t.headers&&e.push([...new Headers(t.headers)].join(`,`)),t.body&&(typeof t.body==`string`||ArrayBuffer.isView(t.body))&&e.push(t.body),n+=`[data-hash="${g(...e)}"]`}return n}var te=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,ne=/^\/\((?:[^)]+)\)$/;function re(e){let t=[];return{pattern:e===`/`||ne.test(e)?/^\/$/:RegExp(`^${ae(e).map(e=>{let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return se(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return se(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=te.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return se(e)}).join(``)}).join(``)}/?$`),params:t}}function ie(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function ae(e){return e.slice(1).split(`/`).filter(ie)}function oe(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;e<t.length;e+=1){let s=t[e],c=i[e-o];if(s.chained&&s.rest&&o&&(c=i.slice(e-o,e+1).filter(e=>e).join(`/`),o=0),c===void 0){if(s.rest)c=``;else continue}if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function se(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}function ce({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=re(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return oe(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function le(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function ue(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var S=globalThis.__sveltekit_1mnh5aw?.base??`/.configuration`,de=globalThis.__sveltekit_1mnh5aw?.assets??S??``,fe=`1788614955706`,pe=`sveltekit:snapshot`,me=`sveltekit:scroll`,he=`sveltekit:states`,C=`sveltekit:history`,w=`sveltekit:navigation`,T={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ge=location.origin;function _e(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function E(){return{x:pageXOffset,y:pageYOffset}}function D(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var ve={...T,"":T.hover};function ye(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function be(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=ye(e)}}function xe(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||k(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===ge&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function O(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=D(s,`preload-code`)),i===null&&(i=D(s,`preload-data`)),t===null&&(t=D(s,`keepfocus`)),n===null&&(n=D(s,`noscroll`)),a===null&&(a=D(s,`reload`)),o===null&&(o=D(s,`replacestate`)),s=ye(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:ve[r??`off`],preload_data:ve[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function Se(e){let t=r(e),n=!0;function i(){n=!0,t.update(e=>e)}function a(e){n=!1,t.set(e)}function o(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:i,set:a,subscribe:o}}var Ce={v:h};function we(){let{set:e,subscribe:t}=r(!1),n;async function i(){clearTimeout(n);try{let t=await fetch(`${de}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let r=(await t.json()).version!==fe;return r&&(e(!0),Ce.v(),clearTimeout(n)),r}catch{return!1}}return{subscribe:t,check:i}}function k(e,t,n){return e.origin!==ge||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Te(e){}var Ee=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);[...Ee],[...new Set([...Ee])];function De(e){return e.filter(e=>e!=null)}function A(e,t){return e+`/`+t}function Oe(e){return e instanceof c||e instanceof u?e.status:500}function ke(e){return e instanceof u?e.text:`Internal Error`}var j,M,Ae,je=a.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(a.toString()),Me=`a:`;je?(j={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Me)},M={current:null},Ae={current:!1}):(j=new class{#e=o({});get data(){return e(this.#e)}set data(e){i(this.#e,e)}#t=o(null);get form(){return e(this.#t)}set form(e){i(this.#t,e)}#n=o(null);get error(){return e(this.#n)}set error(e){i(this.#n,e)}#r=o({});get params(){return e(this.#r)}set params(e){i(this.#r,e)}#i=o({id:null});get route(){return e(this.#i)}set route(e){i(this.#i,e)}#a=o({});get state(){return e(this.#a)}set state(e){i(this.#a,e)}#o=o(-1);get status(){return e(this.#o)}set status(e){i(this.#o,e)}#s=o(new URL(Me));get url(){return e(this.#s)}set url(e){i(this.#s,e)}},M=new class{#e=o(null);get current(){return e(this.#e)}set current(e){i(this.#e,e)}},Ae=new class{#e=o(!1);get current(){return e(this.#e)}set current(e){i(this.#e,e)}},Ce.v=()=>Ae.current=!0);function Ne(e){Object.assign(j,e)}var{onMount:Pe,tick:Fe}=s,Ie=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),N=null,P=le(`sveltekit:scroll`)??{},F=le(`sveltekit:snapshot`)??{},I={url:Se({}),page:Se({}),navigating:r(null),updated:we()};function Le(e){P[e]=E()}function Re(e,t){let n=e+1;for(;P[n];)delete P[n],n+=1;for(n=t+1;F[n];)delete F[n],n+=1}function L(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(h)}async function ze(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(S||`/`);e&&await e.update()}}var Be,Ve,R,z,He,B,Ue={},We={},V=[],H=[],U=null;function Ge(){U?.fork?.then(e=>e?.discard()),U=null,Q={element:void 0,href:void 0}}var Ke=new Map,qe=new Set,Je=new Set,W=new Set,G={branch:[],error:null,url:null,nav:null},Ye=!1,Xe=!1,Ze=!0,K=!1,q=!1,Qe=!1,$e=!1,et,J,Y,X,tt=new Set,nt=new Map,rt=new Map;async function it(e,t,n){if(globalThis.__sveltekit_1mnh5aw.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_1mnh5aw.data;for(let t in e)Ue[t]=e[t];for(let e in n)Ue[e]=n[e];for(let e in r)Ue[e]=r[e];for(let e in t)We[e]=t[e]}document.URL!==location.href&&(location.href=location.href),B=e,await e.hooks.init?.(),Be=ce(e),z=document.documentElement,He=t,Ve=e.nodes[0],R=e.nodes[1],Ve(),R(),J=history.state?.[C],Y=history.state?.[w],J||(J=Y=Date.now(),history.replaceState({...history.state,[C]:J,[w]:Y},``));let r=P[J];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await Ft(He,n)):(await Z({type:`enter`,url:_e(B.hash?Vt(new URL(location.href)):location.href),replace_state:!0}),i()),Pt()}function at(){V.length=0,$e=!1}function ot(e){H.some(e=>e?.snapshot)&&(F[e]=H.map(e=>e?.snapshot?.capture()))}function st(e){F[e]?.forEach((e,t)=>{H[t]?.snapshot?.restore(e)})}function ct(){Le(J),ue(me,P),ot(Y),ue(pe,F)}async function lt(e,n,r,i){let a,o;n.invalidateAll&&Ge(),await Z({type:`goto`,url:_e(e),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:r,nav_token:i,accept:()=>{if(n.invalidateAll){$e=!0,a=new Set;for(let[e,t]of nt)for(let[n,r]of t)r.resource?.reset(),a.add(A(e,n));o=new Set;for(let[e,t]of rt)for(let n of t.keys())o.add(A(e,n))}n.invalidate&&n.invalidate.forEach(Nt)}}),n.invalidateAll&&t().then(t).then(()=>{for(let[e,t]of nt)for(let[n,{resource:r}]of t)a?.has(A(e,n))&&r.start();for(let[e,t]of rt)for(let[n,{resource:r}]of t)o?.has(A(e,n))&&r.reconnect()})}async function ut(e){if(e.id!==U?.id){Ge();let t={};tt.add(t),U={id:e.id,token:t,promise:bt({...e,preload:t}).then(e=>(tt.delete(t),e.type===`loaded`&&e.state.error&&Ge(),e)),fork:null}}return U.promise}async function dt(e){let t=(await wt(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function ft(e,t,n){let r={params:G.params,route:{id:G.route?.id??null},url:new URL(location.href)};if(G={...e.state,nav:r},Ne(e.props.page),et=new B.root({target:t,props:{...e.props,stores:I,components:H},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),n){let e={from:null,to:{...r,scroll:P[J]??E()},willUnload:!1,type:`enter`,complete:Promise.resolve()};W.forEach(t=>t(e))}st(Y),Xe=!0}async function pt({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(S&&(e.pathname===S||e.pathname===S+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=d(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:De(n).map(e=>e.node.component),page:Bt(j)}};s!==void 0&&(l.props.form=s);let u={},f=!j,p=0;for(let e=0;e<Math.max(n.length,G.branch.length);e+=1){let t=n[e],r=G.branch[e];t?.data!==r?.data&&(f=!0),t&&(u={...u,...t.data},f&&(l.props[`data_${p}`]=u),p+=1)}return(!G.url||e.href!==G.url.href||G.error!==a||s!==void 0&&s!==j.form||f)&&(l.props.page={error:a,params:t,route:{id:o?.id??null},state:{},status:i,url:new URL(e),form:s??null,data:f?u:j.data}),l}async function mt({loader:e,parent:t,url:n,params:r,route:i,server_data_node:a}){let o={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},s=await e();return{node:s,loader:e,server:a,universal:s.universal?.load?{type:`data`,data:null,uses:o}:null,data:a?.data??null,slash:s.universal?.trailingSlash??a?.slash}}function ht(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:Xe?b(r,i.href,t):ee(r,t)}}function gt(e,t,n,r,i,a){if($e)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==G.params[e])return!0;for(let e of i.dependencies)if(V.some(t=>t(new URL(e))))return!0;return!1}function _t(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function vt(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function yt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Bt(j),constructors:[]}}}async function bt({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(U?.id===e)return tt.delete(U.token),U.promise;let{errors:o,layouts:s,leaf:u}=i,d=[...s,u];o.forEach(e=>e?.().catch(h)),d.forEach(e=>e?.[1]().catch(h));let f=G.url?e!==Et(G.url):!1,p=G.route?i.id!==G.route.id:!1,m=vt(G.url,n),g=!1,_=d.map(async(e,t)=>{if(!e)return;let a=G.branch[t];return e[1]===a?.loader&&!gt(g,p,f,m,a.universal?.uses,r)?a:(g=!0,mt({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;n<t;n+=1)Object.assign(e,(await _[n])?.data);return e},server_data_node:_t(e[0]?{type:`skip`}:null,e[0]?a?.server:void 0)}))});for(let e of _)e.catch(h);let v=[];for(let e=0;e<d.length;e+=1)if(d[e])try{v.push(await _[e])}catch(t){if(t instanceof l)return{type:`redirect`,location:t.location};if(a&&tt.has(a))return yt({error:await $(t,{params:r,url:n,route:{id:i.id}}),url:n,params:r,route:i});let s=Oe(t),u;if(t instanceof c)u=t.body;else{if(await I.updated.check())return await ze(),await L(n);u=await $(t,{params:r,url:n,route:{id:i.id}})}let d=await xt(e,v,o);return d?pt({url:n,params:r,branch:v.slice(0,d.idx).concat(d.node),errors:o,status:s,error:u,route:i}):await Ot(n,{id:i.id},u,s)}else v.push(void 0);return pt({url:n,params:r,branch:v,errors:o,status:200,error:null,route:i,form:t?void 0:null})}async function xt(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)--r;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function St({status:e,error:t,url:n,route:r}){let i={};try{return pt({url:n,params:i,branch:[await mt({loader:Ve,url:n,params:i,route:r,parent:()=>Promise.resolve({}),server_data_node:_t(null)}),{node:await R(),loader:R,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(t){if(t instanceof l){await lt(new URL(t.location,location.href),{},0);return}let a=await B.get_error_template(),o=await $(t,{url:n,params:i,route:r}),s=a({status:e,message:String(o?.message??``).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}),c=new DOMParser().parseFromString(s,`text/html`);throw document.documentElement.replaceChild(document.adoptNode(c.head),document.head),document.documentElement.replaceChild(document.adoptNode(c.body),document.body),t}}async function Ct(e){let t=e.href;if(Ke.has(t))return Ke.get(t);let n;try{let r=(async()=>{let t=await B.hooks.reroute({url:new URL(e),fetch:async(t,n)=>ht(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);B.hash?n.hash=t:n.pathname=t,t=n}return t})();Ke.set(t,r),n=await r}catch{Ke.delete(t);return}return n}async function wt(e,t){if(e&&!k(e,S,B.hash)){let n=await Ct(e);if(!n)return;let r=Tt(n);for(let n of Be){let i=n.exec(r);if(i)return{id:Et(e),invalidating:t,route:n,params:p(i),url:e}}}}function Tt(e){return f(B.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(S.length))||`/`}function Et(e){return(B.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function Dt({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=zt(G,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return K||qe.forEach(e=>e(c)),o?null:s}async function Z({type:e,url:r,popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c={},redirect_count:l=0,nav_token:d={},accept:f=h,block:p=h,event:m}){let g=X;X=d;let _=await wt(r,!1),v=e===`enter`?zt(G,_,r,e):Dt({url:r,type:e,delta:i?.delta,intent:_,scroll:i?.scroll,event:m});if(!v){p(),X===d&&(X=g);return}let y=J,ee=Y;f(),K=!0,Xe&&v.navigation.type!==`enter`&&I.navigating.set(M.current=v.navigation);let b=_&&await bt(_);if(!b){if(k(r,S,B.hash))return await L(r,s);b=await Ot(r,{id:null},await $(new u(404,`Not Found`,`Not found: ${r.pathname}`),{url:r,params:{},route:{id:null}}),404,s)}if(r=_?.url||r,X!==d){v.reject(Error(`navigation aborted`));return}if(!b)return;if(b.type===`redirect`){if(l<20){await Z({type:e,url:new URL(b.location,r),popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c,redirect_count:l+1,nav_token:d}),v.fulfil(void 0);return}if(b=await St({status:500,error:await $(Error(`Redirect loop`),{url:r,params:{},route:{id:null}}),url:r,route:{id:null}}),!b)return}else if(b.props.page.status>=400&&await I.updated.check())return await ze(),await L(r,s);if(at(),Le(y),ot(ee),b.props.page.url.pathname!==r.pathname&&(r.pathname=b.props.page.url.pathname),c=i?i.state:c,!i){let e=+!s,t={[C]:J+=e,[w]:Y+=e,[he]:c};(s?history.replaceState:history.pushState).call(history,t,``,r),s||Re(J,Y)}let x=_&&U?.id===_.id?U.fork:null;U?.fork&&!x?Ge():(U=null,Q={element:void 0,href:void 0}),b.props.page.state=c;let te;if(Xe){let e=(await Promise.all(Array.from(Je,e=>e(v.navigation)))).filter(e=>typeof e==`function`);if(e.length>0){function t(){e.forEach(e=>{W.delete(e)})}e.push(t),e.forEach(e=>{W.add(e)})}let t=v.navigation.to;G={...b.state,nav:{params:t.params,route:t.route,url:t.url}},b.props.page&&(b.props.page.url=r),!a&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();let i=x&&await x;i?te=i.commit():(N=null,et.$set(b.props),N&&Object.assign(b.props.page,N),Ne(b.props.page),te=n?.()),Qe=!0}else await ft(b,He,!1);let{activeElement:ne}=document;if(await te,await t(),await t(),X!==d){v.reject(Error(`navigation aborted`));return}b.props.page&&N&&Object.assign(b.props.page,N);let re=null;if(Ze){let e=i?i.scroll:o?E():null;e?scrollTo(e.x,e.y):(re=r.hash&&document.getElementById(Ht(r)))?re.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==ne&&document.activeElement!==document.body;!a&&!ie&&Rt(r,!re),Ze=!0,K=!1,v.fulfil(void 0),v.navigation.to&&(v.navigation.to.scroll=E()),W.forEach(e=>e(v.navigation)),e===`popstate`&&st(Y),I.navigating.set(M.current=null)}async function Ot(e,t,n,r,i){return e.origin===ge&&e.pathname===location.pathname&&!Ye?await St({status:r,error:n,url:e,route:t}):await L(e,i)}var Q={element:void 0,href:void 0};function kt(){let e,t;z.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{i(n,T.hover)},20)});function n(e){e.defaultPrevented||i(e.composedPath()[0],T.tap)}z.addEventListener(`mousedown`,n),z.addEventListener(`touchstart`,n,{passive:!0});let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(dt(new URL(t.target.href)),r.unobserve(t.target))},{threshold:0});async function i(e,n){let r=be(e,z),i=r===Q.element&&r?.href===Q.href&&n>=t;if(!r||i)return;let{url:a,external:o,download:s}=xe(r,S,B.hash);if(o||s)return;let c=O(r),l=a&&Et(G.url)===Et(a);if(!(c.reload||l)){if(n<=c.preload_data){Q={element:r,href:r.href},t=T.tap;let e=await wt(a,!1);if(!e)return;ut(e)}else n<=c.preload_code&&(Q={element:r,href:r.href},t=n,dt(a))}}function a(){r.disconnect();for(let e of z.querySelectorAll(`a`)){let{url:t,external:n,download:i}=xe(e,S,B.hash);if(n||i)continue;let a=O(e);a.reload||(a.preload_code===T.viewport&&r.observe(e),a.preload_code===T.eager&&dt(t))}}W.add(a),a()}function $(e,t){if(e instanceof c)return e.body;let n=Oe(e),r=ke(e);return B.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function At(e,t){Pe(()=>(e.add(t),()=>{e.delete(t)}))}function jt(e){At(Je,e)}function Mt(e,t={}){return e=new URL(_e(e)),e.origin===ge?lt(e,t,0):Promise.reject(Error(`goto: invalid URL`))}function Nt(e){if(typeof e==`function`)V.push(e);else{let{href:t}=new URL(e,location.href);V.push(e=>e.href===t)}}function Pt(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(ct(),!K){let e=zt(G,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};qe.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&ct()}),navigator.connection?.saveData||kt(),z.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=be(t.composedPath()[0],z);if(!n)return;let{url:r,external:i,target:a,download:o}=xe(n,S,B.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=O(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&r.protocol!==`https:`&&r.protocol!==`http:`||o)return;let[c,l]=(B.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){Dt({url:r,type:`link`,event:t})?K=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=G.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(q=!0,Le(J),e(r),!s.replace_state)return;q=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Z({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),z.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(k(r,S,!1))return;let i=e.target,a=O(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Z({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!Lt){if(t.state?.[`sveltekit:history`]){let n=t.state[C];if(X={},n===J)return;let r=P[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[w],s=G.url?m(location)===m(G.url):!1;if(o===Y&&(Qe||s)){i!==j.state&&(j.state=i),e(a),P[J]=E(),r&&scrollTo(r.x,r.y),J=n;return}let c=n-J;await Z({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{J=n,Y=o},block:()=>{history.go(-c)},nav_token:X,event:t})}else q||(e(new URL(location.href)),B.hash&&location.reload())}}),addEventListener(`hashchange`,()=>{q&&(q=!1,history.replaceState({...history.state,[C]:++J,[w]:Y},``,location.href))});for(let e of document.querySelectorAll(`link`))Ie.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&I.navigating.set(M.current=null)});function e(e){G.url=j.url=e,I.page.set(Bt(j)),I.page.notify()}}async function Ft(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){Ye=!0;let u=new URL(location.href),d;({params:i={},route:a={id:null}}=await wt(u,!1)||{}),d=Be.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=It(r.uses)),mt({loader:B.nodes[t],url:u,params:i,route:a,parent:async()=>{let t={};for(let r=0;r<n;r+=1)Object.assign(t,(await e[r]).data);return t},server_data_node:_t(r)})}),o=await Promise.all(e);if(d){let e=d.layouts;for(let t=0;t<e.length;t++)e[t]||o.splice(t,0,void 0)}f=await pt({url:u,params:i,branch:o,status:t,error:n,errors:d?.errors,form:c,route:d??null})}catch(t){if(t instanceof l)return await L(new URL(t.location,location.href));f=await St({status:Oe(t),error:await $(t,{url:u,params:i,route:a}),url:u,route:a}),e.textContent=``,p=!1}f&&(f.props.page&&(f.props.page.state={}),await ft(f,e,p))}function It(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}var Lt=!1;function Rt(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=Ht(e);if(n&&document.getElementById(n)){let{x:r,y:i}=E();setTimeout(()=>{let a=history.state;Lt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),Lt=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t<r.rangeCount;t+=1)e.push(r.getRangeAt(t));setTimeout(()=>{if(r.rangeCount===e.length){for(let t=0;t<r.rangeCount;t+=1){let n=e[t],i=r.getRangeAt(t);if(n.commonAncestorContainer!==i.commonAncestorContainer||n.startContainer!==i.startContainer||n.endContainer!==i.endContainer||n.startOffset!==i.startOffset||n.endOffset!==i.endOffset)return}r.removeAllRanges()}})}}}function zt(e,t,n,r,i=null){let a,o,s=new Promise((e,t)=>{a=e,o=t});return s.catch(h),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:E()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function Bt(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Vt(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Ht(e){let t;if(B.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{j as a,S as c,M as i,jt as n,Te as o,it as r,fe as s,Mt as t};
@@ -1 +0,0 @@
1
- import{o as e,r as t}from"../chunks/BzG-gka8.js";export{e as load_css,t as start};
@@ -1 +0,0 @@
1
- import{Et as e,Q as t,j as n,k as r}from"../chunks/CcD_ISxM.js";import"../chunks/xihTtKlq.js";import{r as i}from"../chunks/Bxde3uE_.js";var a=n(`<div class="mx-auto h-full max-w-7xl overflow-auto px-4 pb-12"><!></div>`);function o(n){var o=a(),s=t(o);i(s,{}),e(o),r(n,o)}export{o as component};