@jskit-ai/agent-docs 0.1.121 → 0.1.123

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 (55) hide show
  1. package/guide/agent/app-extras/mobile-capacitor.md +2 -2
  2. package/guide/agent/app-setup/authentication.md +4 -4
  3. package/guide/agent/app-setup/multi-homing.md +1 -1
  4. package/guide/agent/app-setup/upgrade-beta-1-to-final.md +15 -0
  5. package/guide/agent/app-setup/users.md +1 -1
  6. package/guide/agent/app-setup/working-with-the-jskit-cli.md +4 -0
  7. package/guide/agent/generators/advanced-cruds.md +2 -0
  8. package/guide/agent/generators/crud-generators.md +7 -26
  9. package/guide/agent/index.md +0 -3
  10. package/package.json +1 -1
  11. package/patterns/client-requests.md +1 -1
  12. package/patterns/crud-scaffolding.md +4 -4
  13. package/reference/autogen/packages/agent-docs.md +1 -1
  14. package/reference/autogen/packages/assistant-core.md +1 -1
  15. package/reference/autogen/packages/assistant-runtime.md +1 -1
  16. package/reference/autogen/packages/assistant.md +1 -1
  17. package/reference/autogen/packages/auth-core.md +1 -3
  18. package/reference/autogen/packages/auth-provider-local-core.md +1 -1
  19. package/reference/autogen/packages/auth-provider-local-db-core.md +1 -1
  20. package/reference/autogen/packages/auth-provider-supabase-core.md +1 -1
  21. package/reference/autogen/packages/auth-web.md +1 -1
  22. package/reference/autogen/packages/console-core.md +1 -1
  23. package/reference/autogen/packages/console-web.md +1 -1
  24. package/reference/autogen/packages/crud-core.md +1 -1
  25. package/reference/autogen/packages/crud-server-generator.md +1 -1
  26. package/reference/autogen/packages/crud-ui-generator.md +1 -1
  27. package/reference/autogen/packages/database-runtime-mysql.md +1 -1
  28. package/reference/autogen/packages/database-runtime-postgres.md +1 -1
  29. package/reference/autogen/packages/database-runtime.md +1 -1
  30. package/reference/autogen/packages/feature-server-generator.md +1 -1
  31. package/reference/autogen/packages/google-rewarded-core.md +1 -1
  32. package/reference/autogen/packages/google-rewarded-web.md +1 -1
  33. package/reference/autogen/packages/http-runtime.md +1 -1
  34. package/reference/autogen/packages/json-rest-api-core.md +1 -1
  35. package/reference/autogen/packages/kernel.md +2 -1
  36. package/reference/autogen/packages/mobile-capacitor.md +1 -1
  37. package/reference/autogen/packages/realtime.md +1 -1
  38. package/reference/autogen/packages/resource-core.md +1 -1
  39. package/reference/autogen/packages/resource-crud-core.md +1 -1
  40. package/reference/autogen/packages/shell-web.md +15 -1
  41. package/reference/autogen/packages/storage-runtime.md +1 -1
  42. package/reference/autogen/packages/ui-generator.md +1 -1
  43. package/reference/autogen/packages/uploads-image-web.md +1 -1
  44. package/reference/autogen/packages/uploads-runtime.md +1 -1
  45. package/reference/autogen/packages/users-core.md +1 -1
  46. package/reference/autogen/packages/users-web.md +2 -17
  47. package/reference/autogen/packages/workspaces-core.md +1 -1
  48. package/reference/autogen/packages/workspaces-web.md +1 -1
  49. package/reference/autogen/tooling/config-eslint.md +1 -1
  50. package/reference/autogen/tooling/create-app.md +1 -1
  51. package/reference/autogen/tooling/jskit-catalog.md +1 -1
  52. package/reference/autogen/tooling/jskit-cli.md +4 -54
  53. package/reference/autogen/tooling/test-support.md +1 -1
  54. package/reference/autogen/tooling/testUtils.md +3 -3
  55. package/skills/jskit/references/crud-operations.md +3 -3
