mapples 0.2.0-beta.13 → 0.2.0-beta.14
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/README.md +1 -1
- package/dist/api/client.d.ts +3 -2
- package/dist/api/client.js +2 -1
- package/dist/api/client.js.map +1 -1
- package/dist/commands/doctor.js +2 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/impl/createImpl.js +8 -0
- package/dist/commands/impl/createImpl.js.map +1 -1
- package/dist/commands/impl/doctorImpl.js +4 -1
- package/dist/commands/impl/doctorImpl.js.map +1 -1
- package/dist/commands/impl/initImpl.js +14 -1
- package/dist/commands/impl/initImpl.js.map +1 -1
- package/dist/commands/impl/syncImpl.js +14 -1
- package/dist/commands/impl/syncImpl.js.map +1 -1
- package/dist/packages/catalog.d.ts +20 -0
- package/dist/packages/catalog.js +94 -0
- package/dist/packages/catalog.js.map +1 -0
- package/dist/packages/resolve.d.ts +61 -0
- package/dist/packages/resolve.js +149 -0
- package/dist/packages/resolve.js.map +1 -0
- package/dist/services/appDeps.d.ts +11 -2
- package/dist/services/appDeps.js +23 -3
- package/dist/services/appDeps.js.map +1 -1
- package/dist/services/appPackages.d.ts +46 -0
- package/dist/services/appPackages.js +266 -0
- package/dist/services/appPackages.js.map +1 -0
- package/dist/services/doctorService.d.ts +10 -1
- package/dist/services/doctorService.js +101 -1
- package/dist/services/doctorService.js.map +1 -1
- package/package.json +1 -1
- package/templates/agent/skills/mapples-design/reference/style-guides.md +2 -0
- package/templates/agent/skills/mapples-sync/SKILL.md +1 -0
- package/templates/package.json +8 -23
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ npx mapples init --secret <project API secret> # link an existing Exp
|
|
|
11
11
|
npx mapples sync # pull + push in one run
|
|
12
12
|
npx mapples sync --yes # …accepting every adoption proposal
|
|
13
13
|
npx mapples adopt app/settings.tsx # adopt a plain RN screen, no prompt
|
|
14
|
-
npx mapples doctor # $sid lint
|
|
14
|
+
npx mapples doctor # $sid lint, drift, project packages
|
|
15
15
|
npx mapples create my-app --secret <secret> --agent claude # …plus an agent bundle (claude | cursor | codex)
|
|
16
16
|
npx mapples agent install # add the bundle to a linked app
|
|
17
17
|
```
|
package/dist/api/client.d.ts
CHANGED
|
@@ -40,12 +40,13 @@ export declare class JpatchClient {
|
|
|
40
40
|
have(hashes: string[]): Promise<Record<string, string>>;
|
|
41
41
|
/**
|
|
42
42
|
* A project document outside the canvas manifest — `apidef` (the API
|
|
43
|
-
* requests)
|
|
43
|
+
* requests), `variablesdef` (the project variables) or `packagesdef` (the
|
|
44
|
+
* packages the app ships) — as its `data`, or
|
|
44
45
|
* `null` when the project has none yet (404). Any other refusal is thrown
|
|
45
46
|
* with its status, so the caller can tell a key the backend will not
|
|
46
47
|
* accept for this document (403) from a missing one.
|
|
47
48
|
*/
|
|
48
|
-
projectDocument(kind: 'apidef' | 'variablesdef'): Promise<unknown | null>;
|
|
49
|
+
projectDocument(kind: 'apidef' | 'variablesdef' | 'packagesdef'): Promise<unknown | null>;
|
|
49
50
|
history(limit?: number): Promise<{
|
|
50
51
|
seq: number;
|
|
51
52
|
head: string;
|
package/dist/api/client.js
CHANGED
|
@@ -90,7 +90,8 @@ export class JpatchClient {
|
|
|
90
90
|
}
|
|
91
91
|
/**
|
|
92
92
|
* A project document outside the canvas manifest — `apidef` (the API
|
|
93
|
-
* requests)
|
|
93
|
+
* requests), `variablesdef` (the project variables) or `packagesdef` (the
|
|
94
|
+
* packages the app ships) — as its `data`, or
|
|
94
95
|
* `null` when the project has none yet (404). Any other refusal is thrown
|
|
95
96
|
* with its status, so the caller can tell a key the backend will not
|
|
96
97
|
* accept for this document (403) from a missing one.
|
package/dist/api/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export function registerDoctor(program) {
|
|
2
2
|
program
|
|
3
3
|
.command('doctor')
|
|
4
|
-
.description('Check synced files ($sid integrity, drift, navigator layouts) and typecheck the app')
|
|
4
|
+
.description('Check synced files ($sid integrity, drift, navigator layouts), the project packages, and typecheck the app')
|
|
5
5
|
.option('--no-typecheck', 'skip `tsc --noEmit`')
|
|
6
|
+
.option('--no-packages', "skip checking package.json against the project's packages")
|
|
6
7
|
.option('--json', 'machine-readable output')
|
|
7
8
|
.action(async (opts) => {
|
|
8
9
|
const { runDoctor } = await import('./impl/doctorImpl.js');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CACV,
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CACV,4GAA4G,CAC7G;SACA,MAAM,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;SAC/C,MAAM,CAAC,eAAe,EAAE,2DAA2D,CAAC;SACpF,MAAM,CAAC,QAAQ,EAAE,yBAAyB,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,IAA6B,EAAE,EAAE;QAC9C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC3D,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -9,6 +9,7 @@ import { DEFAULT_PAGES_DIR, writeConfig } from '../../project/config.js';
|
|
|
9
9
|
import { assetUrlFor, resolveApiUrl } from '../../project/env.js';
|
|
10
10
|
import { writeSecret } from '../../project/secret.js';
|
|
11
11
|
import { agentNextSteps, installAgentIntegration, hooksSnippetHeading, mcpSnippetHeading, parseAgentName, } from '../../services/agentInstall.js';
|
|
12
|
+
import { renderPackagesOutcome, syncAppPackages } from '../../services/appPackages.js';
|
|
12
13
|
import { scaffoldApp } from '../../services/scaffold.js';
|
|
13
14
|
import { runSyncEngine } from '../../services/syncEngine.js';
|
|
14
15
|
import { renderReport } from '../../ui/report.js';
|
|
@@ -96,6 +97,13 @@ export async function runCreate(app, opts) {
|
|
|
96
97
|
try {
|
|
97
98
|
const report = await runSyncEngine({ root: target, client });
|
|
98
99
|
console.log(renderReport(report));
|
|
100
|
+
// The project's optional packages (icon pack, QR code, video, …) join the
|
|
101
|
+
// template baseline before the first install.
|
|
102
|
+
if (!report.offline) {
|
|
103
|
+
for (const line of renderPackagesOutcome(await syncAppPackages(target, client))) {
|
|
104
|
+
console.log(line);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
99
107
|
}
|
|
100
108
|
catch (err) {
|
|
101
109
|
if (!isNetworkError(err))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createImpl.js","sourceRoot":"","sources":["../../../src/commands/impl/createImpl.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"createImpl.js","sourceRoot":"","sources":["../../../src/commands/impl/createImpl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
|
-
import {
|
|
2
|
+
import { clientForApp } from '../../services/clientFactory.js';
|
|
3
|
+
import { INFO_KINDS, runDoctorChecks, runPackageChecks, runTypecheck, } from '../../services/doctorService.js';
|
|
3
4
|
export async function runDoctor(opts) {
|
|
4
5
|
const root = process.cwd();
|
|
5
6
|
const { issues, checkedFiles, counts } = runDoctorChecks(root);
|
|
7
|
+
if (opts.packages !== false)
|
|
8
|
+
issues.push(...(await runPackageChecks(root, clientForApp(root, opts))));
|
|
6
9
|
const typecheck = opts.typecheck === false ? null : runTypecheck(root);
|
|
7
10
|
if (typecheck)
|
|
8
11
|
issues.push(...typecheck.issues);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctorImpl.js","sourceRoot":"","sources":["../../../src/commands/impl/doctorImpl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"doctorImpl.js","sourceRoot":"","sources":["../../../src/commands/impl/doctorImpl.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { assetUrlFor, resolveApiUrl } from '../../project/env.js';
|
|
|
8
8
|
import { writeSecret } from '../../project/secret.js';
|
|
9
9
|
import { agentNextSteps, installAgentIntegration, hooksSnippetHeading, mcpSnippetHeading, parseAgentName, } from '../../services/agentInstall.js';
|
|
10
10
|
import { addRuntimeDependencies, assertLinkableApp, detectPackageManager, runInstall, } from '../../services/appDeps.js';
|
|
11
|
+
import { renderPackagesOutcome, syncAppPackages } from '../../services/appPackages.js';
|
|
11
12
|
import { ensureBabelPlugin, ensureMetroConfig, writeSidTypes } from '../../services/scaffold.js';
|
|
12
13
|
import { runSyncEngine } from '../../services/syncEngine.js';
|
|
13
14
|
import { renderReport } from '../../ui/report.js';
|
|
@@ -90,19 +91,31 @@ export async function runInit(opts) {
|
|
|
90
91
|
token: secret,
|
|
91
92
|
origin: cliOrigin(),
|
|
92
93
|
});
|
|
94
|
+
let packagesInstallNeeded = false;
|
|
93
95
|
try {
|
|
94
96
|
const report = await runSyncEngine({ root, client });
|
|
95
97
|
console.log(renderReport(report));
|
|
98
|
+
if (!report.offline) {
|
|
99
|
+
const packages = await syncAppPackages(root, client);
|
|
100
|
+
for (const line of renderPackagesOutcome(packages))
|
|
101
|
+
console.log(line);
|
|
102
|
+
packagesInstallNeeded = 'installNeeded' in packages && packages.installNeeded;
|
|
103
|
+
}
|
|
96
104
|
}
|
|
97
105
|
catch (err) {
|
|
98
106
|
if (!isNetworkError(err))
|
|
99
107
|
throw err;
|
|
100
108
|
console.log(chalk.yellow(' offline — run `mapples sync` once you are online'));
|
|
101
109
|
}
|
|
110
|
+
// The app is linked now: a failed install is fixed by re-running the install, not init.
|
|
111
|
+
if (packagesInstallNeeded && install) {
|
|
112
|
+
console.log(chalk.gray(`\nthe project's packages changed package.json, running \`${pm} install\`…`));
|
|
113
|
+
runInstall(root, pm, `\`${pm} install\``);
|
|
114
|
+
}
|
|
102
115
|
console.log([
|
|
103
116
|
'',
|
|
104
117
|
chalk.bold('Next steps:'),
|
|
105
|
-
...(deps.added.length > 0 && !install ? [` ${pm} install`] : []),
|
|
118
|
+
...((deps.added.length > 0 || packagesInstallNeeded) && !install ? [` ${pm} install`] : []),
|
|
106
119
|
` npx expo start — Mapples screens live under ${DEFAULT_ROUTES_DIR}/`,
|
|
107
120
|
' npx expo run:ios|android for a native build (Metro on :8081; --port <n> if another Metro holds it)',
|
|
108
121
|
' mapples sync — after edits in Creator or in code',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initImpl.js","sourceRoot":"","sources":["../../../src/commands/impl/initImpl.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"initImpl.js","sourceRoot":"","sources":["../../../src/commands/impl/initImpl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
|
+
import { renderPackagesOutcome, syncAppPackages } from '../../services/appPackages.js';
|
|
2
3
|
import { runSyncEngine } from '../../services/syncEngine.js';
|
|
3
4
|
import { touchAgentLease } from '../../services/agentLease.js';
|
|
4
5
|
import { clientForApp } from '../../services/clientFactory.js';
|
|
@@ -33,15 +34,27 @@ export async function runSync(opts) {
|
|
|
33
34
|
}
|
|
34
35
|
await touchAgentLease(root, leaseNotes, opts);
|
|
35
36
|
report.notes.push(...leaseNotes.notes);
|
|
37
|
+
// The app's dependencies follow the project's packages (document ∪ the
|
|
38
|
+
// canvas just synced). Offline, nothing could be read: the next sync does it.
|
|
39
|
+
const packages = report.offline ? null : await syncAppPackages(root, client);
|
|
40
|
+
if (report.offline)
|
|
41
|
+
report.notes.push('packages: offline — the project packages are checked on the next sync');
|
|
36
42
|
const exitCode = report.conflicts.length > 0 ? 2 : 0;
|
|
37
43
|
if (exitCode !== 0)
|
|
38
44
|
process.exitCode = exitCode;
|
|
39
45
|
if (opts.json === true) {
|
|
40
46
|
const dropped = report.dropped.map((d) => isAlreadyRemoved(d) ? { ...d, alreadyRemoved: true } : d);
|
|
41
|
-
console.log(JSON.stringify({ ...report, dropped, exitCode }, null, 2));
|
|
47
|
+
console.log(JSON.stringify({ ...report, dropped, exitCode, packages }, null, 2));
|
|
42
48
|
return;
|
|
43
49
|
}
|
|
44
50
|
console.log(chalk.bold('\nmapples sync'));
|
|
45
51
|
console.log(renderReport(report));
|
|
52
|
+
if (packages) {
|
|
53
|
+
for (const line of renderPackagesOutcome(packages))
|
|
54
|
+
console.log(line);
|
|
55
|
+
if ('installNeeded' in packages && packages.installNeeded) {
|
|
56
|
+
console.log(chalk.yellow.bold(` ⚠ package.json changed — run \`${packages.packageManager} install\` (then rebuild the dev client when a native package changed)`));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
46
59
|
}
|
|
47
60
|
//# sourceMappingURL=syncImpl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncImpl.js","sourceRoot":"","sources":["../../../src/commands/impl/syncImpl.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"syncImpl.js","sourceRoot":"","sources":["../../../src/commands/impl/syncImpl.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
|