@jskit-ai/agent-docs 0.1.26 → 0.1.27

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 (29) hide show
  1. package/guide/agent/app-extras/assistant.md +7 -18
  2. package/guide/agent/app-extras/mobile-capacitor.md +374 -0
  3. package/guide/agent/app-extras/realtime.md +2 -1
  4. package/guide/agent/app-setup/a-more-interesting-shell.md +54 -47
  5. package/guide/agent/app-setup/authentication.md +10 -9
  6. package/guide/agent/app-setup/console.md +3 -3
  7. package/guide/agent/app-setup/multi-homing.md +22 -19
  8. package/guide/agent/app-setup/quickstart.md +11 -14
  9. package/guide/agent/app-setup/users.md +3 -3
  10. package/guide/agent/app-setup/working-with-the-jskit-cli.md +5 -4
  11. package/guide/agent/generators/ui-generators.md +29 -23
  12. package/guide/agent/index.md +3 -2
  13. package/package.json +1 -1
  14. package/patterns/page-scaffolding.md +3 -2
  15. package/patterns/placements.md +7 -1
  16. package/reference/autogen/KERNEL_MAP.md +16 -0
  17. package/reference/autogen/README.md +3 -0
  18. package/reference/autogen/packages/assistant.md +1 -0
  19. package/reference/autogen/packages/auth-web.md +20 -1
  20. package/reference/autogen/packages/crud-ui-generator.md +1 -0
  21. package/reference/autogen/packages/google-rewarded-core.md +222 -0
  22. package/reference/autogen/packages/google-rewarded-web.md +71 -0
  23. package/reference/autogen/packages/kernel.md +58 -6
  24. package/reference/autogen/packages/mobile-capacitor.md +76 -0
  25. package/reference/autogen/packages/shell-web.md +13 -0
  26. package/reference/autogen/packages/ui-generator.md +11 -0
  27. package/reference/autogen/packages/users-web.md +0 -1
  28. package/reference/autogen/packages/workspaces-web.md +0 -1
  29. package/reference/autogen/tooling/jskit-cli.md +98 -9
@@ -338,6 +338,10 @@ Exports
338
338
  - `normalizeRecordId(value, { fallback = null } = {})`
339
339
  - `normalizeOpaqueId(value, { fallback = null } = {})`
340
340
  - `normalizeOneOf(value, allowedValues = [], fallback = "")`
341
+ - `normalizeMobileAssetMode(value = "", { fallback = "bundled" } = {})`
342
+ - `normalizeMobileCallbackPath(value = "", { fallback = "/auth/login" } = {})`
343
+ - `normalizeMobileConfig(source = {})`
344
+ - `normalizeMobileStrategy(value = "", { fallback = "" } = {})`
341
345
  - `ensureNonEmptyText(value, label = "value")`
342
346
 
343
347
  ### `shared/support/permissions.js`
@@ -393,14 +397,26 @@ Local functions
393
397
 
394
398
  ### `shared/support/shellLayoutTargets.js`
395
399
  Exports
400
+ - `PLACEMENT_LAYOUT_CLASSES`
396
401
  - `describeShellOutletTargets(targets = [])`
397
402
  - `discoverShellOutletTargetsFromVueSource(source = "", { context = "shell layout" } = {})`
398
403
  - `findShellOutletTargetById(targets = [], targetId = "")`
404
+ - `normalizePlacementKind(value = "")`
405
+ - `normalizePlacementLayoutClass(value = "")`
406
+ - `normalizePlacementOwnerId(value = "")`
407
+ - `normalizePlacementSurfaceId(value = "")`
408
+ - `normalizePlacementSurfaces(value)`
409
+ - `normalizePlacementTopologyDefinition(value = {}, { context = "placement topology" } = {})`
410
+ - `normalizePlacementTopologyEntry(value = {}, { context = "placement topology" } = {})`
411
+ - `normalizePlacementTopologyVariant(value = {}, { context = "placement topology variant" } = {})`
412
+ - `normalizeSemanticPlacementId(value = "")`
399
413
  - `normalizeShellOutletTargetId(value = "")`
400
414
  - `normalizeShellOutletTargetRecord(value = {}, { context = "shell layout" } = {})`
415
+ - `resolvePlacementTargetReference(value = "")`
401
416
  - `resolveShellOutletTargetParts({ target = "" } = {})`
402
417
  Local functions
403
418
  - `parseTagAttributes(attributesSource = "")`
