@jskit-ai/agent-docs 0.1.26 → 0.1.28
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.
- package/DISTR_AGENT.md +1 -0
- package/guide/agent/app-extras/assistant.md +9 -20
- package/guide/agent/app-extras/mobile-capacitor.md +381 -0
- package/guide/agent/app-extras/realtime.md +13 -12
- package/guide/agent/app-setup/a-more-interesting-shell.md +102 -87
- package/guide/agent/app-setup/authentication.md +50 -31
- package/guide/agent/app-setup/console.md +8 -8
- package/guide/agent/app-setup/database-layer.md +15 -15
- package/guide/agent/app-setup/initial-scaffolding.md +37 -5
- package/guide/agent/app-setup/multi-homing.md +50 -47
- package/guide/agent/app-setup/quickstart.md +11 -14
- package/guide/agent/app-setup/users.md +24 -24
- package/guide/agent/app-setup/working-with-the-jskit-cli.md +18 -10
- package/guide/agent/generators/advanced-cruds.md +111 -68
- package/guide/agent/generators/crud-generators.md +5 -5
- package/guide/agent/generators/ui-generators.md +44 -36
- package/guide/agent/index.md +3 -2
- package/package.json +1 -1
- package/patterns/INDEX.md +4 -1
- package/patterns/client-requests.md +23 -6
- package/patterns/crud-repository-mapping.md +1 -1
- package/patterns/crud-scaffolding.md +10 -1
- package/patterns/filters.md +28 -10
- package/patterns/generated-ui-contract-tracking.md +62 -0
- package/patterns/page-scaffolding.md +20 -2
- package/patterns/placements.md +67 -1
- package/patterns/surfaces.md +5 -1
- package/patterns/ui-testing.md +3 -0
- package/reference/autogen/KERNEL_MAP.md +46 -1
- package/reference/autogen/README.md +3 -0
- package/reference/autogen/packages/assistant.md +2 -1
- package/reference/autogen/packages/auth-web.md +20 -1
- package/reference/autogen/packages/crud-ui-generator.md +20 -8
- package/reference/autogen/packages/google-rewarded-core.md +222 -0
- package/reference/autogen/packages/google-rewarded-web.md +71 -0
- package/reference/autogen/packages/kernel.md +94 -10
- package/reference/autogen/packages/mobile-capacitor.md +76 -0
- package/reference/autogen/packages/realtime.md +1 -0
- package/reference/autogen/packages/shell-web.md +48 -3
- package/reference/autogen/packages/ui-generator.md +34 -2
- package/reference/autogen/packages/users-core.md +2 -0
- package/reference/autogen/packages/users-web.md +92 -4
- package/reference/autogen/packages/workspaces-web.md +3 -2
- package/reference/autogen/tooling/jskit-cli.md +114 -9
- package/templates/app/AGENTS.md +1 -0
- package/workflow/bootstrap.md +1 -0
|
@@ -39,6 +39,7 @@ Exports
|
|
|
39
39
|
- None
|
|
40
40
|
Local functions
|
|
41
41
|
- `resolveSeverityColor(severity = "error")`
|
|
42
|
+
- `resolveSeverityIcon(severity = "error")`
|
|
42
43
|
- `resolveTimeout(entry)`
|
|
43
44
|
- `dismiss(entry)`
|
|
44
45
|
- `runAction(entry)`
|
|
@@ -48,6 +49,17 @@ Local functions
|
|
|
48
49
|
### `src/client/components/ShellLayout.vue`
|
|
49
50
|
Exports
|
|
50
51
|
- None
|
|
52
|
+
Local functions
|
|
53
|
+
- `handlePullPointerDown(event)`
|
|
54
|
+
- `handlePullPointerMove(event)`
|
|
55
|
+
- `handlePullPointerEnd(event)`
|
|
56
|
+
- `handlePullPointerCancel(event)`
|
|
57
|
+
- `cancelPullRefresh()`
|
|
58
|
+
- `refreshFromPullGesture()`
|
|
59
|
+
- `canStartPullRefresh(event)`
|
|
60
|
+
- `isPrimaryTouchPointer(event)`
|
|
61
|
+
- `isAtPageTop()`
|
|
62
|
+
- `isPullRefreshIgnoredTarget(target)`
|
|
51
63
|
|
|
52
64
|
### `src/client/components/ShellMenuLinkItem.vue`
|
|
53
65
|
Exports
|
|
@@ -61,6 +73,21 @@ Exports
|
|
|
61
73
|
Exports
|
|
62
74
|
- None
|
|
63
75
|
|
|
76
|
+
### `src/client/components/ShellRouteTransition.vue`
|
|
77
|
+
Exports
|
|
78
|
+
- None
|
|
79
|
+
Local functions
|
|
80
|
+
- `handlePointerDown(event)`
|
|
81
|
+
- `handlePointerMove(event)`
|
|
82
|
+
- `handlePointerEnd(event)`
|
|
83
|
+
- `handlePointerCancel(event)`
|
|
84
|
+
- `navigateBySwipe(offset = 0)`
|
|
85
|
+
- `isAcceptedSwipe({ deltaX = 0, deltaY = 0, elapsed = 1, velocity = null } = {})`
|
|
86
|
+
- `normalizeComparablePathname(value = "")`
|
|
87
|
+
- `pathMatchesNavigationEntry(pathname = "", entry = {})`
|
|
88
|
+
- `isPrimaryPointerEvent(event)`
|
|
89
|
+
- `isSwipeIgnoredTarget(target)`
|
|
90
|
+
|
|
64
91
|
### `src/client/components/ShellSurfaceAwareMenuLinkItem.vue`
|
|
65
92
|
Exports
|
|
66
93
|
- None
|
|
@@ -96,16 +123,18 @@ Exports
|
|
|
96
123
|
Exports
|
|
97
124
|
- `ERROR_CHANNELS`
|
|
98
125
|
- `ERROR_SEVERITIES`
|
|
126
|
+
- `ERROR_INTENTS`
|
|
99
127
|
- `isRecord`
|
|
100
128
|
- `normalizeText(value, fallback = "")`
|
|
101
129
|
- `normalizeChannel(value, fallback = "")`
|
|
102
130
|
- `normalizeSeverity(value, fallback = "error")`
|
|
131
|
+
- `normalizeErrorIntent(value, fallback = "")`
|
|
103
132
|
- `normalizeNonNegativeInteger(value, fallback = 0)`
|
|
104
133
|
- `normalizeAction(value)`
|
|
105
134
|
|
|
106
135
|
### `src/client/error/policy.js`
|
|
107
136
|
Exports
|
|
108
|
-
- `createDefaultErrorPolicy({ defaultChannel = "snackbar",
|
|
137
|
+
- `createDefaultErrorPolicy({ defaultChannel = "snackbar", resourceLoadChannel = "silent", actionFeedbackChannel = "snackbar", appRecoverableChannel = "banner", blockingChannel = "dialog", defaultSeverity = "error" } = {})`
|
|
109
138
|
|
|
110
139
|
### `src/client/error/presentationDefaults.js`
|
|
111
140
|
Exports
|
|
@@ -143,6 +172,7 @@ Exports
|
|
|
143
172
|
- `ShellLayout`
|
|
144
173
|
- `ShellOutlet`
|
|
145
174
|
- `ShellOutletMenuWidget`
|
|
175
|
+
- `ShellRouteTransition`
|
|
146
176
|
- `ShellErrorHost`
|
|
147
177
|
- `ShellMenuLinkItem`
|
|
148
178
|
- `ShellSurfaceAwareMenuLinkItem`
|
|
@@ -184,6 +214,8 @@ Local functions
|
|
|
184
214
|
### `src/client/placement/index.js`
|
|
185
215
|
Exports
|
|
186
216
|
- `createPlacementRegistry`
|
|
217
|
+
- `definePlacement`
|
|
218
|
+
- `definePlacementTopology`
|
|
187
219
|
- `useWebPlacementContext`
|
|
188
220
|
- `resolveRuntimePathname`
|
|
189
221
|
- `readPlacementSurfaceConfig`
|
|
@@ -220,7 +252,10 @@ Local functions
|
|
|
220
252
|
- `debugLog(message, payload = null)`
|
|
221
253
|
- `createRuntimeLogger(logger)`
|
|
222
254
|
- `normalizePlacementList(placements, context = {})`
|
|
255
|
+
- `normalizeTopologyList(topology, context = {})`
|
|
223
256
|
- `matchesSurface(placementSurfaces, requestedSurface)`
|
|
257
|
+
- `resolveTopologyPlacement(topologyEntries = [], placement = {}, requestedSurface = WEB_PLACEMENT_SURFACE_ANY)`
|
|
258
|
+
- `resolveRenderablePlacement({ placement = {}, topologyEntries = [], requestedSurface = WEB_PLACEMENT_SURFACE_ANY, requestedTarget = "", requestedLayoutClass = "compact" } = {})`
|
|
224
259
|
- `resolveContextContributors(app, baseContext = {}, logger)`
|
|
225
260
|
- `resolvePlacementComponent(app, placement, logger, missingTokens, invalidComponentTokens, failedTokens)`
|
|
226
261
|
- `shouldIncludePlacement(placement, placementContext, logger)`
|
|
@@ -253,6 +288,8 @@ Exports
|
|
|
253
288
|
- `normalizePlacementSurfaces(value, { strict = false, source = "placement" } = {})`
|
|
254
289
|
- `normalizePlacementDefinition(value, { strict = false, source = "placement" } = {})`
|
|
255
290
|
- `definePlacement(value = {})`
|
|
291
|
+
- `definePlacementTopology(value = {})`
|
|
292
|
+
- `normalizeSemanticPlacementId`
|
|
256
293
|
Local functions
|
|
257
294
|
- `isValidSurfaceIdToken(value = "")`
|
|
258
295
|
- `toInteger(value, fallback = 1000)`
|
|
@@ -260,13 +297,16 @@ Local functions
|
|
|
260
297
|
### `src/client/providers/ShellWebClientProvider.js`
|
|
261
298
|
Exports
|
|
262
299
|
- `ShellWebClientProvider`
|
|
300
|
+
- `resolveAppPlacementTopologyExport(exported, logger)`
|
|
263
301
|
Local functions
|
|
264
|
-
- `createShellWebQueryClient()`
|
|
265
302
|
- `isMissingDynamicModule(error, moduleSpecifier)`
|
|
266
303
|
- `loadAppPlacementDefinitions(logger)`
|
|
304
|
+
- `loadAppPlacementTopology(logger)`
|
|
267
305
|
- `createErrorConfigToolkit(errorRuntime)`
|
|
268
306
|
- `loadAppErrorConfig(logger, errorRuntime)`
|
|
269
307
|
- `applyAppErrorConfig(errorRuntime, errorConfig = {})`
|
|
308
|
+
- `isPullRefreshQuery(query = null)`
|
|
309
|
+
- `createShellRefreshRuntime({ app, logger = null } = {})`
|
|
270
310
|
- `installVueErrorBridge(vueApp, errorRuntime, logger)`
|
|
271
311
|
- `installRouterErrorBridge(app, errorRuntime, logger)`
|
|
272
312
|
|
|
@@ -342,7 +382,7 @@ Exports
|
|
|
342
382
|
|
|
343
383
|
### `templates/src/components/ShellLayout.vue`
|
|
344
384
|
Exports
|
|
345
|
-
-
|
|
385
|
+
- `default`
|
|
346
386
|
|
|
347
387
|
### `templates/src/error.js`
|
|
348
388
|
Exports
|
|
@@ -373,6 +413,11 @@ Exports
|
|
|
373
413
|
- `addPlacement`
|
|
374
414
|
- `getPlacements()`
|
|
375
415
|
|
|
416
|
+
### `templates/src/placementTopology.js`
|
|
417
|
+
Exports
|
|
418
|
+
- `addPlacementTopology(value = {})`
|
|
419
|
+
- `default`
|
|
420
|
+
|
|
376
421
|
### root
|
|
377
422
|
|
|
378
423
|
### `package.descriptor.mjs`
|
|
@@ -17,13 +17,20 @@ Use this on demand; do not load the full index at startup.
|
|
|
17
17
|
### `src/server/buildTemplateContext.js`
|
|
18
18
|
Exports
|
|
19
19
|
- `buildUiPageTemplateContext({ appRoot, targetFile = "", options = {} } = {})`
|
|
20
|
+
- `normalizeNavigationRole`
|
|
21
|
+
- `resolveNavigationInferenceRoutePath(pageTarget = {})`
|
|
22
|
+
- `resolveNavigationRoleLinkPlacement(options = {}, inferenceContext = {})`
|
|
23
|
+
- `shouldCreateNavigationLink(options = {}, inferenceContext = {})`
|
|
20
24
|
Local functions
|
|
21
25
|
- `resolveLinkToPropLine(linkTo = "")`
|
|
26
|
+
- `resolveOwnerLine(owner = "")`
|
|
22
27
|
|
|
23
28
|
### `src/server/subcommands/addSubpages.js`
|
|
24
29
|
Exports
|
|
25
30
|
- `runGeneratorSubcommand({ appRoot, subcommand = "", args = [], options = {}, dryRun = false } = {})`
|
|
26
31
|
Local functions
|
|
32
|
+
- `resolveOutletOwner(target = "")`
|
|
33
|
+
- `renderSectionNavTopologyBlock({ marker = "", owner = "", surface = "", target = "" } = {})`
|
|
27
34
|
- `resolveSubpagesOutletTarget(options = {}, pageTarget = {})`
|
|
28
35
|
|
|
29
36
|
### `src/server/subcommands/element.js`
|
|
@@ -40,8 +47,24 @@ Local functions
|
|
|
40
47
|
- `hasShellOutletTarget(source = "", { target = "" } = {})`
|
|
41
48
|
- `applyScriptImports(source = "")`
|
|
42
49
|
- `createOutletBlock({ target = "" } = {})`
|
|
50
|
+
- `resolveOutletOwner(target = "")`
|
|
51
|
+
- `resolveSemanticPlacementOption(options = {}, { context = "ui-generator outlet" } = {})`
|
|
52
|
+
- `resolveOptionalSemanticPlacementOption(options = {}, { context = "ui-generator outlet" } = {})`
|
|
53
|
+
- `resolveVariantOwners(variantTargets = {})`
|
|
54
|
+
- `resolveSemanticPlacementOwner({ placementId = "", targetId = "", variantTargets = null, owner = "", context = "ui-generator outlet" } = {})`
|
|
55
|
+
- `resolveTopologyKind(options = {}, { context = "ui-generator outlet", defaultKind = "", required = false } = {})`
|
|
56
|
+
- `resolveTopologyVariantTargets(options = {}, { context = "ui-generator topology", fallbackTarget = "" } = {})`
|
|
57
|
+
- `hasTopologyOptions(options = {})`
|
|
58
|
+
- `resolveTopologySurfaces(options = {})`
|
|
59
|
+
- `renderTopologyOwnerLine(owner = "")`
|
|
60
|
+
- `renderLinkRendererBlock(rendererToken = "")`
|
|
61
|
+
- `renderTopologyVariantBlock({ layoutClass = "", target = "", kind = "", rendererToken = "" } = {})`
|
|
62
|
+
- `renderOutletTopologyBlock({ marker = "", placementId = "", owner = "", surfaces = ["*"], description = "", target = "", variantTargets = null, kind = "link", rendererToken = "" } = {})`
|
|
43
63
|
- `findLastTemplateCloseTag(source = "")`
|
|
44
64
|
- `applyOutletTemplateBlock(source = "", { target = "" } = {})`
|
|
65
|
+
- `prepareTopologyBlock({ appRoot, topologyPath = null, context = "ui-generator topology", placementId = "", owner = "", surfaces = ["*"], description = "", target = "", variantTargets = null, kind = "", rendererToken = "" } = {})`
|
|
66
|
+
- `applyTopologyBlock(options = {})`
|
|
67
|
+
- `runTopologySubcommand({ appRoot, options = {}, dryRun = false } = {})`
|
|
45
68
|
|
|
46
69
|
### `src/server/subcommands/page.js`
|
|
47
70
|
Exports
|
|
@@ -59,11 +82,12 @@ Exports
|
|
|
59
82
|
- `resolvePageTargetDetails`
|
|
60
83
|
- `resolveNearestParentSubpagesHost`
|
|
61
84
|
- `deriveDefaultSubpagesHost`
|
|
62
|
-
- `renderPlainPageSource(pageTitle = "")`
|
|
85
|
+
- `renderPlainPageSource(pageTitle = "", { surfaceId = "", routePath = "" } = {})`
|
|
63
86
|
- `ensureSubpagesSupportScaffold({ appRoot, componentDirectory = DEFAULT_COMPONENT_DIRECTORY, dryRun = false } = {})`
|
|
64
87
|
- `applySubpagesUpgradeToPageSource(source = "", { target = "", title = "", subtitle = "", sectionContainerComponentImportPath = "/src/components/SectionContainerShell.vue", preserveExistingContent = true } = {})`
|
|
65
88
|
- `upgradePageFileToSubpages({ appRoot, targetFile, target = "", title = "", subtitle = "", componentDirectory = DEFAULT_COMPONENT_DIRECTORY, preserveExistingContent = true, dryRun = false } = {})`
|
|
66
89
|
Local functions
|
|
90
|
+
- `resolveGeneratedPageSurfaceProfile({ surfaceId = "", routePath = "" } = {})`
|
|
67
91
|
- `trimEdgeBlankLines(source = "")`
|
|
68
92
|
- `renderSectionContainerShellSource()`
|
|
69
93
|
- `findTemplateBlock(source = "")`
|
|
@@ -79,6 +103,7 @@ Exports
|
|
|
79
103
|
- `DEFAULT_COMPONENT_DIRECTORY`
|
|
80
104
|
- `MAIN_CLIENT_PROVIDER_FILE`
|
|
81
105
|
- `PLACEMENT_FILE`
|
|
106
|
+
- `PLACEMENT_TOPOLOGY_FILE`
|
|
82
107
|
- `toKebabCase(value = "")`
|
|
83
108
|
- `toPascalCase(value = "")`
|
|
84
109
|
- `requireOption(options = {}, optionName = "", { context = "ui-generator" } = {})`
|
|
@@ -90,9 +115,16 @@ Exports
|
|
|
90
115
|
- `appendBlockIfMarkerMissing(source = "", marker = "", block = "")`
|
|
91
116
|
- `insertImportIfMissing(source = "", importLine = "")`
|
|
92
117
|
- `insertBeforeClassDeclaration(source = "", line = "", { className = "", contextFile = "" } = {})`
|
|
93
|
-
- `
|
|
118
|
+
- `findScriptSetupBlock(source = "")`
|
|
119
|
+
- `insertScriptSetupBlock(source = "", content = "")`
|
|
120
|
+
- `appendTopologyBlockIfPlacementMissing({ topologyPath = {}, source = "", marker = "", block = "", placementId = "", owner = "", variantTargets = null, context = "ui-generator topology" } = {})`
|
|
94
121
|
- `parseTagAttributes(attributesSource = "")`
|
|
95
122
|
- `indentBlock(source = "", indent = "")`
|
|
123
|
+
Local functions
|
|
124
|
+
- `loadPlacementTopologyDefinitionFromPath(topologyPath = {}, { context = "ui-generator topology" } = {})`
|
|
125
|
+
- `normalizeExpectedTopologyVariantTargets(variantTargets = null)`
|
|
126
|
+
- `describeTopologyVariantTargets(variantTargets = {})`
|
|
127
|
+
- `placementMatchesExpectedVariantTargets(placement = {}, expectedVariantTargets = null)`
|
|
96
128
|
|
|
97
129
|
### root
|
|
98
130
|
|
|
@@ -289,6 +289,8 @@ Exports
|
|
|
289
289
|
### `templates/packages/users-workspace/src/server/actions.js`
|
|
290
290
|
Exports
|
|
291
291
|
- `createActions({ surface } = {})`
|
|
292
|
+
Local functions
|
|
293
|
+
- `buildListQuery(input = {})`
|
|
292
294
|
|
|
293
295
|
### `templates/packages/users-workspace/src/server/registerRoutes.js`
|
|
294
296
|
Exports
|
|
@@ -28,6 +28,12 @@ Exports
|
|
|
28
28
|
- `createUsersBootstrapUserHandler()`
|
|
29
29
|
- `registerUsersBootstrapPayloadHandlers(app)`
|
|
30
30
|
|
|
31
|
+
### `src/client/bulkActions.js`
|
|
32
|
+
Exports
|
|
33
|
+
- `defineCrudListBulkActions(actions = [])`
|
|
34
|
+
Local functions
|
|
35
|
+
- `normalizeCrudListBulkAction(rawAction = {}, index = 0)`
|
|
36
|
+
|
|
31
37
|
### `src/client/components/AccountSettingsClientElement.vue`
|
|
32
38
|
Exports
|
|
33
39
|
- None
|
|
@@ -35,6 +41,44 @@ Local functions
|
|
|
35
41
|
- `normalizeSection(value)`
|
|
36
42
|
- `readRouteSection()`
|
|
37
43
|
|
|
44
|
+
### `src/client/components/CrudAddEditScreen.vue`
|
|
45
|
+
Exports
|
|
46
|
+
- None
|
|
47
|
+
Local functions
|
|
48
|
+
- `resolveFieldErrors(fieldKey)`
|
|
49
|
+
- `resolveCancelTo(target = cancelTo.value)`
|
|
50
|
+
|
|
51
|
+
### `src/client/components/CrudListBulkActionSurface.vue`
|
|
52
|
+
Exports
|
|
53
|
+
- None
|
|
54
|
+
Local functions
|
|
55
|
+
- `clearSelection()`
|
|
56
|
+
- `execute(action = {})`
|
|
57
|
+
- `isActionDisabled(action = {})`
|
|
58
|
+
- `isActionExecuting(action = {})`
|
|
59
|
+
|
|
60
|
+
### `src/client/components/CrudListFilterSurface.vue`
|
|
61
|
+
Exports
|
|
62
|
+
- None
|
|
63
|
+
Local functions
|
|
64
|
+
- `optionItems(filter = {})`
|
|
65
|
+
- `placeholder(filter = {}, fallback = "")`
|
|
66
|
+
- `clearChip(chip = {})`
|
|
67
|
+
- `clearFilters()`
|
|
68
|
+
|
|
69
|
+
### `src/client/components/CrudListScreen.vue`
|
|
70
|
+
Exports
|
|
71
|
+
- None
|
|
72
|
+
Local functions
|
|
73
|
+
- `resolveListRecordTitle(record)`
|
|
74
|
+
- `formatListCardValue(value)`
|
|
75
|
+
- `resolveViewLocation(record)`
|
|
76
|
+
- `resolveEditLocation(record)`
|
|
77
|
+
|
|
78
|
+
### `src/client/components/CrudViewScreen.vue`
|
|
79
|
+
Exports
|
|
80
|
+
- None
|
|
81
|
+
|
|
38
82
|
### `src/client/components/ProfileClientElement.vue`
|
|
39
83
|
Exports
|
|
40
84
|
- None
|
|
@@ -226,7 +270,7 @@ Exports
|
|
|
226
270
|
### `src/client/composables/runtime/operationUiHelpers.js`
|
|
227
271
|
Exports
|
|
228
272
|
- `setupRouteChangeCleanup({ enabled = true, route = null, feedback = null, fieldBag = null } = {})`
|
|
229
|
-
- `setupOperationErrorReporting({ enabled = true, source = "users-web.operation", loadError = null, notFoundError = null, loadActionFactory = null, notFoundActionFactory = null, loadChannel = "
|
|
273
|
+
- `setupOperationErrorReporting({ enabled = true, source = "users-web.operation", loadError = null, notFoundError = null, loadActionFactory = null, notFoundActionFactory = null, loadChannel = "", notFoundChannel = "", loadSeverity = "error", notFoundSeverity = "warning", dedupeWindowMs = 2000 } = {})`
|
|
230
274
|
Local functions
|
|
231
275
|
- `normalizeMessage(value)`
|
|
232
276
|
|
|
@@ -246,7 +290,7 @@ Exports
|
|
|
246
290
|
Exports
|
|
247
291
|
- `buildEndpointReadRequestOptions({ method = "GET", query = null, transport = null } = {})`
|
|
248
292
|
- `buildEndpointWriteRequestOptions({ method = "PATCH", body = undefined, options = null, transport = null } = {})`
|
|
249
|
-
- `useEndpointResource({ queryKey, path = "", enabled = true, client = usersWebHttpClient, readMethod = "GET", writeMethod = "PATCH", readQuery = null, transport = null, queryOptions = null, mutationOptions = null, fallbackLoadError = "Unable to load resource.", fallbackSaveError = "Unable to save resource." } = {})`
|
|
293
|
+
- `useEndpointResource({ queryKey, path = "", enabled = true, client = usersWebHttpClient, readMethod = "GET", writeMethod = "PATCH", readQuery = null, transport = null, refreshOnPull = false, queryOptions = null, mutationOptions = null, fallbackLoadError = "Unable to load resource.", fallbackSaveError = "Unable to save resource." } = {})`
|
|
250
294
|
Local functions
|
|
251
295
|
- `resolveRequestQuery(value = null)`
|
|
252
296
|
|
|
@@ -265,7 +309,7 @@ Local functions
|
|
|
265
309
|
|
|
266
310
|
### `src/client/composables/runtime/useUiFeedback.js`
|
|
267
311
|
Exports
|
|
268
|
-
- `useUiFeedback({ initialType = "success", source = "users-web.ui-feedback", successChannel = "
|
|
312
|
+
- `useUiFeedback({ initialType = "success", source = "users-web.ui-feedback", successChannel = "", errorChannel = "", dedupeWindowMs = 2000 } = {})`
|
|
269
313
|
|
|
270
314
|
### `src/client/composables/runtime/useViewCore.js`
|
|
271
315
|
Exports
|
|
@@ -337,6 +381,7 @@ Exports
|
|
|
337
381
|
### `src/client/composables/support/resourceLoadStateHelpers.js`
|
|
338
382
|
Exports
|
|
339
383
|
- `hasResolvedQueryData({ query = null, data = null } = {})`
|
|
384
|
+
- `mergeQueryMeta(queryOptions = null, meta = {})`
|
|
340
385
|
|
|
341
386
|
### `src/client/composables/support/routeTemplateHelpers.js`
|
|
342
387
|
Exports
|
|
@@ -388,6 +433,19 @@ Exports
|
|
|
388
433
|
Exports
|
|
389
434
|
- `useCommand({ ownershipFilter = ROUTE_VISIBILITY_WORKSPACE, surfaceId = "", access = "auto", apiSuffix = "", runPermissions = [], writeMethod = "POST", transport = null, placementSource = "users-web.command", fallbackRunError = "Unable to complete action.", fieldErrorKeys = [], clearOnRouteChange = true, model, input, buildRawPayload, buildCommandPayload, buildCommandOptions, onRunSuccess, onRunError, suppressSuccessMessage = false, messages = {}, realtime = null } = {})`
|
|
390
435
|
|
|
436
|
+
### `src/client/composables/useCrudAddEditScreen.js`
|
|
437
|
+
Exports
|
|
438
|
+
- `useCrudAddEditScreen({ screen = null, mode = "new", title = "", subtitle = "", saveLabel = "Save", cancelTo = "", resource = null, operationName = "", formFields = [], addEditOptions = {}, saveSuccess = {}, fieldBinding = null, createModel = null, buildPayload = null, mapPayloadToModel = null, input = null, preserveCancelQuery = false } = {})`
|
|
439
|
+
Local functions
|
|
440
|
+
- `normalizeProvidedScreen(screen = null)`
|
|
441
|
+
|
|
442
|
+
### `src/client/composables/useCrudListBulkActions.js`
|
|
443
|
+
Exports
|
|
444
|
+
- `useCrudListBulkActions(actions = [], { resolveRecordId = null, resolveContext = null } = {})`
|
|
445
|
+
Local functions
|
|
446
|
+
- `normalizeSelectedId(value = "")`
|
|
447
|
+
- `resolveActionKey(actionOrKey = "")`
|
|
448
|
+
|
|
391
449
|
### `src/client/composables/useCrudListFilterLookups.js`
|
|
392
450
|
Exports
|
|
393
451
|
- `useCrudListFilterLookups(definitions = {}, { values = {}, adapter = null, recordIdParam = "recordId", queryKeyPrefix = [], placementSourcePrefix = "", requestQueryParams = {}, labelResolvers = {} } = {})`
|
|
@@ -412,6 +470,16 @@ Exports
|
|
|
412
470
|
Local functions
|
|
413
471
|
- `normalizeQueryKeyPrefix(value = [])`
|
|
414
472
|
|
|
473
|
+
### `src/client/composables/useCrudListScreen.js`
|
|
474
|
+
Exports
|
|
475
|
+
- `useCrudListScreen({ adapter = null, resource = null, resourceNamespace = "resource", apiSuffix = "", recordIdParam = "recordId", recordIdSelector = null, titleFallbackFieldKey = "", viewUrlTemplate = "", editUrlTemplate = "", newUrlTemplate = "", recordChangedEvents = [], listFilters = {}, listBulkActions = [], routeQueryBlacklist = Object.freeze(["include", "cursor", "limit"]), fallbackLoadError = "Unable to load records." } = {})`
|
|
476
|
+
Local functions
|
|
477
|
+
- `formatCrudListCardValue(value)`
|
|
478
|
+
|
|
479
|
+
### `src/client/composables/useCrudViewScreen.js`
|
|
480
|
+
Exports
|
|
481
|
+
- `useCrudViewScreen({ adapter = null, resource = null, resourceNamespace = "resource", apiUrlTemplate = "", recordIdParam = "recordId", titleFallbackFieldKey = "", listUrlTemplate = "", editUrlTemplate = "", recordChangedEvent = "", fallbackLoadError = "Unable to load record.", notFoundMessage = "Record not found." } = {})`
|
|
482
|
+
|
|
415
483
|
### `src/client/composables/usePagedCollection.js`
|
|
416
484
|
Exports
|
|
417
485
|
- `usePagedCollection({ queryKey, enabled = true, initialPageParam = null, queryFn, getNextPageParam = defaultGetNextPageParam, selectItems = defaultSelectItems, dedupeBy = null, queryOptions = null, fallbackLoadError = "Unable to load list." } = {})`
|
|
@@ -450,10 +518,31 @@ Local functions
|
|
|
450
518
|
Exports
|
|
451
519
|
- `useSurfaceRouteContext()`
|
|
452
520
|
|
|
521
|
+
### `src/client/filters.js`
|
|
522
|
+
Exports
|
|
523
|
+
- `CRUD_LIST_FILTER_TYPE_FLAG`
|
|
524
|
+
- `CRUD_LIST_FILTER_TYPE_ENUM`
|
|
525
|
+
- `CRUD_LIST_FILTER_TYPE_ENUM_MANY`
|
|
526
|
+
- `CRUD_LIST_FILTER_TYPE_RECORD_ID`
|
|
527
|
+
- `CRUD_LIST_FILTER_TYPE_RECORD_ID_MANY`
|
|
528
|
+
- `CRUD_LIST_FILTER_TYPE_DATE`
|
|
529
|
+
- `CRUD_LIST_FILTER_TYPE_DATE_RANGE`
|
|
530
|
+
- `CRUD_LIST_FILTER_TYPE_NUMBER_RANGE`
|
|
531
|
+
- `CRUD_LIST_FILTER_TYPE_PRESENCE`
|
|
532
|
+
- `CRUD_LIST_FILTER_PRESENCE_PRESENT`
|
|
533
|
+
- `CRUD_LIST_FILTER_PRESENCE_MISSING`
|
|
534
|
+
- `CRUD_LIST_FILTER_PRESENCE_OPTIONS`
|
|
535
|
+
- `defineCrudListFilters`
|
|
536
|
+
|
|
453
537
|
### `src/client/index.js`
|
|
454
538
|
Exports
|
|
455
539
|
- `UsersWebClientProvider`
|
|
456
540
|
- `AccountSettingsClientElement`
|
|
541
|
+
- `CrudAddEditScreen`
|
|
542
|
+
- `CrudListBulkActionSurface`
|
|
543
|
+
- `CrudListFilterSurface`
|
|
544
|
+
- `CrudListScreen`
|
|
545
|
+
- `CrudViewScreen`
|
|
457
546
|
- `clientProviders`
|
|
458
547
|
|
|
459
548
|
### `src/client/lib/bootstrap.js`
|
|
@@ -502,7 +591,6 @@ Exports
|
|
|
502
591
|
|
|
503
592
|
### `src/shared/toolsOutletContracts.js`
|
|
504
593
|
Exports
|
|
505
|
-
- `DEFAULT_COG_LINK_COMPONENT_TOKEN`
|
|
506
594
|
- `HOME_COG_OUTLET`
|
|
507
595
|
|
|
508
596
|
### templates
|
|
@@ -89,6 +89,7 @@ Local functions
|
|
|
89
89
|
- `normalizeInvites(entries)`
|
|
90
90
|
- `latestPage(pages)`
|
|
91
91
|
- `applyWorkspaceSettingsPolicy(payload = {})`
|
|
92
|
+
- `refreshLoad()`
|
|
92
93
|
- `submitInvite()`
|
|
93
94
|
- `submitRevokeInvite(inviteId)`
|
|
94
95
|
- `submitMemberRoleUpdate(member, roleSid)`
|
|
@@ -103,7 +104,7 @@ Exports
|
|
|
103
104
|
- None
|
|
104
105
|
Local functions
|
|
105
106
|
- `normalizePendingInvite(entry)`
|
|
106
|
-
- `reportFeedback({ message, severity = "error", channel = "
|
|
107
|
+
- `reportFeedback({ message, severity = "error", channel = "", dedupeKey = "" } = {})`
|
|
107
108
|
- `workspaceInitials(workspace)`
|
|
108
109
|
- `workspaceAvatarStyle(workspace)`
|
|
109
110
|
- `workspaceHomePath(workspaceSlug)`
|
|
@@ -112,6 +113,7 @@ Local functions
|
|
|
112
113
|
- `acceptInvite(invite)`
|
|
113
114
|
- `refuseInvite(invite)`
|
|
114
115
|
- `createWorkspace()`
|
|
116
|
+
- `refreshBootstrap()`
|
|
115
117
|
|
|
116
118
|
### `src/client/components/WorkspaceSettingsClientElement.vue`
|
|
117
119
|
Exports
|
|
@@ -321,7 +323,6 @@ Exports
|
|
|
321
323
|
|
|
322
324
|
### `src/shared/toolsOutletContracts.js`
|
|
323
325
|
Exports
|
|
324
|
-
- `DEFAULT_COG_LINK_COMPONENT_TOKEN`
|
|
325
326
|
- `ADMIN_COG_OUTLET`
|
|
326
327
|
|
|
327
328
|
### templates
|
|
@@ -82,6 +82,8 @@ Local functions
|
|
|
82
82
|
- `discoverGenerators(appRoot)`
|
|
83
83
|
- `discoverRuntimePackages(appRoot)`
|
|
84
84
|
- `extractMatches(source = "", patterns = [])`
|
|
85
|
+
- `discoverSemanticPlacementTargets(appRoot)`
|
|
86
|
+
- `discoverConcretePlacementTargets(appRoot)`
|
|
85
87
|
- `discoverComponentTokens(appRoot)`
|
|
86
88
|
- `isRouteLikeRelativePath(relativePath = "")`
|
|
87
89
|
- `discoverPagesRelativeDirectories(appRoot)`
|
|
@@ -116,6 +118,8 @@ Exports
|
|
|
116
118
|
Local functions
|
|
117
119
|
- `normalizePackageKind(rawValue, descriptorPath)`
|
|
118
120
|
- `validateFileMutationShape(descriptor, descriptorPath)`
|
|
121
|
+
- `validateLifecycleHookSpec(spec = {}, descriptorPath, label = "lifecycle hook")`
|
|
122
|
+
- `validateLifecycleShape(descriptor, descriptorPath)`
|
|
119
123
|
|
|
120
124
|
### `src/server/cliRuntime/ioAndMigrations.js`
|
|
121
125
|
Exports
|
|
@@ -166,12 +170,12 @@ Exports
|
|
|
166
170
|
|
|
167
171
|
### `src/server/cliRuntime/mutations/fileMutations.js`
|
|
168
172
|
Exports
|
|
169
|
-
- `applyFileMutations(packageEntry, appRoot, preparedMutations, managedFiles, managedMigrations, touchedFiles, warnings = [], existingManagedFiles = [], { reapplyManagedAppFiles = false } = {})`
|
|
173
|
+
- `applyFileMutations(packageEntry, appRoot, preparedMutations, managedFiles, managedMigrations, touchedFiles, warnings = [], existingManagedFiles = [], { dryRun = false, reapplyManagedAppFiles = false } = {})`
|
|
170
174
|
- `prepareFileMutations(packageEntry, options, appRoot, fileMutations, existingManagedFiles = [])`
|
|
171
175
|
|
|
172
176
|
### `src/server/cliRuntime/mutations/installMigrationMutation.js`
|
|
173
177
|
Exports
|
|
174
|
-
- `applyInstallMigrationMutation({ packageEntry, preparedMutation, appRoot, managedMigrations, managedMigrationById, touchedFiles, warnings } = {})`
|
|
178
|
+
- `applyInstallMigrationMutation({ packageEntry, preparedMutation, appRoot, managedMigrations, managedMigrationById, touchedFiles, warnings, dryRun = false } = {})`
|
|
175
179
|
|
|
176
180
|
### `src/server/cliRuntime/mutations/mutationPathUtils.js`
|
|
177
181
|
Exports
|
|
@@ -194,7 +198,7 @@ Exports
|
|
|
194
198
|
|
|
195
199
|
### `src/server/cliRuntime/mutations/textMutations.js`
|
|
196
200
|
Exports
|
|
197
|
-
- `applyTextMutations(packageEntry, appRoot, textMutations, options, managedText, touchedFiles)`
|
|
201
|
+
- `applyTextMutations(packageEntry, appRoot, textMutations, options, managedText, touchedFiles, { dryRun = false } = {})`
|
|
198
202
|
- `partitionPreFileConfigTextMutations(textMutations = [])`
|
|
199
203
|
- `resolvePositioningMutations(descriptorMutations = {})`
|
|
200
204
|
Local functions
|
|
@@ -219,9 +223,9 @@ Local functions
|
|
|
219
223
|
### `src/server/cliRuntime/packageInstallFlow.js`
|
|
220
224
|
Exports
|
|
221
225
|
- `adoptAppLocalPackageDependencies({ appRoot, appPackageJson, lock })`
|
|
222
|
-
- `applyPackageInstall({ packageEntry, packageOptions, appRoot, appPackageJson, lock, packageRegistry, touchedFiles, reportTemplateFetchStatus = null })`
|
|
223
|
-
- `applyPackageMigrationsOnly({ packageEntry, packageOptions, appRoot, lock, touchedFiles })`
|
|
224
|
-
- `applyPackagePositioning({ packageEntry, packageOptions, appRoot, lock, touchedFiles })`
|
|
226
|
+
- `applyPackageInstall({ packageEntry, packageOptions, appRoot, appPackageJson, lock, packageRegistry, touchedFiles, reportTemplateFetchStatus = null, dryRun = false })`
|
|
227
|
+
- `applyPackageMigrationsOnly({ packageEntry, packageOptions, appRoot, lock, touchedFiles, dryRun = false })`
|
|
228
|
+
- `applyPackagePositioning({ packageEntry, packageOptions, appRoot, lock, touchedFiles, dryRun = false })`
|
|
225
229
|
Local functions
|
|
226
230
|
- `createManagedRecordBase(packageEntry, options)`
|
|
227
231
|
- `cloneManagedMap(value = {})`
|
|
@@ -262,6 +266,7 @@ Local functions
|
|
|
262
266
|
Exports
|
|
263
267
|
- `normalizePlacementContributions(value)`
|
|
264
268
|
- `normalizePlacementOutlets(value)`
|
|
269
|
+
- `normalizePlacementTopology(value, { context = "package placement topology" } = {})`
|
|
265
270
|
|
|
266
271
|
### `src/server/cliRuntime/packageIntrospection/providerBindingIntrospection.js`
|
|
267
272
|
Exports
|
|
@@ -338,10 +343,10 @@ Exports
|
|
|
338
343
|
- `normalizeViteDevProxyConfig(value = {}, { context = "vite proxy config" } = {})`
|
|
339
344
|
- `resolveViteDevProxyConfigAbsolutePath(appRoot)`
|
|
340
345
|
- `loadViteDevProxyConfig(appRoot, { context = "vite proxy config" } = {})`
|
|
341
|
-
- `writeViteDevProxyConfig(appRoot, config = {}, touchedFiles = null)`
|
|
346
|
+
- `writeViteDevProxyConfig(appRoot, config = {}, touchedFiles = null, { dryRun = false } = {})`
|
|
342
347
|
- `normalizeViteProxyMutationRecord(value = {})`
|
|
343
|
-
- `applyViteMutations(packageEntry, appRoot, viteMutations, options, managedVite, touchedFiles)`
|
|
344
|
-
- `removeManagedViteProxyEntries({ appRoot, packageId, managedViteChanges = {}, touchedFiles = null } = {})`
|
|
348
|
+
- `applyViteMutations(packageEntry, appRoot, viteMutations, options, managedVite, touchedFiles, { dryRun = false } = {})`
|
|
349
|
+
- `removeManagedViteProxyEntries({ appRoot, packageId, managedViteChanges = {}, touchedFiles = null, dryRun = false } = {})`
|
|
345
350
|
|
|
346
351
|
### `src/server/commandHandlers/app.js`
|
|
347
352
|
Exports
|
|
@@ -435,10 +440,103 @@ Local functions
|
|
|
435
440
|
- `resolveGeneratorDescription(packageEntry = {})`
|
|
436
441
|
- `resolveGeneratorQuickStartRows(packageEntry = {}, { limit = 3 } = {})`
|
|
437
442
|
- `isLinkItemToken(token = "")`
|
|
443
|
+
- `collectPlacementRendererKinds(placementTarget = {})`
|
|
444
|
+
- `collectPlacementConcreteOutlets(placementTarget = {})`
|
|
445
|
+
- `classifyPlacementTarget(placementTarget = {})`
|
|
446
|
+
- `createConcreteTargetSourcePathMap(concreteTargets = [])`
|
|
447
|
+
- `resolveChildPagePatternFromHostSourcePath(sourcePath = "")`
|
|
448
|
+
- `resolveOwnerScopedChildPagePattern(placementTarget = {}, concreteSourcePathByTarget = new Map())`
|
|
449
|
+
- `createPlacementTargetSummary(placementTarget = {}, color, { concreteSourcePathByTarget = new Map() } = {})`
|
|
450
|
+
- `appendPlacementLayoutDetails(lines, placementTarget = {}, color)`
|
|
451
|
+
- `collectMappedConcreteOutletIds(semanticPlacements = [])`
|
|
452
|
+
- `resolveUnmappedConcreteTargets({ semanticPlacements = [], concreteTargets = [] } = {})`
|
|
453
|
+
- `formatPlacementGuidanceLine(line = "", color)`
|
|
454
|
+
- `appendPlacementGroup(lines, { color, title = "", description = "", guidance = [], targets = [], concreteSourcePathByTarget = new Map(), showLayoutDetails = false } = {})`
|
|
455
|
+
- `appendUnmappedConcreteTargetWarnings(lines, { color, concreteTargets = [] } = {})`
|
|
456
|
+
- `appendSemanticPlacementGroups(lines, { color, semanticPlacements = [], concreteTargets = [], showLayoutDetails = false } = {})`
|
|
438
457
|
- `readFileIfExists(filePath = "")`
|
|
439
458
|
- `resolveDescriptorFromLockEntry({ appRoot = "", packageId = "", installedPackageEntry = {} } = {})`
|
|
440
459
|
- `collectProviderSourceFiles(rootPath = "")`
|
|
441
460
|
|
|
461
|
+
### `src/server/commandHandlers/mobile.js`
|
|
462
|
+
Exports
|
|
463
|
+
- `createMobileCommands(ctx = {})`
|
|
464
|
+
Local functions
|
|
465
|
+
- `collectManagedMobileFileDriftIssues({ ctx, appRoot, issues = [] } = {})`
|
|
466
|
+
- `renderAndroidMobileCommandList(lines, color)`
|
|
467
|
+
- `renderMobileHelp(stream, definition = null, platform = "")`
|
|
468
|
+
- `isValidHttpOrHttpsUrl(value = "")`
|
|
469
|
+
- `normalizeInlineOptions(options = {})`
|
|
470
|
+
- `parsePortNumber(rawValue, { createCliError, optionLabel = "--port" } = {})`
|
|
471
|
+
- `parseAdbDeviceList(output = "")`
|
|
472
|
+
- `resolveAdbReversePort({ mobileConfig = null, explicitPort = "", createCliError } = {})`
|
|
473
|
+
- `runCapturedBinary(binaryName, args = [], { cwd = process.cwd(), env = {}, createCliError, notFoundMessage = "" } = {})`
|
|
474
|
+
- `listVisibleAndroidDevices({ ctx, appRoot } = {})`
|
|
475
|
+
- `resolveAndroidDeviceTarget({ ctx, appRoot, explicitTarget = "", commandLabel = "this mobile command" } = {})`
|
|
476
|
+
- `resolveInstalledMobileConfigForCommand({ appRoot, createCliError } = {})`
|
|
477
|
+
- `runLocalBinary(binaryName, args = [], { appRoot, cwd = appRoot, env = {}, stderr, stdout, pathModule, createCliError, dryRun = false } = {})`
|
|
478
|
+
- `hasPackageDependency(packageJson = {}, packageId = "")`
|
|
479
|
+
- `readJsonFileForMobileCommand(filePath = "", label = "", createCliError)`
|
|
480
|
+
- `assertMobileRuntimePackageInstalled({ ctx, appRoot } = {})`
|
|
481
|
+
- `refreshManagedMobileFiles({ ctx, appRoot, options = {}, stdout } = {})`
|
|
482
|
+
- `runMobileSyncAndroidCommand({ ctx, appRoot, options = {}, stdout, stderr })`
|
|
483
|
+
- `runMobileRunAndroidCommand({ ctx, appRoot, options = {}, stdout, stderr })`
|
|
484
|
+
- `runCapRunAndroidCommand({ ctx, appRoot, pathModule, target = "", stdout, stderr, dryRun = false } = {})`
|
|
485
|
+
- `runMobileBuildAndroidCommand({ ctx, appRoot, options = {}, stdout, stderr })`
|
|
486
|
+
- `runMobileDoctorCommand({ ctx, appRoot, stdout })`
|
|
487
|
+
- `runMobileDevicesAndroidCommand({ ctx, appRoot, stdout })`
|
|
488
|
+
- `runMobileTunnelAndroidCommand({ ctx, appRoot, options = {}, stdout })`
|
|
489
|
+
- `runMobileRestartAndroidCommand({ ctx, appRoot, options = {}, stdout })`
|
|
490
|
+
- `runMobileDevAndroidCommand({ ctx, appRoot, options = {}, stdout, stderr })`
|
|
491
|
+
|
|
492
|
+
### `src/server/commandHandlers/mobileCommandCatalog.js`
|
|
493
|
+
Exports
|
|
494
|
+
- `MOBILE_COMMAND_DEFINITIONS`
|
|
495
|
+
- `listMobileCommandDefinitions()`
|
|
496
|
+
- `resolveMobileCommandDefinition(rawName = "")`
|
|
497
|
+
- `buildMobileCommandOptionMeta(subcommandName = "")`
|
|
498
|
+
|
|
499
|
+
### `src/server/commandHandlers/mobileShellSupport.js`
|
|
500
|
+
Exports
|
|
501
|
+
- `CAPACITOR_CONFIG_FILE`
|
|
502
|
+
- `ANDROID_DIRECTORY_NAME`
|
|
503
|
+
- `ANDROID_MANIFEST_RELATIVE_PATH`
|
|
504
|
+
- `buildManagedMobileConfigStub({ packageJson = {} } = {})`
|
|
505
|
+
- `isEmptyDisabledMobileConfigPlaceholder(mobileConfig = {})`
|
|
506
|
+
- `resolveInstalledMobileConfig(appRoot = "")`
|
|
507
|
+
- `resolveAndroidSdkDetails({ appRoot = "" } = {})`
|
|
508
|
+
- `collectAndroidSdkComponentIssues({ appRoot = "", sdkRoot = "" } = {})`
|
|
509
|
+
- `assertAndroidSdkConfigured({ ctx, appRoot } = {})`
|
|
510
|
+
- `collectCapacitorShellInstallIssues({ ctx, appRoot } = {})`
|
|
511
|
+
- `ensureMobileConfigStub({ ctx, appRoot, packageJson = {}, dryRun = false, stdout } = {})`
|
|
512
|
+
- `buildManagedDeepLinkIntentFilterBlock(mobileConfig = {})`
|
|
513
|
+
- `injectManagedDeepLinkBlock(manifestSource = "", managedBlock = "")`
|
|
514
|
+
- `assertCapacitorShellInstalled({ ctx, appRoot })`
|
|
515
|
+
- `ensureAndroidManifestDeepLinks({ ctx, appRoot, dryRun = false, stdout } = {})`
|
|
516
|
+
- `collectAndroidNativeShellIdentityIssues({ ctx, appRoot } = {})`
|
|
517
|
+
- `ensureAndroidNativeShellIdentity({ ctx, appRoot, dryRun = false, stdout } = {})`
|
|
518
|
+
- `renderManagedMobileFile({ appRoot, relativeTargetPath, packageId = CAPACITOR_RUNTIME_PACKAGE_ID } = {})`
|
|
519
|
+
Local functions
|
|
520
|
+
- `normalizeRelativePosixPath(pathValue = "")`
|
|
521
|
+
- `escapeRegExp(value = "")`
|
|
522
|
+
- `pathExists(targetPath = "")`
|
|
523
|
+
- `humanizeAppName(value = "")`
|
|
524
|
+
- `slugifyForIdentifier(value = "")`
|
|
525
|
+
- `parseAndroidSdkDirFromLocalProperties(source = "")`
|
|
526
|
+
- `buildAndroidNativeConfig(mobileConfig = {})`
|
|
527
|
+
- `replaceRequiredPattern(source = "", pattern, replacement, label = "pattern")`
|
|
528
|
+
- `escapeXmlText(value = "")`
|
|
529
|
+
- `replaceXmlStringValue(source = "", stringName = "", value = "")`
|
|
530
|
+
- `renderAndroidVariablesGradleSource(source = "", nativeConfig = {})`
|
|
531
|
+
- `renderAndroidAppBuildGradleSource(source = "", nativeConfig = {})`
|
|
532
|
+
- `renderAndroidStringsSource(source = "", nativeConfig = {})`
|
|
533
|
+
- `renderAndroidMainActivitySource(source = "", packageName = "", extension = ".java")`
|
|
534
|
+
- `listFilesRecursively(rootDirectoryPath = "")`
|
|
535
|
+
- `resolveAndroidMainActivityEntry(appRoot = "")`
|
|
536
|
+
- `shouldAllowAndroidCleartextTraffic(mobileConfig = {})`
|
|
537
|
+
- `renderAndroidManifestApplicationTrafficPolicy(manifestSource = "", mobileConfig = {})`
|
|
538
|
+
- `renderManagedAndroidManifest(manifestSource = "", mobileConfig = {})`
|
|
539
|
+
|
|
442
540
|
### `src/server/commandHandlers/package.js`
|
|
443
541
|
Exports
|
|
444
542
|
- `createPackageCommands(ctx = {})`
|
|
@@ -448,6 +546,13 @@ Exports
|
|
|
448
546
|
- `runPackageAddCommand(ctx = {}, { positional, options, cwd, io })`
|
|
449
547
|
Local functions
|
|
450
548
|
- `collectPlacementComponentTokensFromManagedRecords(installedPackageRecords = [])`
|
|
549
|
+
- `renderWrappedShellCommand(binaryName, args = [], { maxWidth = 100, continuationIndent = " " } = {})`
|
|
550
|
+
- `runLocalProjectBinary(binaryName, args = [], { appRoot, io, pathModule = path, createCliError, explanation = "", dryRun = false } = {})`
|
|
551
|
+
- `installAppDependenciesForHook({ appRoot, appPackageJson, io, pathModule = path, createCliError, dryRun = false, runDevlinks = false } = {})`
|
|
552
|
+
- `validateHookResult(result = {}, { packageId = "", hookLabel = "" } = {})`
|
|
553
|
+
- `loadInstallHook({ packageEntry, appRoot, hookSpec, hookLabel = "" } = {})`
|
|
554
|
+
- `createInstallHookHelpers({ ctx, appRoot, io, appPackageJson, commandOptions = {} } = {})`
|
|
555
|
+
- `invokeInstallHook({ packageEntry, appRoot, hookSpec, hookLabel, hookContext, createCliError } = {})`
|
|
451
556
|
|
|
452
557
|
### `src/server/commandHandlers/packageCommands/create.js`
|
|
453
558
|
Exports
|
package/templates/app/AGENTS.md
CHANGED
|
@@ -63,6 +63,7 @@ Core rules:
|
|
|
63
63
|
- `Not doing: ...`
|
|
64
64
|
- Keep that checkpoint compact. Do not expand it into a long preamble unless the developer asks for detail.
|
|
65
65
|
- Reuse existing JSKIT helpers and runtime seams before adding new local helpers.
|
|
66
|
+
- If `npm install` is run while the app is using local JSKIT checkout links, run `npm run devlinks` immediately afterward.
|
|
66
67
|
- A freshly scaffolded JSKIT app can still be in Stage 1. If the app was just created and platform decisions are not settled yet, continue with the initialize workflow before adding runtime packages.
|
|
67
68
|
- Do not treat a missing `config.tenancyMode` line or an untouched minimal scaffold as a final tenancy decision.
|
|
68
69
|
- Do not install tenancy-sensitive packages until Stage 1 decisions are complete and the chosen tenancy is written into `config/public.js`.
|
package/workflow/bootstrap.md
CHANGED
|
@@ -54,6 +54,7 @@ Baseline expectations after initialization:
|
|
|
54
54
|
- create the app scaffold
|
|
55
55
|
- install the baseline runtime packages in the documented order
|
|
56
56
|
- install dependencies
|
|
57
|
+
- run `npm run devlinks` immediately after `npm install` when the app is using local JSKIT checkout links
|
|
57
58
|
- run database migrations when the chosen package set requires them
|
|
58
59
|
- use the standard packaged workflows that come with those packages unless the blueprint records an override
|
|
59
60
|
- leave the app in a reproducible, verified baseline state
|