@design-parity/action 0.1.42 → 0.1.44
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/dist/cli/import-cli.d.ts +14 -0
- package/dist/cli/import-cli.d.ts.map +1 -0
- package/dist/cli/import-cli.js +140 -0
- package/dist/cli/import-cli.js.map +1 -0
- package/dist/cli/merge.d.ts.map +1 -1
- package/dist/cli/merge.js +8 -1
- package/dist/cli/merge.js.map +1 -1
- package/dist/cli/run.d.ts +2 -0
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +47 -4
- package/dist/cli/run.js.map +1 -1
- package/dist/import.d.ts +114 -0
- package/dist/import.d.ts.map +1 -0
- package/dist/import.js +315 -0
- package/dist/import.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/orchestrate.d.ts.map +1 -1
- package/dist/orchestrate.js +78 -7
- package/dist/orchestrate.js.map +1 -1
- package/dist/reference.d.ts.map +1 -1
- package/dist/reference.js +4 -0
- package/dist/reference.js.map +1 -1
- package/package.json +14 -13
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
export declare const USAGE: string;
|
|
3
|
+
export interface ImportArgs {
|
|
4
|
+
repoRoot: string;
|
|
5
|
+
cacheDir?: string;
|
|
6
|
+
max: number;
|
|
7
|
+
force: boolean;
|
|
8
|
+
prune: boolean;
|
|
9
|
+
format: "png" | "svg";
|
|
10
|
+
scale?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function parseArgs(args: string[]): ImportArgs;
|
|
13
|
+
export declare function main(rawArgs?: string[]): Promise<number>;
|
|
14
|
+
//# sourceMappingURL=import-cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-cli.d.ts","sourceRoot":"","sources":["../../src/cli/import-cli.ts"],"names":[],"mappings":";AAsCA,eAAO,MAAM,KAAK,QAE8B,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA6CpD;AAED,wBAAsB,IAAI,CAAC,OAAO,GAAE,MAAM,EAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA+D7E"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* `design-parity import` — refresh the committed reference cache.
|
|
4
|
+
*
|
|
5
|
+
* design-parity import --repo . --cache reference-cache [--max 200] \
|
|
6
|
+
* [--force] [--format svg|png] [--scale 2] [--prune]
|
|
7
|
+
*
|
|
8
|
+
* Reads `design-map.json`, works out which Figma nodes the catalog needs, and
|
|
9
|
+
* brings the cache directory up to date IN PLACE — refreshing what has moved,
|
|
10
|
+
* oldest first, and leaving everything it could not fetch exactly as it was.
|
|
11
|
+
* The parity run then reads that directory and makes no Figma calls at all
|
|
12
|
+
* (`design-parity run --reference-cache <dir> --reference-cache-only`).
|
|
13
|
+
*
|
|
14
|
+
* Run it on a schedule, on dispatch, or when the kit changes. It is safe to run
|
|
15
|
+
* as often as you like: an unchanged file costs one request.
|
|
16
|
+
*
|
|
17
|
+
* Prints `refreshed=`, `carried=`, `failed=`, `unchanged=`, `pruned=` and
|
|
18
|
+
* `complete=` — one `name=value` per line, readable in a log and appendable to
|
|
19
|
+
* `$GITHUB_OUTPUT` verbatim.
|
|
20
|
+
*
|
|
21
|
+
* Exit code is 0 for a partial import. That is the designed outcome, not a
|
|
22
|
+
* failure: the cache is strictly better than it was, and the next run finishes
|
|
23
|
+
* the job. Only a missing token or an unusable design map exits non-zero.
|
|
24
|
+
*/
|
|
25
|
+
import { argv, cwd, env, exit, stderr, stdout } from "node:process";
|
|
26
|
+
import { resolve as resolvePath } from "node:path";
|
|
27
|
+
import { pathToFileURL } from "node:url";
|
|
28
|
+
import { FigmaRestClient, } from "@design-parity/adapter-figma";
|
|
29
|
+
import { resolveRunConfig } from "../config.js";
|
|
30
|
+
import { figmaRefsOf, importReferences } from "../import.js";
|
|
31
|
+
const TOKEN_ENV = ["FIGMA_TOKEN", "FIGMA_PAT", "FIGMA_ACCESS_TOKEN"];
|
|
32
|
+
export const USAGE = "design-parity import --cache <dir> [--repo .] [--max <n>] [--force] " +
|
|
33
|
+
"[--format svg|png] [--scale <n>] [--prune]\n";
|
|
34
|
+
export function parseArgs(args) {
|
|
35
|
+
const out = {
|
|
36
|
+
repoRoot: cwd(),
|
|
37
|
+
max: 0,
|
|
38
|
+
force: false,
|
|
39
|
+
prune: false,
|
|
40
|
+
format: "svg",
|
|
41
|
+
};
|
|
42
|
+
for (let i = 0; i < args.length; i++) {
|
|
43
|
+
const a = args[i];
|
|
44
|
+
const next = () => args[(i += 1)];
|
|
45
|
+
switch (a) {
|
|
46
|
+
case "import":
|
|
47
|
+
break;
|
|
48
|
+
case "--repo":
|
|
49
|
+
out.repoRoot = resolvePath(next() ?? ".");
|
|
50
|
+
break;
|
|
51
|
+
case "--cache":
|
|
52
|
+
out.cacheDir = next();
|
|
53
|
+
break;
|
|
54
|
+
// A ceiling on how much one import re-reads. Combined with oldest-first
|
|
55
|
+
// it turns a kit too large for a single job into one imported over
|
|
56
|
+
// several — each run finishing where the last left off.
|
|
57
|
+
case "--max":
|
|
58
|
+
out.max = Number(next() ?? 0) || 0;
|
|
59
|
+
break;
|
|
60
|
+
case "--force":
|
|
61
|
+
out.force = true;
|
|
62
|
+
break;
|
|
63
|
+
case "--prune":
|
|
64
|
+
out.prune = true;
|
|
65
|
+
break;
|
|
66
|
+
case "--format": {
|
|
67
|
+
const v = next();
|
|
68
|
+
if (v === "png" || v === "svg")
|
|
69
|
+
out.format = v;
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
case "--scale":
|
|
73
|
+
out.scale = Number(next() ?? 0) || undefined;
|
|
74
|
+
break;
|
|
75
|
+
default:
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return out;
|
|
80
|
+
}
|
|
81
|
+
export async function main(rawArgs = argv.slice(2)) {
|
|
82
|
+
const args = parseArgs(rawArgs);
|
|
83
|
+
if (!args.cacheDir) {
|
|
84
|
+
stdout.write(USAGE);
|
|
85
|
+
return 2;
|
|
86
|
+
}
|
|
87
|
+
const oauthToken = env.FIGMA_OAUTH_TOKEN;
|
|
88
|
+
const token = TOKEN_ENV.map((k) => env[k]).find(Boolean);
|
|
89
|
+
if (!oauthToken && !token) {
|
|
90
|
+
stderr.write("design-parity import: no credentials — set FIGMA_TOKEN (PAT) or FIGMA_OAUTH_TOKEN.\n");
|
|
91
|
+
return 1;
|
|
92
|
+
}
|
|
93
|
+
const { designMap, warnings } = await resolveRunConfig(args.repoRoot);
|
|
94
|
+
for (const warning of warnings)
|
|
95
|
+
stdout.write(`warning: ${warning}\n`);
|
|
96
|
+
const refs = figmaRefsOf(designMap);
|
|
97
|
+
if (refs.length === 0) {
|
|
98
|
+
stdout.write("No figma references in design-map.json — nothing to import.\n");
|
|
99
|
+
// Not an error: a repo can map every component to another source, and a
|
|
100
|
+
// scheduled import that fails on it would be noise for a correct config.
|
|
101
|
+
stdout.write("refreshed=0\ncarried=0\nfailed=0\nunchanged=\npruned=0\ncomplete=true\n");
|
|
102
|
+
return 0;
|
|
103
|
+
}
|
|
104
|
+
const clientOpts = {};
|
|
105
|
+
if (oauthToken)
|
|
106
|
+
clientOpts.oauthToken = oauthToken;
|
|
107
|
+
if (token)
|
|
108
|
+
clientOpts.token = token;
|
|
109
|
+
const result = await importReferences({
|
|
110
|
+
cacheDir: resolvePath(args.repoRoot, args.cacheDir),
|
|
111
|
+
refs,
|
|
112
|
+
client: new FigmaRestClient(clientOpts),
|
|
113
|
+
limit: args.max,
|
|
114
|
+
force: args.force,
|
|
115
|
+
prune: args.prune,
|
|
116
|
+
imageFormat: args.format,
|
|
117
|
+
...(args.scale !== undefined ? { imageScale: args.scale } : {}),
|
|
118
|
+
log: (m) => stdout.write(m + "\n"),
|
|
119
|
+
});
|
|
120
|
+
for (const warning of result.warnings)
|
|
121
|
+
stdout.write(`warning: ${warning}\n`);
|
|
122
|
+
stdout.write(`\n${result.refreshed} refreshed, ${result.carried} carried forward` +
|
|
123
|
+
(result.failed > 0 ? ` (${result.failed} of them due a refresh)` : "") +
|
|
124
|
+
`${result.pruned.length > 0 ? `, ${result.pruned.length} pruned` : ""}.\n`);
|
|
125
|
+
if (!result.complete) {
|
|
126
|
+
stdout.write("The cache is not fully fresh. Nothing was lost — the stale entries are " +
|
|
127
|
+
"next run's oldest, so they refresh first.\n");
|
|
128
|
+
}
|
|
129
|
+
stdout.write(`refreshed=${result.refreshed}\n`);
|
|
130
|
+
stdout.write(`carried=${result.carried}\n`);
|
|
131
|
+
stdout.write(`failed=${result.failed}\n`);
|
|
132
|
+
stdout.write(`unchanged=${result.unchanged.join(",")}\n`);
|
|
133
|
+
stdout.write(`pruned=${result.pruned.length}\n`);
|
|
134
|
+
stdout.write(`complete=${result.complete}\n`);
|
|
135
|
+
return 0;
|
|
136
|
+
}
|
|
137
|
+
if (import.meta.url === pathToFileURL(argv[1] ?? "").href) {
|
|
138
|
+
exit(await main());
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=import-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-cli.js","sourceRoot":"","sources":["../../src/cli/import-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/merge.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/cli/merge.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/cli/merge.ts"],"names":[],"mappings":";AA2BA,OAAO,EAAmC,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAQhF,UAAU,IAAI;IACZ,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAmC9C;AAYD,6EAA6E;AAC7E,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAgBvE;AAuBD;;;;GAIG;AACH,wBAAsB,IAAI,CAAC,OAAO,GAAE,MAAM,EAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA4G7E"}
|
package/dist/cli/merge.js
CHANGED
|
@@ -21,6 +21,7 @@ import { argv, cwd, exit, stderr, stdout } from "node:process";
|
|
|
21
21
|
import { cp, mkdir, readdir, readFile, writeFile } from "node:fs/promises";
|
|
22
22
|
import { basename, dirname, join, resolve as resolvePath } from "node:path";
|
|
23
23
|
import { pathToFileURL } from "node:url";
|
|
24
|
+
import { directionPolicy } from "@design-parity/policy";
|
|
24
25
|
import { renderIndex } from "@design-parity/report-html";
|
|
25
26
|
import { mergeShards, verifyShardReports } from "../shard.js";
|
|
26
27
|
import { RUN_MANIFEST_VERSION, carryForward, readRunManifest, writeRunManifest, } from "../run-manifest.js";
|
|
@@ -164,7 +165,13 @@ export async function main(rawArgs = argv.slice(2)) {
|
|
|
164
165
|
// The verdict covers the union. A blocking finding does not stop being one
|
|
165
166
|
// because this run could not re-measure it, and a run that went green by
|
|
166
167
|
// losing sight of the failure is the exact outcome this is guarding against.
|
|
167
|
-
|
|
168
|
+
//
|
|
169
|
+
// Gated on the direction, exactly as a freshly measured failure is: under
|
|
170
|
+
// `code-led` a failing verdict is information, not a gate, and a carried row
|
|
171
|
+
// must not block what the same row would not have blocked when it was fresh.
|
|
172
|
+
const blocked = merged.blocked ||
|
|
173
|
+
(directionPolicy(merged.direction).blocksPr &&
|
|
174
|
+
carried.some((e) => e.status === "fail"));
|
|
168
175
|
const { readme, html } = renderIndex({
|
|
169
176
|
entries,
|
|
170
177
|
...(args.repoSlug ? { repoSlug: args.repoSlug } : {}),
|
package/dist/cli/merge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/cli/merge.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/cli/merge.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/run.d.ts
CHANGED
package/dist/cli/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":";AAoCA,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAInE,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAErB,UAAU,IAAI;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":";AAoCA,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAInE,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAErB,UAAU,IAAI;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CA2E9C;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,MAAM,EAAE,EACpB,MAAM,EAAE,IAAI,CACV,YAAY,EACZ,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,cAAc,CACjE,GACA,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAO5G;AAED,wBAAsB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CA2J5C"}
|
package/dist/cli/run.js
CHANGED
|
@@ -28,7 +28,7 @@ import { mkdir, writeFile } from "node:fs/promises";
|
|
|
28
28
|
import { join, resolve as resolvePath } from "node:path";
|
|
29
29
|
import { pathToFileURL } from "node:url";
|
|
30
30
|
import { resolve as resolveCorrespondences } from "@design-parity/resolver";
|
|
31
|
-
import { FigmaCanvasWriter } from "@design-parity/adapter-figma";
|
|
31
|
+
import { FigmaCanvasWriter, ReferenceCache } from "@design-parity/adapter-figma";
|
|
32
32
|
import { buildCandidateProvider } from "../candidate.js";
|
|
33
33
|
import { resolveRunConfig } from "../config.js";
|
|
34
34
|
import { createAdapterRegistry } from "../registry.js";
|
|
@@ -38,7 +38,13 @@ import { pushBack } from "../pushback.js";
|
|
|
38
38
|
import { renderReport } from "../report.js";
|
|
39
39
|
import { parseShard, partitionComponents, SHARD_FORMAT_VERSION, } from "../shard.js";
|
|
40
40
|
export function parseArgs(args) {
|
|
41
|
-
const out = {
|
|
41
|
+
const out = {
|
|
42
|
+
repoRoot: cwd(),
|
|
43
|
+
components: [],
|
|
44
|
+
bundlePaths: [],
|
|
45
|
+
pushBack: false,
|
|
46
|
+
referenceCacheOnly: false,
|
|
47
|
+
};
|
|
42
48
|
for (let i = 0; i < args.length; i++) {
|
|
43
49
|
const a = args[i];
|
|
44
50
|
const next = () => args[(i += 1)];
|
|
@@ -82,6 +88,19 @@ export function parseArgs(args) {
|
|
|
82
88
|
case "--bundle-image":
|
|
83
89
|
out.bundleImage = next();
|
|
84
90
|
break;
|
|
91
|
+
// The committed reference cache `design-parity import` maintains. A hit
|
|
92
|
+
// costs no Figma call, so a code change compares against a reference that
|
|
93
|
+
// is pinned rather than re-fetched — reproducible, and immune to the rate
|
|
94
|
+
// limiter that was silently truncating runs (#289).
|
|
95
|
+
case "--reference-cache":
|
|
96
|
+
out.referenceCache = next();
|
|
97
|
+
break;
|
|
98
|
+
// …and the guarantee rather than the tendency: a miss becomes a
|
|
99
|
+
// per-component error instead of an API call. This is the mode a CI run
|
|
100
|
+
// wants, because "zero Figma calls" is only true if nothing can fall back.
|
|
101
|
+
case "--reference-cache-only":
|
|
102
|
+
out.referenceCacheOnly = true;
|
|
103
|
+
break;
|
|
85
104
|
// One slice of the run (`--shard 2/6`). Throws on a malformed or
|
|
86
105
|
// out-of-range selector: a typo that silently compared everything (or
|
|
87
106
|
// nothing) would land as a merged index that looks complete.
|
|
@@ -138,6 +157,7 @@ export async function main() {
|
|
|
138
157
|
stdout.write("design-parity run --components <code#Member,...> [--repo .] " +
|
|
139
158
|
"[--candidates file.json] [--candidate-bundles <png|dir,...>] [--out dir] " +
|
|
140
159
|
"[--repo-slug owner/repo --branch <branch> --source-commit <sha> --bundle-image <file>] " +
|
|
160
|
+
"[--reference-cache <dir> [--reference-cache-only]] " +
|
|
141
161
|
"[--shard <index>/<total>] [--push-back [--canvas-endpoint <url>]]\n");
|
|
142
162
|
return 2;
|
|
143
163
|
}
|
|
@@ -180,11 +200,34 @@ export async function main() {
|
|
|
180
200
|
if (args.candidatesPath)
|
|
181
201
|
candidateOpts.candidatesPath = args.candidatesPath;
|
|
182
202
|
const { provider, warnings: candidateWarnings } = await buildCandidateProvider(candidateOpts);
|
|
203
|
+
// A cache that cannot be opened is reported, not tolerated in silence: under
|
|
204
|
+
// `--reference-cache-only` the run would otherwise report every component as
|
|
205
|
+
// a miss and look like a broken kit rather than a missing directory.
|
|
206
|
+
const referenceCache = args.referenceCache
|
|
207
|
+
? await ReferenceCache.open(resolvePath(args.repoRoot, args.referenceCache))
|
|
208
|
+
: undefined;
|
|
209
|
+
const cacheWarnings = [];
|
|
210
|
+
if (args.referenceCache && !referenceCache) {
|
|
211
|
+
cacheWarnings.push(`no usable reference cache at '${args.referenceCache}' — ` +
|
|
212
|
+
(args.referenceCacheOnly
|
|
213
|
+
? "every figma reference will be reported as a cache miss; run `design-parity import`"
|
|
214
|
+
: "references will be fetched from the API"));
|
|
215
|
+
}
|
|
216
|
+
else if (referenceCache) {
|
|
217
|
+
stdout.write(`Reference cache: ${referenceCache.entries.length} node(s) from ` +
|
|
218
|
+
`${Object.keys(referenceCache.doc.files).length} file(s)` +
|
|
219
|
+
`${args.referenceCacheOnly ? ", no API calls" : ""}\n`);
|
|
220
|
+
}
|
|
183
221
|
const index = indexOptions(args);
|
|
184
222
|
const report = await orchestrate({
|
|
185
223
|
repoRoot: args.repoRoot,
|
|
186
224
|
env,
|
|
187
|
-
registry: createAdapterRegistry(
|
|
225
|
+
registry: createAdapterRegistry({
|
|
226
|
+
figma: {
|
|
227
|
+
...(referenceCache ? { cache: referenceCache } : {}),
|
|
228
|
+
...(args.referenceCacheOnly ? { cacheOnly: true } : {}),
|
|
229
|
+
},
|
|
230
|
+
}),
|
|
188
231
|
correspondences: resolved.correspondences,
|
|
189
232
|
candidate: provider ?? (() => undefined),
|
|
190
233
|
direction,
|
|
@@ -193,7 +236,7 @@ export async function main() {
|
|
|
193
236
|
...(args.outDir ? { outDir: args.outDir } : {}),
|
|
194
237
|
...(index ? { index } : {}),
|
|
195
238
|
});
|
|
196
|
-
report.warnings.unshift(...warnings, ...resolved.warnings, ...candidateWarnings, ...spec.warnings, ...resolved.unresolved.map((u) => `unresolved (no source matched): ${u}`));
|
|
239
|
+
report.warnings.unshift(...warnings, ...cacheWarnings, ...resolved.warnings, ...candidateWarnings, ...spec.warnings, ...resolved.unresolved.map((u) => `unresolved (no source matched): ${u}`));
|
|
197
240
|
// Promote CMP in the comment for Android-only repos (Principle 6). Read from
|
|
198
241
|
// the committed config (set false by bootstrap on a non-CMP repo); advisory
|
|
199
242
|
// only, so it never touches the verdict or exit code.
|
package/dist/cli/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"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"}
|
package/dist/import.d.ts
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Importing the reference side, on its own schedule.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS IS NOT PART OF THE RUN. Code changes many times a day; a published
|
|
5
|
+
* design kit changes rarely. Coupling them meant paying the full reference cost
|
|
6
|
+
* on every commit — and paying it against a per-token rate limiter, which is
|
|
7
|
+
* how a 77-component catalog came to report on 18 components, with a different
|
|
8
|
+
* 18 each run (issue #289). Splitting the two lets each run at its own cadence
|
|
9
|
+
* and turns a rate limit from data loss into a delay.
|
|
10
|
+
*
|
|
11
|
+
* THE THREE PROPERTIES THAT MAKE IT CONVERGE.
|
|
12
|
+
*
|
|
13
|
+
* 1. **A metadata short-circuit.** `GET /v1/files/:key?depth=1` carries the
|
|
14
|
+
* file `version`, which changes on any edit. One request answers "can any
|
|
15
|
+
* reference in this file have moved?" for the whole file — so an unchanged
|
|
16
|
+
* kit costs one request, not two per component.
|
|
17
|
+
* 2. **Oldest-first.** What could not be fetched this time is the oldest thing
|
|
18
|
+
* in the cache next time, so it goes to the front of the queue. An import
|
|
19
|
+
* that only ever gets through half the catalog still reaches all of it, in
|
|
20
|
+
* two runs rather than never.
|
|
21
|
+
* 3. **Partial by design.** A node that fails keeps the entry it already had —
|
|
22
|
+
* blobs and all — and keeps its OLD `fileVersion`, so it stays stale and
|
|
23
|
+
* stays queued. Nothing is deleted because a request failed; that deletion
|
|
24
|
+
* is precisely what made a rate-limited run lose its previous results.
|
|
25
|
+
*
|
|
26
|
+
* This module is the policy; the on-disk format is
|
|
27
|
+
* {@link https://github.com/yschimke/design-parity/blob/main/packages/adapters/figma/src/reference-cache.ts | ReferenceCache}.
|
|
28
|
+
*/
|
|
29
|
+
import { type FigmaRestClient, type ReferenceCacheEntry } from "@design-parity/adapter-figma";
|
|
30
|
+
import type { DesignMap } from "@design-parity/core";
|
|
31
|
+
/** One node the import is responsible for. */
|
|
32
|
+
export interface ImportTarget {
|
|
33
|
+
fileKey: string;
|
|
34
|
+
nodeId: string;
|
|
35
|
+
}
|
|
36
|
+
export interface ImportOptions {
|
|
37
|
+
/** Cache directory, refreshed IN PLACE (see the module doc). */
|
|
38
|
+
cacheDir: string;
|
|
39
|
+
/** Every reference the catalog needs, as design-map `ref` strings. */
|
|
40
|
+
refs: readonly string[];
|
|
41
|
+
client: FigmaRestClient;
|
|
42
|
+
/** Injectable clock — the import stamps `fetchedAt`, and tests pin it. */
|
|
43
|
+
now?: () => Date;
|
|
44
|
+
/**
|
|
45
|
+
* Refresh at most this many nodes. 0 (the default) means "as many as the API
|
|
46
|
+
* allows". A ceiling is how a very large kit is imported over several runs
|
|
47
|
+
* without any one of them running long enough to be killed.
|
|
48
|
+
*/
|
|
49
|
+
limit?: number;
|
|
50
|
+
/** Refresh even where the file version says nothing moved. */
|
|
51
|
+
force?: boolean;
|
|
52
|
+
imageFormat?: "png" | "svg";
|
|
53
|
+
imageScale?: number;
|
|
54
|
+
/**
|
|
55
|
+
* Delete cached nodes `refs` no longer names. Off by default: pruning
|
|
56
|
+
* against a partial ref list throws away references the next full import has
|
|
57
|
+
* to fetch again.
|
|
58
|
+
*/
|
|
59
|
+
prune?: boolean;
|
|
60
|
+
log?: (message: string) => void;
|
|
61
|
+
}
|
|
62
|
+
export interface ImportResult {
|
|
63
|
+
/** Nodes re-read from Figma and rewritten. */
|
|
64
|
+
refreshed: number;
|
|
65
|
+
/**
|
|
66
|
+
* Component sets cached alongside them (issue #296). Not catalog nodes: they
|
|
67
|
+
* are what tells a cache-only run what its references *depict* and what their
|
|
68
|
+
* siblings are, neither of which a variant's own document carries.
|
|
69
|
+
*/
|
|
70
|
+
sets: number;
|
|
71
|
+
/** Nodes left exactly as the cache already had them. */
|
|
72
|
+
carried: number;
|
|
73
|
+
/** Nodes that were due a refresh and did not get one. Subset of `carried`. */
|
|
74
|
+
failed: number;
|
|
75
|
+
/** Files whose `version` was unchanged, so no node was read at all. */
|
|
76
|
+
unchanged: string[];
|
|
77
|
+
/** Nodes dropped by `prune`. */
|
|
78
|
+
pruned: string[];
|
|
79
|
+
/** Everything that went wrong, in the order it happened. Never thrown. */
|
|
80
|
+
warnings: string[];
|
|
81
|
+
/**
|
|
82
|
+
* True when every reference in `refs` is now cached at the file's current
|
|
83
|
+
* version — i.e. the cache is a complete, fresh description of the catalog.
|
|
84
|
+
*/
|
|
85
|
+
complete: boolean;
|
|
86
|
+
}
|
|
87
|
+
/** Every `figma:` reference in a design map, deduplicated, in map order. */
|
|
88
|
+
export declare function figmaRefsOf(map: DesignMap | undefined): string[];
|
|
89
|
+
/**
|
|
90
|
+
* Parse `refs` into concrete nodes, grouped by file.
|
|
91
|
+
*
|
|
92
|
+
* A ref that is not a parseable Figma handle is skipped, not fatal: Code
|
|
93
|
+
* Connect resolves those, and it needs the repo checkout the import job does
|
|
94
|
+
* not necessarily have. They fall back to the API at run time, which is the
|
|
95
|
+
* behaviour that existed before the cache.
|
|
96
|
+
*/
|
|
97
|
+
export declare function importTargets(refs: readonly string[]): {
|
|
98
|
+
byFile: Map<string, string[]>;
|
|
99
|
+
skipped: string[];
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Order the nodes due a refresh, oldest first.
|
|
103
|
+
*
|
|
104
|
+
* A node with no entry has never been fetched, which is older than anything,
|
|
105
|
+
* so it sorts ahead of everything else. Ties break on node id purely so the
|
|
106
|
+
* order is deterministic — two imports of the same cache queue the same work.
|
|
107
|
+
*/
|
|
108
|
+
export declare function refreshOrder(nodeIds: readonly string[], entryOf: (nodeId: string) => ReferenceCacheEntry | undefined, fileVersion: string, force: boolean): string[];
|
|
109
|
+
/**
|
|
110
|
+
* Refresh `cacheDir` towards `refs`. Never throws for a source-side failure —
|
|
111
|
+
* a partial import is the designed outcome, not an error state.
|
|
112
|
+
*/
|
|
113
|
+
export declare function importReferences(opts: ImportOptions): Promise<ImportResult>;
|
|
114
|
+
//# sourceMappingURL=import.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../src/import.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAML,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAUrD,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gCAAgC;IAChC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,EAAE,CAWhE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB;IAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAgBtD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,mBAAmB,GAAG,SAAS,EAC5D,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,OAAO,GACb,MAAM,EAAE,CAWV;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA0IjF"}
|
package/dist/import.js
ADDED
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Importing the reference side, on its own schedule.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS IS NOT PART OF THE RUN. Code changes many times a day; a published
|
|
5
|
+
* design kit changes rarely. Coupling them meant paying the full reference cost
|
|
6
|
+
* on every commit — and paying it against a per-token rate limiter, which is
|
|
7
|
+
* how a 77-component catalog came to report on 18 components, with a different
|
|
8
|
+
* 18 each run (issue #289). Splitting the two lets each run at its own cadence
|
|
9
|
+
* and turns a rate limit from data loss into a delay.
|
|
10
|
+
*
|
|
11
|
+
* THE THREE PROPERTIES THAT MAKE IT CONVERGE.
|
|
12
|
+
*
|
|
13
|
+
* 1. **A metadata short-circuit.** `GET /v1/files/:key?depth=1` carries the
|
|
14
|
+
* file `version`, which changes on any edit. One request answers "can any
|
|
15
|
+
* reference in this file have moved?" for the whole file — so an unchanged
|
|
16
|
+
* kit costs one request, not two per component.
|
|
17
|
+
* 2. **Oldest-first.** What could not be fetched this time is the oldest thing
|
|
18
|
+
* in the cache next time, so it goes to the front of the queue. An import
|
|
19
|
+
* that only ever gets through half the catalog still reaches all of it, in
|
|
20
|
+
* two runs rather than never.
|
|
21
|
+
* 3. **Partial by design.** A node that fails keeps the entry it already had —
|
|
22
|
+
* blobs and all — and keeps its OLD `fileVersion`, so it stays stale and
|
|
23
|
+
* stays queued. Nothing is deleted because a request failed; that deletion
|
|
24
|
+
* is precisely what made a rate-limited run lose its previous results.
|
|
25
|
+
*
|
|
26
|
+
* This module is the policy; the on-disk format is
|
|
27
|
+
* {@link https://github.com/yschimke/design-parity/blob/main/packages/adapters/figma/src/reference-cache.ts | ReferenceCache}.
|
|
28
|
+
*/
|
|
29
|
+
import { FigmaRateLimitError, ReferenceCacheWriter, cacheKeyOf, parseFigmaRef, } from "@design-parity/adapter-figma";
|
|
30
|
+
import { entryRefs } from "@design-parity/core";
|
|
31
|
+
/**
|
|
32
|
+
* Node ids per `GET /v1/files/:key/nodes`. Mirrors the adapter's own batch
|
|
33
|
+
* size: small enough that a chunk which fails is cheap to lose, large enough
|
|
34
|
+
* that a catalog is a handful of requests rather than one per component.
|
|
35
|
+
*/
|
|
36
|
+
const NODE_BATCH = 50;
|
|
37
|
+
/** Every `figma:` reference in a design map, deduplicated, in map order. */
|
|
38
|
+
export function figmaRefsOf(map) {
|
|
39
|
+
if (!map)
|
|
40
|
+
return [];
|
|
41
|
+
const out = new Set();
|
|
42
|
+
for (const entry of map.components) {
|
|
43
|
+
if (entry.source !== "figma")
|
|
44
|
+
continue;
|
|
45
|
+
for (const variant of entryRefs(entry))
|
|
46
|
+
out.add(variant.ref);
|
|
47
|
+
// The component *set* is a reference too (issue #299): a page backdrop
|
|
48
|
+
// matches instances against it, and it is as rate-limited as any other node.
|
|
49
|
+
if (entry.refSet)
|
|
50
|
+
out.add(entry.refSet);
|
|
51
|
+
}
|
|
52
|
+
return [...out];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Parse `refs` into concrete nodes, grouped by file.
|
|
56
|
+
*
|
|
57
|
+
* A ref that is not a parseable Figma handle is skipped, not fatal: Code
|
|
58
|
+
* Connect resolves those, and it needs the repo checkout the import job does
|
|
59
|
+
* not necessarily have. They fall back to the API at run time, which is the
|
|
60
|
+
* behaviour that existed before the cache.
|
|
61
|
+
*/
|
|
62
|
+
export function importTargets(refs) {
|
|
63
|
+
const byFile = new Map();
|
|
64
|
+
const skipped = [];
|
|
65
|
+
for (const ref of refs) {
|
|
66
|
+
let parsed;
|
|
67
|
+
try {
|
|
68
|
+
parsed = parseFigmaRef(ref);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
skipped.push(ref);
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
const ids = byFile.get(parsed.fileKey) ?? [];
|
|
75
|
+
if (!ids.includes(parsed.nodeId))
|
|
76
|
+
ids.push(parsed.nodeId);
|
|
77
|
+
byFile.set(parsed.fileKey, ids);
|
|
78
|
+
}
|
|
79
|
+
return { byFile, skipped };
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Order the nodes due a refresh, oldest first.
|
|
83
|
+
*
|
|
84
|
+
* A node with no entry has never been fetched, which is older than anything,
|
|
85
|
+
* so it sorts ahead of everything else. Ties break on node id purely so the
|
|
86
|
+
* order is deterministic — two imports of the same cache queue the same work.
|
|
87
|
+
*/
|
|
88
|
+
export function refreshOrder(nodeIds, entryOf, fileVersion, force) {
|
|
89
|
+
const due = nodeIds.filter((id) => {
|
|
90
|
+
const entry = entryOf(id);
|
|
91
|
+
if (!entry || !entry.image)
|
|
92
|
+
return true;
|
|
93
|
+
return force || entry.fileVersion !== fileVersion;
|
|
94
|
+
});
|
|
95
|
+
return due.sort((a, b) => {
|
|
96
|
+
const ta = entryOf(a)?.fetchedAt ?? "";
|
|
97
|
+
const tb = entryOf(b)?.fetchedAt ?? "";
|
|
98
|
+
return ta.localeCompare(tb) || a.localeCompare(b);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Refresh `cacheDir` towards `refs`. Never throws for a source-side failure —
|
|
103
|
+
* a partial import is the designed outcome, not an error state.
|
|
104
|
+
*/
|
|
105
|
+
export async function importReferences(opts) {
|
|
106
|
+
const now = opts.now ?? (() => new Date());
|
|
107
|
+
const log = opts.log ?? (() => { });
|
|
108
|
+
const format = opts.imageFormat ?? "svg";
|
|
109
|
+
const limit = opts.limit && opts.limit > 0 ? opts.limit : Infinity;
|
|
110
|
+
const result = {
|
|
111
|
+
refreshed: 0,
|
|
112
|
+
sets: 0,
|
|
113
|
+
carried: 0,
|
|
114
|
+
failed: 0,
|
|
115
|
+
unchanged: [],
|
|
116
|
+
pruned: [],
|
|
117
|
+
warnings: [],
|
|
118
|
+
complete: true,
|
|
119
|
+
};
|
|
120
|
+
const { byFile, skipped } = importTargets(opts.refs);
|
|
121
|
+
for (const ref of skipped) {
|
|
122
|
+
result.warnings.push(`not a figma handle, left for Code Connect to resolve at run time: ${ref}`);
|
|
123
|
+
}
|
|
124
|
+
const writer = await ReferenceCacheWriter.open(opts.cacheDir);
|
|
125
|
+
const wanted = new Set();
|
|
126
|
+
let budget = limit;
|
|
127
|
+
for (const [fileKey, nodeIds] of byFile) {
|
|
128
|
+
for (const id of nodeIds)
|
|
129
|
+
wanted.add(cacheKeyOf(fileKey, id));
|
|
130
|
+
// One request to decide whether the other 2N are needed at all.
|
|
131
|
+
let version;
|
|
132
|
+
let lastModified;
|
|
133
|
+
try {
|
|
134
|
+
const meta = await opts.client.getFileMeta(fileKey);
|
|
135
|
+
version = meta.version;
|
|
136
|
+
lastModified = meta.lastModified;
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
// Without the version there is no way to tell fresh from stale, and
|
|
140
|
+
// guessing "stale" would re-read the whole file every time the metadata
|
|
141
|
+
// call happens to fail. Carry the file forward untouched instead.
|
|
142
|
+
result.warnings.push(`${fileKey}: cannot read file metadata (${message(err)})`);
|
|
143
|
+
result.carried += nodeIds.length;
|
|
144
|
+
result.failed += nodeIds.length;
|
|
145
|
+
result.complete = false;
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
writer.setFile(fileKey, { version, fetchedAt: now().toISOString(), ...(lastModified ? { lastModified } : {}) });
|
|
149
|
+
const due = refreshOrder(nodeIds, (id) => writer.entry(fileKey, id), version, opts.force === true);
|
|
150
|
+
if (due.length === 0) {
|
|
151
|
+
result.unchanged.push(fileKey);
|
|
152
|
+
result.carried += nodeIds.length;
|
|
153
|
+
log(`${fileKey}: version ${version} unchanged — ${nodeIds.length} node(s) already cached.`);
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
result.carried += nodeIds.length - due.length;
|
|
157
|
+
const take = due.slice(0, Math.max(0, budget));
|
|
158
|
+
if (take.length < due.length) {
|
|
159
|
+
result.complete = false;
|
|
160
|
+
result.carried += due.length - take.length;
|
|
161
|
+
log(`${fileKey}: refreshing ${take.length} of ${due.length} stale node(s) — the rest are next run's oldest.`);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
log(`${fileKey}: version ${version}, refreshing ${take.length} stale node(s).`);
|
|
165
|
+
}
|
|
166
|
+
budget -= take.length;
|
|
167
|
+
// Variables are per file, and a file whose version moved may have moved
|
|
168
|
+
// them too. Best effort: the adapter already treats their absence as
|
|
169
|
+
// structure-only tokens.
|
|
170
|
+
try {
|
|
171
|
+
await writer.putVariables(fileKey, await opts.client.getLocalVariables(fileKey));
|
|
172
|
+
}
|
|
173
|
+
catch (err) {
|
|
174
|
+
result.warnings.push(`${fileKey}: variables not refreshed (${message(err)})`);
|
|
175
|
+
}
|
|
176
|
+
const fetched = await fetchStructures(opts.client, fileKey, take, result);
|
|
177
|
+
for (const nodeId of take) {
|
|
178
|
+
const node = fetched.get(nodeId);
|
|
179
|
+
if (!node) {
|
|
180
|
+
// Structure missing: leave the previous entry alone so this node is
|
|
181
|
+
// still stale, still oldest, and still first in line next run.
|
|
182
|
+
result.carried += 1;
|
|
183
|
+
result.failed += 1;
|
|
184
|
+
result.complete = false;
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
try {
|
|
188
|
+
const rendered = await opts.client.renderImage(fileKey, nodeId, {
|
|
189
|
+
format,
|
|
190
|
+
...(opts.imageScale !== undefined ? { scale: opts.imageScale } : {}),
|
|
191
|
+
});
|
|
192
|
+
await writer.put({
|
|
193
|
+
fileKey,
|
|
194
|
+
nodeId,
|
|
195
|
+
fileVersion: version,
|
|
196
|
+
fetchedAt: now().toISOString(),
|
|
197
|
+
node,
|
|
198
|
+
image: { bytes: rendered.bytes, format },
|
|
199
|
+
});
|
|
200
|
+
result.refreshed += 1;
|
|
201
|
+
}
|
|
202
|
+
catch (err) {
|
|
203
|
+
// Same reasoning as a missing structure: a node is refreshed only when
|
|
204
|
+
// BOTH halves arrived, so a half-updated entry never reaches the branch.
|
|
205
|
+
result.warnings.push(`${fileKey}/${nodeId}: image not refreshed (${message(err)})`);
|
|
206
|
+
result.carried += 1;
|
|
207
|
+
result.failed += 1;
|
|
208
|
+
result.complete = false;
|
|
209
|
+
if (err instanceof FigmaRateLimitError) {
|
|
210
|
+
result.warnings.push(`${fileKey}: rate limited — stopping this import; the rest carry forward and refresh next run`);
|
|
211
|
+
break;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
await importComponentSets(opts, writer, fileKey, version, fetched, wanted, result, now, log);
|
|
216
|
+
}
|
|
217
|
+
if (opts.prune) {
|
|
218
|
+
result.pruned = await writer.prune(wanted);
|
|
219
|
+
for (const key of result.pruned)
|
|
220
|
+
log(`pruned ${key} — no longer in the design map.`);
|
|
221
|
+
}
|
|
222
|
+
await writer.write();
|
|
223
|
+
return result;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Cache the component **sets** the refreshed nodes belong to.
|
|
227
|
+
*
|
|
228
|
+
* A variant carries neither its properties nor its siblings — both live on the
|
|
229
|
+
* set — and Figma returns `componentPropertyDefinitions` only for nodes asked
|
|
230
|
+
* for directly. So without this pass a cache-only run cannot say what its
|
|
231
|
+
* references depict, which is the silent failure issue #296 is about: a
|
|
232
|
+
* reference rendered at `Show icon = true` diffed against label-only code.
|
|
233
|
+
*
|
|
234
|
+
* Structure-only by design: a render of a set is a grid of every variant at
|
|
235
|
+
* once, which nothing compares against. One batched request per file, and a
|
|
236
|
+
* failure is a warning — properties are additive, so their absence degrades the
|
|
237
|
+
* report rather than failing the import.
|
|
238
|
+
*/
|
|
239
|
+
async function importComponentSets(opts, writer, fileKey, version, fetched, wanted, result, now, log) {
|
|
240
|
+
const setIds = new Set();
|
|
241
|
+
for (const [nodeId, node] of fetched) {
|
|
242
|
+
const setId = node.components?.[nodeId]?.componentSetId;
|
|
243
|
+
if (setId)
|
|
244
|
+
setIds.add(setId);
|
|
245
|
+
}
|
|
246
|
+
for (const id of [...setIds]) {
|
|
247
|
+
// A set that is itself a catalog reference is already being imported as
|
|
248
|
+
// one — with a render, since something asked for it by name.
|
|
249
|
+
if (fetched.has(id)) {
|
|
250
|
+
setIds.delete(id);
|
|
251
|
+
continue;
|
|
252
|
+
}
|
|
253
|
+
wanted.add(cacheKeyOf(fileKey, id));
|
|
254
|
+
// Already current: the set only moves when the file does, and this pass is
|
|
255
|
+
// reached only for a file whose version moved.
|
|
256
|
+
const have = writer.entry(fileKey, id);
|
|
257
|
+
if (have?.structureOnly && have.fileVersion === version)
|
|
258
|
+
setIds.delete(id);
|
|
259
|
+
}
|
|
260
|
+
if (setIds.size === 0)
|
|
261
|
+
return;
|
|
262
|
+
const sets = await fetchStructures(opts.client, fileKey, [...setIds], result);
|
|
263
|
+
for (const [setId, node] of sets) {
|
|
264
|
+
await writer.put({
|
|
265
|
+
fileKey,
|
|
266
|
+
nodeId: setId,
|
|
267
|
+
fileVersion: version,
|
|
268
|
+
fetchedAt: now().toISOString(),
|
|
269
|
+
node,
|
|
270
|
+
structureOnly: true,
|
|
271
|
+
});
|
|
272
|
+
result.sets += 1;
|
|
273
|
+
}
|
|
274
|
+
log(`${fileKey}: cached ${sets.size} component set(s) for their properties and variants.`);
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Read structures for `nodeIds` in as few requests as the API allows.
|
|
278
|
+
*
|
|
279
|
+
* A chunk that fails is simply absent from the returned map, and its nodes
|
|
280
|
+
* carry forward — including on a 429, where the remaining chunks would fail the
|
|
281
|
+
* same way, so it stops rather than spending the retry budget proving it.
|
|
282
|
+
*/
|
|
283
|
+
async function fetchStructures(client, fileKey, nodeIds, result) {
|
|
284
|
+
const out = new Map();
|
|
285
|
+
for (let i = 0; i < nodeIds.length; i += NODE_BATCH) {
|
|
286
|
+
const chunk = nodeIds.slice(i, i + NODE_BATCH);
|
|
287
|
+
try {
|
|
288
|
+
const res = await client.getFileNodes(fileKey, [...chunk]);
|
|
289
|
+
for (const id of chunk) {
|
|
290
|
+
const entry = res.nodes[id];
|
|
291
|
+
if (entry?.document) {
|
|
292
|
+
out.set(id, {
|
|
293
|
+
document: entry.document,
|
|
294
|
+
...(entry.styles ? { styles: entry.styles } : {}),
|
|
295
|
+
// The pointer from a variant to the set that owns its properties.
|
|
296
|
+
...(entry.components ? { components: entry.components } : {}),
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
result.warnings.push(`${fileKey}/${id}: not present in the file`);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
catch (err) {
|
|
305
|
+
result.warnings.push(`${fileKey}: structure for ${chunk.length} node(s) not refreshed (${message(err)})`);
|
|
306
|
+
if (err instanceof FigmaRateLimitError)
|
|
307
|
+
break;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
return out;
|
|
311
|
+
}
|
|
312
|
+
function message(err) {
|
|
313
|
+
return err instanceof Error ? err.message : String(err);
|
|
314
|
+
}
|
|
315
|
+
//# sourceMappingURL=import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../src/import.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export type { SpecTokens } from "./specTokens.js";
|
|
|
19
19
|
export { renderReport, renderBootstrapNotice, REPORT_MARKER, CMP_PROMOTION, } from "./report.js";
|
|
20
20
|
export { mergeShards, parseShard, partitionComponents, verifyShardReports, SHARD_FORMAT_VERSION, } from "./shard.js";
|
|
21
21
|
export type { MergedShards, ShardReport, ShardSelector } from "./shard.js";
|
|
22
|
+
export { figmaRefsOf, importReferences, importTargets, refreshOrder, } from "./import.js";
|
|
23
|
+
export type { ImportOptions, ImportResult, ImportTarget } from "./import.js";
|
|
22
24
|
export { selectMode } from "./mode.js";
|
|
23
25
|
export type { ActionMode, ModeInputs } from "./mode.js";
|
|
24
26
|
export { runReverse } from "./reverse.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,YAAY,GACb,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/D,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACb,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACzD,YAAY,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EACL,yBAAyB,EACzB,UAAU,GACX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACnE,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,aAAa,GACd,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,YAAY,GACb,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/D,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACb,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3E,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACzD,YAAY,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EACV,mBAAmB,EACnB,YAAY,EACZ,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EACL,yBAAyB,EACzB,UAAU,GACX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACnE,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,aAAa,GACd,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,7 @@ export { resolveRunConfig } from "./config.js";
|
|
|
13
13
|
export { loadSpecTokens, specTokenKey } from "./specTokens.js";
|
|
14
14
|
export { renderReport, renderBootstrapNotice, REPORT_MARKER, CMP_PROMOTION, } from "./report.js";
|
|
15
15
|
export { mergeShards, parseShard, partitionComponents, verifyShardReports, SHARD_FORMAT_VERSION, } from "./shard.js";
|
|
16
|
+
export { figmaRefsOf, importReferences, importTargets, refreshOrder, } from "./import.js";
|
|
16
17
|
export { selectMode } from "./mode.js";
|
|
17
18
|
export { runReverse } from "./reverse.js";
|
|
18
19
|
export { pushBack, decidePushBack } from "./pushback.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAS/C,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACb,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAWzD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AASvB,iBAAiB;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,yBAAyB,EACzB,UAAU,GACX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAS/C,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,aAAa,EACb,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,YAAY,GACb,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAWzD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AASvB,iBAAiB;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EACL,yBAAyB,EACzB,UAAU,GACX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrate.d.ts","sourceRoot":"","sources":["../src/orchestrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,OAAO,EAEP,iBAAiB,EACjB,aAAa,EACb,OAAO,EACP,aAAa,EACd,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,QAAQ,EACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAIrD,uFAAuF;AACvF,MAAM,MAAM,iBAAiB,GAAG,CAC9B,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,GAAG,eAAe,GAAG,SAAS,CAAC;AAExE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,QAAQ,EAAE,eAAe,CAAC;IAC1B,sFAAsF;IACtF,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,SAAS,EAAE,iBAAiB,CAAC;IAC7B;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,CACb,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;IAC5D,wEAAwE;IACxE,SAAS,EAAE,iBAAiB,CAAC;IAC7B,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACpD;;;;OAIG;IACH,KAAK,CAAC,EAAE;QACN,kFAAkF;QAClF,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,kFAAkF;QAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,oEAAoE;QACpE,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,uEAAuE;QACvE,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;
|
|
1
|
+
{"version":3,"file":"orchestrate.d.ts","sourceRoot":"","sources":["../src/orchestrate.ts"],"names":[],"mappings":"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"}
|
package/dist/orchestrate.js
CHANGED
|
@@ -6,6 +6,70 @@ import { directionPolicy } from "@design-parity/policy";
|
|
|
6
6
|
import { renderHtmlReport, renderIndex, } from "@design-parity/report-html";
|
|
7
7
|
import { resolveReference } from "./reference.js";
|
|
8
8
|
import { specTokenKey } from "./specTokens.js";
|
|
9
|
+
/** Loose value comparison — sources spell booleans and enum values differently. */
|
|
10
|
+
function equivalentValue(a, b) {
|
|
11
|
+
return a.trim().toLowerCase() === b.trim().toLowerCase();
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Prefer a reference the candidate could actually be a picture of.
|
|
15
|
+
*
|
|
16
|
+
* When the candidate declares a variant axis (`Size=Medium`) and the mapped
|
|
17
|
+
* reference is a different point on that axis, diffing them measures the wrong
|
|
18
|
+
* thing — the difference reported is the axis, not the code. But "the same
|
|
19
|
+
* component with one axis moved" is a mechanical lookup in the source's own
|
|
20
|
+
* data model, so ask for that node instead of reporting a mismatch nobody can
|
|
21
|
+
* act on. The diff still reports the pair unpairable if this finds nothing.
|
|
22
|
+
*
|
|
23
|
+
* Bounded by the number of variant axes: each pass fixes one, and a pass that
|
|
24
|
+
* fixes none ends it. Only reached when there *is* a contradiction, so the
|
|
25
|
+
* common path pays nothing.
|
|
26
|
+
*
|
|
27
|
+
* @returns the better reference, or `undefined` to keep the one already
|
|
28
|
+
* resolved — including whenever the source cannot answer, which is the case
|
|
29
|
+
* the diff's pairing check exists for.
|
|
30
|
+
*/
|
|
31
|
+
async function preferMatchingVariant(adapter, reference, candidate, code, ctx) {
|
|
32
|
+
if (!adapter.resolveSibling)
|
|
33
|
+
return undefined;
|
|
34
|
+
// What the candidate says it is, first declaration per axis.
|
|
35
|
+
const claimed = new Map();
|
|
36
|
+
for (const image of candidate.images) {
|
|
37
|
+
for (const [name, value] of Object.entries(image.props ?? {})) {
|
|
38
|
+
const key = name.trim().toLowerCase();
|
|
39
|
+
if (!claimed.has(key))
|
|
40
|
+
claimed.set(key, value);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
if (claimed.size === 0)
|
|
44
|
+
return undefined;
|
|
45
|
+
let current = reference;
|
|
46
|
+
for (let pass = 0; pass < claimed.size; pass++) {
|
|
47
|
+
const axes = (current.properties ?? []).filter((p) => p.type === "variant");
|
|
48
|
+
const conflict = axes.find((p) => {
|
|
49
|
+
const value = claimed.get(p.name.trim().toLowerCase());
|
|
50
|
+
return value !== undefined && !equivalentValue(p.value, value);
|
|
51
|
+
});
|
|
52
|
+
if (!conflict || !current.ref)
|
|
53
|
+
break;
|
|
54
|
+
const value = claimed.get(conflict.name.trim().toLowerCase());
|
|
55
|
+
let sibling;
|
|
56
|
+
try {
|
|
57
|
+
sibling = await adapter.resolveSibling(current.ref, { axis: conflict.name, value }, ctx);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
break; // a source that cannot answer leaves the reference as it was
|
|
61
|
+
}
|
|
62
|
+
if (!sibling || sibling === current.ref)
|
|
63
|
+
break;
|
|
64
|
+
try {
|
|
65
|
+
current = await adapter.resolve(code, sibling, ctx);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return current === reference ? undefined : current;
|
|
72
|
+
}
|
|
9
73
|
/** Wrap precomputed native findings as a {@link ChecksProvider} for the diff. */
|
|
10
74
|
function nativeChecksProvider(findings) {
|
|
11
75
|
return { run: () => findings };
|
|
@@ -144,13 +208,7 @@ export async function orchestrate(options) {
|
|
|
144
208
|
results.push(result);
|
|
145
209
|
continue;
|
|
146
210
|
}
|
|
147
|
-
|
|
148
|
-
// A component can declare its spec tokens via a committed DTCG file
|
|
149
|
-
// (design-map `tokensFile`, issue #89); merge them over whatever the
|
|
150
|
-
// adapter resolved so a token-less source still has a spec to diff.
|
|
151
|
-
const declared = options.referenceTokens?.get(specTokenKey(corr.code, corr.source));
|
|
152
|
-
if (declared)
|
|
153
|
-
reference.tokens = mergeReferenceTokens(reference.tokens, declared);
|
|
211
|
+
let reference = await resolveReference(adapter, corr, ctx);
|
|
154
212
|
result.reference = reference;
|
|
155
213
|
const candidate = await options.candidate(corr.code, ctx);
|
|
156
214
|
if (!candidate) {
|
|
@@ -162,6 +220,19 @@ export async function orchestrate(options) {
|
|
|
162
220
|
}
|
|
163
221
|
// Retain the render so push-back (#9) can write the shipped pixels back.
|
|
164
222
|
result.candidate = candidate;
|
|
223
|
+
// With both sides in hand, re-target the reference when the candidate
|
|
224
|
+
// says it is a different variant than the one the map points at (#296).
|
|
225
|
+
const better = await preferMatchingVariant(adapter, reference, candidate, corr.code, ctx);
|
|
226
|
+
if (better) {
|
|
227
|
+
reference = better;
|
|
228
|
+
result.reference = reference;
|
|
229
|
+
}
|
|
230
|
+
// A component can declare its spec tokens via a committed DTCG file
|
|
231
|
+
// (design-map `tokensFile`, issue #89); merge them over whatever the
|
|
232
|
+
// adapter resolved so a token-less source still has a spec to diff.
|
|
233
|
+
const declared = options.referenceTokens?.get(specTokenKey(corr.code, corr.source));
|
|
234
|
+
if (declared)
|
|
235
|
+
reference.tokens = mergeReferenceTokens(reference.tokens, declared);
|
|
165
236
|
// Each component writes into its own subdir so triptychs (keyed only by
|
|
166
237
|
// image variant) and the HTML page don't collide across components (#49),
|
|
167
238
|
// nor across sources when one code is diffed against several (#106).
|
package/dist/orchestrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../src/orchestrate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../src/orchestrate.ts"],"names":[],"mappings":"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"}
|
package/dist/reference.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,eAAe,EAEf,gBAAgB,EAEjB,MAAM,qBAAqB,CAAC;AAW7B;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,cAAc,EACpB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,eAAe,EAEf,gBAAgB,EAEjB,MAAM,qBAAqB,CAAC;AAW7B;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,cAAc,EACpB,GAAG,EAAE,cAAc,GAClB,OAAO,CAAC,eAAe,CAAC,CA4B1B"}
|
package/dist/reference.js
CHANGED
|
@@ -38,6 +38,10 @@ export async function resolveReference(adapter, corr, ctx) {
|
|
|
38
38
|
merged.ref = base.ref;
|
|
39
39
|
if (base.tokens)
|
|
40
40
|
merged.tokens = base.tokens;
|
|
41
|
+
// What the primary node's render depicts (#296) — same provenance as its
|
|
42
|
+
// tokens, and the report and the pairing check both read it.
|
|
43
|
+
if (base.properties)
|
|
44
|
+
merged.properties = base.properties;
|
|
41
45
|
return merged;
|
|
42
46
|
}
|
|
43
47
|
//# sourceMappingURL=reference.js.map
|
package/dist/reference.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAqBA,2EAA2E;AAC3E,SAAS,YAAY,CAAC,KAAY,EAAE,OAAmB;IACrD,MAAM,GAAG,GAAU,EAAE,GAAG,KAAK,EAAE,CAAC;IAChC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC3D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACxD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAyB,EACzB,IAAoB,EACpB,GAAmB;IAEnB,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEjE,MAAM,eAAe,GAAY,EAAE,CAAC;IACpC,IAAI,OAAoC,CAAC;IACzC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrE,OAAO,KAAK,SAAS,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;YAC9C,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,mCAAmC;IACnC,MAAM,IAAI,GAAG,OAA0B,CAAC;IACxC,MAAM,MAAM,GAAoB;QAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,eAAe;KAChB,CAAC;IACF,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS;QAAE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAClD,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7C,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"reference.js","sourceRoot":"","sources":["../src/reference.ts"],"names":[],"mappings":"AAqBA,2EAA2E;AAC3E,SAAS,YAAY,CAAC,KAAY,EAAE,OAAmB;IACrD,MAAM,GAAG,GAAU,EAAE,GAAG,KAAK,EAAE,CAAC;IAChC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC3D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC3D,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;QAAE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACxD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAyB,EACzB,IAAoB,EACpB,GAAmB;IAEnB,IAAI,CAAC,IAAI,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEjE,MAAM,eAAe,GAAY,EAAE,CAAC;IACpC,IAAI,OAAoC,CAAC;IACzC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrE,OAAO,KAAK,SAAS,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;YAC9C,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,mCAAmC;IACnC,MAAM,IAAI,GAAG,OAA0B,CAAC;IACxC,MAAM,MAAM,GAAoB;QAC9B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,eAAe;KAChB,CAAC;IACF,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS;QAAE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAClD,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC7C,yEAAyE;IACzE,6DAA6D;IAC7D,IAAI,IAAI,CAAC,UAAU;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACzD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@design-parity/action",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.44",
|
|
4
4
|
"description": "Integration layer: wires resolver, adapters, candidate, checks, diff, and policy into a parity run, and surfaces the verdict (CLI now; GitHub Action surface to follow).",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
"./shard": "./dist/cli/shard-cli.js",
|
|
14
14
|
"./reverse": "./dist/cli/reverse.js",
|
|
15
15
|
"./schema/verdict.schema.json": "./schema/verdict.schema.json",
|
|
16
|
-
"./cache": "./dist/cli/cache-cli.js"
|
|
16
|
+
"./cache": "./dist/cli/cache-cli.js",
|
|
17
|
+
"./import": "./dist/cli/import-cli.js"
|
|
17
18
|
},
|
|
18
19
|
"files": [
|
|
19
20
|
"dist",
|
|
@@ -25,17 +26,17 @@
|
|
|
25
26
|
},
|
|
26
27
|
"dependencies": {
|
|
27
28
|
"ajv": "^8.17.1",
|
|
28
|
-
"@design-parity/core": "^0.1.
|
|
29
|
-
"@design-parity/resolver": "^0.1.
|
|
30
|
-
"@design-parity/policy": "^0.1.
|
|
31
|
-
"@design-parity/diff": "^0.1.
|
|
32
|
-
"@design-parity/report-html": "^0.1.
|
|
33
|
-
"@design-parity/checks": "^0.1.
|
|
34
|
-
"@design-parity/candidate": "^0.1.
|
|
35
|
-
"@design-parity/adapter-figma": "^0.1.
|
|
36
|
-
"@design-parity/adapter-stitch": "^0.1.
|
|
37
|
-
"@design-parity/adapter-claude-design": "^0.1.
|
|
38
|
-
"@design-parity/adapter-bundle": "^0.1.
|
|
29
|
+
"@design-parity/core": "^0.1.44",
|
|
30
|
+
"@design-parity/resolver": "^0.1.44",
|
|
31
|
+
"@design-parity/policy": "^0.1.44",
|
|
32
|
+
"@design-parity/diff": "^0.1.44",
|
|
33
|
+
"@design-parity/report-html": "^0.1.44",
|
|
34
|
+
"@design-parity/checks": "^0.1.44",
|
|
35
|
+
"@design-parity/candidate": "^0.1.44",
|
|
36
|
+
"@design-parity/adapter-figma": "^0.1.44",
|
|
37
|
+
"@design-parity/adapter-stitch": "^0.1.44",
|
|
38
|
+
"@design-parity/adapter-claude-design": "^0.1.44",
|
|
39
|
+
"@design-parity/adapter-bundle": "^0.1.44"
|
|
39
40
|
},
|
|
40
41
|
"repository": {
|
|
41
42
|
"type": "git",
|