419
+ - `normalizePlacementRenderers(value = {})`
404
420
  - `isDefaultAttributeEnabled(value)`
405
421
 
406
422
  ### `shared/support/sorting.js`
@@ -606,6 +622,8 @@ Exports
606
622
  - `CLIENT_APP_CONFIG_GLOBAL_KEY`
607
623
  - `setClientAppConfig(source = {})`
608
624
  - `getClientAppConfig()`
625
+ - `resolveMobileConfig(appConfig = getClientAppConfig())`
626
+ - `resolveClientAssetMode(appConfig = getClientAppConfig())`
609
627
  Local functions
610
628
  - `normalizeClientAppConfig(source = {})`
611
629
 
@@ -623,6 +641,10 @@ Exports
623
641
  ### `client/index.js`
624
642
  Exports
625
643
  - `getClientAppConfig`
644
+ - `resolveMobileConfig`
645
+ - `resolveClientAssetMode`
646
+ - `normalizeIncomingAppUrl`
647
+ - `registerMobileLaunchRouting`
626
648
  - `resolveClientBootstrapDebugEnabled`
627
649
  - `createShellRouter`
628
650
  - `bootstrapClientShellApp`
@@ -633,6 +655,16 @@ Exports
633
655
  - `createStructuredLogger(logger = console)`
634
656
  - `summarizeRouterRoutes(router)`
635
657
 
658
+ ### `client/mobileLaunchRouting.js`
659
+ Exports
660
+ - `normalizeIncomingAppUrl(url = "", mobileConfig = {}, { currentOrigin = "", allowedHttpOrigins = [] } = {})`
661
+ - `registerMobileLaunchRouting({ router, mobileConfig = {}, getInitialLaunchUrl = async () => "", subscribeToLaunchUrls = () => () => {}, resolveTargetPath = null, currentOrigin = typeof window === "object" && window?.location ? String(window.location.origin || "") : "", allowedHttpOrigins = [], logger = null } = {})`
662
+ Local functions
663
+ - `buildNormalizedRoutePath(pathname = "/", search = "", hash = "")`
664
+ - `normalizeResolvedRoutePath(value = "", fallback = "")`
665
+ - `normalizeAllowedHttpOrigins({ mobileConfig = {}, currentOrigin = "", allowedHttpOrigins = [] } = {})`
666
+ - `normalizeCustomSchemeRoutePath(parsedUrl)`
667
+
636
668
  ### `client/moduleBootstrap.js`
637
669
  Exports
638
670
  - `bootClientModules({ clientModules = [], app, pinia = null, router, surfaceRuntime, surfaceMode, env, logger = console } = {})`
@@ -665,7 +697,7 @@ Exports
665
697
  - `resolveClientBootstrapDebugEnabled({ env = {}, debugEnabled = undefined, debugEnvKey = "VITE_JSKIT_CLIENT_DEBUG" } = {})`
666
698
  - `createClientBootstrapLogger({ env = {}, logger = console, debugEnabled = undefined, debugEnvKey = "VITE_JSKIT_CLIENT_DEBUG" } = {})`
667
699
  - `createSurfaceShellRouter({ createRouter, history, routes = [], surfaceRuntime, surfaceMode, fallbackRoute = null, notFoundComponent = null, guard = false } = {})`
668
- - `bootstrapClientShellApp({ createApp, rootComponent, appConfig = {}, appPlugins = [], pinia = null, router, bootClientModules, surfaceRuntime, surfaceMode, env = {}, fallbackRoute = null, logger = console, createBootstrapLogger = null, debugEnabled = undefined, debugEnvKey = "VITE_JSKIT_CLIENT_DEBUG", debugMessage = "Client modules bootstrapped before router install.", onAfterModulesBootstrapped = null, mountSelector = "#app" } = {})`
700
+ - `bootstrapClientShellApp({ createApp, rootComponent, appConfig = {}, appPlugins = [], pinia = null, router, bootClientModules, surfaceRuntime, surfaceMode, env = {}, fallbackRoute = null, logger = console, createBootstrapLogger = null, debugEnabled = undefined, debugEnvKey = "VITE_JSKIT_CLIENT_DEBUG", debugMessage = "Client modules bootstrapped before router install.", onAfterModulesBootstrapped = null, onAfterRouterReady = null, mountSelector = "#app" } = {})`
669
701
  Local functions
670
702
  - `installAppPlugins(app, appPlugins = [])`
671
703
 
