@jskit-ai/agent-docs 0.1.242 → 0.1.244

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 (128) hide show
  1. package/guide/agent/app-extras/assistant-conversation.md +4 -2
  2. package/guide/agent/app-extras/assistant.md +3 -1
  3. package/guide/agent/app-extras/realtime.md +12 -3
  4. package/guide/agent/app-setup/database-layer.md +1 -1
  5. package/guide/agent/app-setup/existing-application-migration.md +0 -7
  6. package/guide/agent/framework/application-operations.md +1 -1
  7. package/guide/agent/framework/crud-operations.md +9 -9
  8. package/guide/agent/index.md +2 -0
  9. package/package.json +2 -3
  10. package/patterns/feature-package/example/booking-engine/package.json +1 -1
  11. package/patterns/feature-package/example/booking-engine/src/server/actions.js +0 -2
  12. package/patterns/feature-package/example/variations/AvailabilityEngineProvider.js +1 -1
  13. package/patterns/feature-package/example/variations/InvoiceRollupProvider.js +1 -1
  14. package/patterns/minimal-foundation/example/AGENTS.md +19 -0
  15. package/patterns/minimal-foundation/example/package.json +3 -3
  16. package/patterns/minimal-foundation/example/server/lib/runtimeEnv.js +3 -11
  17. package/patterns/minimal-foundation/example/src/main.js +0 -2
  18. package/patterns/shell-foundation/PATTERN.md +11 -20
  19. package/patterns/shell-foundation/example/AGENTS.md +19 -0
  20. package/patterns/shell-foundation/example/package.json +4 -4
  21. package/patterns/shell-foundation/example/packages/main/package.json +1 -1
  22. package/patterns/shell-foundation/example/server/lib/runtimeEnv.js +3 -11
  23. package/patterns/shell-foundation/example/src/components/ShellLayout.vue +1 -0
  24. package/patterns/shell-foundation/example/src/main.js +0 -2
  25. package/patterns/shell-foundation/example/src/pages/home/settings.vue +2 -2
  26. package/reference/autogen/KERNEL_MAP.md +16 -147
  27. package/reference/autogen/PATTERN_INDEX.md +37 -37
  28. package/reference/autogen/packages/agent-docs.md +1 -9
  29. package/reference/autogen/packages/assistant-core.md +102 -68
  30. package/reference/autogen/packages/assistant-runtime.md +29 -15
  31. package/reference/autogen/packages/assistant-voice-sherpa.md +2 -1
  32. package/reference/autogen/packages/assistant-voice.md +8 -11
  33. package/reference/autogen/packages/auth-core.md +1 -1
  34. package/reference/autogen/packages/auth-provider-local-core.md +1 -1
  35. package/reference/autogen/packages/auth-provider-local-db-core.md +1 -1
  36. package/reference/autogen/packages/auth-provider-oidc-core.md +1 -1
  37. package/reference/autogen/packages/auth-provider-supabase-core.md +1 -1
  38. package/reference/autogen/packages/auth-web.md +1 -2
  39. package/reference/autogen/packages/connector-google-calendar.md +6 -2
  40. package/reference/autogen/packages/connectors-catalog.md +26 -7
  41. package/reference/autogen/packages/connectors-core.md +14 -3
  42. package/reference/autogen/packages/connectors-web.md +6 -1
  43. package/reference/autogen/packages/console-core.md +1 -1
  44. package/reference/autogen/packages/console-web.md +1 -1
  45. package/reference/autogen/packages/crud-core.md +1 -1
  46. package/reference/autogen/packages/database-runtime-mysql.md +1 -1
  47. package/reference/autogen/packages/database-runtime-postgres.md +1 -1
  48. package/reference/autogen/packages/database-runtime.md +2 -86
  49. package/reference/autogen/packages/http-runtime.md +6 -92
  50. package/reference/autogen/packages/http-web.md +29 -49
  51. package/reference/autogen/packages/json-rest-api-core.md +1 -1
  52. package/reference/autogen/packages/kernel.md +108 -405
  53. package/reference/autogen/packages/mobile-capacitor.md +11 -1
  54. package/reference/autogen/packages/oidc-issuer-core.md +1 -1
  55. package/reference/autogen/packages/payments-core.md +12 -4
  56. package/reference/autogen/packages/payments-web.md +1 -1
  57. package/reference/autogen/packages/realtime.md +7 -5
  58. package/reference/autogen/packages/resource-core.md +1 -4
  59. package/reference/autogen/packages/resource-crud-core.md +4 -3
  60. package/reference/autogen/packages/rewarded-core.md +1 -1
  61. package/reference/autogen/packages/rewarded-web.md +1 -1
  62. package/reference/autogen/packages/shell-web.md +114 -49
  63. package/reference/autogen/packages/storage-runtime.md +1 -1
  64. package/reference/autogen/packages/uploads-image-web.md +1 -1
  65. package/reference/autogen/packages/uploads-runtime.md +1 -1
  66. package/reference/autogen/packages/users-core.md +1 -1
  67. package/reference/autogen/packages/users-web.md +1 -2
  68. package/reference/autogen/packages/workspaces-core.md +3 -1
  69. package/reference/autogen/packages/workspaces-web.md +1 -1
  70. package/reference/autogen/tooling/config-eslint.md +1 -1
  71. package/reference/autogen/tooling/jskit-catalog.md +8 -9
  72. package/reference/autogen/tooling/jskit-release.md +3 -4
  73. package/reference/autogen/tooling/testUtils.md +1 -28
  74. package/skills/jskit/SKILL.md +8 -6
  75. package/skills/jskit/references/app-operations.md +1 -1
  76. package/skills/jskit/references/crud-form-actions.md +62 -0
  77. package/skills/jskit/references/crud-operations.md +9 -9
  78. package/skills/jskit/references/existing-application-migration.md +0 -7
  79. package/{patterns → skills/jskit/references/heuristics}/INDEX.md +24 -38
  80. package/{patterns → skills/jskit/references/heuristics}/child-cruds.md +2 -0
  81. package/{patterns → skills/jskit/references/heuristics}/client-requests.md +2 -0
  82. package/{patterns → skills/jskit/references/heuristics}/crud-authoring.md +2 -0
  83. package/{patterns → skills/jskit/references/heuristics}/crud-links.md +2 -0
  84. package/{patterns → skills/jskit/references/heuristics}/crud-repository-mapping.md +3 -1
  85. package/{patterns → skills/jskit/references/heuristics}/filters.md +3 -1
  86. package/{patterns → skills/jskit/references/heuristics}/live-actions.md +2 -0
  87. package/{patterns → skills/jskit/references/heuristics}/page-redirects.md +2 -0
  88. package/{patterns → skills/jskit/references/heuristics}/page-scaffolding.md +5 -3
  89. package/{patterns → skills/jskit/references/heuristics}/placements.md +2 -0
  90. package/{patterns → skills/jskit/references/heuristics}/row-policies.md +2 -0
  91. package/{patterns → skills/jskit/references/heuristics}/server-search.md +2 -0
  92. package/{patterns → skills/jskit/references/heuristics}/surfaces.md +5 -3
  93. package/{patterns → skills/jskit/references/heuristics}/ui-contract.md +3 -1
  94. package/{patterns → skills/jskit/references/heuristics}/ui-testing.md +2 -0
  95. package/skills/jskit/references/pattern-index.md +37 -37
  96. package/skills/jskit/references/patterns/app/minimal-foundation/example/AGENTS.md +19 -0
  97. package/skills/jskit/references/patterns/app/minimal-foundation/example/package.json +3 -3
  98. package/skills/jskit/references/patterns/app/minimal-foundation/example/server/lib/runtimeEnv.js +3 -11
  99. package/skills/jskit/references/patterns/app/minimal-foundation/example/src/main.js +0 -2
  100. package/skills/jskit/references/patterns/app/shell-foundation/PATTERN.md +11 -20
  101. package/skills/jskit/references/patterns/app/shell-foundation/example/AGENTS.md +19 -0
  102. package/skills/jskit/references/patterns/app/shell-foundation/example/package.json +4 -4
  103. package/skills/jskit/references/patterns/app/shell-foundation/example/packages/main/package.json +1 -1
  104. package/skills/jskit/references/patterns/app/shell-foundation/example/server/lib/runtimeEnv.js +3 -11
  105. package/skills/jskit/references/patterns/app/shell-foundation/example/src/components/ShellLayout.vue +1 -0
  106. package/skills/jskit/references/patterns/app/shell-foundation/example/src/main.js +0 -2
  107. package/skills/jskit/references/patterns/app/shell-foundation/example/src/pages/home/settings.vue +2 -2
  108. package/skills/jskit/references/patterns/auth/accounts-hub/example/package.json +2 -2
  109. package/skills/jskit/references/patterns/auth/oidc-sign-in/example/package.json +2 -2
  110. package/skills/jskit/references/patterns/auth/supabase-auth/example/package.json +1 -1
  111. package/skills/jskit/references/patterns/connectors/calendar-cli/example/package.json +4 -4
  112. package/skills/jskit/references/patterns/connectors/oauth-connection/PATTERN.md +27 -610
  113. package/skills/jskit/references/patterns/connectors/paddle-catalogue/example/create-products.js +2 -1
  114. package/skills/jskit/references/patterns/connectors/redshift-queries/PATTERN.md +1 -1
  115. package/skills/jskit/references/patterns/crud/crud-screen-set/PATTERN.md +11 -1
  116. package/skills/jskit/references/patterns/crud/json-api-resource-package/example/packages/books/package.json +2 -2
  117. package/skills/jskit/references/patterns/database/mysql-application/example/package.json +1 -1
  118. package/skills/jskit/references/patterns/database/postgres-application/example/package.json +1 -1
  119. package/skills/jskit/references/patterns/realtime/realtime-application/example/package.json +2 -2
  120. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/package.json +1 -1
  121. package/skills/jskit/references/patterns/server/feature-package/example/booking-engine/src/server/actions.js +0 -2
  122. package/skills/jskit/references/patterns/server/feature-package/example/variations/AvailabilityEngineProvider.js +1 -1
  123. package/skills/jskit/references/patterns/server/feature-package/example/variations/InvoiceRollupProvider.js +1 -1
  124. package/skills/jskit/references/patterns/shell/application-shell/example/src/pages/home/index.vue +15 -5
  125. package/skills/jskit/references/patterns/shell/application-shell/example/tests/e2e/adaptive-shell.spec.ts +1 -1
  126. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users/package.json +2 -2
  127. package/skills/jskit/references/patterns/users/user-administration-server/example/packages/users-workspace/package.json +3 -3
  128. package/templates/app/AGENTS.md +0 -38
