@ankhorage/navigator 1.3.0 → 1.5.0
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/CHANGELOG.md +12 -0
- package/README.md +2 -1
- package/dist/custom/CustomNavigatorRegistry.d.ts +25 -0
- package/dist/custom/CustomNavigatorRegistry.d.ts.map +1 -0
- package/dist/custom/CustomNavigatorRegistry.js +30 -0
- package/dist/custom/CustomNavigatorRegistry.js.map +1 -0
- package/dist/definitions/NavigatorPlan.d.ts +9 -1
- package/dist/definitions/NavigatorPlan.d.ts.map +1 -1
- package/dist/expo-router/createNavigatorPlan.d.ts +2 -0
- package/dist/expo-router/createNavigatorPlan.d.ts.map +1 -1
- package/dist/expo-router/createNavigatorPlan.js +5 -9
- package/dist/expo-router/createNavigatorPlan.js.map +1 -1
- package/dist/expo-router/resolveCustomNavigatorPlan.d.ts +6 -0
- package/dist/expo-router/resolveCustomNavigatorPlan.d.ts.map +1 -0
- package/dist/expo-router/resolveCustomNavigatorPlan.js +21 -0
- package/dist/expo-router/resolveCustomNavigatorPlan.js.map +1 -0
- package/dist/generation/generateNavigatorFiles.d.ts +2 -2
- package/dist/generation/generateNavigatorFiles.d.ts.map +1 -1
- package/dist/generation/generateNavigatorFiles.js +28 -9
- package/dist/generation/generateNavigatorFiles.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/metadata/index.d.ts +5 -1
- package/dist/metadata/index.d.ts.map +1 -1
- package/dist/metadata/index.js +7 -1
- package/dist/metadata/index.js.map +1 -1
- package/dist/validation/validateCustomNavigator.d.ts +6 -0
- package/dist/validation/validateCustomNavigator.d.ts.map +1 -0
- package/dist/validation/validateCustomNavigator.js +106 -0
- package/dist/validation/validateCustomNavigator.js.map +1 -0
- package/dist/validation/validateNavigatorManifest.d.ts +2 -1
- package/dist/validation/validateNavigatorManifest.d.ts.map +1 -1
- package/dist/validation/validateNavigatorManifest.js +3 -9
- package/dist/validation/validateNavigatorManifest.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @ankhorage/navigator
|
|
2
2
|
|
|
3
|
+
## 1.5.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- fc5f4c3: Expose safe root-directory and layout-only generation options for consumers that own the Expo Router app shell.
|
|
8
|
+
|
|
9
|
+
## 1.4.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- 146ffe1: Add immutable custom navigator registration with JSON schema validation, platform gates, and safe standard-router generation bindings.
|
|
14
|
+
|
|
3
15
|
## 1.3.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
# NAVIGATOR
|
|
5
5
|
|
|
6
|
-
         