@@ -230,8 +230,8 @@ It also means:
230
230
  - the backend must be running on your laptop
231
231
  - the app needs an `adb reverse` tunnel
232
232
 
233
- If `apiBaseUrl` later points to a real remote `https://...` backend, the tunnel
234
- is no longer required.
233
+ An `apiBaseUrl` that points to a remote `https://...` backend uses the device's
234
+ normal network connection and does not need the tunnel.
235
235
 
236
236
  ## A good day-to-day loop
237
237
 
@@ -523,7 +523,7 @@ To use it, install a JSKIT database runtime and driver, install `auth-provider-l
523
523
 
524
524
  There are two database-backed paths, and they solve different problems.
525
525
 
526
- For normal app users and account settings, install the database runtime, install `users-web`, then run the migrations. That gives the app the `users` and `user_settings` tables through `users-core`, plus the `auth.profile.projector` bridge that projects a provider identity into a persistent JSKIT user profile.
526
+ For normal app users and account settings, install the database runtime, install `users-web`, then run the migrations. That gives the app the `users` and `user_settings` tables through `users-core`, plus the `auth.profile.projector` service that projects a provider identity into a persistent JSKIT user profile.
527
527
 
528
528
  For local auth credentials and sessions in SQL, keep `AUTH_PROVIDER=local`, install `auth-provider-local-db-core`, set `AUTH_LOCAL_BACKEND=db`, and run migrations. That package owns `auth_local_users`, `auth_local_sessions`, and `auth_local_recovery`, and registers the transactional `auth.local.backend` implementation.
529
529
 
@@ -560,7 +560,7 @@ registerAuthServiceDecorator(app, "app.auth.local.permissions", (scope) => {
560
560
 
561
561
  The hook must declare `blocking: true` or `blocking: false`. A blocking hook is awaited and its failure rejects the register call, which fits permission provisioning or other work the app needs before treating registration as complete. A non-blocking hook is scheduled after registration and logs failures, which fits audit logging or metrics. This helper runs after local auth registration and profile projection have succeeded; it does not share the local auth backend transaction. If the extension must be transaction-coupled with credential storage, wrap or replace `auth.local.backend` instead.
562
562
 
563
- The local provider also has a separate password strategy seam. Use `auth.local.backend` to change where local auth records are stored. Use `auth.local.passwordStrategy` only when the app needs to change how passwords are hashed or verified, such as during a migration from an existing user table with existing password hashes.
563
+ The local provider also has a separate password strategy seam. Use `auth.local.backend` to change where local auth records are stored. Use `auth.local.passwordStrategy` only when the app owns a different password-record format or verification algorithm.
564
564
 
565
565
  Register `auth.local.passwordStrategy` before `AuthLocalServiceProvider` starts:
566
566
 
@@ -579,7 +579,7 @@ app.singleton("auth.local.passwordStrategy", () => ({
579
579
  }));
580
580
  ```
581
581
 
582
- The strategy object can provide `hashPassword(password)`, `verifyPassword(password, storedPasswordRecord)`, or both. Missing methods fall back to the local provider's default scrypt implementation, so a migration verifier can accept old hashes while new registrations, resets, and password changes continue to write default JSKIT password records. JSKIT validates provided methods as functions and calls them with `this` bound to the strategy object.
582
+ The strategy object can provide `hashPassword(password)`, `verifyPassword(password, storedPasswordRecord)`, or both. Missing methods use the local provider's default scrypt implementation. JSKIT validates provided methods as functions and calls them with `this` bound to the strategy object.
583
583
 
584
584
  Custom service callers can pass the same object directly:
585
585
 
@@ -591,7 +591,7 @@ createLocalAuthService({
591
591
  });