@@ -8,115 +8,15 @@ 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/`, `.vitepress/cache/`, `.vitepress/dist/`
11
+ - Excludes: `.build/`, `.git/`, `.jscpd/`, `.jskit/`, `coverage/`, `dist/`, `docs/`, `node_modules/`, `test/`, `tests/`, `__tests__/`, `.vitepress/cache/`, `.vitepress/dist/`, `skills/jskit/references/patterns/`, `*.test.*`, `*.spec.*`, `*.vitest.*`
12
12
 
13
13
  ## Sections
14
14
 
15
15
  ### shared
16
16
 
17
- ### `shared/actions/actionContributorHelpers.js`
18
- Exports
19
- - `normalizeObject`
20
- - `toPositiveInteger`
21
- - `requireServiceMethod(service, methodName, contributorId, { serviceLabel } = {})`
22
- - `resolveRequest(context)`
23
- - `hasPermission`
24
- - `emptyInputValidator`
25
-
26
- ### `shared/actions/actionDefinitions.js`
27
- Exports
28
- - `ActionRuntimeError`
29
- - `createActionRuntimeError(status, message, options = {})`
30
- - `normalizeActionDefinition(definition, { contributorId = "", contributorDomain = "" } = {})`
31
- - `normalizeActionContributor(contributor)`
32
- - `normalizeActionDomain(value, { context = "domain", errorCode = "ACTION_DEFINITION_INVALID" } = {})`
33
- - `createActionVersionKey(actionId, version)`
34
- - `isPlainObject`
35
- - `__testables`
36
- Local functions
37
- - `normalizeStringArray(value, { fieldName, allowedSet, allowEmpty = false } = {})`
38
- - `normalizeSingleActionSchema(value, fieldName, { required = false, defaultMode = "" } = {})`
39
- - `normalizeActionInputDefinition(value, fieldName, { required = false } = {})`
40
- - `normalizeActionOutputDefinition(value, fieldName, { required = false } = {})`
41
- - `normalizeActionPermission(permission, actionId)`
42
- - `normalizeAuditConfig(audit, { actionId })`
43
- - `normalizeObservabilityConfig(observability)`
44
- - `normalizeActionExtensions(value)`
45
- - `normalizeActionEvents(value, actionId)`
46
-
47
- ### `shared/actions/audit.js`
48
- Exports
49
- - `createNoopAuditAdapter()`
50
-
51
- ### `shared/actions/executionContext.js`
52
- Exports
53
- - `normalizeExecutionContext(context = {})`
54
- - `__testables`
55
- Local functions
56
- - `copyRecord(value)`
57
- - `normalizeActor(actor)`
58
- - `normalizeTimeMeta(timeMeta)`
59
- - `copyPassthroughContextEntries(source = {})`
60
-
61
- ### `shared/actions/idempotency.js`
62
- Exports
63
- - `resolveActionIdempotencyKey(definition, context)`
64
- - `ensureIdempotencyKeyIfRequired(definition, context, key)`
65
- - `createNoopIdempotencyAdapter()`
66
- - `__testables`
67
- Local functions
68
- - `resolveRequestIdempotencyKey(context)`
69
-
70
- ### `shared/actions/observability.js`
71
- Exports
72
- - `createNoopObservabilityAdapter()`
73
-
74
- ### `shared/actions/pipeline.js`
75
- Exports
76
- - `executeActionPipeline({ definition, input, context, deps = {}, idempotencyAdapter, auditAdapter, observabilityAdapter, events, logger = console } = {})`
77
- Local functions
78
- - `publishActionEvents(events, builders, execution)`
79
- - `normalizeOutcomeErrorCode(error)`
80
- - `buildActionLogPayload({ definition, context, outcome, durationMs, errorCode, idempotencyReplay })`
81
- - `emitAuditEvent(adapter, payload)`
82
- - `executeIdempotencyClaim(adapter, payload)`
83
-
84
- ### `shared/actions/policies.js`
85
- Exports
86
- - `ensureActionChannelAllowed(definition, context)`
87
- - `ensureActionSurfaceAllowed(definition, context)`
88
- - `ensureActionPermissionAllowed(definition, context)`
89
- - `normalizeActionInput(definition, input, context)`
90
- - `normalizeActionOutput(definition, output, context)`
91
- - `__testables`
92
- Local functions
93
- - `createActionValidationError({ status = 400, message = "Validation failed.", code = "ACTION_VALIDATION_FAILED", details, cause } = {})`
94
-
95
- ### `shared/actions/registry.js`
96
- Exports
97
- - `createActionRegistry({ contributors = [], idempotencyAdapter, auditAdapter, observabilityAdapter, events, logger = console } = {})`
98
- - `__testables`
99
- Local functions
100
- - `normalizeContributors(contributors)`
101
- - `buildDefinitionIndex(contributors)`
102
- - `normalizeRequestedVersion(version)`
103
- - `resolveActionDefinition(index, actionId, version)`
104
-
105
- ### `shared/actions/requestMeta.js`
106
- Exports
107
- - `normalizeRequestMeta(requestMeta = {}, { fields = DEFAULT_FIELDS, emptyAsNull = false } = {})`
108
-
109
- ### `shared/actions/textNormalization.js`
110
- Exports
111
- - `normalizeText`
112
- - `normalizeLowerText`
113
-
114
- ### `shared/actions/withActionDefaults.js`
115
- Exports
116
- - `withActionDefaults(actions = [], defaults = {})`
117
-
118
17
  ### `shared/capabilities/defineProvider.js`
119
18
  Exports
19
+ - `ARCHITECTURE_ID_PATTERN`
120
20
  - `defineProvider({ id, requires = {}, optional = {}, provides = {}, setup, boot = null, shutdown = null } = {})`
121
21
  - `normalizeArchitectureId(value, label)`
122
22
  Local functions
@@ -126,6 +26,7 @@ Local functions
126
26
 
127
27
  ### `shared/capabilities/index.js`
128
28
  Exports
29
+ - `ARCHITECTURE_ID_PATTERN`
129
30
  - `defineProvider`
130
31
  - `createCapabilityRuntime`
131
32
 
@@ -163,7 +64,6 @@ Exports
163
64
  - `normalizePermissionList`
164
65
  - `hasPermission`
165
66
  - `normalizeReturnToPath`
166
- - `resolveAllowedOriginsFromPlacementContext`
167
67
  - `toCamelCase`
168
68
  - `toSnakeCase`
169
69
  - `isTransientQueryError`
@@ -187,6 +87,14 @@ Exports
187
87
  - `subscribeListener(listeners, listener)`
188
88
  - `createListenerSubscription(listeners)`
189
89
 
90
+ ### `shared/support/mobileConfig.js`
91
+ Exports
92
+ - `normalizeMobileCallbackPath(value = "", { fallback = "/auth/login" } = {})`
93
+ - `normalizeMobileConfig(source = {})`
94
+ Local functions
95
+ - `normalizeMobileStrategy(value = "", { fallback = "" } = {})`
96
+ - `normalizeMobileAssetMode(value = "", { fallback = "bundled" } = {})`
97
+
190
98
  ### `shared/support/normalize.js`
191
99
  Exports
192
100
  - `TRANSACTION_OUTCOMES`
@@ -200,8 +108,6 @@ Exports
200
108
  - `normalizeQueryToken(value, { fallback = "__none__" } = {})`
201
109
  - `normalizeObject(value, { fallback = {} } = {})`
202
110
  - `normalizeIfInSource(source, normalized, fieldName, normalizer = (value) => value)`
203
- - `normalizeIfPresent(value, normalizer = (entry) => entry)`
204
- - `normalizeOrNull(value, normalizer = (entry) => entry)`
205
111
  - `isRecord(value)`
206
112
  - `normalizeArray(value)`
207
113
  - `normalizeUniqueTextList(value, { acceptSingle = false } = {})`
@@ -211,10 +117,6 @@ Exports
211
117
  - `normalizeRecordId(value, { fallback = null } = {})`
212
118
  - `normalizeOpaqueId(value, { fallback = null } = {})`
213
119
  - `normalizeOneOf(value, allowedValues = [], fallback = "")`
214
- - `normalizeMobileAssetMode(value = "", { fallback = "bundled" } = {})`
215
- - `normalizeMobileCallbackPath(value = "", { fallback = "/auth/login" } = {})`
216
- - `normalizeMobileConfig(source = {})`
217
- - `normalizeMobileStrategy(value = "", { fallback = "" } = {})`
218
120
  - `ensureNonEmptyText(value, label = "value")`
219
121
 
220
122
  ### `shared/support/permissions.js`
@@ -263,7 +165,6 @@ Exports
263
165
  - `normalizeHttpOrigin(value = "")`
264
166
  - `normalizeReturnToPath(value, { fallback = "/", allowedOrigins = [], blockedPathnames = [], pickFirstArrayValue = false } = {})`
265
167
  - `resolveAllowedOriginsFromSurfaceDefinitions(surfaceDefinitions = {}, { seedOrigins = [] } = {})`
266
- - `resolveAllowedOriginsFromPlacementContext(contextValue = null, { includeWindowOrigin = true } = {})`
267
168
  Local functions
268
169
  - `staysOnSameOrigin(path)`
269
170
  - `appendNormalizedOrigin(origins, value)`
@@ -272,9 +173,7 @@ Local functions
272
173
  ### `shared/support/shellLayoutTargets.js`
273
174
  Exports
274
175
  - `PLACEMENT_LAYOUT_CLASSES`
275
- - `describeShellOutletTargets(targets = [])`
276
- - `discoverShellOutletTargetsFromVueSource(source = "", { context = "shell layout", enforceSingleDefault = true } = {})`
277
- - `findShellOutletTargetById(targets = [], targetId = "")`
176
+ - `WEB_PLACEMENT_SURFACE_ANY`
278
177
  - `normalizePlacementKind(value = "")`
279
178
  - `normalizePlacementLayoutClass(value = "")`
280
179
  - `normalizePlacementOwnerId(value = "")`
@@ -285,18 +184,13 @@ Exports
285
184
  - `normalizePlacementTopologyVariant(value = {}, { context = "placement topology variant" } = {})`
286
185
  - `normalizeSemanticPlacementId(value = "")`
287
186
  - `normalizeShellOutletTargetId(value = "")`
288
- - `normalizeShellOutletTargetRecord(value = {}, { context = "shell layout" } = {})`
289
187
  - `resolvePlacementTargetReference(value = "")`
290
- - `resolveShellOutletTargetParts({ target = "" } = {})`
291
188
  Local functions
292
- - `parseTagAttributes(attributesSource = "")`
293
189
  - `normalizePlacementRenderers(value = {})`
294
- - `isDefaultAttributeEnabled(value)`
295
190
 
296
191
  ### `shared/support/sorting.js`
297
192
  Exports
298
193
  - `sortStrings(values = [])`
299
- - `sortById(items = [], { idSelector = (item) => item?.id } = {})`
300
194
 
301
195
  ### `shared/support/stringCase.js`
302
196
  Exports
@@ -321,23 +215,11 @@ Local functions
321
215
 
322
216
  ### `shared/surface/apiPaths.js`
323
217
  Exports
324
- - `API_BASE_PATH`
325
- - `API_PREFIX`
326
- - `API_PREFIX_SLASH`
327
- - `API_DOCS_PATH`
328
- - `API_REALTIME_PATH`
329
- - `materializeRouteTemplate(routeTemplate = "/", { params = {}, strictParams = true, context = "materializeRouteTemplate" } = {})`
330
- - `normalizePathname`
331
- - `isApiPath(pathname)`
332
- - `isVersionedApiPath(pathname)`
333
- - `toVersionedApiPath(pathname)`
334
- - `toVersionedApiPrefix(pathnameOrPrefix)`
335
- - `buildVersionedApiPath(suffix)`
336
- - `isVersionedApiPrefixMatch(pathname)`
337
218
  - `resolveScopedRouteBase(routeBase = "/")`
338
219
  - `resolveScopedApiBasePath({ routeBase = "/", relativePath = "/", params = {}, strictParams = true } = {})`
339
220
  Local functions
340
221
  - `normalizeRouteTemplateParams(params = null)`
222
+ - `materializeRouteTemplate(routeTemplate = "/", { params = {}, strictParams = true, context = "materializeRouteTemplate" } = {})`
341
223
 
342
224
  ### `shared/surface/escapeRegExp.js`
343
225
  Exports
@@ -354,7 +236,8 @@ Exports
354
236
 
355
237
  ### `shared/surface/paths.js`
356
238
  Exports
357
- - `createSurfacePathHelpers(options = {})`
239
+ - `API_BASE_PATH`
240
+ - `createSurfacePathHelpers({ defaultSurfaceId, surfaceDefinitions, apiBasePath = API_BASE_PATH } = {})`
358
241
  - `normalizePathname(pathname)`
359
242
  - `matchesPathPrefix(pathname, prefix)`
360
243
  Local functions
@@ -375,8 +258,6 @@ Exports
375
258
  - `createSurfaceRuntime(options = {})`
376
259
  - `filterRoutesBySurface(routeList, { surfaceRuntime, surfaceMode } = {})`
377
260
  Local functions
378
- - `uniqueSurfaceIds(ids)`
379
- - `resolveSurfaceIds({ surfaces = {} } = {})`
380
261
  - `normalizeRoutePath(pathLike = "")`
381
262
  - `resolveAbsoluteRoutePath(parentAbsolutePath = "/", routePath = "")`
382
263
  - `readRouteJskitMeta(route)`
@@ -412,19 +293,16 @@ Exports
412
293
  - `HTML_TIME_STRING_SCHEMA`
413
294
  - `NULLABLE_HTML_TIME_STRING_SCHEMA`
414
295
  - `mergeObjectSchemas`
296
+ - `isJsonRestSchemaInstance`
415
297
  - `hasJsonRestSchemaDefinition`
416
298
  - `normalizeSingleSchemaDefinition`
417
- - `normalizeSchemaDefinition`
418
299
  - `resolveSchemaTransportSchemaDefinition`
419
- - `resolveStructuredSchemaTransportSchema`
420
300
  - `executeJsonRestSchemaDefinition`
421
301
  - `buildSchemaValidationError`
422
302
  - `validateSchemaPayload`
423
303
  - `RECORD_ID_PATTERN`
424
304
  - `recordIdSchema`
425
- - `recordIdInputSchema`
426
305
  - `nullableRecordIdSchema`
427
- - `nullableRecordIdInputSchema`
428
306
  - `recordIdParamsValidator`
429
307
  - `normalizeRequiredFieldList`
430
308
  - `deriveRequiredFieldsFromSchema`
@@ -439,7 +317,6 @@ Exports
439
317
  - `isJsonRestSchemaInstance(value)`
440
318
  - `resolveSchemaDefinitionMode(schemaDefinition = null, { defaultMode = "create", context = "schema definition.mode" } = {})`
441
319
  - `resolveSchemaDefinitionTransportSchema(schemaDefinition = null, options = {})`
442
- - `executeSchemaDefinition(schemaDefinition = null, payload, options = {})`
443
320
  - `normalizeJsonRestSchemaFieldErrors(errors = {}, schemaDefinition = null)`
444
321
  Local functions
445
322
  - `requireJsonRestSchemaInstance(schemaDefinition = null, { context = "schema definition.schema" } = {})`
@@ -458,9 +335,7 @@ Local functions
458
335
  Exports
459
336
  - `RECORD_ID_PATTERN`
460
337
  - `recordIdSchema`
461
- - `recordIdInputSchema`
462
338
  - `nullableRecordIdSchema`
463
- - `nullableRecordIdInputSchema`
464
339
  - `recordIdParamsValidator`
465
340
 
466
341
  ### `shared/validators/resourceRequiredMetadata.js`
@@ -473,9 +348,7 @@ Exports
473
348
  Exports
474
349
  - `hasJsonRestSchemaDefinition(value)`
475
350
  - `normalizeSingleSchemaDefinition(value, { context = "schema definition", defaultMode = "" } = {})`
476
- - `normalizeSchemaDefinition(value, { context = "schema definition", defaultMode = "" } = {})`
477
351
  - `resolveSchemaTransportSchemaDefinition(value, { context = "schema definition", defaultMode = "" } = {})`
478
- - `resolveStructuredSchemaTransportSchema(value, { context = "schema definition", defaultMode = "" } = {})`
479
352
  - `executeJsonRestSchemaDefinition(value, payload, { context = "schema definition", defaultMode = "" } = {})`
480
353
  - `normalizeJsonRestSchemaFieldErrors`
481
354
  Local functions
@@ -508,7 +381,6 @@ Exports
508
381
  - `isDynamicImportError(error = null)`
509
382
  - `notifyAsyncModuleLoadError(state, error = null, { label = "App module", message = "", retry = null, stale = isDynamicImportError(error) } = {})`
510
383
  Local functions
511
- - `isRecord(value)`
512
384
  - `errorText(error = null)`
513
385
 
514
386
  ### `client/componentInteraction.js`
@@ -533,12 +405,11 @@ Exports
533
405
  - `installAsyncModuleRecoveryHandlers`
534
406
  - `isDynamicImportError`
535
407
  - `notifyAsyncModuleLoadError`
536
- - `normalizeIncomingAppUrl`
537
- - `registerMobileLaunchRouting`
538
408
  - `resolveClientBootstrapDebugEnabled`
539
409
  - `createShellRouter`
540
410
  - `shellScrollBehavior`
541
411
  - `bootstrapClientShellApp`
412
+ - `DEFAULT_GUARD_EVALUATOR_KEY`
542
413
  - `createComponentInteractionEmitter`
543
414
 
544
415
  ### `client/logging.js`
@@ -546,16 +417,6 @@ Exports
546
417
  - `createStructuredLogger(logger = console)`
547
418
  - `summarizeRouterRoutes(router)`
548
419
 
549
- ### `client/mobileLaunchRouting.js`
550
- Exports
551
- - `normalizeIncomingAppUrl(url = "", mobileConfig = {}, { currentOrigin = "", allowedHttpOrigins = [] } = {})`
552
- - `registerMobileLaunchRouting({ router, mobileConfig = {}, getInitialLaunchUrl = async () => "", subscribeToLaunchUrls = () => () => {}, resolveTargetPath = null, currentOrigin = typeof window === "object" && window?.location ? String(window.location.origin || "") : "", allowedHttpOrigins = [], logger = null } = {})`
553
- Local functions
554
- - `buildNormalizedRoutePath(pathname = "/", search = "", hash = "")`
555
- - `normalizeResolvedRoutePath(value = "", fallback = "")`
556
- - `normalizeAllowedHttpOrigins({ mobileConfig = {}, currentOrigin = "", allowedHttpOrigins = [] } = {})`
557
- - `normalizeCustomSchemeRoutePath(parsedUrl)`
558
-
559
420
  ### `client/moduleBootstrap.js`
560
421
  Exports
561
422
  - `bootClientModules({ clientModules = [], app, pinia = null, queryClient = null, router, surfaceRuntime, surfaceMode, env, logger = console } = {})`
@@ -609,17 +470,14 @@ Exports
609
470
  - `DEFAULT_GUARD_EVALUATOR_KEY`
610
471
  - `createFallbackNotFoundRoute(component)`
611
472
  - `buildSurfaceAwareRoutes({ routes = [], surfaceRuntime, surfaceMode, fallbackRoute, notFoundComponent } = {})`
612
- - `createShellBeforeEachGuard({ surfaceRuntime, surfaceDefinitions, defaultSurfaceId, webRootAllowed = WEB_ROOT_ALLOW_YES, guardEvaluatorKey = DEFAULT_GUARD_EVALUATOR_KEY, authenticatedPolicy = AUTH_POLICY_AUTHENTICATED, publicPolicy = AUTH_POLICY_PUBLIC } = {})`
473
+ - `createShellBeforeEachGuard({ surfaceRuntime, webRootAllowed = WEB_ROOT_ALLOW_YES, guardEvaluatorKey = DEFAULT_GUARD_EVALUATOR_KEY, authenticatedPolicy = AUTH_POLICY_AUTHENTICATED, publicPolicy = AUTH_POLICY_PUBLIC } = {})`
613
474
  Local functions
614
475
  - `normalizeGuardPolicy(value)`
615
476
  - `resolveRouteGuardFromMeta(meta)`
616
477
  - `resolveRouteGuard(to)`
617
478
  - `resolveSearchFromFullPath(fullPath)`
618
- - `resolveSurfaceDefinition(surfaceDefinitions, surfaceId)`
619
479
  - `normalizeWebRootAllowed(value)`
620
- - `resolveDefaultSurfaceRootPath({ surfaceDefinitions, defaultSurfaceId })`
621
- - `resolveSurfaceRequiresAuth({ pathname, surfaceRuntime, surfaceDefinitions })`
622
- - `resolveEffectiveRouteGuard({ to, surfaceRuntime, surfaceDefinitions, authenticatedPolicy = AUTH_POLICY_AUTHENTICATED, publicPolicy = AUTH_POLICY_PUBLIC })`
480
+ - `resolveEffectiveRouteGuard({ to, surfaceRuntime, authenticatedPolicy, publicPolicy })`
623
481
  - `resolveGuardEvaluator(guardEvaluatorKey)`
624
482
  - `normalizeGuardOutcome(outcome)`
625
483
  - `evaluateShellGuard({ guard, to, guardEvaluatorKey })`
@@ -636,7 +494,6 @@ Exports
636
494
  - `resolveCanonicalLocalPackageId(resolvedId, localPackage)`
637
495
  - `resolveLocalPackageForSpecifier(source, localPackages = [])`
638
496
  - `resolveLocalPackageSources({ appRoot })`
639
- - `resolveInstalledClientPackageIds(options)`
640
497
  - `resolveLocalScopePackageIds({ appRoot })`
641
498
  - `resolveInstalledClientModules({ appRoot })`
642
499
  - `resolveInstalledViteProxyEntries(installedPackages = [], { proxyTarget = "" } = {})`
@@ -659,14 +516,39 @@ Exports
659
516
 
660
517
  ### `server/actions/actionCatalogue.js`
661
518
  Exports
662
- - `createActionCatalogue({ idempotencyAdapter, auditAdapter, observabilityAdapter, events, logger = null } = {})`
519
+ - `createActionCatalogue({ events, logger = null } = {})`
663
520
  Local functions
664
521
  - `normalizeRegistration(value)`
665
522
 
523
+ ### `server/actions/actionContributorHelpers.js`
524
+ Exports
525
+ - `requireServiceMethod(service, methodName, contributorId, { serviceLabel } = {})`
526
+ - `resolveRequest(context)`
527
+ - `emptyInputValidator`
528
+
529
+ ### `server/actions/actionDefinitions.js`
530
+ Exports
531
+ - `ActionRuntimeError`
532
+ - `createActionRuntimeError(status, message, options = {})`
533
+ - `normalizeActionDefinition(definition, { contributorId = "", contributorDomain = "" } = {})`
534
+ - `normalizeActionContributor(contributor)`
535
+ - `createActionVersionKey(actionId, version)`
536
+ - `__testables`
537
+ Local functions
538
+ - `normalizeActionDomain(value, { context = "domain", errorCode = "ACTION_DEFINITION_INVALID" } = {})`
539
+ - `normalizeStringArray(value, fieldName)`
540
+ - `normalizeActionSchema(value, fieldName, { required = false, defaultMode = "" } = {})`
541
+ - `normalizeActionPermission(permission, actionId)`
542
+ - `normalizeActionExtensions(value)`
543
+ - `normalizeActionEvents(value, actionId)`
544
+
666
545
  ### `server/actions/actionEvents.js`
667
546
  Exports
668
547
  - `createEntityChangedActionEvent({ source, entity, operation, entityId, realtime = null } = {})`
669
548
  Local functions
549
+ - `resolveContextScope(context = {})`
550
+ - `resolveVisibilityScope(visibilityContext = {})`
551
+ - `resolveEventScope(context = {})`
670
552
  - `resolveValue(value, execution)`
671
553
  - `normalizeRealtime(value, execution)`
672
554
 
@@ -674,12 +556,55 @@ Local functions
674
556
  Exports
675
557
  - `createActionProvider(options = {})`
676
558
 
559
+ ### `server/actions/executionContext.js`
560
+ Exports
561
+ - `normalizeExecutionContext(context = {})`
562
+ Local functions
563
+ - `copyRecord(value)`
564
+ - `normalizeActor(actor)`
565
+ - `normalizeTimeMeta(timeMeta)`
566
+ - `copyPassthroughContextEntries(source = {})`
567
+
568
+ ### `server/actions/idempotency.js`
569
+ Exports
570
+ - `ensureIdempotencyKeyIfRequired(definition, context)`
571
+
677
572
  ### `server/actions/index.js`
678
573
  Exports
679
574
  - `createActionCatalogue`
680
575
  - `createActionProvider`
681
576
  - `createEntityChangedActionEvent`
682
577
 
578
+ ### `server/actions/pipeline.js`
579
+ Exports
580
+ - `executeActionPipeline({ definition, input, context, deps = {}, events, logger = console } = {})`
581
+ Local functions
582
+ - `publishActionEvents(events, builders, execution)`
583
+ - `logActionExecution(logger, { definition, context, outcome, startedAt, errorCode = null })`
584
+
585
+ ### `server/actions/policies.js`
586
+ Exports
587
+ - `ensureActionChannelAllowed(definition, context)`
588
+ - `ensureActionSurfaceAllowed(definition, context)`
589
+ - `ensureActionPermissionAllowed(definition, context)`
590
+ - `normalizeActionInput(definition, input)`
591
+ - `normalizeActionOutput(definition, output)`
592
+ Local functions
593
+ - `createActionValidationError({ status = 400, message = "Validation failed.", code = "ACTION_VALIDATION_FAILED", details, cause } = {})`
594
+
595
+ ### `server/actions/registry.js`
596
+ Exports
597
+ - `createActionRegistry({ contributors = [], events, logger = console } = {})`
598
+ Local functions
599
+ - `normalizeContributors(contributors)`
600
+ - `buildDefinitionIndex(contributors)`
601
+ - `normalizeRequestedVersion(version)`
602
+ - `resolveActionDefinition(index, actionId, version)`
603
+
604
+ ### `server/actions/requestMeta.js`
605
+ Exports
606
+ - `normalizeRequestMeta(requestMeta = {})`
607
+
683
608
  ### `server/features/defineFeature.js`
684
609
  Exports
685
610
  - `defineFeature({ id, domain = id, requires = {}, optional = {}, provides = {}, setup = () => ({}), actions = [], actionDefaults = {}, boot = null, shutdown = null } = {})`
@@ -710,6 +635,21 @@ Local functions
710
635
  - `resolveSurface(request, explicitSurface = "", defaultSurfaceId = "")`
711
636
  - `routeVisibility(request, payload = {})`
712
637
 
638
+ ### `server/http/errorHandling.js`
639
+ Exports
640
+ - `registerJsonApiContentTypeParser(fastify)`
641
+ - `normalizeBodylessContentTypeHeader(request = null)`
642
+ - `registerBodylessContentTypeNormalizer(fastify)`
643
+ - `registerApiErrorHandler(app, { isAppError } = {})`
644
+ Local functions
645
+ - `hasHeaderValue(headers = {}, key = "")`
646
+ - `hasRequestBody(headers = {})`
647
+ - `resolveValidationFieldErrors(error)`
648
+ - `resolveRequestRouteTransport(request)`
649
+ - `applyRouteTransportErrorResponse(reply, request, error, { statusCode = 500, normalizedErrorCode = "", message = error?.message, exposeDetails = true } = {})`
650
+ - `resolveApiErrorStatus(error, code)`
651
+ - `applyErrorHeaders(reply, error)`
652
+
713
653
  ### `server/http/HttpProvider.js`
714
654
  Exports
715
655
  - `HttpProvider`
@@ -721,40 +661,12 @@ Exports
721
661
  - `attachDirectRequestActionExecutor`
722
662
  - `createCachedResponseSerializerFactory`
723
663
 
724
- ### `server/http/lib/controller.js`
725
- Exports
726
- - `BaseController`
727
- - `DEFAULT_DOMAIN_ERROR_STATUS_BY_CODE`
728
- - `resolveDomainErrorStatus({ status, code, domainErrorStatusByCode = DEFAULT_DOMAIN_ERROR_STATUS_BY_CODE, fallbackStatus = 422 } = {})`
729
- Local functions
730
- - `normalizeStatus(status, fallbackStatus)`
731
- - `normalizeCode(code)`
732
- - `ensureReply(reply, methodName)`
733
- - `applyHeaders(reply, headers)`
734
-
735
664
  ### `server/http/lib/errors.js`
736
665
  Exports
737
666
  - `HttpKernelError`
738
667
  - `RouteDefinitionError`
739
668
  - `RouteRegistrationError`
740
669
 
741
- ### `server/http/lib/index.js`
742
- Exports
743
- - `HttpKernelError`
744
- - `RouteDefinitionError`
745
- - `RouteRegistrationError`
746
- - `HttpRouter`
747
- - `createRouter`
748
- - `joinPath`
749
- - `defineRouteValidator`
750
- - `compileRouteValidator`
751
- - `resolveRouteValidatorOptions`
752
- - `BaseController`
753
- - `DEFAULT_DOMAIN_ERROR_STATUS_BY_CODE`
754
- - `resolveDomainErrorStatus`
755
- - `defaultMissingHandler`
756
- - `registerRoutes`
757
-
758
670
  ### `server/http/lib/middlewareRuntime.js`
759
671
  Exports
760
672
  - `executeMiddlewareStack(middleware, request, reply)`
@@ -769,8 +681,7 @@ Local functions
769
681
  ### `server/http/lib/router.js`
770
682
  Exports
771
683
  - `HttpRouter`
772
- - `createRouter(options = {})`
773
- - `joinPath(left, right)`
684
+ - `createRouter()`
774
685
  Local functions
775
686
  - `normalizeMethod(method)`
776
687
  - `normalizePath(pathname)`
@@ -791,10 +702,8 @@ Local functions
791
702
  - `shouldEnforceRequestContentType(method = "", transport = null, route = null)`
792
703
  - `routeRequiresJsonApiContentTypeParser(route = null)`
793
704
  - `enforceRequestContentType({ request = null, route = null, transport = null } = {})`
794
- - `attachRouteTransport(request, transport = null)`
795
705
  - `replyHasHeader(reply, name = "")`
796
- - `normalizeRouteInputTransforms(route)`
797
- - `buildRequestInput({ request = null, inputTransforms = null, transportInputTransforms = null } = {})`
706
+ - `buildRequestInput(request, { inputTransforms = null, transportInputTransforms = null } = {})`
798
707
  - `wrapReplySend({ reply = null, request = null, route = null, outputTransform = null, transport = null } = {})`
799
708
 
800
709
  ### `server/http/lib/routeSupport.js`
@@ -805,13 +714,13 @@ Exports
805
714
 
806
715
  ### `server/http/lib/routeTransport.js`
807
716
  Exports
717
+ - `JSON_API_CONTENT_TYPE`
808
718
  - `ROUTE_TRANSPORT_KINDS`
809
719
  - `normalizeRouteOutputTransform(value, { context = "route output", ErrorType = Error } = {})`
810
720
  - `normalizeRouteTransport(value, { context = "route transport", ErrorType = Error } = {})`
811
721
 
812
722
  ### `server/http/lib/routeValidator.js`
813
723
  Exports
814
- - `defineRouteValidator(definition = {})`
815
724
  - `compileRouteValidator(validator, { context = "route validator" } = {})`
816
725
  - `resolveRouteValidatorOptions({ method = "", path = "", options = {} } = {})`
817
726
  Local functions
@@ -821,8 +730,6 @@ Local functions
821
730
  - `normalizeAdvancedFastifySchema(value, { context = "route validator" } = {})`
822
731
  - `normalizeRouteValidatorMeta(value, { context = "route validator" } = {})`
823
732
  - `normalizeRouteValidatorDefinition(sourceDefinition, { context = "route validator" } = {})`
824
- - `compileNormalizedRouteValidator(normalizedValidator)`
825
- - `normalizeRouteValidatorSource(validator, { context = "route validator" } = {})`
826
733
 
827
734
  ### `server/http/responseSerializerFactory.js`
828
735
  Exports
@@ -855,11 +762,7 @@ Local functions
855
762
  ### `server/platform/providerRuntime/helpers.js`
856
763
  Exports
857
764
  - `isIdentifier(value)`
858
- - `createWildcardMatcher(pattern)`
859
- - `normalizeRelativePath(fromPath, targetPath)`
860
- - `fileExists`
861
765
  - `isInsidePackageRoot(packageRoot, candidatePath)`
862
- - `toAbsoluteSortedUniquePaths(values)`
863
766
 
864
767
  ### `server/platform/providerRuntime/packageCatalog.js`
865
768
  Exports
@@ -885,33 +788,6 @@ Exports
885
788
  - `BootstrapProvider`
886
789
  - `createBootstrapRuntime()`
887
790
 
888
- ### `server/runtime/canonicalJson.js`
889
- Exports
890
- - `toCanonicalJson(value)`
891
- - `toSha256Hex(value)`
892
- - `toHmacSha256Hex(secret, value)`
893
- - `safeParseJson(value, fallback = null)`
894
- - `__testables`
895
- Local functions
896
- - `isPlainObject(value)`
897
- - `sortValue(value)`
898
-
899
- ### `server/runtime/entityChangeEvents.js`
900
- Exports
901
- - `resolveDefaultScope(visibilityContext = {}, runtime = {})`
902
- - `createEntityChangePublisher({ domainEvents, source, entity, scopeResolver = resolveDefaultScope } = {})`
903
- - `createRealtimeEntityChangePublisher({ domainEvents, source, entity, event, serviceId, methodName, scopeResolver = resolveDefaultScope } = {})`
904
- - `createNoopEntityChangePublisher()`
905
- Local functions
906
- - `resolveContextScope(context = {})`
907
- - `resolveVisibilityScope(visibilityContext = {}, runtimeContext = {})`
908
- - `resolveCommandId(requestMeta = {})`
909
- - `resolveSourceClientId(requestMeta = {})`
910
- - `normalizeMetaTextField(source = {}, fieldName = "", { context = "realtime entity change" } = {})`
911
- - `normalizeRealtimePayload(value, { context = "realtime entity change.payload" } = {})`
912
- - `createRealtimeEntityChangeMeta({ serviceId, methodName, event, change = {} } = {})`
913
- - `resolveRealtimeEntityChangeOptions(change = {}, options = {})`
914
-
915
791
  ### `server/runtime/errors.js`
916
792
  Exports
917
793
  - `isAppError(error)`
@@ -931,27 +807,6 @@ Local functions
931
807
  - `normalizeListener(value)`
932
808
  - `normalizeEvent(value)`
933
809
 
934
- ### `server/runtime/fastifyBootstrap.js`
935
- Exports
936
- - `resolveLoggerLevel({ configuredLevel = "", nodeEnv = "development", allowedLevels = [] } = {})`
937
- - `createFastifyLoggerOptions({ configuredLevel = "", nodeEnv = "development", allowedLevels = [], redactPaths = [], redactCensor = "[REDACTED]" } = {})`
938
- - `registerJsonApiContentTypeParser(fastify)`
939
- - `normalizeBodylessContentTypeHeader(request = null)`
940
- - `registerBodylessContentTypeNormalizer(fastify)`
941
- - `registerRequestLoggingHooks(app, { requestStartedAtSymbol, getPathname, getSurface, observeRequest, enableRequestLogs = true, defaultSurfaceId = "" } = {})`
942
- - `registerApiErrorHandler(app, { isAppError, onRecordDbError, onCaptureServerError, appErrorLogMessage = "AppError 5xx", unhandledErrorLogMessage = "Unhandled error" } = {})`
943
- - `resolveDatabaseErrorCode(error)`
944
- - `recordDbErrorBestEffort(observabilityService, error)`
945
- - `runGracefulShutdown({ signal = "", exitProcess = false, exitCode = 0, timeoutMs = 10_000, appInstance = null, stopBackgroundRuntimes = () => {}, closeDatabase = async () => {}, logger = console } = {})`
946
- Local functions
947
- - `createFallbackJsonBodyParser()`
948
- - `hasHeaderValue(headers = {}, key = "")`
949
- - `hasRequestBody(headers = {})`
950
- - `resolveValidationFieldErrors(error)`
951
- - `resolveRequestRouteTransport(request)`
952
- - `applyRouteTransportErrorResponse(reply, request, error, { statusCode = 500, normalizedErrorCode = "", message = error?.message, exposeDetails = true } = {})`
953
- - `resolveApiErrorStatus(error, code)`
954
-
955
810
  ### `server/runtime/index.js`
956
811
  Exports
957
812
  - `AppError`
@@ -966,28 +821,6 @@ Exports
966
821
  ### `server/runtime/integers.js`
967
822
  Exports
968
823
  - `parsePositiveInteger(value)`
969
- - `normalizeNullablePositiveInteger(value)`
970
-
971
- ### `server/runtime/moduleConfig.js`
972
- Exports
973
- - `ModuleConfigError`
974
- - `defineModuleConfig({ moduleId, schema, load = ({ env }) => env, transform = null, validate = null, coerce = false, freeze = true } = {})`
975
- Local functions
976
- - `normalizeModuleId(value)`
977
- - `normalizeSchema(value)`
978
- - `formatIssues(issues = [])`
979
- - `buildInvalidConfigMessage(moduleId, issues = [])`
980
- - `normalizeCustomValidationIssues(result)`
981
- - `validateSchemaOrThrow({ moduleId, schema, value, coerce = false })`
982
-
983
- ### `server/runtime/pagination.js`
984
- Exports
985
- - `normalizePagination(pagination = {}, { defaultPage = 1, defaultPageSize = 20, maxPageSize = 100 } = {})`
986
-
987
- ### `server/runtime/realtimeNormalization.js`
988
- Exports
989
- - `normalizePositiveIntegerOrNull(value)`
990
- - `normalizeScopeKind(value)`
991
824
 
992
825
  ### `server/runtime/requestUrl.js`
993
826
  Exports
@@ -995,38 +828,13 @@ Exports
995
828
  - `safePathnameFromRequest(request)`
996
829
  - `resolveClientIpAddress(request)`
997
830
 
998
- ### `server/runtime/routeUtils.js`
999
- Exports
1000
- - `defaultMissingHandler`
1001
- - `normalizeIdempotencyKey(value)`
1002
- - `requireIdempotencyKey(request)`
1003
-
1004
- ### `server/runtime/securityAudit.js`
1005
- Exports
1006
- - `buildAuditEventBase(request, { resolveSurfaceFromPathname = null, defaultSurfaceId = "" } = {})`
1007
- - `buildAuditError(error)`
1008
- - `recordAuditEvent({ auditService, request, event, resolveSurfaceFromPathname = null, defaultSurfaceId = "" })`
1009
- - `withAuditEvent({ auditService, request, action, execute, shared, metadata, onSuccess, onFailure, resolveSurfaceFromPathname = null, defaultSurfaceId = "" })`
1010
- - `__testables`
1011
- Local functions
1012
- - `resolveAuditSurface(pathnameValue, explicitSurface = "", resolveSurfaceFromPathname = null, defaultSurfaceId = "")`
1013
- - `normalizeObjectPayload(value)`
1014
- - `resolveObjectPayload(value, context)`
1015
- - `mergeMetadataPayloads(...payloads)`
1016
- - `buildEventPayload({ action, outcome, shared, event, metadata, context })`
1017
- - `mergeFailureMetadata(error, metadata)`
1018
- - `logAuditFailure(request, payload, message)`
1019
- - `safeBuildEventPayload({ request, action, outcome, shared, event, metadata, context, stage })`
1020
- - `safeRecordAuditEvent({ auditService, request, event, resolveSurfaceFromPathname = null, defaultSurfaceId = "" })`
1021
-
1022
831
  ### `server/runtime/serviceAuthorization.js`
1023
832
  Exports
1024
- - `resolveServiceContext(source = {})`
1025
- - `hasPermission`
1026
833
  - `requireAuth(source = {}, options = {})`
1027
834
  Local functions
835
+ - `resolveServiceContext(source = {})`
1028
836
  - `resolveRequireMode(value)`
1029
- - `normalizeRequireAuthOptions(options = {}, { context = "requireAuth options" } = {})`
837
+ - `normalizeRequireAuthOptions(options = {})`
1030
838
  - `requireAuthenticatedActor(context = {}, options = {})`
1031
839
 
1032
840
  ### `server/support/appConfig.js`
@@ -1045,10 +853,8 @@ Local functions
1045
853
  ### `server/support/appConfigFiles.js`
1046
854
  Exports
1047
855
  - `loadAppConfigFromAppRoot({ appRoot = "", publicConfigRelativePath = PUBLIC_CONFIG_RELATIVE_PATH, serverConfigRelativePath = SERVER_CONFIG_RELATIVE_PATH } = {})`
1048
- - `loadAppConfigFromModuleUrl({ moduleUrl = import.meta.url, publicConfigRelativePath = PUBLIC_CONFIG_RELATIVE_PATH, serverConfigRelativePath = SERVER_CONFIG_RELATIVE_PATH } = {})`
1049
856
  Local functions
1050
857
  - `normalizeConfigObject(value)`
1051
- - `resolveAppRootFromModuleUrl(moduleUrl, { publicConfigRelativePath = PUBLIC_CONFIG_RELATIVE_PATH } = {})`
1052
858
  - `loadConfigModuleAtPath(absolutePath)`
1053
859
 
1054
860
  ### `server/support/defaultMissingHandler.js`
@@ -1077,7 +883,6 @@ Exports
1077
883
  - `resolveClientAssetMode`
1078
884
  - `resolveMobileCallbackUrls`
1079
885
  - `loadAppConfigFromAppRoot`
1080
- - `loadAppConfigFromModuleUrl`
1081
886
  - `importFreshModuleFromAbsolutePath`
1082
887
  - `collectPackageDependencyIds`
1083
888
  - `collectRootDependencySpecifiers`
@@ -1085,67 +890,8 @@ Exports
1085
890
  - `discoverInstalledPackages`
1086
891
  - `resolveRequiredAppRoot`
1087
892
  - `toPosixPath`
1088
- - `DEFAULT_PAGE_LINK_COMPONENT_TOKEN`
1089
- - `DEFAULT_SUBPAGE_LINK_COMPONENT_TOKEN`
1090
- - `listSurfacePageRoots`
1091
- - `normalizePagesRelativeTargetFile`
1092
- - `normalizePagesRelativeTargetRoot`
1093
- - `resolveBestSurfaceMatchFromPageFile`
1094
- - `resolvePageTargetDetails`
1095
- - `deriveDefaultSubpagesHost`
1096
- - `resolveNearestParentSubpagesHost`
1097
- - `resolvePageLinkTargetDetails`
1098
- - `discoverPlacementTopologyFromApp`
1099
- - `discoverShellOutletSourcePathsFromApp`
1100
- - `discoverShellOutletTargetsFromApp`
1101
- - `resolveSemanticPlacementTargetFromApp`
1102
- - `resolveShellOutletPlacementTargetFromApp`
1103
893
  - `tryAcquireExclusiveFileLock`
1104
894
 
1105
- ### `server/support/pageTargets.js`
1106
- Exports
1107
- - `DEFAULT_PAGE_LINK_COMPONENT_TOKEN`
1108
- - `DEFAULT_SUBPAGE_LINK_COMPONENT_TOKEN`
1109
- - `listSurfacePageRoots(appRoot = "", { context = "page target" } = {})`
1110
- - `normalizePagesRelativeTargetFile(targetFile = "", { context = "page target", label = "target file" } = {})`
1111
- - `normalizePagesRelativeTargetRoot(targetRoot = "", { context = "page target", label = "target root" } = {})`
1112
- - `resolveBestSurfaceMatchFromPageFile(relativePath = "", surfacePageRoots = [], { context = "page target" } = {})`
1113
- - `resolvePageTargetDetails({ appRoot, targetFile = "", context = "page target" } = {})`
1114
- - `deriveDefaultSubpagesHost(pageTarget = {})`
1115
- - `resolveNearestParentSubpagesHost({ appRoot, pageTarget = {}, context = "page target" } = {})`
1116
- - `resolvePageLinkTargetDetails({ appRoot, targetFile = "", pageTarget = null, placement = "", componentToken = "", linkTo = "", context = "page target" } = {})`
1117
- Local functions
1118
- - `normalizeRelativeFilePath(value = "")`
1119
- - `validateVueTargetFile(relativePath = "", { context = "page target" } = {})`
1120
- - `isAbsolutePathInput(value = "")`
1121
- - `resolvePagesRelativeAppPath(value = "", { context = "page target", label = "target path" } = {})`
1122
- - `splitTextIntoWords(value = "")`
1123
- - `wordsToKebab(words = [])`
1124
- - `toTitleCase(words = [])`
1125
- - `isRouteGroupSegment(value = "")`
1126
- - `isIndexRouteSegment(value = "")`
1127
- - `isPathlessRouteSegment(value = "")`
1128
- - `normalizePlacementIdSegment(value = "")`
1129
- - `humanizePageSegment(value = "", fallback = "Page")`
1130
- - `loadPublicConfig(appRoot = "", { context = "page target" } = {})`
1131
- - `normalizeSurfaceAccessPolicyId(value = "")`
1132
- - `resolveSurfaceRequiresAuth(surfaceDefinition = {}, surfaceAccessPolicies = {})`
1133
- - `deriveSurfaceMatchesFromPageFile(relativePath = "", surfacePageRoots = [])`
1134
- - `compareSurfaceMatchSpecificity(leftMatch = {}, rightMatch = {})`
1135
- - `deriveRouteInfoFromSurfaceRelativeFile(surfaceRelativeFilePath = "", surfaceId = "")`
1136
- - `buildRouteUrlSuffixFromVisibleSegments(segments = [])`
1137
- - `buildAncestorRouteContexts(pageTarget = {})`
1138
- - `buildParentPageFileCandidates(pageTarget = {}, ancestorRoute = {})`
1139
- - `resolveSubpagesHostTargetFromPageSource(source = "")`
1140
- - `normalizePlacementTargetId(target = {})`
1141
- - `resolveConcreteTargetOwner(target = "")`
1142
- - `topologyPlacementTargetsConcreteOutlet(placement = {}, target = "")`
1143
- - `resolveSemanticPlacementTargetForConcreteOutlet({ appRoot, concreteTarget = "", surface = "", context = "page target" } = {})`
1144
- - `resolveRelativeLinkToFromParent(pageTarget = {}, parentHost = null)`
1145
- - `resolveRelativeLinkToFromNearestIndexOwner(pageTarget = {})`
1146
- - `resolveInferredPageLinkTo({ explicitLinkTo = "", pageTarget = {}, parentHost = null, preservesRelativeSubpageLinks = false, suppressImplicitRelativeLinks = false } = {})`
1147
- - `renderPageLinkWhenLine(pageTarget = {})`
1148
-
1149
895
  ### `server/support/path.js`
1150
896
  Exports
1151
897
  - `resolveRequiredAppRoot(appRoot, { context = "operation" } = {})`
@@ -1156,27 +902,6 @@ Exports
1156
902
  - `normalizeRoutePolicyConfig(routeOptions, route)`
1157
903
  - `defaultApplyRoutePolicy(routeOptions, route)`
1158
904
 
1159
- ### `server/support/shellOutlets.js`
1160
- Exports
1161
- - `discoverPlacementTopologyFromApp({ appRoot } = {})`
1162
- - `discoverShellOutletSourcePathsFromApp({ appRoot, sourceRoot = "src" } = {})`
1163
- - `discoverShellOutletTargetsFromApp({ appRoot, sourceRoot = "src" } = {})`
1164
- - `resolveSemanticPlacementTargetFromApp({ appRoot, placement = "", owner = "", surface = "", context = "ui-generator" } = {})`
1165
- - `resolveShellOutletPlacementTargetFromApp({ appRoot, placement = "", context = "ui-generator" } = {})`
1166
- Local functions
1167
- - `parseTagAttributes(attributesSource = "")`
1168
- - `isDefaultEnabled(value)`
1169
- - `normalizeAppRouteOutletTarget({ outlet = {}, sourcePath = "" } = {})`
1170
- - `discoverRouteMetaOutletTargetsFromVueSource(source = "", { context = "shell layout", enforceSingleDefault = true } = {})`
1171
- - `collectVueFilePaths(rootDirectoryPath)`
1172
- - `normalizePackageOutletTarget({ packageId = "", outlet = {}, manifestPath = "" } = {})`
1173
- - `collectInstalledPackageOutletTargets(appRoot)`
1174
- - `withTopologySource(placement = {}, sourcePath = "")`
1175
- - `loadAppPlacementTopology(appRoot)`
1176
- - `collectInstalledPackagePlacementTopology(appRoot)`
1177
- - `findSemanticPlacementById(placements = [], { id = "", owner = "", surface = "" } = {})`
1178
- - `collectAppSourceShellOutletTargets({ appRoot, sourceRoot = "src", enforceSingleDefault = true, context = "discoverShellOutletTargetsFromApp" } = {})`
1179
-
1180
905
  ### `server/support/symlinkSafeRequire.js`
1181
906
  Exports
1182
907
  - `symlinkSafeRequire(moduleId = "")`
@@ -1186,27 +911,6 @@ Local functions
1186
911
  - `createEntryScriptRequire()`
1187
912
  - `uniqueRequireChain(candidates = [])`
1188
913
 
1189
- ### `server/surface/index.js`
1190
- Exports
1191
- - `createSurfaceRegistry`
1192
- - `normalizeSurfaceId`
1193
- - `createSurfacePathHelpers`
1194
- - `createSurfaceRuntime`
1195
- - `filterRoutesBySurface`
1196
- - `escapeRegExp`
1197
- - `API_BASE_PATH`
1198
- - `API_PREFIX`
1199
- - `API_PREFIX_SLASH`
1200
- - `API_DOCS_PATH`
1201
- - `API_REALTIME_PATH`
1202
- - `normalizePathname`
1203
- - `isApiPath`
1204
- - `isVersionedApiPath`
1205
- - `toVersionedApiPath`
1206
- - `toVersionedApiPrefix`
1207
- - `buildVersionedApiPath`
1208
- - `isVersionedApiPrefixMatch`
1209
-
1210
914
  ### _testable
1211
915
 
1212
916
  ### `_testable/index.js`
@@ -1230,7 +934,6 @@ Exports
1230
934
  - `createPackageMetadata(packageJson = {})`
1231
935
  - `discoverInstalledPackages({ appRoot } = {})`
1232
936
  Local functions
1233
- - `readJsonFile(filePath, fallback = {})`
1234
937
  - `resolveFileDependencyRoot(appRoot, specifier = "")`
1235
938
  - `resolveInstalledPackageRoot({ appRoot, packageId, parentPackageRoot = "" })`
1236
939
  - `resolvePackageRoots({ appRoot, packageId, directSpecifier = "", parentPackageRoot = "" })`