|
|
7
7
|
|
|
8
8
|
Standalone Navigator capability with topology configured independently from platform implementation and visual presentation. Adaptive tabs provide native and responsive web adapters; experimental Stack and Split View stay testing-only with validated upstream fallbacks.
|
|
9
9
|
|
|
@@ -16,5 +16,6 @@ Standalone Navigator capability with topology configured independently from plat
|
|
|
16
16
|
- [Module relationships](././paradox/diagrams/module-relationships.mmd)
|
|
17
17
|
- [Export graph](././paradox/diagrams/export-graph.mmd)
|
|
18
18
|
- [CustomTabsLayout sequence](././paradox/diagrams/sequences/custom-tabs-layout.mmd)
|
|
19
|
+
- [defineCustomNavigatorRegistry sequence](././paradox/diagrams/sequences/define-custom-navigator-registry.mmd)
|
|
19
20
|
- [resolveCustomTabsPresentation sequence](././paradox/diagrams/sequences/resolve-custom-tabs-presentation.mmd)
|
|
20
21
|
- [resolveTabsNavigatorPlan sequence](././paradox/diagrams/sequences/resolve-tabs-navigator-plan.mmd)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { CustomNavigatorNode } from '@ankhorage/contracts/navigator';
|
|
2
|
+
import type { NavigatorApiStability, NavigatorRuntimePlatform } from '../definitions/NavigatorPlan';
|
|
3
|
+
export interface CustomNavigatorConfigIssue {
|
|
4
|
+
code: string;
|
|
5
|
+
message: string;
|
|
6
|
+
path?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface CustomNavigatorRegistration {
|
|
9
|
+
readonly id: string;
|
|
10
|
+
readonly platforms: readonly NavigatorRuntimePlatform[];
|
|
11
|
+
readonly stability: NavigatorApiStability;
|
|
12
|
+
readonly integration: 'expo-router-standard';
|
|
13
|
+
readonly router: 'stack' | 'tab';
|
|
14
|
+
readonly module: string;
|
|
15
|
+
readonly exportName: string;
|
|
16
|
+
readonly validateConfig: (config: CustomNavigatorNode['config']) => readonly CustomNavigatorConfigIssue[];
|
|
17
|
+
}
|
|
18
|
+
declare const CUSTOM_NAVIGATOR_REGISTRY: unique symbol;
|
|
19
|
+
export type CustomNavigatorRegistry = Readonly<Record<string, CustomNavigatorRegistration>> & {
|
|
20
|
+
readonly [CUSTOM_NAVIGATOR_REGISTRY]: true;
|
|
21
|
+
};
|
|
22
|
+
/*** Define an immutable, duplicate-free custom navigator registry for one composition boundary. */
|
|
23
|
+
export declare function defineCustomNavigatorRegistry(registrations: readonly CustomNavigatorRegistration[]): CustomNavigatorRegistry;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=CustomNavigatorRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomNavigatorRegistry.d.ts","sourceRoot":"","sources":["../../src/custom/CustomNavigatorRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAGpG,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,KAAK,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,CACvB,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,KAClC,SAAS,0BAA0B,EAAE,CAAC;CAC5C;AAED,OAAO,CAAC,MAAM,yBAAyB,EAAE,OAAO,MAAM,CAAC;AAEvD,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC,GAAG;IAC5F,QAAQ,CAAC,CAAC,yBAAyB,CAAC,EAAE,IAAI,CAAC;CAC5C,CAAC;AAKF,mGAAmG;AACnG,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,SAAS,2BAA2B,EAAE,GACpD,uBAAuB,CAkCzB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { assertModuleBinding } from '../generation/generationSafety';
|
|
2
|
+
const REGISTRATION_ID = /^[A-Za-z][A-Za-z0-9._-]*$/u;
|
|
3
|
+
const RUNTIME_PLATFORMS = new Set(['android', 'ios', 'web']);
|
|
4
|
+
/*** Define an immutable, duplicate-free custom navigator registry for one composition boundary. */
|
|
5
|
+
export function defineCustomNavigatorRegistry(registrations) {
|
|
6
|
+
const registry = Object.create(null);
|
|
7
|
+
for (const registration of registrations) {
|
|
8
|
+
if (!REGISTRATION_ID.test(registration.id)) {
|
|
9
|
+
throw new Error(`Invalid custom navigator registration id ${JSON.stringify(registration.id)}.`);
|
|
10
|
+
}
|
|
11
|
+
if (Object.hasOwn(registry, registration.id)) {
|
|
12
|
+
throw new Error(`Duplicate custom navigator registration id ${JSON.stringify(registration.id)}.`);
|
|
13
|
+
}
|
|
14
|
+
if (registration.platforms.length === 0 ||
|
|
15
|
+
new Set(registration.platforms).size !== registration.platforms.length ||
|
|
16
|
+
registration.platforms.some((platform) => !RUNTIME_PLATFORMS.has(platform))) {
|
|
17
|
+
throw new Error(`Custom navigator ${JSON.stringify(registration.id)} must declare unique supported platforms.`);
|
|
18
|
+
}
|
|
19
|
+
if (typeof registration.validateConfig !== 'function') {
|
|
20
|
+
throw new Error(`Custom navigator ${JSON.stringify(registration.id)} must provide a config validator.`);
|
|
21
|
+
}
|
|
22
|
+
assertModuleBinding(registration, `Custom navigator ${JSON.stringify(registration.id)}`);
|
|
23
|
+
registry[registration.id] = Object.freeze({
|
|
24
|
+
...registration,
|
|
25
|
+
platforms: Object.freeze([...registration.platforms]),
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return Object.freeze(registry);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=CustomNavigatorRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomNavigatorRegistry.js","sourceRoot":"","sources":["../../src/custom/CustomNavigatorRegistry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AA2BrE,MAAM,eAAe,GAAG,4BAA4B,CAAC;AACrD,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAA2B,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAEvF,mGAAmG;AACnG,MAAM,UAAU,6BAA6B,CAC3C,aAAqD;IAErD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAgD,CAAC;IACpF,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACb,4CAA4C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,CAC/E,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CACb,8CAA8C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,CACjF,CAAC;QACJ,CAAC;QACD,IACE,YAAY,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;YACnC,IAAI,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,SAAS,CAAC,MAAM;YACtE,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAC3E,CAAC;YACD,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,2CAA2C,CAC/F,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,YAAY,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,mCAAmC,CACvF,CAAC;QACJ,CAAC;QACD,mBAAmB,CAAC,YAAY,EAAE,oBAAoB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzF,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YACxC,GAAG,YAAY;YACf,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAA4B,CAAC;AAC5D,CAAC"}
|
|
@@ -17,7 +17,8 @@ export interface NavigatorValidationContext {
|
|
|
17
17
|
}
|
|
18
18
|
export interface NavigatorAdapterPlan {
|
|
19
19
|
id: NavigatorAdapterId;
|
|
20
|
-
module
|
|
20
|
+
/** Built-in Expo Router entry point or an explicitly registered custom module. */
|
|
21
|
+
module?: string;
|
|
21
22
|
exportName?: string;
|
|
22
23
|
support: NavigatorSupportStatus;
|
|
23
24
|
stability: NavigatorApiStability;
|
|
@@ -104,6 +105,13 @@ export interface NavigatorGenerationBindings {
|
|
|
104
105
|
};
|
|
105
106
|
tabPresentations?: Readonly<Record<string, NavigatorScreenModule>>;
|
|
106
107
|
}
|
|
108
|
+
/** Options for placing Navigator-owned files inside a consumer-owned Expo Router app shell. */
|
|
109
|
+
export interface NavigatorGenerationOptions {
|
|
110
|
+
/** Directory that receives the root navigator layout. Must be `src/app` or one of its safe descendants. */
|
|
111
|
+
rootDirectory?: string;
|
|
112
|
+
/** Emit routed screen re-export modules in addition to layouts. Defaults to true. */
|
|
113
|
+
includeScreenFiles?: boolean;
|
|
114
|
+
}
|
|
107
115
|
export interface NavigatorGeneratedFile {
|
|
108
116
|
path: string;
|
|
109
117
|
contents: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NavigatorPlan.d.ts","sourceRoot":"","sources":["../../src/definitions/NavigatorPlan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,gCAAgC,CAAC;AAExC,MAAM,MAAM,wBAAwB,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;AACjE,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;AACxE,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,OAAO,CAAC;AACvD,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,aAAa,CAAC;AAEjE,MAAM,MAAM,yBAAyB,GACjC,aAAa,GACb,oBAAoB,GACpB,sBAAsB,GACtB,qBAAqB,GACrB,yBAAyB,GACzB,gBAAgB,GAChB,iCAAiC,GACjC,kCAAkC,CAAC;AAEvC,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,cAAc,GACd,kBAAkB,GAClB,oBAAoB,GACpB,QAAQ,GACR,aAAa,GACb,iBAAiB,GACjB,aAAa,GACb,YAAY,GACZ,QAAQ,CAAC;AAEb,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,kBAAkB,CAAC;IACvB,MAAM,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"NavigatorPlan.d.ts","sourceRoot":"","sources":["../../src/definitions/NavigatorPlan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { AppNavigatorManifest } from '@ankhorage/contracts/navigator';
|
|
2
|
+
import type { CustomNavigatorRegistry } from '../custom/CustomNavigatorRegistry';
|
|
2
3
|
import type { NavigatorPlan, NavigatorResponsiveSize, NavigatorRuntimePlatform } from '../definitions/NavigatorPlan';
|
|
3
4
|
export interface CreateNavigatorPlanOptions {
|
|
4
5
|
platform: NavigatorRuntimePlatform;
|
|
5
6
|
expoRouterVersion: string;
|
|
6
7
|
responsiveSize?: NavigatorResponsiveSize;
|
|
8
|
+
customNavigators?: CustomNavigatorRegistry;
|
|
7
9
|
}
|
|
8
10
|
/*** Create a disposable, provider-aware plan from only the navigator desired-state slice. */
|
|
9
11
|
export declare function createNavigatorPlan(manifest: AppNavigatorManifest, options: CreateNavigatorPlanOptions): NavigatorPlan;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createNavigatorPlan.d.ts","sourceRoot":"","sources":["../../src/expo-router/createNavigatorPlan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAIrB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAGV,aAAa,EACb,uBAAuB,EAEvB,wBAAwB,EAEzB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"createNavigatorPlan.d.ts","sourceRoot":"","sources":["../../src/expo-router/createNavigatorPlan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAIrB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,KAAK,EAGV,aAAa,EACb,uBAAuB,EAEvB,wBAAwB,EAEzB,MAAM,8BAA8B,CAAC;AAWtC,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,uBAAuB,CAAC;IACzC,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;CAC5C;AAyPD,6FAA6F;AAC7F,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,0BAA0B,GAClC,aAAa,CAmBf"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { validateNavigatorManifest } from '../validation/validateNavigatorManifest';
|
|
2
|
+
import { resolveCustomNavigatorAdapterPlan } from './resolveCustomNavigatorPlan';
|
|
2
3
|
import { parseExpoRouterMajor, resolveEffectiveStackConfig, resolveEffectiveTabsConfig, } from './resolveNavigatorConfig';
|
|
3
4
|
import { resolveSplitViewAdapterPlan } from './resolveSplitViewNavigatorPlan';
|
|
4
5
|
import { resolveTabsNavigatorPlan } from './resolveTabsNavigatorPlan';
|
|
@@ -61,7 +62,7 @@ function createTabsAdapter(tabs, platform, routerMajor) {
|
|
|
61
62
|
: [],
|
|
62
63
|
};
|
|
63
64
|
}
|
|
64
|
-
function createAdapter(node, stack, tabs, platform, routerMajor) {
|
|
65
|
+
function createAdapter(node, stack, tabs, platform, routerMajor, customNavigators) {
|
|
65
66
|
switch (node.type) {
|
|
66
67
|
case 'slot':
|
|
67
68
|
return {
|
|
@@ -90,12 +91,7 @@ function createAdapter(node, stack, tabs, platform, routerMajor) {
|
|
|
90
91
|
case 'split-view':
|
|
91
92
|
return resolveSplitViewAdapterPlan(platform, routerMajor);
|
|
92
93
|
case 'custom':
|
|
93
|
-
return
|
|
94
|
-
id: 'custom',
|
|
95
|
-
support: 'unavailable',
|
|
96
|
-
stability: 'stable',
|
|
97
|
-
limitations: ['Requires an explicitly composed custom adapter.'],
|
|
98
|
-
};
|
|
94
|
+
return resolveCustomNavigatorAdapterPlan(node, platform, routerMajor, customNavigators);
|
|
99
95
|
}
|
|
100
96
|
}
|
|
101
97
|
function resolveTabsPlan(config, platform, responsiveSize) {
|
|
@@ -178,7 +174,7 @@ function createNodePlan(manifest, node, pointer, options, responsiveSize) {
|
|
|
178
174
|
return {
|
|
179
175
|
type: node.type,
|
|
180
176
|
pointer,
|
|
181
|
-
adapter: createAdapter(node, stack, tabs, options.platform, parseExpoRouterMajor(options.expoRouterVersion)),
|
|
177
|
+
adapter: createAdapter(node, stack, tabs, options.platform, parseExpoRouterMajor(options.expoRouterVersion), options.customNavigators),
|
|
182
178
|
...(node.initialRouteName === undefined ? {} : { initialRouteName: node.initialRouteName }),
|
|
183
179
|
routes,
|
|
184
180
|
...createNodeDetails(node, stack, tabs),
|
|
@@ -190,7 +186,7 @@ export function createNavigatorPlan(manifest, options) {
|
|
|
190
186
|
platform: options.platform,
|
|
191
187
|
expoRouterVersion: options.expoRouterVersion,
|
|
192
188
|
};
|
|
193
|
-
const diagnostics = validateNavigatorManifest(manifest, context);
|
|
189
|
+
const diagnostics = validateNavigatorManifest(manifest, context, options.customNavigators);
|
|
194
190
|
const root = createNodePlan(manifest, manifest, '', options, options.responsiveSize ?? 'compact');
|
|
195
191
|
return {
|
|
196
192
|
context,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createNavigatorPlan.js","sourceRoot":"","sources":["../../src/expo-router/createNavigatorPlan.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createNavigatorPlan.js","sourceRoot":"","sources":["../../src/expo-router/createNavigatorPlan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CustomNavigatorNode } from '@ankhorage/contracts/navigator';
|
|
2
|
+
import type { CustomNavigatorRegistry } from '../custom/CustomNavigatorRegistry';
|
|
3
|
+
import type { NavigatorAdapterPlan, NavigatorRuntimePlatform } from '../definitions/NavigatorPlan';
|
|
4
|
+
/*** Resolve a registered standard-router integration without materializing executable manifest data. */
|
|
5
|
+
export declare function resolveCustomNavigatorAdapterPlan(node: CustomNavigatorNode, platform: NavigatorRuntimePlatform, routerMajor: number | undefined, registry: CustomNavigatorRegistry | undefined): NavigatorAdapterPlan;
|
|
6
|
+
//# sourceMappingURL=resolveCustomNavigatorPlan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveCustomNavigatorPlan.d.ts","sourceRoot":"","sources":["../../src/expo-router/resolveCustomNavigatorPlan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAEnG,wGAAwG;AACxG,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,wBAAwB,EAClC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,QAAQ,EAAE,uBAAuB,GAAG,SAAS,GAC5C,oBAAoB,CAmBtB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/*** Resolve a registered standard-router integration without materializing executable manifest data. */
|
|
2
|
+
export function resolveCustomNavigatorAdapterPlan(node, platform, routerMajor, registry) {
|
|
3
|
+
const registration = registry?.[node.navigatorId];
|
|
4
|
+
const supported = registration !== undefined &&
|
|
5
|
+
registration.platforms.includes(platform) &&
|
|
6
|
+
routerMajor !== undefined &&
|
|
7
|
+
routerMajor >= 56;
|
|
8
|
+
return {
|
|
9
|
+
id: 'custom',
|
|
10
|
+
...(registration === undefined
|
|
11
|
+
? {}
|
|
12
|
+
: { module: registration.module, exportName: registration.exportName }),
|
|
13
|
+
support: supported ? 'supported' : 'unavailable',
|
|
14
|
+
stability: registration?.stability ?? 'alpha',
|
|
15
|
+
limitations: [
|
|
16
|
+
'Requires an immutable registered expo-router-standard integration.',
|
|
17
|
+
'Expo Router 56.0.0 or newer owns route state, params, deep links, and history.',
|
|
18
|
+
],
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=resolveCustomNavigatorPlan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveCustomNavigatorPlan.js","sourceRoot":"","sources":["../../src/expo-router/resolveCustomNavigatorPlan.ts"],"names":[],"mappings":"AAKA,wGAAwG;AACxG,MAAM,UAAU,iCAAiC,CAC/C,IAAyB,EACzB,QAAkC,EAClC,WAA+B,EAC/B,QAA6C;IAE7C,MAAM,YAAY,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,MAAM,SAAS,GACb,YAAY,KAAK,SAAS;QAC1B,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACzC,WAAW,KAAK,SAAS;QACzB,WAAW,IAAI,EAAE,CAAC;IACpB,OAAO;QACL,EAAE,EAAE,QAAQ;QACZ,GAAG,CAAC,YAAY,KAAK,SAAS;YAC5B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,UAAU,EAAE,CAAC;QACzE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa;QAChD,SAAS,EAAE,YAAY,EAAE,SAAS,IAAI,OAAO;QAC7C,WAAW,EAAE;YACX,oEAAoE;YACpE,gFAAgF;SACjF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { NavigatorGeneratedFile, NavigatorGenerationBindings, NavigatorPlan } from '../definitions/NavigatorPlan';
|
|
1
|
+
import type { NavigatorGeneratedFile, NavigatorGenerationBindings, NavigatorGenerationOptions, NavigatorPlan } from '../definitions/NavigatorPlan';
|
|
2
2
|
/*** Generate deterministic Expo Router files from a validated disposable plan and narrow bindings. */
|
|
3
|
-
export declare function generateNavigatorFiles(plan: NavigatorPlan, bindings: NavigatorGenerationBindings): readonly NavigatorGeneratedFile[];
|
|
3
|
+
export declare function generateNavigatorFiles(plan: NavigatorPlan, bindings: NavigatorGenerationBindings, options?: NavigatorGenerationOptions): readonly NavigatorGeneratedFile[];
|
|
4
4
|
//# sourceMappingURL=generateNavigatorFiles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateNavigatorFiles.d.ts","sourceRoot":"","sources":["../../src/generation/generateNavigatorFiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"generateNavigatorFiles.d.ts","sourceRoot":"","sources":["../../src/generation/generateNavigatorFiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAE1B,aAAa,EAGd,MAAM,8BAA8B,CAAC;AA0OtC,sGAAsG;AACtG,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,2BAA2B,EACrC,OAAO,GAAE,0BAA+B,GACvC,SAAS,sBAAsB,EAAE,CAsBnC"}
|
|
@@ -1,8 +1,21 @@
|
|
|
1
|
-
const APP_DIRECTORY = 'src/app';
|
|
2
|
-
const SAFE_ROUTE_NAME = /^[A-Za-z0-9_.()[\]-]+$/u;
|
|
3
1
|
import { generateSplitViewLayoutFile } from './generateSplitViewLayoutFile';
|
|
4
2
|
import { generateTabsLayoutFile } from './generateTabsLayoutFile';
|
|
5
3
|
import { assertModuleBinding, quote } from './generationSafety';
|
|
4
|
+
const APP_DIRECTORY = 'src/app';
|
|
5
|
+
const SAFE_ROUTE_NAME = /^[A-Za-z0-9_.()[\]-]+$/u;
|
|
6
|
+
/** Resolve a safe directory below the Expo Router app root without filesystem normalization. */
|
|
7
|
+
function resolveRootDirectory(rootDirectory) {
|
|
8
|
+
const directory = rootDirectory ?? APP_DIRECTORY;
|
|
9
|
+
const segments = directory.split('/');
|
|
10
|
+
if (segments[0] !== 'src' ||
|
|
11
|
+
segments[1] !== 'app' ||
|
|
12
|
+
segments.length < 2 ||
|
|
13
|
+
segments.some((segment) => segment.length === 0 || segment === '.' || segment === '..') ||
|
|
14
|
+
segments.slice(2).some((segment) => !SAFE_ROUTE_NAME.test(segment))) {
|
|
15
|
+
throw new Error(`Navigator root directory ${JSON.stringify(directory)} must be src/app or a safe descendant.`);
|
|
16
|
+
}
|
|
17
|
+
return directory;
|
|
18
|
+
}
|
|
6
19
|
function assertRouteName(name) {
|
|
7
20
|
if (!SAFE_ROUTE_NAME.test(name) || name === '.' || name === '..') {
|
|
8
21
|
throw new Error(`Route name ${JSON.stringify(name)} is not a safe generated file segment.`);
|
|
@@ -66,6 +79,9 @@ function createNavigatorContents(node, componentName, imports, guardAliases) {
|
|
|
66
79
|
navigatorOptions === undefined
|
|
67
80
|
? undefined
|
|
68
81
|
: `screenOptions={${JSON.stringify(navigatorOptions)}}`,
|
|
82
|
+
node.type === 'custom' && node.custom?.config !== undefined
|
|
83
|
+
? `{...${JSON.stringify(node.custom.config)}}`
|
|
84
|
+
: undefined,
|
|
69
85
|
].filter((value) => value !== undefined);
|
|
70
86
|
const openingTag = `<${componentName}${props.length === 0 ? '' : ` ${props.join(' ')}`}>`;
|
|
71
87
|
const screens = node.routes
|
|
@@ -117,15 +133,17 @@ function createScreenFile(route, directory, bindings) {
|
|
|
117
133
|
contents: `export { ${binding.exportName} as default } from ${quote(binding.module)};\n`,
|
|
118
134
|
};
|
|
119
135
|
}
|
|
120
|
-
function collectFiles(node, directory, bindings) {
|
|
136
|
+
function collectFiles(node, directory, bindings, includeScreenFiles) {
|
|
121
137
|
const files = [createLayoutFile(node, directory, bindings)];
|
|
122
138
|
for (const route of node.routes) {
|
|
123
139
|
assertRouteName(route.name);
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
140
|
+
if (includeScreenFiles) {
|
|
141
|
+
const screen = createScreenFile(route, directory, bindings);
|
|
142
|
+
if (screen !== undefined)
|
|
143
|
+
files.push(screen);
|
|
144
|
+
}
|
|
127
145
|
if (route.navigator !== undefined) {
|
|
128
|
-
files.push(...collectFiles(route.navigator, `${directory}/${route.name}`, bindings));
|
|
146
|
+
files.push(...collectFiles(route.navigator, `${directory}/${route.name}`, bindings, includeScreenFiles));
|
|
129
147
|
}
|
|
130
148
|
}
|
|
131
149
|
return files;
|
|
@@ -155,13 +173,14 @@ function validateFlowBindings(plan, bindings) {
|
|
|
155
173
|
}
|
|
156
174
|
}
|
|
157
175
|
/*** Generate deterministic Expo Router files from a validated disposable plan and narrow bindings. */
|
|
158
|
-
export function generateNavigatorFiles(plan, bindings) {
|
|
176
|
+
export function generateNavigatorFiles(plan, bindings, options = {}) {
|
|
159
177
|
const errors = plan.diagnostics.filter((diagnostic) => diagnostic.severity === 'error');
|
|
160
178
|
if (!plan.supported || errors.length > 0) {
|
|
161
179
|
throw new Error(`Cannot generate an unsupported navigator plan: ${errors.map((error) => error.code).join(', ') || 'adapter unavailable'}.`);
|
|
162
180
|
}
|
|
163
181
|
validateFlowBindings(plan, bindings);
|
|
164
|
-
const
|
|
182
|
+
const rootDirectory = resolveRootDirectory(options.rootDirectory);
|
|
183
|
+
const files = collectFiles(plan.root, rootDirectory, bindings, options.includeScreenFiles ?? true).sort((left, right) => left.path.localeCompare(right.path));
|
|
165
184
|
const paths = new Set();
|
|
166
185
|
for (const file of files) {
|
|
167
186
|
if (paths.has(file.path))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateNavigatorFiles.js","sourceRoot":"","sources":["../../src/generation/generateNavigatorFiles.ts"],"names":[],"mappings":"AASA,MAAM,aAAa,GAAG,SAAS,CAAC;AAChC,MAAM,eAAe,GAAG,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"generateNavigatorFiles.js","sourceRoot":"","sources":["../../src/generation/generateNavigatorFiles.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
export type {
|
|
1
|
+
export type { CustomNavigatorConfigIssue, CustomNavigatorRegistration, CustomNavigatorRegistry, } from './custom/CustomNavigatorRegistry';
|
|
2
|
+
export { defineCustomNavigatorRegistry } from './custom/CustomNavigatorRegistry';
|
|
3
|
+
export type { ExpoRouterNavigatorModule, NavigatorAdapterId, NavigatorAdapterPlan, NavigatorApiStability, NavigatorDiagnostic, NavigatorGeneratedFile, NavigatorGenerationBindings, NavigatorGenerationOptions, NavigatorNodePlan, NavigatorPlan, NavigatorResponsiveSize, NavigatorRoutePlan, NavigatorRuntimePlatform, NavigatorScreenModule, NavigatorSupportStatus, NavigatorValidationContext, ResolvedTabsImplementation, ResolvedTabsPresentation, TabsNavigatorPlan, } from './definitions/NavigatorPlan';
|
|
2
4
|
export type { CreateNavigatorPlanOptions } from './expo-router/createNavigatorPlan';
|
|
3
5
|
export { createNavigatorPlan } from './expo-router/createNavigatorPlan';
|
|
4
6
|
export { resolveTabsNavigatorPlan } from './expo-router/resolveTabsNavigatorPlan';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,yBAAyB,EACzB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,YAAY,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AACnG,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,0BAA0B,EAC1B,2BAA2B,EAC3B,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,YAAY,EACV,yBAAyB,EACzB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,EAC1B,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,YAAY,EAAE,8BAA8B,EAAE,MAAM,8CAA8C,CAAC;AACnG,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { defineCustomNavigatorRegistry } from './custom/CustomNavigatorRegistry';
|
|
1
2
|
export { createNavigatorPlan } from './expo-router/createNavigatorPlan';
|
|
2
3
|
export { resolveTabsNavigatorPlan } from './expo-router/resolveTabsNavigatorPlan';
|
|
3
4
|
export { generateNavigatorFiles } from './generation/generateNavigatorFiles';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAuBjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC"}
|
package/dist/metadata/index.d.ts
CHANGED
|
@@ -73,7 +73,11 @@ export declare const NAVIGATOR_PACKAGE_METADATA: {
|
|
|
73
73
|
readonly inspectorMinimumIosVersion: 26;
|
|
74
74
|
};
|
|
75
75
|
readonly custom: {
|
|
76
|
-
readonly support: "
|
|
76
|
+
readonly support: "registered";
|
|
77
|
+
readonly minimumExpoRouterVersion: "56.0.0";
|
|
78
|
+
readonly integration: "expo-router-standard";
|
|
79
|
+
readonly routerOwner: "expo-router";
|
|
80
|
+
readonly config: "schema-validated-json";
|
|
77
81
|
};
|
|
78
82
|
};
|
|
79
83
|
readonly tabs: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,0BAA0B
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+E7B,CAAC"}
|
package/dist/metadata/index.js
CHANGED
|
@@ -48,7 +48,13 @@ export const NAVIGATOR_PACKAGE_METADATA = {
|
|
|
48
48
|
maximumAdditionalColumns: 2,
|
|
49
49
|
inspectorMinimumIosVersion: 26,
|
|
50
50
|
},
|
|
51
|
-
custom: {
|
|
51
|
+
custom: {
|
|
52
|
+
support: 'registered',
|
|
53
|
+
minimumExpoRouterVersion: '56.0.0',
|
|
54
|
+
integration: 'expo-router-standard',
|
|
55
|
+
routerOwner: 'expo-router',
|
|
56
|
+
config: 'schema-validated-json',
|
|
57
|
+
},
|
|
52
58
|
},
|
|
53
59
|
tabs: {
|
|
54
60
|
implementations: ['adaptive', 'javascript', 'native', 'custom'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,iBAAiB,EACjB,eAAe,GAChB,MAAM,gCAAgC,CAAC;AAExC,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,WAAW,EAAE,sBAAsB;IACnC,gBAAgB,EAAE,WAAW;IAC7B,eAAe,EAAE,gCAAgC;IACjD,cAAc,EAAE,eAAe;IAC/B,OAAO,EAAE,iBAAiB;IAC1B,UAAU,EAAE,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;IAC7F,YAAY,EAAE;QACZ,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE;QAC1E,WAAW,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE;QACjF,eAAe,EAAE;YACf,OAAO,EAAE,WAAW;YACpB,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,sBAAsB;YAC9B,wBAAwB,EAAE,QAAQ;SACnC;QACD,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,oBAAoB,EAAE;KACpF;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE;YACJ,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE;YAC7D,UAAU,EAAE,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE;YACzE,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,oBAAoB,EAAE;SAC7F;QACD,iBAAiB,EAAE;YACjB,OAAO,EAAE,WAAW;YACpB,SAAS,EAAE,OAAO;YAClB,wBAAwB,EAAE,QAAQ;YAClC,SAAS,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC;YAC7B,WAAW,EAAE,cAAc;YAC3B,MAAM,EAAE,cAAc;YACtB,gBAAgB,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,CAAC;YACpF,OAAO,EAAE;gBACP,aAAa,EAAE,cAAc;gBAC7B,oBAAoB,EAAE,sCAAsC;aAC7D;SACF;QACD,SAAS,EAAE;YACT,OAAO,EAAE,WAAW;YACpB,SAAS,EAAE,OAAO;YAClB,MAAM,EAAE,cAAc;YACtB,wBAAwB,EAAE,QAAQ;YAClC,MAAM,EAAE,iCAAiC;YACzC,SAAS,EAAE,CAAC,KAAK,CAAC;YAClB,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;YAC1C,wBAAwB,EAAE,CAAC;YAC3B,0BAA0B,EAAE,EAAE;SAC/B;QACD,MAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metadata/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AppNavigatorManifest } from '@ankhorage/contracts/navigator';
|
|
2
|
+
import type { CustomNavigatorRegistry } from '../custom/CustomNavigatorRegistry';
|
|
3
|
+
import type { NavigatorDiagnostic, NavigatorValidationContext } from '../definitions/NavigatorPlan';
|
|
4
|
+
/*** Validate all deliberately registered custom navigator extension nodes. */
|
|
5
|
+
export declare function addCustomNavigatorDiagnostics(diagnostics: NavigatorDiagnostic[], manifest: AppNavigatorManifest, context: NavigatorValidationContext, routerMajor: number | undefined, registry: CustomNavigatorRegistry | undefined): void;
|
|
6
|
+
//# sourceMappingURL=validateCustomNavigator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateCustomNavigator.d.ts","sourceRoot":"","sources":["../../src/validation/validateCustomNavigator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAiB,MAAM,gCAAgC,CAAC;AAE1F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAwIpG,8EAA8E;AAC9E,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,mBAAmB,EAAE,EAClC,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,0BAA0B,EACnC,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,QAAQ,EAAE,uBAAuB,GAAG,SAAS,GAC5C,IAAI,CAEN"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/*** Validate finite JSON manifest data without accepting functions, symbols, cycles, or prototypes. */
|
|
2
|
+
function isPortableConfig(value, ancestors) {
|
|
3
|
+
if (value === null || typeof value === 'string' || typeof value === 'boolean')
|
|
4
|
+
return true;
|
|
5
|
+
if (typeof value === 'number')
|
|
6
|
+
return Number.isFinite(value);
|
|
7
|
+
if (typeof value !== 'object' || ancestors.has(value))
|
|
8
|
+
return false;
|
|
9
|
+
if (Array.isArray(value)) {
|
|
10
|
+
if (Object.keys(value).length !== value.length ||
|
|
11
|
+
Object.getOwnPropertySymbols(value).length > 0) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
const prototype = Object.getPrototypeOf(value);
|
|
17
|
+
if (prototype !== Object.prototype && prototype !== null)
|
|
18
|
+
return false;
|
|
19
|
+
if (Reflect.ownKeys(value).some((key) => typeof key !== 'string'))
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
ancestors.add(value);
|
|
23
|
+
const valid = Object.values(value).every((entry) => isPortableConfig(entry, ancestors));
|
|
24
|
+
ancestors.delete(value);
|
|
25
|
+
return valid;
|
|
26
|
+
}
|
|
27
|
+
/*** Add platform and Expo Router compatibility diagnostics for one registered extension. */
|
|
28
|
+
function addCompatibilityDiagnostics(diagnostics, node, pointer, context, routerMajor, registration) {
|
|
29
|
+
if (!registration.platforms.includes(context.platform)) {
|
|
30
|
+
diagnostics.push({
|
|
31
|
+
code: 'unsupported-custom-navigator-platform',
|
|
32
|
+
severity: 'error',
|
|
33
|
+
path: `${pointer}/navigatorId`,
|
|
34
|
+
message: `Custom navigator ${JSON.stringify(node.navigatorId)} does not support ${context.platform}.`,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
if (routerMajor !== undefined && routerMajor < 56) {
|
|
38
|
+
diagnostics.push({
|
|
39
|
+
code: 'unsupported-expo-router-version',
|
|
40
|
+
severity: 'error',
|
|
41
|
+
path: `${pointer}/navigatorId`,
|
|
42
|
+
message: 'Registered custom navigators require Expo Router 56.0.0 or newer.',
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/*** Run one registration's schema-specific validator after the portable JSON boundary. */
|
|
47
|
+
function addConfigDiagnostics(diagnostics, node, pointer, registration) {
|
|
48
|
+
if (!isPortableConfig(node.config ?? {}, new Set())) {
|
|
49
|
+
diagnostics.push({
|
|
50
|
+
code: 'invalid-custom-navigator-config',
|
|
51
|
+
severity: 'error',
|
|
52
|
+
path: `${pointer}/config`,
|
|
53
|
+
message: 'Custom navigator config must contain finite JSON data only.',
|
|
54
|
+
});
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
for (const issue of registration.validateConfig(node.config)) {
|
|
59
|
+
diagnostics.push({
|
|
60
|
+
code: issue.code,
|
|
61
|
+
severity: 'error',
|
|
62
|
+
path: `${pointer}/config${issue.path ?? ''}`,
|
|
63
|
+
message: issue.message,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
diagnostics.push({
|
|
69
|
+
code: 'custom-navigator-validator-failed',
|
|
70
|
+
severity: 'error',
|
|
71
|
+
path: `${pointer}/config`,
|
|
72
|
+
message: `Custom navigator config validator failed: ${error instanceof Error ? error.message : String(error)}`,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/*** Add registry, platform, version, and schema diagnostics for one custom navigator node. */
|
|
77
|
+
function addCustomNodeDiagnostics(diagnostics, node, pointer, context, routerMajor, registry) {
|
|
78
|
+
const registration = registry?.[node.navigatorId];
|
|
79
|
+
if (registration === undefined) {
|
|
80
|
+
diagnostics.push({
|
|
81
|
+
code: 'unregistered-custom-navigator',
|
|
82
|
+
severity: 'error',
|
|
83
|
+
path: `${pointer}/navigatorId`,
|
|
84
|
+
message: `Custom navigator ${JSON.stringify(node.navigatorId)} is not registered.`,
|
|
85
|
+
});
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
addCompatibilityDiagnostics(diagnostics, node, pointer, context, routerMajor, registration);
|
|
89
|
+
addConfigDiagnostics(diagnostics, node, pointer, registration);
|
|
90
|
+
}
|
|
91
|
+
/*** Traverse custom navigator extensions independently from built-in navigator option policy. */
|
|
92
|
+
function validateCustomTree(diagnostics, node, pointer, context, routerMajor, registry) {
|
|
93
|
+
if (node.type === 'custom') {
|
|
94
|
+
addCustomNodeDiagnostics(diagnostics, node, pointer, context, routerMajor, registry);
|
|
95
|
+
}
|
|
96
|
+
for (const [index, route] of node.routes.entries()) {
|
|
97
|
+
if (route.navigator !== undefined) {
|
|
98
|
+
validateCustomTree(diagnostics, route.navigator, `${pointer}/routes/${index}/navigator`, context, routerMajor, registry);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/*** Validate all deliberately registered custom navigator extension nodes. */
|
|
103
|
+
export function addCustomNavigatorDiagnostics(diagnostics, manifest, context, routerMajor, registry) {
|
|
104
|
+
validateCustomTree(diagnostics, manifest, '', context, routerMajor, registry);
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=validateCustomNavigator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateCustomNavigator.js","sourceRoot":"","sources":["../../src/validation/validateCustomNavigator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { AppNavigatorManifest } from '@ankhorage/contracts/navigator';
|
|
2
|
+
import type { CustomNavigatorRegistry } from '../custom/CustomNavigatorRegistry';
|
|
2
3
|
import type { NavigatorDiagnostic, NavigatorValidationContext } from '../definitions/NavigatorPlan';
|
|
3
4
|
/*** Validate one navigator desired-state slice for a concrete Expo Router target. */
|
|
4
|
-
export declare function validateNavigatorManifest(manifest: AppNavigatorManifest, context: NavigatorValidationContext): readonly NavigatorDiagnostic[];
|
|
5
|
+
export declare function validateNavigatorManifest(manifest: AppNavigatorManifest, context: NavigatorValidationContext, customNavigators?: CustomNavigatorRegistry): readonly NavigatorDiagnostic[];
|
|
5
6
|
//# sourceMappingURL=validateNavigatorManifest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateNavigatorManifest.d.ts","sourceRoot":"","sources":["../../src/validation/validateNavigatorManifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAIrB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"validateNavigatorManifest.d.ts","sourceRoot":"","sources":["../../src/validation/validateNavigatorManifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAIrB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAwNpG,qFAAqF;AACrF,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,0BAA0B,EACnC,gBAAgB,CAAC,EAAE,uBAAuB,GACzC,SAAS,mBAAmB,EAAE,CAsBhC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { parseExpoRouterMajor, resolveEffectiveStackConfig, } from '../expo-router/resolveNavigatorConfig';
|
|
2
|
+
import { addCustomNavigatorDiagnostics } from './validateCustomNavigator';
|
|
2
3
|
import { addExperimentalStackDiagnostics } from './validateExperimentalStack';
|
|
3
4
|
import { validatePresetTopology } from './validatePresetTopology';
|
|
4
5
|
import { addSplitViewDiagnostics } from './validateSplitView';
|
|
@@ -22,14 +23,6 @@ function addUnsupportedAdapterDiagnostics(diagnostics, manifest, node, pointer,
|
|
|
22
23
|
if (node.type === 'tabs') {
|
|
23
24
|
addTabsAdapterDiagnostics(diagnostics, manifest, node, pointer, context, routerMajor);
|
|
24
25
|
}
|
|
25
|
-
if (node.type === 'custom') {
|
|
26
|
-
diagnostics.push({
|
|
27
|
-
code: 'adapter-unavailable',
|
|
28
|
-
severity: 'error',
|
|
29
|
-
path: pointer,
|
|
30
|
-
message: 'Custom navigator is not available in the core Navigator release.',
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
26
|
}
|
|
34
27
|
function validateInitialRoute(diagnostics, node, pointer) {
|
|
35
28
|
if (node.type === 'slot' && node.initialRouteName !== undefined) {
|
|
@@ -143,7 +136,7 @@ function validateNode(diagnostics, manifest, node, pointer, context, routerMajor
|
|
|
143
136
|
}
|
|
144
137
|
}
|
|
145
138
|
/*** Validate one navigator desired-state slice for a concrete Expo Router target. */
|
|
146
|
-
export function validateNavigatorManifest(manifest, context) {
|
|
139
|
+
export function validateNavigatorManifest(manifest, context, customNavigators) {
|
|
147
140
|
const diagnostics = [];
|
|
148
141
|
const routerMajor = parseExpoRouterMajor(context.expoRouterVersion);
|
|
149
142
|
if (routerMajor === undefined) {
|
|
@@ -158,6 +151,7 @@ export function validateNavigatorManifest(manifest, context) {
|
|
|
158
151
|
validateNode(diagnostics, manifest, manifest, '', context, routerMajor);
|
|
159
152
|
addExperimentalStackDiagnostics(diagnostics, manifest, context, routerMajor);
|
|
160
153
|
addSplitViewDiagnostics(diagnostics, manifest, context, routerMajor);
|
|
154
|
+
addCustomNavigatorDiagnostics(diagnostics, manifest, context, routerMajor, customNavigators);
|
|
161
155
|
return diagnostics.sort((left, right) => `${left.path}\0${left.code}\0${left.message}`.localeCompare(`${right.path}\0${right.code}\0${right.message}`));
|
|
162
156
|
}
|
|
163
157
|
//# sourceMappingURL=validateNavigatorManifest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateNavigatorManifest.js","sourceRoot":"","sources":["../../src/validation/validateNavigatorManifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validateNavigatorManifest.js","sourceRoot":"","sources":["../../src/validation/validateNavigatorManifest.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED