mapples 0.2.0-beta.9 → 0.2.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.
Files changed (87) hide show
  1. package/README.md +1 -1
  2. package/dist/api/client.d.ts +16 -0
  3. package/dist/api/client.js +37 -0
  4. package/dist/api/client.js.map +1 -1
  5. package/dist/api/commit.js +19 -1
  6. package/dist/api/commit.js.map +1 -1
  7. package/dist/api/errors.d.ts +1 -1
  8. package/dist/api/errors.js +3 -0
  9. package/dist/api/errors.js.map +1 -1
  10. package/dist/api/objects.d.ts +3 -1
  11. package/dist/api/objects.js +31 -4
  12. package/dist/api/objects.js.map +1 -1
  13. package/dist/api/project.d.ts +11 -0
  14. package/dist/api/project.js +29 -0
  15. package/dist/api/project.js.map +1 -0
  16. package/dist/assets/assets.d.ts +12 -0
  17. package/dist/assets/assets.js +31 -2
  18. package/dist/assets/assets.js.map +1 -1
  19. package/dist/codegen/imports.d.ts +7 -0
  20. package/dist/codegen/imports.js +31 -0
  21. package/dist/codegen/imports.js.map +1 -1
  22. package/dist/commands/doctor.js +3 -1
  23. package/dist/commands/doctor.js.map +1 -1
  24. package/dist/commands/impl/createImpl.js +34 -4
  25. package/dist/commands/impl/createImpl.js.map +1 -1
  26. package/dist/commands/impl/doctorImpl.js +17 -7
  27. package/dist/commands/impl/doctorImpl.js.map +1 -1
  28. package/dist/commands/impl/initImpl.js +47 -1
  29. package/dist/commands/impl/initImpl.js.map +1 -1
  30. package/dist/commands/impl/syncImpl.js +16 -2
  31. package/dist/commands/impl/syncImpl.js.map +1 -1
  32. package/dist/commands/init.js +1 -0
  33. package/dist/commands/init.js.map +1 -1
  34. package/dist/nav/navigatorTree.d.ts +36 -2
  35. package/dist/nav/navigatorTree.js +191 -40
  36. package/dist/nav/navigatorTree.js.map +1 -1
  37. package/dist/nav/routeTree.d.ts +2 -1
  38. package/dist/nav/routeTree.js +9 -4
  39. package/dist/nav/routeTree.js.map +1 -1
  40. package/dist/nav/screenOptions.d.ts +24 -0
  41. package/dist/nav/screenOptions.js +41 -13
  42. package/dist/nav/screenOptions.js.map +1 -1
  43. package/dist/packages/catalog.d.ts +20 -0
  44. package/dist/packages/catalog.js +94 -0
  45. package/dist/packages/catalog.js.map +1 -0
  46. package/dist/packages/resolve.d.ts +61 -0
  47. package/dist/packages/resolve.js +149 -0
  48. package/dist/packages/resolve.js.map +1 -0
  49. package/dist/runtime/runtimeFiles.d.ts +17 -0
  50. package/dist/runtime/runtimeFiles.js +183 -0
  51. package/dist/runtime/runtimeFiles.js.map +1 -0
  52. package/dist/services/appDeps.d.ts +41 -0
  53. package/dist/services/appDeps.js +152 -0
  54. package/dist/services/appDeps.js.map +1 -0
  55. package/dist/services/appPackages.d.ts +46 -0
  56. package/dist/services/appPackages.js +266 -0
  57. package/dist/services/appPackages.js.map +1 -0
  58. package/dist/services/doctorService.d.ts +28 -1
  59. package/dist/services/doctorService.js +217 -3
  60. package/dist/services/doctorService.js.map +1 -1
  61. package/dist/services/scaffold.d.ts +13 -1
  62. package/dist/services/scaffold.js +57 -5
  63. package/dist/services/scaffold.js.map +1 -1
  64. package/dist/services/syncEngine.js +89 -25
  65. package/dist/services/syncEngine.js.map +1 -1
  66. package/dist/types.d.ts +4 -0
  67. package/dist/types.js.map +1 -1
  68. package/dist/ui/report.d.ts +8 -0
  69. package/dist/ui/report.js +22 -0
  70. package/dist/ui/report.js.map +1 -1
  71. package/dist/version.d.ts +21 -0
  72. package/dist/version.js +40 -3
  73. package/dist/version.js.map +1 -1
  74. package/package.json +4 -3
  75. package/templates/agent/mapples.md +9 -4
  76. package/templates/agent/skills/mapples-conventions/SKILL.md +5 -4
  77. package/templates/agent/skills/mapples-design/SKILL.md +4 -4
  78. package/templates/agent/skills/mapples-design/reference/component-library.md +3 -3
  79. package/templates/agent/skills/mapples-design/reference/layout-contract.md +2 -3
  80. package/templates/agent/skills/mapples-design/reference/playbooks/onboarding-flow.md +1 -1
  81. package/templates/agent/skills/mapples-design/reference/playbooks/screen-flow-wiring.md +2 -5
  82. package/templates/agent/skills/mapples-design/reference/style-guides.md +2 -0
  83. package/templates/agent/skills/mapples-sync/SKILL.md +3 -2
  84. package/templates/app/_layout.tsx +6 -1
  85. package/templates/gitignore +2 -0
  86. package/templates/metro.config.js +11 -0
  87. package/templates/package.json +27 -33