592
592
  ```
593
593
 
594
- JSKIT core does not install bcrypt or any legacy password dependency. If an app needs a legacy verifier, the app owns that dependency and keeps the backend as storage only.
594
+ JSKIT core does not install bcrypt. An app that selects bcrypt owns that dependency and keeps the backend focused on storage.
595
595
 
596
596
  If you later configure local SMTP password recovery, also set `APP_PUBLIC_URL` so reset links point back to the browser URL for this app.
597
597
 
@@ -449,7 +449,7 @@ That is exactly the kind of page `useWorkspaceRouteContext()` is for:
449
449
  ```vue
450
450
  <script setup>
451
451
  import { computed } from "vue";
452
- import { usePaths } from "@jskit-ai/users-web/client/composables/usePaths";
452
+ import { usePaths } from "@jskit-ai/shell-web/client/navigation/usePaths";
453
453
  import { useWorkspaceRouteContext } from "@jskit-ai/workspaces-web/client/composables/useWorkspaceRouteContext";
454
454
 
455
455
  const { workspaceSlugFromRoute, currentSurfaceId } = useWorkspaceRouteContext();
@@ -105,6 +105,11 @@ npx jskit migrations sync
105
105
 
106
106
  Review the migration diff. Existing Knex migration files and migration-table history remain intact.
107
107
 
108
+ Runtime-package migration mutations must be deterministic without install
109
+ options. Convert an option-parameterized runtime migration into a generator
110
+ mutation, or materialize it as a fixed app-local package migration before the
111
+ upgrade.
112
+
108
113
  Generate the JSKIT CI workflow:
109
114
 
110
115
  ```bash
@@ -132,3 +137,13 @@ npm run db:migrate
132
137
  ```
133
138
 
134
139
  Commit package manifests, `package-lock.json`, synchronized migrations, generated CI, and required application changes together.
140
+
141
+ ## 9. Update strict resource boundaries
142
+
143
+ Applications that pass JavaScript `Date` objects into resource validation must convert them to strings. `date` uses `YYYY-MM-DD`; `time` uses offset-free `HH:MM[:SS[.fraction]]`; and `dateTime` uses RFC 3339 with seconds and a `Z` or numeric offset. Select `epochMilliseconds` or `epochSeconds` explicitly for numeric epochs and preserve `temporalPrecision`.
144
+
145
+ Generated generic CRUD repositories serialize supported database temporal output. Custom repositories must return strict temporal strings and write ISO/RFC 3339 strings themselves.
146
+
147
+ For a generated view that needs delete confirmation, rerun its `crud-ui-generator crud` command with `--delete-confirmation`. Use `--force` only when replacing generated page output deliberately. For a customized view, preserve the customization and add the public `CrudViewScreen` `actions` slot, `CrudDeleteAction`, and `useCrudDeleteAction()` integration.
148
+
149
+ Review the complete application diff and run its full verification suite before applying database migrations.
@@ -132,7 +132,7 @@ That one binding explains the deepest change in the chapter.
132
132
 
133
133
  Before this chapter, auth could authenticate a user without creating a persistent app-owned user row. After this chapter, auth providers can call `auth.profile.projector.syncIdentityProfile(...)` and get back a persistent users-backed profile.
134
134
 
135
- `users-core` also writes this server-only config line for Supabase compatibility:
135
+ `users-core` also selects users-backed Supabase profile projection:
136
136
 
137
137
  ```js
138
138
  config.auth ||= {};
@@ -196,6 +196,10 @@ npx jskit migrations sync --check
196
196
 
197
197
  Migration ids are immutable. The same package and migration id must always produce the same content. A conflict fails instead of overwriting migration history.
198
198
 
199
+ Runtime-package migrations are deterministic projections and cannot reference
200
+ install options. Use a generator when a migration must be parameterized for a
201
+ specific generated feature.
202
+
199
203
  Synchronization changes files only. Apply database migrations separately:
200
204
 
201
205
  ```bash