@@ -1275,9 +1307,17 @@ Exports
1275
1307
  - `resolveAppConfig(scope = null)`
1276
1308
  - `normalizeDefaultSurfaceId(value, { fallback = "" } = {})`
1277
1309
  - `resolveDefaultSurfaceId(scope = null, { defaultSurfaceId = "" } = {})`
1310
+ - `resolveMobileConfig(source = null)`
1311
+ - `resolveClientAssetMode(source = null)`
1312
+ - `resolveMobileCallbackUrls(source = null, { appPublicUrl = "" } = {})`
1313
+ Local functions
1314
+ - `buildWebCallbackUrl(appPublicUrl = "", callbackPath = "")`
1315
+ - `buildMobileCallbackUrl(customScheme = "", callbackPath = "")`
1316
+ - `buildAppLinkCallbackUrls(appLinkDomains = [], callbackPath = "")`
1278
1317
 
1279
1318
  ### `server/support/appConfigFiles.js`
1280
1319
  Exports
1320
+ - `loadAppConfigFromAppRoot({ appRoot = "", publicConfigRelativePath = PUBLIC_CONFIG_RELATIVE_PATH, serverConfigRelativePath = SERVER_CONFIG_RELATIVE_PATH } = {})`
1281
1321
  - `loadAppConfigFromModuleUrl({ moduleUrl = import.meta.url, publicConfigRelativePath = PUBLIC_CONFIG_RELATIVE_PATH, serverConfigRelativePath = SERVER_CONFIG_RELATIVE_PATH } = {})`
1282
1322
  Local functions
1283
1323
  - `normalizeConfigObject(value)`
@@ -1298,6 +1338,10 @@ Local functions
1298
1338
  Exports
1299
1339
  - `symlinkSafeRequire`
1300
1340
  - `resolveAppConfig`
1341
+ - `resolveMobileConfig`
1342
+ - `resolveClientAssetMode`
1343
+ - `resolveMobileCallbackUrls`
1344
+ - `loadAppConfigFromAppRoot`
1301
1345
  - `loadAppConfigFromModuleUrl`
1302
1346
  - `importFreshModuleFromAbsolutePath`
1303
1347
  - `resolveRequiredAppRoot`
@@ -1312,7 +1356,9 @@ Exports
1312
1356
  - `deriveDefaultSubpagesHost`
1313
1357
  - `resolveNearestParentSubpagesHost`
1314
1358
  - `resolvePageLinkTargetDetails`
1359
+ - `discoverPlacementTopologyFromApp`
1315
1360
  - `discoverShellOutletTargetsFromApp`
1361
+ - `resolveSemanticPlacementTargetFromApp`
1316
1362
  - `resolveShellOutletPlacementTargetFromApp`
1317
1363
 
1318
1364
  ### `server/support/pageTargets.js`
@@ -1326,7 +1372,7 @@ Exports
1326
1372
  - `resolvePageTargetDetails({ appRoot, targetFile = "", context = "page target" } = {})`
1327
1373
  - `deriveDefaultSubpagesHost(pageTarget = {})`
1328
1374
  - `resolveNearestParentSubpagesHost({ appRoot, pageTarget = {}, context = "page target" } = {})`
1329
- - `resolvePageLinkTargetDetails({ appRoot, targetFile = "", pageTarget = null, placement = "", componentToken = "", linkTo = "", defaultComponentToken = DEFAULT_PAGE_LINK_COMPONENT_TOKEN, subpageComponentToken = DEFAULT_SUBPAGE_LINK_COMPONENT_TOKEN, context = "page target" } = {})`
1375
+ - `resolvePageLinkTargetDetails({ appRoot, targetFile = "", pageTarget = null, placement = "", componentToken = "", linkTo = "", context = "page target" } = {})`
1330
1376
  Local functions
1331
1377
  - `normalizeRelativeFilePath(value = "")`
1332
1378
  - `validateVueTargetFile(relativePath = "", { context = "page target" } = {})`
@@ -1351,10 +1397,12 @@ Local functions
1351
1397
  - `buildParentPageFileCandidates(pageTarget = {}, ancestorRoute = {})`
1352
1398
  - `resolveSubpagesHostTargetFromPageSource(source = "")`
1353
1399
  - `normalizePlacementTargetId(target = {})`
1400
+ - `resolveConcreteTargetOwner(target = "")`
1401
+ - `topologyPlacementTargetsConcreteOutlet(placement = {}, target = "")`
1402
+ - `resolveSemanticPlacementTargetForConcreteOutlet({ appRoot, concreteTarget = "", surface = "" } = {})`
1354
1403
  - `resolveRelativeLinkToFromParent(pageTarget = {}, parentHost = null)`