@@ -170,22 +170,18 @@ export function mapScreenOptions(route, kind, where, notes) {
170
170
  out.tabBarLabel = value;
171
171
  }
172
172
  else if (key === 'tabIcon') {
173
- if (kind === 'tabs') {
174
- const icon = concrete(value, key, where, notes);
175
- if (icon !== undefined)
176
- out.tabBarIcon = icon;
177
- }
173
+ // A `ref(glyph:…)` / `ref(icon:…)` icon resolves at runtime
174
+ // (`RouteIcon` from @mapples/app); the layout keeps the reference.
175
+ if (kind === 'tabs' && typeof value === 'string')
176
+ out.tabBarIcon = value;
178
177
  }
179
178
  else if (key === 'drawerLabel') {
180
179
  if (kind === 'drawer')
181
180
  out.drawerLabel = value;
182
181
  }
183
182
  else if (key === 'drawerIcon') {
184
- if (kind === 'drawer') {
185
- const icon = concrete(value, key, where, notes);
186
- if (icon !== undefined)
187
- out.drawerIcon = icon;
188
- }
183
+ if (kind === 'drawer' && typeof value === 'string')
184
+ out.drawerIcon = value;
189
185
  }
190
186
  else {
191
187
  // Already a react-navigation name: passes through, minus unresolvable references.
@@ -199,15 +195,47 @@ export function mapScreenOptions(route, kind, where, notes) {
199
195
  out.presentation = route.presentation;
200
196
  return out;
201
197
  }
198
+ /**
199
+ * The options every generated screen carries whatever the document leaves
200
+ * unset — the rules `@mapples/types` states for the Creator canvas
201
+ * (`routeHeaderVisible`, `routeTitle`, `routeItemLabel`), so the app and the
202
+ * canvas frames draw the same chrome:
203
+ *
204
+ * - a route entering a nested navigator shows no header of its own (the
205
+ * nested navigator draws the header of the screen inside it — otherwise
206
+ * `(auth)` stacks over `index`);
207
+ * - a screen's title is the route's, else the navigator's, else the route
208
+ * NAME (never the file segment `index`);
209
+ * - a tab / drawer item is labelled `tabLabel` / `drawerLabel`, else the
210
+ * route name (never the header title).
211
+ */
212
+ export function defaultScreenOptions(route, navigator, mapped) {
213
+ const out = {};
214
+ const routeOptions = route.options ?? {};
215
+ if (route.target.kind === 'navigator' && routeOptions.visible === undefined) {
216
+ out.headerShown = false;
217
+ }
218
+ const navHeader = isObject(navigator.options?.header) ? navigator.options.header : {};
219
+ if (mapped.title === undefined && navHeader.title === undefined)
220
+ out.title = route.name;
221
+ if (navigator.type === 'tabs' && mapped.tabBarLabel === undefined) {
222
+ out.tabBarLabel = route.name;
223
+ }
224
+ if (navigator.type === 'drawer' && mapped.drawerLabel === undefined) {
225
+ out.drawerLabel = route.name;
226
+ }
227
+ return out;
228
+ }
202
229
  /** Options hiding a route group from a tab bar / drawer (detached navigators). */
203
230
  export function hiddenScreenOptions(kind) {
231
+ // A group draws its own navigator's header, never the parent's over it.
204
232
  switch (kind) {
205
233
  case 'tabs':
206
- return { href: null };
234
+ return { href: null, headerShown: false };
207
235
  case 'drawer':
208
- return { drawerItemStyle: { display: 'none' } };
236
+ return { drawerItemStyle: { display: 'none' }, headerShown: false };
209
237
  default:
210
- return {};
238
+ return { headerShown: false };
211
239
  }
212
240
  }
213
241
  //# sourceMappingURL=screenOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"screenOptions.js","sourceRoot":"","sources":["../../src/nav/screenOptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screenOptions.js","sourceRoot":"","sources":["../../src/nav/screenOptions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export interface PackageDependency {
2
+ name: string;
3
+ version: string;
4
+ }
5
+ export interface CatalogPackage {
6
+ id: string;
7
+ dependencies: PackageDependency[];
8
+ expoPlugins?: string[];
9
+ }
10
+ export declare const OPTIONAL_PACKAGES: Record<string, CatalogPackage>;
11
+ /** Element types whose schematic declares a package (`RegisteredCanvasComponent.packages`). */
12
+ export declare const ELEMENT_PACKAGES: Record<string, string>;
13
+ /** The icon pack each icon family key (`theme.icons.family`, an `IconFamilyKey`) needs. */
14
+ export declare const ICON_FAMILY_PACKAGE: Record<string, string>;
15
+ /** The family the Creator assumes when a project has not chosen one (Style → Icons default). */
16
+ export declare const DEFAULT_ICON_FAMILY = "ionicons";
17
+ /** The catalog package an icon family needs. An unknown family is a data error, as in the Creator. */
18
+ export declare function iconPackForFamily(family: string | undefined): CatalogPackage;
19
+ /** Every npm name the optional catalog manages — the dependencies `sync` may add or retire. */
20
+ export declare const CATALOG_DEPENDENCY_NAMES: ReadonlySet<string>;
@@ -0,0 +1,94 @@
1
+ // The optional half of the Creator's package catalog, mirrored from
2
+ // mapples-kit `packages/@mapplesorg/schematics/src/packages/catalog.ts` (a
3
+ // private package the CLI cannot depend on). Used only to derive what a
4
+ // project needs when its packages document does not say — a project never
5
+ // saved since the document existed, or a canvas edit pushed from code that
6
+ // the Creator has not recorded yet. When the document lists a package, the
7
+ // document's versions win. Keep ids, element rules and versions in step with
8
+ // the kit catalog.
9
+ //
10
+ // The required baseline (runtime, Expo, React Native, svg, image) is not
11
+ // mirrored: `templates/package.json` is that baseline for `create`, and
12
+ // `init` adds the same list (services/appDeps.ts).
13
+ const VECTOR_ICONS_VERSION = '^13.1.0';
14
+ const iconPack = (suffix, version = VECTOR_ICONS_VERSION) => ({
15
+ id: `icon-pack:${suffix}`,
16
+ dependencies: [{ name: `@react-native-vector-icons/${suffix}`, version }],
17
+ });
18
+ export const OPTIONAL_PACKAGES = {
19
+ qrcode: {
20
+ id: 'qrcode',
21
+ dependencies: [{ name: 'react-native-qrcode-svg', version: '^6.3.22' }],
22
+ },
23
+ barcode: { id: 'barcode', dependencies: [{ name: 'jsbarcode', version: '^3.12.3' }] },
24
+ gradient: {
25
+ id: 'gradient',
26
+ dependencies: [{ name: 'expo-linear-gradient', version: '~57.0.1' }],
27
+ },
28
+ video: {
29
+ id: 'video',
30
+ dependencies: [{ name: 'expo-video', version: '~57.0.3' }],
31
+ expoPlugins: ['expo-video'],
32
+ },
33
+ ...Object.fromEntries([
34
+ iconPack('ant-design'),
35
+ iconPack('entypo'),
36
+ iconPack('evil-icons'),
37
+ iconPack('feather'),
38
+ iconPack('fontawesome'),
39
+ iconPack('fontawesome5'),
40
+ iconPack('fontawesome6'),
41
+ iconPack('fontisto'),
42
+ iconPack('foundation'),
43
+ iconPack('ionicons'),
44
+ iconPack('lucide'),
45
+ iconPack('material-design-icons'),
46
+ iconPack('material-icons'),
47
+ iconPack('octicons', '^21.1.0'),
48
+ iconPack('simple-line-icons'),
49
+ iconPack('zocial'),
50
+ ].map((p) => [p.id, p])),
51
+ };
52
+ /** Element types whose schematic declares a package (`RegisteredCanvasComponent.packages`). */
53
+ export const ELEMENT_PACKAGES = {
54
+ QRCode: 'qrcode',
55
+ BarCode: 'barcode',
56
+ GradientBackground: 'gradient',
57
+ Video: 'video',
58
+ };
59
+ /** The icon pack each icon family key (`theme.icons.family`, an `IconFamilyKey`) needs. */
60
+ export const ICON_FAMILY_PACKAGE = {
61
+ 'ant-design': 'icon-pack:ant-design',
62
+ entypo: 'icon-pack:entypo',
63
+ 'evil-icons': 'icon-pack:evil-icons',
64
+ feather: 'icon-pack:feather',
65
+ fontawesome: 'icon-pack:fontawesome',
66
+ 'fontawesome5-solid': 'icon-pack:fontawesome5',
67
+ 'fontawesome5-regular': 'icon-pack:fontawesome5',
68
+ 'fontawesome5-brands': 'icon-pack:fontawesome5',
69
+ 'fontawesome6-solid': 'icon-pack:fontawesome6',
70
+ 'fontawesome6-regular': 'icon-pack:fontawesome6',
71
+ 'fontawesome6-brands': 'icon-pack:fontawesome6',
72
+ fontisto: 'icon-pack:fontisto',
73
+ foundation: 'icon-pack:foundation',
74
+ ionicons: 'icon-pack:ionicons',
75
+ lucide: 'icon-pack:lucide',
76
+ 'material-design-icons': 'icon-pack:material-design-icons',
77
+ 'material-icons': 'icon-pack:material-icons',
78
+ octicons: 'icon-pack:octicons',
79
+ 'simple-line-icons': 'icon-pack:simple-line-icons',
80
+ zocial: 'icon-pack:zocial',
81
+ };
82
+ /** The family the Creator assumes when a project has not chosen one (Style → Icons default). */
83
+ export const DEFAULT_ICON_FAMILY = 'ionicons';
84
+ /** The catalog package an icon family needs. An unknown family is a data error, as in the Creator. */
85
+ export function iconPackForFamily(family) {
86
+ const key = family ?? DEFAULT_ICON_FAMILY;
87
+ const id = ICON_FAMILY_PACKAGE[key];
88
+ if (!id)
89
+ throw new Error(`unknown icon family "${key}" in the project style (Style → Icons)`);
90
+ return OPTIONAL_PACKAGES[id];
91
+ }
92
+ /** Every npm name the optional catalog manages — the dependencies `sync` may add or retire. */
93
+ export const CATALOG_DEPENDENCY_NAMES = new Set(Object.values(OPTIONAL_PACKAGES).flatMap((p) => p.dependencies.map((d) => d.name)));
94
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/packages/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { ComponentEntity, PageEntity, StyleConfig } from '../api/objects.js';
2
+ import { type CatalogPackage, type PackageDependency } from './catalog.js';
3
+ export type PackageReason = 'required' | 'used' | 'enabled';
4
+ export interface ResolvedPackageEntry {
5
+ id: string;
6
+ reason: PackageReason;
7
+ dependencies: PackageDependency[];
8
+ expoPlugins?: string[];
9
+ }
10
+ export interface PackagesDocument {
11
+ version: 1;
12
+ enabled: string[];
13
+ resolved: ResolvedPackageEntry[];
14
+ }
15
+ /**
16
+ * Validate the document the backend returned (the invariants of
17
+ * `validatePackagesDocument` in `@mapples/types`). A malformed document stops
18
+ * the command: installing from a guess could drop what the project needs.
19
+ */
20
+ export declare function parsePackagesDocument(data: unknown): PackagesDocument;
21
+ export interface CanvasModel {
22
+ pages: Iterable<PageEntity>;
23
+ components: Iterable<ComponentEntity>;
24
+ style: StyleConfig | null;
25
+ }
26
+ /** Why a package is in the app: the document's own reason, or what the canvas scan found. */
27
+ export type AppPackageReason = PackageReason | 'canvas' | 'icon-family';
28
+ export interface AppPackage {
29
+ id: string;
30
+ reason: AppPackageReason;
31
+ dependencies: PackageDependency[];
32
+ expoPlugins?: string[];
33
+ /** Where the entry came from: the Creator's document, or the CLI's catalog mirror. */
34
+ origin: 'document' | 'catalog';
35
+ }
36
+ export interface PackageResolution {
37
+ /** `document`: the project has a packages document; `canvas`: it has none yet (404). */
38
+ source: 'document' | 'canvas';
39
+ packages: AppPackage[];
40
+ /** The project's icon family (Style → Icons), Creator default applied. */
41
+ iconFamily: string;
42
+ /** Lossy or noteworthy steps, for the report. */
43
+ notes: string[];
44
+ }
45
+ /** The project's icon family as stored in the theme (`theme.icons.family`). */
46
+ export declare function projectIconFamily(style: StyleConfig | null): string;
47
+ /**
48
+ * The optional packages the canvas uses, with the Creator resolver's rules:
49
+ * a schematic's declared package per element type, the gradient runtime for
50
+ * any node carrying a `gradient` payload, and for `Icon` elements the pack of
51
+ * their `iconStyle` override (the project family is added separately).
52
+ */
53
+ export declare function canvasPackages(model: CanvasModel): Map<string, CatalogPackage>;
54
+ /**
55
+ * The app's package list: every document entry (versions from the document),
56
+ * plus each catalog package the canvas needs that the document does not list
57
+ * (noted — the Creator records it on its next save). `doc === null` means the
58
+ * project has no document yet: the canvas scan alone decides the optional
59
+ * packages, and the required baseline is the scaffold's own dependencies.
60
+ */
61
+ export declare function resolveAppPackages(doc: PackagesDocument | null, model: CanvasModel): PackageResolution;
@@ -0,0 +1,149 @@
1
+ // Which packages an app must ship: the project's packages document
2
+ // (`GET /project/{uuid}/packagesdef`, written by the Creator — contract in
3
+ // `@mapples/types` packages.ts) unioned with what the canvas the CLI holds
4
+ // needs right now. The document is the Creator's record; the canvas scan
5
+ // covers what it cannot know yet (a QRCode added from code and pushed by this
6
+ // CLI, a project never saved since the document existed) and the project's
7
+ // icon family, whose pack every icon-drawing component (Icon, IconButton,
8
+ // Button's leading icon, ListItem, …) needs.
9
+ import { DEFAULT_ICON_FAMILY, ELEMENT_PACKAGES, OPTIONAL_PACKAGES, iconPackForFamily, } from './catalog.js';
10
+ const REASONS = ['required', 'used', 'enabled'];
11
+ const isNonEmptyString = (v) => typeof v === 'string' && v.length > 0;
12
+ /**
13
+ * Validate the document the backend returned (the invariants of
14
+ * `validatePackagesDocument` in `@mapples/types`). A malformed document stops
15
+ * the command: installing from a guess could drop what the project needs.
16
+ */
17
+ export function parsePackagesDocument(data) {
18
+ function fail(why) {
19
+ throw new Error(`the project's packages document is malformed: ${why}`);
20
+ }
21
+ if (!data || typeof data !== 'object')
22
+ fail('not an object');
23
+ const doc = data;
24
+ if (doc.version !== 1)
25
+ fail(`version ${JSON.stringify(doc.version)} is not supported`);
26
+ if (!Array.isArray(doc.enabled) || !doc.enabled.every(isNonEmptyString)) {
27
+ fail('`enabled` must be an array of package ids');
28
+ }
29
+ if (!Array.isArray(doc.resolved))
30
+ fail('`resolved` must be an array');
31
+ const seen = new Set();
32
+ for (const raw of doc.resolved) {
33
+ const entry = raw;
34
+ const id = entry?.id;
35
+ if (!entry ||
36
+ !isNonEmptyString(id) ||
37
+ !REASONS.includes(entry.reason) ||
38
+ !Array.isArray(entry.dependencies) ||
39
+ !entry.dependencies.every((d) => d && isNonEmptyString(d.name) && isNonEmptyString(d.version))) {
40
+ fail(`resolved entry ${JSON.stringify(id ?? raw)} needs an id, a known reason and { name, version } dependencies`);
41
+ }
42
+ if (entry.expoPlugins !== undefined &&
43
+ !(Array.isArray(entry.expoPlugins) && entry.expoPlugins.every(isNonEmptyString))) {
44
+ fail(`resolved entry "${id}" has malformed expoPlugins`);
45
+ }
46
+ if (seen.has(id))
47
+ fail(`package "${id}" is resolved more than once`);
48
+ seen.add(id);
49
+ }
50
+ return doc;
51
+ }
52
+ /** The project's icon family as stored in the theme (`theme.icons.family`). */
53
+ export function projectIconFamily(style) {
54
+ const icons = style?.theme?.icons;
55
+ return typeof icons?.family === 'string' && icons.family.length > 0
56
+ ? icons.family
57
+ : DEFAULT_ICON_FAMILY;
58
+ }
59
+ const walk = (node, visit) => {
60
+ visit(node);
61
+ for (const child of node.children ?? [])
62
+ walk(child, visit);
63
+ };
64
+ /**
65
+ * The optional packages the canvas uses, with the Creator resolver's rules:
66
+ * a schematic's declared package per element type, the gradient runtime for
67
+ * any node carrying a `gradient` payload, and for `Icon` elements the pack of
68
+ * their `iconStyle` override (the project family is added separately).
69
+ */
70
+ export function canvasPackages(model) {
71
+ const used = new Map();
72
+ const add = (pkg) => {
73
+ used.set(pkg.id, pkg);
74
+ };
75
+ const visit = (node) => {
76
+ const declared = ELEMENT_PACKAGES[node.type];
77
+ if (declared)
78
+ add(OPTIONAL_PACKAGES[declared]);
79
+ if (node.props?.gradient != null)
80
+ add(OPTIONAL_PACKAGES.gradient);
81
+ if (node.type === 'Icon' && typeof node.props?.iconStyle === 'string') {
82
+ add(iconPackForFamily(node.props.iconStyle));
83
+ }
84
+ };
85
+ for (const page of model.pages)
86
+ walk(page.root, visit);
87
+ for (const component of model.components)
88
+ walk(component.root, visit);
89
+ return used;
90
+ }
91
+ /**
92
+ * The app's package list: every document entry (versions from the document),
93
+ * plus each catalog package the canvas needs that the document does not list
94
+ * (noted — the Creator records it on its next save). `doc === null` means the
95
+ * project has no document yet: the canvas scan alone decides the optional
96
+ * packages, and the required baseline is the scaffold's own dependencies.
97
+ */
98
+ export function resolveAppPackages(doc, model) {
99
+ const notes = [];
100
+ const packages = [];
101
+ const listed = new Set();
102
+ const listedDeps = new Set();
103
+ for (const entry of doc?.resolved ?? []) {
104
+ packages.push({
105
+ id: entry.id,
106
+ reason: entry.reason,
107
+ dependencies: entry.dependencies,
108
+ ...(entry.expoPlugins?.length ? { expoPlugins: entry.expoPlugins } : {}),
109
+ origin: 'document',
110
+ });
111
+ listed.add(entry.id);
112
+ for (const d of entry.dependencies)
113
+ listedDeps.add(d.name);
114
+ }
115
+ const iconFamily = projectIconFamily(model.style);
116
+ const needed = canvasPackages(model);
117
+ const familyPack = iconPackForFamily(iconFamily);
118
+ const extras = [
119
+ ...(needed.has(familyPack.id) ? [] : [{ pkg: familyPack, reason: 'icon-family' }]),
120
+ ...[...needed.values()].map((pkg) => ({
121
+ pkg,
122
+ reason: (pkg.id === familyPack.id ? 'icon-family' : 'canvas'),
123
+ })),
124
+ ];
125
+ const missedByDocument = [];
126
+ for (const { pkg, reason } of extras) {
127
+ if (listed.has(pkg.id) || pkg.dependencies.every((d) => listedDeps.has(d.name)))
128
+ continue;
129
+ listed.add(pkg.id);
130
+ packages.push({
131
+ id: pkg.id,
132
+ reason,
133
+ dependencies: pkg.dependencies,
134
+ ...(pkg.expoPlugins ? { expoPlugins: pkg.expoPlugins } : {}),
135
+ origin: 'catalog',
136
+ });
137
+ missedByDocument.push(reason === 'icon-family' ? `${pkg.id} (icon family “${iconFamily}”)` : pkg.id);
138
+ }
139
+ if (!doc) {
140
+ notes.push('packages: the project has no packages document yet (it is written when the project is saved in Creator) — ' +
141
+ `derived from the canvas instead: ${missedByDocument.join(', ') || 'no optional packages'}`);
142
+ }
143
+ else if (missedByDocument.length > 0) {
144
+ notes.push(`packages: the canvas needs ${missedByDocument.join(', ')}, which the project's packages document does not list yet ` +
145
+ '(Creator records it on its next save) — added from the CLI catalog');
146
+ }
147
+ return { source: doc ? 'document' : 'canvas', packages, iconFamily, notes };
148
+ }
149
+ //# sourceMappingURL=resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/packages/resolve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { type JpatchClient } from '../api/client.js';
2
+ import type { SyncReport } from '../ui/report.js';
3
+ export declare const NAVIGATION_MODULE: string;
4
+ export declare const API_MODULE: string;
5
+ export declare const VARIABLES_MODULE: string;
6
+ /** `mapples/navigation.ts`: the navigation document and each route's screen names. */
7
+ export declare function writeNavigationModule(root: string, navigation: unknown, screensByRoute: Map<string, string[]>, report: SyncReport): void;
8
+ /** The env variable a secret reads from: `API_KEY` → `EXPO_PUBLIC_MAPPLES_SECRET_API_KEY`. */
9
+ export declare function secretEnvName(secretRef: string): string;
10
+ /**
11
+ * Pull the API and variables documents and write their runtime modules. A
12
+ * project without one gets no module (the runtime is inert for it). A
13
+ * document the backend refuses to hand to this project key is reported —
14
+ * the app then runs without it — and its last generated module is left as
15
+ * it was rather than guessed at.
16
+ */
17
+ export declare function syncRuntimeDocuments(root: string, client: JpatchClient, report: SyncReport): Promise<void>;