@@ -738,6 +738,8 @@ const resource = useEndpointResource({
738
738
  If you need a custom scoped endpoint path outside the higher-level runtimes, prefer `usePaths().api(...)` rather than hand-building scoped URLs:
739
739
 
740
740
  ```js
741
+ import { usePaths } from "@jskit-ai/shell-web/client/navigation/usePaths";
742
+
741
743
  const paths = usePaths();
742
744
  const reportsApiPath = computed(() => paths.api("/reports"));
743
745
  ```
@@ -69,31 +69,12 @@ The server generator resolves the complete package closure. `shell-web`
69
69
  establishes and owns `src/placement.js` before `realtime` contributes its
70
70
  placement, so do not pre-install the shell as a workaround.
71
71
 
72
- ## Existing-app migration checklist
73
-
74
- Strict temporal resource values require one coordinated application migration.
75
- There is no compatibility alias or automatic coercion for JavaScript `Date`
76
- objects at resource boundaries:
77
-
78
- 1. Commit the application's current work and update its direct `@jskit-ai/*`
79
- dependencies to one coordinated, exact release set.
80
- 2. If the application declares `json-rest-schema` directly, use
81
- `json-rest-schema` 1.0.17 or newer and review its temporal validation before
82
- installing dependencies.
83
- 3. Replace resource-bound JavaScript `Date` values with strings. `date` is
84
- `YYYY-MM-DD`; `time` is offset-free `HH:MM[:SS[.fraction]]`; and `dateTime`
85
- is RFC 3339 with seconds and a `Z` or numeric offset. Use
86
- `epochMilliseconds` or `epochSeconds` only after checking the existing
87
- numeric unit. Preserve `temporalPrecision`.
88
- 4. For a standard generated view delete action, rerun the original
89
- `crud-ui-generator crud` command with `--delete-confirmation`. Add `--force`
90
- only when you deliberately want to replace generated page output. For a
91
- customized view, preserve the customization and add the public
92
- `CrudViewScreen` `actions` slot, `CrudDeleteAction`, and
93
- `useCrudDeleteAction()` integration described below.
94
- 5. Review the generated diff, keep application-owned customizations and browser
95
- tests, then run the application's full verification suite before applying
96
- database migrations.
72
+ ## Temporal values
73
+
74
+ Temporal resource values are strings. `date` is `YYYY-MM-DD`; `time` is
75
+ offset-free `HH:MM[:SS[.fraction]]`; and `dateTime` is RFC 3339 with seconds
76
+ and a `Z` or numeric offset. Numeric epochs use `epochMilliseconds` or
77
+ `epochSeconds`. Preserve `temporalPrecision`.
97
78
 
98
79
  Generated generic CRUD repositories convert database temporal values at the
99
80
  resource boundary. Custom repositories still need to return strict temporal
@@ -946,7 +927,7 @@ Use this when:
946
927
 
947
928
  It is a maintenance tool, not the first step in the workflow.
948
929
 
949
- It patches the canonical `schema` inside the shared resource file. That matters because the standard CRUD validators are derived from that canonical schema; you are no longer maintaining separate authored `create` / `patch` / `view` validator blocks by hand.
930
+ It patches the canonical `schema` inside the shared resource file. The standard CRUD validators are derived from that schema, so one authored field definition drives `create`, `patch`, and `view` validation.
950
931
 
951
932
  ## Summary
952
933
 
@@ -40,6 +40,3 @@ It starts with a fast reproducible Quickstart, then steps back to the scaffold-f
40
40
  - Use `App Extras` once the base app structure is in place and you want optional runtime packages such as the Android shell, realtime, or assistant.
41
41
  - Jump into `Generators` if you already understand the runtime packages and want app-owned scaffolding workflows.
42
42
  - Inside `Generators`, read `CRUD Generators` before `Advanced CRUDs`: the first chapter teaches the workflow, and the second explains the generated anatomy and customization points.
43
- - Updating an existing app for strict temporal values or generated record
44
- deletion? Go straight to the
45
- [Existing-app migration checklist](/guide/generators/crud-generators#existing-app-migration-checklist).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jskit-ai/agent-docs",
3
- "version": "0.1.121",
3
+ "version": "0.1.123",
4
4
  "description": "Distributed JSKIT agent references, prompts, guides, and generated reference maps.",
5
5
  "type": "module",
6
6
  "files": [
@@ -13,7 +13,7 @@ Rules:
13
13
  - Prefer the highest-level JSKIT runtime that matches the UI interaction.
14
14
  - Do not hand-roll local AJAX helpers when an existing JSKIT runtime already fits.
15
15
  - Do not use raw `fetch(...)` for normal app work.
16
- - Use `usePaths().api(...)` for custom scoped API paths instead of concatenating route params into URLs by hand.
16
+ - Use `usePaths().api(...)` from `@jskit-ai/shell-web/client/navigation/usePaths` for custom scoped API paths instead of concatenating route params into URLs by hand.
17
17
  - Drop to `usersWebHttpClient.request(...)` only for exceptional low-level cases.
18
18
 
19
19
  Choose the function like this:
@@ -38,8 +38,8 @@ workaround.
38
38
 
39
39
  Before database, schema, CRUD, repository, or persistence work, read this
40
40
  pattern completely. Use the database selected for this app's development
41
- runtime; never alter a production, legacy, historical, or other valuable
42
- database to develop or verify schema changes. Prove the complete migration
41
+ runtime; never alter a production or other valuable database to develop or
42
+ verify schema changes. Prove the complete migration
43
43
  chain against a fresh disposable database before reporting completion.
44
44
 
45
45
  For normal app-owned CRUD tables:
@@ -103,8 +103,8 @@ Rules:
103
103
 
104
104
  ## Temporal values at resource boundaries
105
105
 
106
- `json-rest-schema` 1.0.17 accepts strict string temporal values. Resource
107
- validators no longer coerce JavaScript `Date` objects:
106
+ Resource validators accept strict string temporal values and reject JavaScript
107
+ `Date` objects:
108
108
 
109
109
  - `date` is `YYYY-MM-DD`
110
110
  - `time` is offset-free `HH:MM[:SS[.fraction]]`
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/agent-docs/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/assistant-core/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/assistant-runtime/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/assistant/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/auth-core/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -45,7 +45,6 @@ Exports
45
45
  Exports
46
46
  - `createAuthIdentityId(provider, providerUserId)`
47
47
  - `normalizeAuthActor(value = {}, options = {})`
48
- - `buildLegacyProfileFromActor(actorLike)`
49
48
  - `normalizeAuthResult(value = {}, options = {})`
50
49
  Local functions
51
50
  - `normalizeDisplayName(value, email = "")`
@@ -126,7 +125,6 @@ Exports
126
125
  - `mergeAuthPolicy`
127
126
  - `createAuthIdentityId`
128
127
  - `normalizeAuthActor`
129
- - `buildLegacyProfileFromActor`
130
128
  - `normalizeAuthResult`
131
129
  - `AUTH_OPERATION_UNSUPPORTED_CODE`
132
130
  - `createUnsupportedAuthOperationError`
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/auth-provider-local-core/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/auth-provider-local-db-core/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/auth-provider-supabase-core/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/auth-web/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/console-core/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/console-web/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/crud-core/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/crud-server-generator/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/crud-ui-generator/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/database-runtime-mysql/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/database-runtime-postgres/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/database-runtime/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/feature-server-generator/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/google-rewarded-core/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/google-rewarded-web/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/http-runtime/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/json-rest-api-core/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/kernel/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -1569,6 +1569,7 @@ Exports
1569
1569
 
1570
1570
  ### `internal/node/installedPackages.js`
1571
1571
  Exports
1572
+ - `JSKIT_PACKAGE_CONFIG_KEYS`
1572
1573
  - `ROOT_DEPENDENCY_SECTIONS`
1573
1574
  - `collectPackageDependencyIds(packageJson = {})`
1574
1575
  - `collectRootDependencySpecifiers(packageJson = {})`
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/mobile-capacitor/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/realtime/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/resource-core/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/resource-crud-core/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/shell-web/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -250,6 +250,20 @@ Local functions
250
250
  - `materializeSurfaceRouteBase(routeBaseTemplate = "/", { params = {}, strictParams = true, surface = "" } = {})`
251
251
  - `resolveSurfaceBasePath(context = null, surface = "", { params = {}, strictParams = true } = {})`
252
252
 
253
+ ### `src/client/navigation/usePaths.js`
254
+ Exports
255
+ - `usePaths({ routeContext: sourceRouteContext = null } = {})`
256
+ Local functions
257
+ - `normalizePathSuffix(value = "")`
258
+ - `resolveSurfaceId(value, fallback = "")`
259
+ - `resolveDefaultSurfaceIdFromPlacementContext(placementContext = null)`
260
+ - `normalizeRouteParams(params = null)`
261
+ - `resolveRouteParams(baseParams = {}, overrideParams = null)`
262
+
263
+ ### `src/client/navigation/useSurfaceRouteContext.js`
264
+ Exports
265
+ - `useSurfaceRouteContext()`
266
+
253
267
  ### `src/client/placement/debug.js`
254
268
  Exports
255
269
  - `DEFAULT_DEBUG_DEPTH`
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/storage-runtime/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/ui-generator/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/uploads-image-web/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/uploads-runtime/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/users-core/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/users-web/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -435,9 +435,8 @@ Local functions
435
435
  - `normalizePlainObject(value = null)`
436
436
  - `normalizeRequestRecoveryInput(requestRecovery = null)`
437
437
  - `normalizeRequestRecoveryMethod(value = "")`
438
- - `isRequestRecoveryMetaDisabled(sourceJskitMeta = {}, sourceMeta = {})`
438
+ - `isRequestRecoveryMetaDisabled(sourceJskitMeta = {})`
439
439
  - `hasUsableMetaValue(source = {}, key = "")`
440
- - `hasRequestRecoveryMetaValue(sourceJskitMeta = {}, sourceMeta = {}, key = "")`
441
440
  - `resolveRequestRecoveryDefaults(queryOptions = null, defaults = {})`
442
441
 
443
442
  ### `src/client/composables/support/routeTemplateHelpers.js`
@@ -575,16 +574,6 @@ Local functions
575
574
  - `defaultGetNextPageParam(lastPage)`
576
575
  - `normalizeQueryKeyValue(queryKey = null)`
577
576
 
578
- ### `src/client/composables/usePaths.js`
579
- Exports
580
- - `usePaths({ routeContext: sourceRouteContext = null } = {})`
581
- Local functions
582
- - `normalizePathSuffix(value = "")`
583
- - `resolveSurfaceId(value, fallback = "")`
584
- - `resolveDefaultSurfaceIdFromPlacementContext(placementContext = null)`
585
- - `normalizeRouteParams(params = null)`
586
- - `resolveRouteParams(baseParams = {}, overrideParams = null)`
587
-
588
577
  ### `src/client/composables/useRealtimeQueryInvalidation.js`
589
578
  Exports
590
579
  - `resolveOperationRealtimeOptions({ realtime = undefined, fallbackRealtime = null } = {})`
@@ -602,10 +591,6 @@ Exports
602
591
  Local functions
603
592
  - `resolveScopedRouteParamNames(placementContext = null, surfaceId = "")`
604
593
 
605
- ### `src/client/composables/useSurfaceRouteContext.js`
606
- Exports
607
- - `useSurfaceRouteContext()`
608
-
609
594
  ### `src/client/filters.js`
610
595
  Exports
611
596
  - `CRUD_LIST_FILTER_TYPE_FLAG`
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/workspaces-core/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `packages/workspaces-web/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `tooling/config-eslint/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `tooling/create-app/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `tooling/jskit-catalog/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `tooling/jskit-cli/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -111,14 +111,12 @@ Local functions
111
111
 
112
112
  ### `src/server/cliRuntime/ci/managedWorkflow.js`
113
113
  Exports
114
- - `assertAppCiCanSynchronize({ appRoot })`
115
114
  - `composeInstalledPackageCi({ packageRegistry, installedPackageIds = null })`
116
115
  - `synchronizeAppCiWorkflow({ appRoot, dryRun = false })`
117
116
  - `synchronizeCiWorkflow({ appRoot, packageRegistry, installedPackageIds = null, touchedFiles = null, dryRun = false })`
118
117
  Local functions
119
118
  - `collectInstalledPackageEntries({ packageRegistry, installedPackageIds = null })`
120
119
  - `inspectCiFiles(appRoot)`
121
- - `assertCiCanSynchronize({ appRoot })`
122
120
 
123
121
  ### `src/server/cliRuntime/completion.js`
124
122
  Exports
@@ -362,12 +360,13 @@ Local functions
362
360
  ### `src/server/cliRuntime/packageMetadataValidation.js`
363
361
  Exports
364
362
  - `validatePackageMetadataShape(packageMetadata, metadataPath)`
365
- - `validateAppLocalPackageMetadataShape(packageMetadata, metadataPath, { expectedPackageId = "", fallbackVersion = "" } = {})`
363
+ - `validateAppLocalPackageMetadataShape(packageMetadata, metadataPath, { expectedPackageId = "" } = {})`
366
364
  - `createPackageEntry({ packageId, version, packageMetadata, rootDir = "", relativeDir = "", manifestRelativePath = "", packageJson = {}, sourceType = "", source = {} })`
367
365
  - `isGeneratorPackageEntry(packageEntry)`
368
366
  Local functions
369
367
  - `normalizePackageKind(rawValue, metadataPath)`
370
- - `validateFileMutationShape(packageMetadata, metadataPath)`
368
+ - `conditionUsesPackageOption(rawCondition)`
369
+ - `validateFileMutationShape(packageMetadata, metadataPath, { packageKind = "" } = {})`
371
370
  - `validateSourceMutationShape(packageMetadata, metadataPath)`
372
371
  - `validateLifecycleHookSpec(spec = {}, metadataPath, label = "lifecycle hook")`
373
372
  - `validateLifecycleShape(packageMetadata, metadataPath)`
@@ -555,14 +554,6 @@ Local functions
555
554
  Exports
556
555
  - `createHealthCommands(ctx = {})`
557
556
 
558
- ### `src/server/commandHandlers/helperMap.js`
559
- Exports
560
- - `createHelperMapCommands(ctx = {})`
561
- Local functions
562
- - `writeJson(stdout, payload)`
563
- - `writeErrors(stdout, payload)`
564
- - `writeHelperMapText(stdout, payload)`
565
-
566
557
  ### `src/server/commandHandlers/list.js`
567
558
  Exports
568
559
  - `createListCommands(ctx = {})`
@@ -840,7 +831,6 @@ Exports
840
831
  Exports
841
832
  - `COMMAND_IDS`
842
833
  - `OPTION_FLAG_LABELS`
843
- - `resolveCommandAlias(rawCommand)`
844
834
  - `resolveCommandDescriptor(rawCommand)`
845
835
  - `isKnownCommandName(rawCommand)`
846
836
  - `listOverviewCommandDescriptors()`
@@ -874,46 +864,6 @@ Local functions
874
864
  - `printTopLevelHelp(stream = process.stderr)`
875
865
  - `printCommandHelp(stream = process.stderr, command = "")`
876
866
 
877
- ### `src/server/helperMap.js`
878
- Exports
879
- - `HELPER_MAP_JSON_RELATIVE_PATH`
880
- - `HELPER_MAP_MARKDOWN_RELATIVE_PATH`
881
- - `buildHelperMap({ targetRoot, previousMap = null })`
882
- - `readHelperMap({ targetRoot })`
883
- - `updateHelperMap({ targetRoot })`
884
- Local functions
885
- - `pathExists(filePath)`
886
- - `readJsonFile(filePath)`
887
- - `readFileHash(filePath)`
888
- - `normalizePackageDependencies(packageJson = {})`
889
- - `classifySymbol(name = "")`
890
- - `createExportAnalysisProject()`
891
- - `addSymbol(symbols, symbol)`
892
- - `compilerNodeHasModifier(node, modifierKind)`
893
- - `exportedDeclarationName(node)`
894
- - `addExportedDeclarationSymbol(symbols, node, kind = "export")`
895
- - `bindingNameTexts(bindingName, names = [])`
896
- - `addVariableStatementExports(symbols, statement)`
897
- - `addNamedExportSymbols(symbols, exportClause)`
898
- - `extractExportedSymbols(sourceFile)`
899
- - `extractVueScriptSource(source = "", filePath = "")`
900
- - `addCodeFileToProject(project, file)`
901
- - `walkCodeFiles(rootPath, relativeRoot = "")`
902
- - `collectAppExports(targetRoot)`
903
- - `flattenPackageExports(exportsField)`
904
- - `packageExportTargetRecords(packageRoot, exportTargets = [])`
905
- - `packageExportFingerprint({ installedPackageJson = {}, packageName = "", targetRecords = [] } = {})`
906
- - `cachedPackageExports(previousPackagesByName = new Map(), packageName = "", fingerprint = "")`
907
- - `previousPackageMap(previousMap = null)`
908
- - `collectJskitPackageExports(targetRoot, packageJson = {}, previousMap = null)`
909
- - `renderExportList(symbols = [])`
910
- - `renderHelperMapMarkdown(map)`
911
-
912
- ### `src/server/helperMapPaths.js`
913
- Exports
914
- - `HELPER_MAP_JSON_RELATIVE_PATH`
915
- - `HELPER_MAP_MARKDOWN_RELATIVE_PATH`
916
-
917
867
  ### `src/server/index.js`
918
868
  Exports
919
869
  - `runCli`
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `tooling/test-support/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -8,7 +8,7 @@ Use this on demand; do not load the full index at startup.
8
8
 
9
9
  ## Scope
10
10
  - Source: `tooling/testUtils/**/*{.js,.mjs,.cjs,.vue}`
11
- - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `.vitepress/cache/`, `.vitepress/dist/`
12
12
 
13
13
  ## Sections
14
14
 
@@ -28,9 +28,9 @@ Exports
28
28
 
29
29
  ### `jskitPackage.mjs`
30
30
  Exports
31
- - `writeJskitPackageMetadata(packageRoot, metadataOrExpression)`
31
+ - `writeJskitConfig(packageRoot, jskitOrSource)`
32
32
  Local functions
33
- - `resolveMetadata(metadataOrExpression)`
33
+ - `resolveJskitConfig(jskitOrSource)`
34
34
 
35
35
  ### `runCli.js`
36
36
  Exports
@@ -96,9 +96,9 @@ With `json-rest-schema` 1.0.17, temporal resource values are strings:
96
96
  - `dateTime`: RFC 3339 with seconds and `Z` or a numeric offset
97
97
 
98
98
  Do not pass JavaScript `Date` objects through resource validation; convert at
99
- the boundary (normally `toISOString()` for `dateTime`). `timestamp` is removed:
100
- after checking the existing unit, use `epochMilliseconds` or `epochSeconds`.
101
- Honor `temporalPrecision` without silently truncating fractions. Generated CRUD
99
+ the boundary (normally `toISOString()` for `dateTime`). Numeric epochs use
100
+ `epochMilliseconds` or `epochSeconds`. Honor `temporalPrecision` without
101
+ silently truncating fractions. Generated CRUD
102
102
  serializes supported database temporal output; custom repositories must return
103
103
  strict strings and write ISO/RFC 3339 strings themselves.
104
104