1355
1404
  - `resolveRelativeLinkToFromNearestIndexOwner(pageTarget = {})`
1356
- - `resolveInferredPageLinkTo({ explicitLinkTo = "", pageTarget = {}, parentHost = null, placementTarget = null, suppressImplicitRelativeLinks = false } = {})`
1357
- - `resolveInferredPageLinkComponentToken({ explicitComponentToken = "", parentHost = null, placementTarget = null, defaultComponentToken = DEFAULT_PAGE_LINK_COMPONENT_TOKEN, subpageComponentToken = DEFAULT_SUBPAGE_LINK_COMPONENT_TOKEN } = {})`
1405
+ - `resolveInferredPageLinkTo({ explicitLinkTo = "", pageTarget = {}, parentHost = null, preservesRelativeSubpageLinks = false, suppressImplicitRelativeLinks = false } = {})`
1358
1406
  - `renderPageLinkWhenLine(pageTarget = {})`
1359
1407
 
1360
1408
  ### `server/support/path.js`
@@ -1369,7 +1417,9 @@ Exports
1369
1417
 
1370
1418
  ### `server/support/shellOutlets.js`
1371
1419
  Exports
1420
+ - `discoverPlacementTopologyFromApp({ appRoot } = {})`
1372
1421
  - `discoverShellOutletTargetsFromApp({ appRoot, sourceRoot = "src" } = {})`
1422
+ - `resolveSemanticPlacementTargetFromApp({ appRoot, placement = "", owner = "", surface = "", context = "ui-generator" } = {})`
1373
1423
  - `resolveShellOutletPlacementTargetFromApp({ appRoot, placement = "", context = "ui-generator" } = {})`
1374
1424
  Local functions
1375
1425
  - `parseTagAttributes(attributesSource = "")`
@@ -1379,9 +1429,11 @@ Local functions
1379
1429
  - `collectVueFilePaths(rootDirectoryPath)`
1380
1430
  - `readInstalledPackageStates(appRoot)`
1381
1431
  - `normalizePackageOutletTarget({ packageId = "", outlet = {}, descriptorPath = "" } = {})`
1382
- - `loadOutletDefaultOverrides(appRoot = "")`
1383
- - `applyOutletDefaultOverrides(target = {}, outletDefaultOverrides = {})`
1384
1432
  - `collectInstalledPackageOutletTargets(appRoot)`
1433
+ - `withTopologySource(placement = {}, sourcePath = "")`
1434
+ - `loadAppPlacementTopology(appRoot)`
1435
+ - `collectInstalledPackagePlacementTopology(appRoot)`
1436
+ - `findSemanticPlacementById(placements = [], { id = "", owner = "", surface = "" } = {})`
1385
1437
 
1386
1438
  ### `server/support/SupportCoreServiceProvider.js`
1387
1439
  Exports
@@ -0,0 +1,76 @@
1
+ # packages/mobile-capacitor
2
+
3
+ Generated by `npm run agent-docs:build`.
4
+ Do not edit manually.
5
+
6
+ Generated inventory for `packages/mobile-capacitor`.
7
+ Use this on demand; do not load the full index at startup.
8
+
9
+ ## Scope
10
+ - Source: `packages/mobile-capacitor/**/*{.js,.mjs,.cjs,.vue}`
11
+ - Excludes: `test/`, `tests/`, `__tests__/`, `*.test.*`, `*.spec.*`, `*.vitest.*`, `node_modules/`, `dist/`, `coverage/`, `docs/`, `LEGACY/`, `.vitepress/cache/`, `.vitepress/dist/`
12
+
13
+ ## Sections
14
+
15
+ ### src
16
+
17
+ ### `src/client/index.js`
18
+ Exports
19
+ - `MobileCapacitorClientProvider`
20
+ - `createMobileCapacitorRuntime`
21
+ - `createGlobalCapacitorAppAdapter`
22
+ - `createNoopCapacitorAppAdapter`
23
+ - `resolveCapacitorAppPlugin`
24
+ - `clientProviders`
25
+
26
+ ### `src/client/providers/MobileCapacitorClientProvider.js`
27
+ Exports
28
+ - `MobileCapacitorClientProvider`
29
+ - `installCapacitorAwareGlobalFetch({ adapter = null, apiBaseUrl = "", globalObject = globalThis } = {})`
30
+
31
+ ### `src/client/runtime/apiRequestClient.js`
32
+ Exports
33
+ - `createCapacitorAwareFetch({ fetchImpl = globalThis.fetch, adapter = null, apiBaseUrl = "" } = {})`
34
+ - `isCapacitorApiRequestTarget(url = "")`
35
+ - `resolveCapacitorAbsoluteHttpUrl(url = "", apiBaseUrl = "", messages = {})`
36
+ Local functions
37
+ - `parseAbsoluteHttpUrl(url = "", { apiBaseUrl = "", emptyUrlMessage = "URL is required.", missingApiBaseUrlMessage = "config.mobile.apiBaseUrl is required.", invalidApiBaseUrlMessage = "config.mobile.apiBaseUrl must be a valid absolute URL.", invalidApiBaseUrlProtocolMessage = "config.mobile.apiBaseUrl must use http or https.", invalidUrlProtocolMessage = "URL must use http or https." } = {})`
38
+ - `normalizeFetchInput(input = "")`
39
+
40
+ ### `src/client/runtime/globalCapacitorAppAdapter.js`
41
+ Exports
42
+ - `createGlobalCapacitorAppAdapter({ globalObject = globalThis, appPlugin = null } = {})`
43
+ - `createNoopCapacitorAppAdapter()`
44
+ - `resolveCapacitorAppPlugin(globalObject = globalThis)`
45
+
46
+ ### `src/client/runtime/mobileCapacitorRuntime.js`
47
+ Exports
48
+ - `createMobileCapacitorRuntime({ router, mobileConfig = {}, adapter = createNoopCapacitorAppAdapter(), placementRuntime = null, authCallbackCompleter = null, authGuardRuntime = null, logger = null } = {})`
49
+ Local functions
50
+ - `extractPathname(value = "")`
51
+ - `normalizeCallbackCompleter(value = null)`
52
+ - `normalizeAuthGuardRuntime(value = null)`
53
+ - `isAuthCallbackTargetPath(targetPath = "", mobileConfig = {})`
54
+
55
+ ### `src/client/runtime/oauthLaunchClient.js`
56
+ Exports
57
+ - `createCapacitorAwareOAuthLaunchClient({ adapter = null, browserPlugin = Browser, location = null, apiBaseUrl = "" } = {})`
58
+ - `resolveCapacitorLaunchUrl(url = "", apiBaseUrl = "")`
59
+
60
+ ### `src/server/buildTemplateContext.js`
61
+ Exports
62
+ - `buildTemplateContext({ appRoot } = {})`
63
+ - `prepareInstallHook({ appRoot, appPackageJson = {}, io, dryRun = false, helpers = {} } = {})`
64
+ - `finalizeInstallHook({ appRoot, io, dryRun = false, skipManagedFinalize = false, helpers = {} } = {})`
65
+ Local functions
66
+ - `requireNonEmptyText(value, label = "value")`
67
+ - `requireUrl(value, label = "value", { allowHttp = true, allowHttps = true } = {})`
68
+ - `buildCapacitorServerBlock(mobileConfig = {})`
69
+ - `buildAppLinkDomainsValue(appLinkDomains = [])`
70
+ - `directoryContainsAnyFiles(directoryPath = "")`
71
+
72
+ ### root
73
+
74
+ ### `package.descriptor.mjs`
75
+ Exports
76
+ - None
@@ -184,6 +184,8 @@ Local functions
184
184
  ### `src/client/placement/index.js`
185
185
  Exports
186
186
  - `createPlacementRegistry`
187
+ - `definePlacement`
188
+ - `definePlacementTopology`
187
189
  - `useWebPlacementContext`
188
190
  - `resolveRuntimePathname`
189
191
  - `readPlacementSurfaceConfig`
@@ -220,7 +222,10 @@ Local functions
220
222
  - `debugLog(message, payload = null)`
221
223
  - `createRuntimeLogger(logger)`
222
224
  - `normalizePlacementList(placements, context = {})`
225
+ - `normalizeTopologyList(topology, context = {})`
223
226
  - `matchesSurface(placementSurfaces, requestedSurface)`
227
+ - `resolveTopologyPlacement(topologyEntries = [], placement = {}, requestedSurface = WEB_PLACEMENT_SURFACE_ANY)`
228
+ - `resolveRenderablePlacement({ placement = {}, topologyEntries = [], requestedSurface = WEB_PLACEMENT_SURFACE_ANY, requestedTarget = "", requestedLayoutClass = "compact" } = {})`
224
229
  - `resolveContextContributors(app, baseContext = {}, logger)`
225
230
  - `resolvePlacementComponent(app, placement, logger, missingTokens, invalidComponentTokens, failedTokens)`
226
231
  - `shouldIncludePlacement(placement, placementContext, logger)`
@@ -253,6 +258,8 @@ Exports
253
258
  - `normalizePlacementSurfaces(value, { strict = false, source = "placement" } = {})`
254
259
  - `normalizePlacementDefinition(value, { strict = false, source = "placement" } = {})`
255
260
  - `definePlacement(value = {})`
261
+ - `definePlacementTopology(value = {})`
262
+ - `normalizeSemanticPlacementId`
256
263
  Local functions
257
264
  - `isValidSurfaceIdToken(value = "")`
258
265
  - `toInteger(value, fallback = 1000)`
@@ -264,6 +271,7 @@ Local functions
264
271
  - `createShellWebQueryClient()`
265
272
  - `isMissingDynamicModule(error, moduleSpecifier)`
266
273
  - `loadAppPlacementDefinitions(logger)`
274
+ - `loadAppPlacementTopology(logger)`
267
275
  - `createErrorConfigToolkit(errorRuntime)`
268
276
  - `loadAppErrorConfig(logger, errorRuntime)`
269
277
  - `applyAppErrorConfig(errorRuntime, errorConfig = {})`
@@ -373,6 +381,11 @@ Exports
373
381
  - `addPlacement`
374
382
  - `getPlacements()`
375
383
 
384
+ ### `templates/src/placementTopology.js`
385
+ Exports
386
+ - `addPlacementTopology(value = {})`
387
+ - `default`
388
+
376
389
  ### root
377
390
 
378
391
  ### `package.descriptor.mjs`
@@ -19,11 +19,14 @@ Exports
19
19
  - `buildUiPageTemplateContext({ appRoot, targetFile = "", options = {} } = {})`
20
20
  Local functions
21
21
  - `resolveLinkToPropLine(linkTo = "")`
22
+ - `resolveOwnerLine(owner = "")`
22
23
 
23
24
  ### `src/server/subcommands/addSubpages.js`
24
25
  Exports
25
26
  - `runGeneratorSubcommand({ appRoot, subcommand = "", args = [], options = {}, dryRun = false } = {})`
26
27
  Local functions
28
+ - `resolveOutletOwner(target = "")`
29
+ - `renderSectionNavTopologyBlock({ marker = "", owner = "", surface = "", target = "" } = {})`
27
30
  - `resolveSubpagesOutletTarget(options = {}, pageTarget = {})`
28
31
 
29
32
  ### `src/server/subcommands/element.js`
@@ -40,6 +43,13 @@ Local functions
40
43
  - `hasShellOutletTarget(source = "", { target = "" } = {})`
41
44
  - `applyScriptImports(source = "")`
42
45
  - `createOutletBlock({ target = "" } = {})`
46
+ - `resolveOutletOwner(target = "")`
47
+ - `resolveSemanticPlacementOption(options = {})`
48
+ - `resolveSemanticPlacementOwner({ placementId = "", targetId = "", owner = "" } = {})`
49
+ - `resolveTopologySurfaces(options = {})`
50
+ - `renderTopologyOwnerLine(owner = "")`
51
+ - `renderLinkRendererBlock(rendererToken = "")`
52
+ - `renderOutletTopologyBlock({ marker = "", placementId = "", owner = "", surfaces = ["*"], description = "", target = "", rendererToken = "" } = {})`
43
53
  - `findLastTemplateCloseTag(source = "")`
44
54
  - `applyOutletTemplateBlock(source = "", { target = "" } = {})`
45
55
 
@@ -79,6 +89,7 @@ Exports
79
89
  - `DEFAULT_COMPONENT_DIRECTORY`
80
90
  - `MAIN_CLIENT_PROVIDER_FILE`
81
91
  - `PLACEMENT_FILE`
92
+ - `PLACEMENT_TOPOLOGY_FILE`
82
93
  - `toKebabCase(value = "")`
83
94
  - `toPascalCase(value = "")`
84
95
  - `requireOption(options = {}, optionName = "", { context = "ui-generator" } = {})`
@@ -502,7 +502,6 @@ Exports
502
502
 
503
503
  ### `src/shared/toolsOutletContracts.js`
504
504
  Exports
505
- - `DEFAULT_COG_LINK_COMPONENT_TOKEN`
506
505
  - `HOME_COG_OUTLET`
507
506
 
508
507
  ### templates
@@ -321,7 +321,6 @@ Exports
321
321
 
322
322
  ### `src/shared/toolsOutletContracts.js`
323
323
  Exports
324
- - `DEFAULT_COG_LINK_COMPONENT_TOKEN`
325
324
  - `ADMIN_COG_OUTLET`
326
325
 
327
326
  ### 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
@@ -439,6 +444,83 @@ Local functions
439
444
  - `resolveDescriptorFromLockEntry({ appRoot = "", packageId = "", installedPackageEntry = {} } = {})`
440
445
  - `collectProviderSourceFiles(rootPath = "")`
441
446
 
447
+ ### `src/server/commandHandlers/mobile.js`
448
+ Exports
449
+ - `createMobileCommands(ctx = {}, { commandAdd } = {})`
450
+ Local functions
451
+ - `collectManagedMobileFileDriftIssues({ ctx, appRoot, issues = [] } = {})`
452
+ - `collectMissingInstalledDependencyNames(ctx, appRoot = "", packageJson = {})`
453
+ - `renderAndroidMobileCommandList(lines, color)`
454
+ - `renderMobileHelp(stream, definition = null, platform = "")`
455
+ - `isValidHttpOrHttpsUrl(value = "")`
456
+ - `normalizeInlineOptions(options = {})`
457
+ - `parsePortNumber(rawValue, { createCliError, optionLabel = "--port" } = {})`
458
+ - `parseAdbDeviceList(output = "")`
459
+ - `resolveAdbReversePort({ mobileConfig = null, explicitPort = "", createCliError } = {})`
460
+ - `runCapturedBinary(binaryName, args = [], { cwd = process.cwd(), env = {}, createCliError, notFoundMessage = "" } = {})`
461
+ - `listVisibleAndroidDevices({ ctx, appRoot } = {})`
462
+ - `resolveAndroidDeviceTarget({ ctx, appRoot, explicitTarget = "", commandLabel = "this mobile command" } = {})`
463
+ - `resolveInstalledMobileConfigForCommand({ appRoot, createCliError } = {})`
464
+ - `runLocalBinary(binaryName, args = [], { appRoot, cwd = appRoot, env = {}, stderr, stdout, pathModule, createCliError, dryRun = false } = {})`
465
+ - `runMobileAppInstall({ ctx, appRoot, stdout, stderr, dryRun = false, devlinks = false } = {})`
466
+ - `refreshManagedMobileFiles({ ctx, commandAdd, appRoot, options = {}, stdout, stderr } = {})`
467
+ - `runMobileSyncAndroidCommand({ ctx, commandAdd, appRoot, options = {}, stdout, stderr })`
468
+ - `runMobileRunAndroidCommand({ ctx, commandAdd, appRoot, options = {}, stdout, stderr })`
469
+ - `runCapRunAndroidCommand({ ctx, appRoot, pathModule, target = "", stdout, stderr, dryRun = false } = {})`
470
+ - `runMobileBuildAndroidCommand({ ctx, commandAdd, appRoot, options = {}, stdout, stderr })`
471
+ - `runMobileDoctorCommand({ ctx, appRoot, stdout })`
472
+ - `runMobileDevicesAndroidCommand({ ctx, appRoot, stdout })`
473
+ - `runMobileTunnelAndroidCommand({ ctx, appRoot, options = {}, stdout })`
474
+ - `runMobileRestartAndroidCommand({ ctx, appRoot, options = {}, stdout })`
475
+ - `runMobileDevAndroidCommand({ ctx, commandAdd, appRoot, options = {}, stdout, stderr })`
476
+
477
+ ### `src/server/commandHandlers/mobileCommandCatalog.js`
478
+ Exports
479
+ - `MOBILE_COMMAND_DEFINITIONS`
480
+ - `listMobileCommandDefinitions()`
481
+ - `resolveMobileCommandDefinition(rawName = "")`
482
+ - `buildMobileCommandOptionMeta(subcommandName = "")`
483
+
484
+ ### `src/server/commandHandlers/mobileShellSupport.js`
485
+ Exports
486
+ - `CAPACITOR_CONFIG_FILE`
487
+ - `ANDROID_DIRECTORY_NAME`
488
+ - `ANDROID_MANIFEST_RELATIVE_PATH`
489
+ - `buildManagedMobileConfigStub({ packageJson = {} } = {})`
490
+ - `resolveInstalledMobileConfig(appRoot = "")`
491
+ - `resolveAndroidSdkDetails({ appRoot = "" } = {})`
492
+ - `collectAndroidSdkComponentIssues({ appRoot = "", sdkRoot = "" } = {})`
493
+ - `assertAndroidSdkConfigured({ ctx, appRoot } = {})`
494
+ - `collectCapacitorShellInstallIssues({ ctx, appRoot } = {})`
495
+ - `ensureMobileConfigStub({ ctx, appRoot, packageJson = {}, dryRun = false, stdout } = {})`
496
+ - `buildManagedDeepLinkIntentFilterBlock(mobileConfig = {})`
497
+ - `injectManagedDeepLinkBlock(manifestSource = "", managedBlock = "")`
498
+ - `assertCapacitorShellInstalled({ ctx, appRoot })`
499
+ - `ensureAndroidManifestDeepLinks({ ctx, appRoot, dryRun = false, stdout } = {})`
500
+ - `collectAndroidNativeShellIdentityIssues({ ctx, appRoot } = {})`
501
+ - `ensureAndroidNativeShellIdentity({ ctx, appRoot, dryRun = false, stdout } = {})`
502
+ - `renderManagedMobileFile({ appRoot, relativeTargetPath, packageId = CAPACITOR_RUNTIME_PACKAGE_ID } = {})`
503
+ Local functions
504
+ - `normalizeRelativePosixPath(pathValue = "")`
505
+ - `escapeRegExp(value = "")`
506
+ - `pathExists(targetPath = "")`
507
+ - `humanizeAppName(value = "")`
508
+ - `slugifyForIdentifier(value = "")`
509
+ - `parseAndroidSdkDirFromLocalProperties(source = "")`
510
+ - `buildAndroidNativeConfig(mobileConfig = {})`
511
+ - `replaceRequiredPattern(source = "", pattern, replacement, label = "pattern")`
512
+ - `escapeXmlText(value = "")`
513
+ - `replaceXmlStringValue(source = "", stringName = "", value = "")`
514
+ - `renderAndroidVariablesGradleSource(source = "", nativeConfig = {})`
515
+ - `renderAndroidAppBuildGradleSource(source = "", nativeConfig = {})`
516
+ - `renderAndroidStringsSource(source = "", nativeConfig = {})`
517
+ - `renderAndroidMainActivitySource(source = "", packageName = "", extension = ".java")`
518
+ - `listFilesRecursively(rootDirectoryPath = "")`
519
+ - `resolveAndroidMainActivityEntry(appRoot = "")`
520
+ - `shouldAllowAndroidCleartextTraffic(mobileConfig = {})`
521
+ - `renderAndroidManifestApplicationTrafficPolicy(manifestSource = "", mobileConfig = {})`
522
+ - `renderManagedAndroidManifest(manifestSource = "", mobileConfig = {})`
523
+
442
524
  ### `src/server/commandHandlers/package.js`
443
525
  Exports
444
526
  - `createPackageCommands(ctx = {})`
@@ -448,6 +530,13 @@ Exports
448
530
  - `runPackageAddCommand(ctx = {}, { positional, options, cwd, io })`
449
531
  Local functions
450
532
  - `collectPlacementComponentTokensFromManagedRecords(installedPackageRecords = [])`
533
+ - `renderWrappedShellCommand(binaryName, args = [], { maxWidth = 100, continuationIndent = " " } = {})`
534
+ - `runLocalProjectBinary(binaryName, args = [], { appRoot, io, pathModule = path, createCliError, explanation = "", dryRun = false } = {})`
535
+ - `installAppDependenciesForHook({ appRoot, appPackageJson, io, pathModule = path, createCliError, dryRun = false, runDevlinks = false } = {})`
536
+ - `validateHookResult(result = {}, { packageId = "", hookLabel = "" } = {})`
537
+ - `loadInstallHook({ packageEntry, appRoot, hookSpec, hookLabel = "" } = {})`
538
+ - `createInstallHookHelpers({ ctx, appRoot, io, appPackageJson, commandOptions = {} } = {})`
539
+ - `invokeInstallHook({ packageEntry, appRoot, hookSpec, hookLabel, hookContext, createCliError } = {})`
451
540
 
452
541
  ### `src/server/commandHandlers/packageCommands/create.js`
453
542
  Exports