@cat-factory/integrations 0.134.1 → 0.136.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/modules/documents/FigmaProvider.d.ts +28 -4
- package/dist/modules/documents/FigmaProvider.d.ts.map +1 -1
- package/dist/modules/documents/FigmaProvider.js +192 -34
- package/dist/modules/documents/FigmaProvider.js.map +1 -1
- package/dist/modules/documents/ZeplinProvider.d.ts +5 -0
- package/dist/modules/documents/ZeplinProvider.d.ts.map +1 -1
- package/dist/modules/documents/ZeplinProvider.js +14 -6
- package/dist/modules/documents/ZeplinProvider.js.map +1 -1
- package/dist/modules/documents/design.logic.d.ts +43 -4
- package/dist/modules/documents/design.logic.d.ts.map +1 -1
- package/dist/modules/documents/design.logic.js +0 -0
- package/dist/modules/documents/design.logic.js.map +1 -1
- package/dist/modules/documents/figma.logic.d.ts +143 -5
- package/dist/modules/documents/figma.logic.d.ts.map +1 -1
- package/dist/modules/documents/figma.logic.js +467 -49
- package/dist/modules/documents/figma.logic.js.map +1 -1
- package/dist/modules/documents/zeplin.logic.d.ts +15 -0
- package/dist/modules/documents/zeplin.logic.d.ts.map +1 -1
- package/dist/modules/documents/zeplin.logic.js +27 -0
- package/dist/modules/documents/zeplin.logic.js.map +1 -1
- package/dist/modules/environments/EnvironmentProvisioningService.d.ts +7 -1
- package/dist/modules/environments/EnvironmentProvisioningService.d.ts.map +1 -1
- package/dist/modules/environments/EnvironmentProvisioningService.js.map +1 -1
- package/dist/modules/kubernetes/KubernetesRunnerTransport.d.ts +12 -2
- package/dist/modules/kubernetes/KubernetesRunnerTransport.d.ts.map +1 -1
- package/dist/modules/kubernetes/KubernetesRunnerTransport.js +45 -1
- package/dist/modules/kubernetes/KubernetesRunnerTransport.js.map +1 -1
- package/dist/modules/provisioning-logs/LoggingRunnerTransport.d.ts +12 -2
- package/dist/modules/provisioning-logs/LoggingRunnerTransport.d.ts.map +1 -1
- package/dist/modules/provisioning-logs/LoggingRunnerTransport.js +27 -1
- package/dist/modules/provisioning-logs/LoggingRunnerTransport.js.map +1 -1
- package/dist/modules/runners/HttpRunnerPoolProvider.d.ts +3 -3
- package/dist/modules/runners/HttpRunnerPoolProvider.d.ts.map +1 -1
- package/dist/modules/runners/HttpRunnerPoolProvider.js +22 -3
- package/dist/modules/runners/HttpRunnerPoolProvider.js.map +1 -1
- package/dist/modules/runners/RunnerPoolTransport.d.ts +15 -2
- package/dist/modules/runners/RunnerPoolTransport.d.ts.map +1 -1
- package/dist/modules/runners/RunnerPoolTransport.js +22 -3
- package/dist/modules/runners/RunnerPoolTransport.js.map +1 -1
- package/package.json +4 -4
|
@@ -30,12 +30,36 @@ export declare class FigmaProvider implements DocumentSourceProvider {
|
|
|
30
30
|
* preview render a full document fetch performs.
|
|
31
31
|
*/
|
|
32
32
|
probeVersion(credentials: DocumentCredentials, externalId: string, _workspaceId: string): Promise<string>;
|
|
33
|
-
/** Fetch a specific node's subtree, or the whole file's
|
|
33
|
+
/** Fetch a specific node's subtree, or the whole file's frames, plus its design-system maps. */
|
|
34
34
|
private fetchNodes;
|
|
35
35
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
36
|
+
* A node link: one `/nodes` read of the referenced frame's subtree, bounded by the same
|
|
37
|
+
* {@link FRAME_DEPTH} the whole-file path uses. Unbounded, a deep frame can exceed
|
|
38
|
+
* {@link MAX_RESPONSE_BYTES} and fail the whole import for content the renderer would have
|
|
39
|
+
* capped anyway.
|
|
40
|
+
*/
|
|
41
|
+
private fetchNodeSubtree;
|
|
42
|
+
/**
|
|
43
|
+
* A whole-file link: read the file's OUTLINE (pages + top-level frames, no grandchildren),
|
|
44
|
+
* then fetch a bounded set of those frames as real subtrees. A single `depth=` bump on the
|
|
45
|
+
* file endpoint cannot do this: Figma returns pages and their top-level frames with no
|
|
46
|
+
* children at `depth=2`, and the whole document at a depth that would reach the content.
|
|
47
|
+
*
|
|
48
|
+
* A frame whose subtree read fails still renders from the outline, and every frame the
|
|
49
|
+
* cap or a failure cost is NAMED, so a bounded import can't read as the whole design.
|
|
50
|
+
*/
|
|
51
|
+
private fetchFileFrames;
|
|
52
|
+
/**
|
|
53
|
+
* Read the selected frames' subtrees in chunks, folding each response's design-system maps
|
|
54
|
+
* in. Chunked so one oversize response costs its own frames rather than every frame, and
|
|
55
|
+
* best-effort per chunk: the caller reports the frames a failure left at outline depth.
|
|
56
|
+
*/
|
|
57
|
+
private fetchFrameSubtrees;
|
|
58
|
+
/**
|
|
59
|
+
* Fetch the local-variables `meta` (design tokens). A 403/404 is the Enterprise PLAN GATE
|
|
60
|
+
* and is reported as `gated` rather than as a failure, because the render says which of
|
|
61
|
+
* the two happened. Fully best-effort either way: any transport failure (incl. a
|
|
62
|
+
* blocked-redirect `DocumentHttpError`) drops the tokens rather than failing the import.
|
|
39
63
|
*/
|
|
40
64
|
private fetchVariables;
|
|
41
65
|
/** Best-effort short-lived PNG render URL for the node (or whole file); null on any failure. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FigmaProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/FigmaProvider.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"FigmaProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/FigmaProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;AAyC5B,yEAAyE;AACzE,qBAAa,aAAc,SAAQ,KAAK;IAEpC,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIhB;CACF;AA2GD,qBAAa,aAAc,YAAW,sBAAsB;IAC1D,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAS;IAChC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;MAAmB;IAEtC,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAMpE;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErC;IAEK,aAAa,CACjB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,CAAC,CAuC1B;IAED;;;;OAIG;IACG,YAAY,CAChB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAUjB;IAED,gGAAgG;YAClF,UAAU;IASxB;;;;;OAKG;YACW,gBAAgB;IAyB9B;;;;;;;;OAQG;YACW,eAAe;IAgE7B;;;;OAIG;YACW,kBAAkB;IAuChC;;;;;OAKG;YACW,cAAc;IAoB5B,gGAAgG;YAClF,eAAe;IAqB7B,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,KAAK;YAQC,GAAG;CAqBlB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValidationError, } from '@cat-factory/kernel';
|
|
1
|
+
import { describeError, ValidationError, } from '@cat-factory/kernel';
|
|
2
2
|
import { renderDesignContext } from './design.logic.js';
|
|
3
3
|
import { FIGMA_API_HOST, FIGMA_DESCRIPTOR } from './figma.logic.js';
|
|
4
4
|
import * as figmaLogic from './figma.logic.js';
|
|
@@ -14,8 +14,26 @@ import { DocumentHttpError, createHostPinnedFetch, readCappedText } from './http
|
|
|
14
14
|
// URL, the only SSRF surface is a redirect off-host — guarded per hop below.
|
|
15
15
|
const API_BASE = 'https://api.figma.com/v1';
|
|
16
16
|
const USER_AGENT = 'cat-factory';
|
|
17
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Depth of the whole-file OUTLINE read: `depth=2` returns the pages and their top-level
|
|
19
|
+
* frames with no grandchildren, which is how we learn the frame ids. The content then comes
|
|
20
|
+
* from per-frame node reads below, because a deeper `depth=` on the file endpoint fetches
|
|
21
|
+
* the entire document at once and blows the response cap on any real file.
|
|
22
|
+
*/
|
|
18
23
|
const FILE_DEPTH = 2;
|
|
24
|
+
/**
|
|
25
|
+
* API `depth` requested for a frame subtree, DERIVED from the renderer's own depth cap so the
|
|
26
|
+
* fetch and the render cannot drift.
|
|
27
|
+
*
|
|
28
|
+
* Figma counts `depth=1` as the requested node alone, so a descendant the renderer places at
|
|
29
|
+
* its depth `d` needs `d + 2`. `MAX_TREE_DEPTH + 2` therefore feeds the renderer exactly what
|
|
30
|
+
* it will show, and ONE MORE level is requested on top so a node AT the cap can still see
|
|
31
|
+
* whether it has children: without it, a tree the FETCH truncated and a genuinely complete one
|
|
32
|
+
* arrive identical, and the renderer would state a cut on the first and nothing on the second.
|
|
33
|
+
*/
|
|
34
|
+
const FRAME_DEPTH = figmaLogic.MAX_TREE_DEPTH + 3;
|
|
35
|
+
/** Frames per `/nodes` request: bounded so one oversize response can't cost every frame. */
|
|
36
|
+
const FRAME_CHUNK = 4;
|
|
19
37
|
/** Hard cap on the bytes read off any response body, to protect the isolate. */
|
|
20
38
|
const MAX_RESPONSE_BYTES = 5_000_000;
|
|
21
39
|
/** Carries the HTTP status so callers can surface a meaningful error. */
|
|
@@ -33,10 +51,44 @@ export class FigmaApiError extends Error {
|
|
|
33
51
|
* capped-read are the shared documents `http` helpers; only the host/label differ.
|
|
34
52
|
*/
|
|
35
53
|
const safeFetch = createHostPinnedFetch({ host: FIGMA_API_HOST, label: 'Figma' });
|
|
54
|
+
function emptyMaps() {
|
|
55
|
+
return { components: {}, componentSets: {}, styles: {} };
|
|
56
|
+
}
|
|
57
|
+
/** Fold one response's design-system maps onto the accumulated ones. */
|
|
58
|
+
function mergeMaps(into, from) {
|
|
59
|
+
Object.assign(into.components, from?.components ?? {});
|
|
60
|
+
Object.assign(into.componentSets, from?.componentSets ?? {});
|
|
61
|
+
Object.assign(into.styles, from?.styles ?? {});
|
|
62
|
+
}
|
|
36
63
|
/** Figma's file `version` (falling back to `lastModified`) as the staleness token. */
|
|
37
64
|
function fileVersion(res) {
|
|
38
65
|
return res.version ?? res.lastModified ?? '';
|
|
39
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* `Page 1: 12, Page 2: 2`, itself bounded: the frame cap is what made this note necessary, so
|
|
69
|
+
* the note may not become the unbounded thing.
|
|
70
|
+
*/
|
|
71
|
+
function describePages(pages) {
|
|
72
|
+
const shown = pages.slice(0, 6);
|
|
73
|
+
const rest = pages.length - shown.length;
|
|
74
|
+
const listed = shown.map((page) => `${page.name}: ${page.frames}`).join(', ');
|
|
75
|
+
return rest > 0 ? `${listed}, +${rest} more` : listed;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* A short cause phrase for a coverage NOTE, which an end user reads. A status alone is the
|
|
79
|
+
* actionable part of an API failure, and it is bounded: the provider's own error message
|
|
80
|
+
* carries the request URL and up to 300 bytes of response body, so anything else is scrubbed
|
|
81
|
+
* through `describeError` and clipped rather than pasted into the document body.
|
|
82
|
+
*/
|
|
83
|
+
function describeFetchCause(error) {
|
|
84
|
+
if (error instanceof FigmaApiError)
|
|
85
|
+
return `HTTP ${error.status}`;
|
|
86
|
+
const { err, errKind } = describeError(error);
|
|
87
|
+
const message = typeof err === 'string' ? err.trim() : '';
|
|
88
|
+
if (!message)
|
|
89
|
+
return String(errKind ?? 'unknown error');
|
|
90
|
+
return message.length > 120 ? `${message.slice(0, 120)}…` : message;
|
|
91
|
+
}
|
|
40
92
|
export class FigmaProvider {
|
|
41
93
|
kind = 'figma';
|
|
42
94
|
descriptor = FIGMA_DESCRIPTOR;
|
|
@@ -55,20 +107,25 @@ export class FigmaProvider {
|
|
|
55
107
|
if (!fileKey) {
|
|
56
108
|
throw new FigmaApiError(400, `Figma ref is missing a file key: ${externalId}`);
|
|
57
109
|
}
|
|
58
|
-
const { roots,
|
|
59
|
-
// Design tokens are Enterprise-gated; on 403/404
|
|
60
|
-
//
|
|
61
|
-
//
|
|
62
|
-
|
|
110
|
+
const { roots, maps, fileName, version, notes } = await this.fetchNodes(credentials, fileKey, nodeId);
|
|
111
|
+
// Design tokens are Enterprise-gated; on 403/404 the published styles carried by the
|
|
112
|
+
// node tree are the fallback and the render says which one it used. A rendered preview
|
|
113
|
+
// rides along as a reference (no download): best-effort, the short-lived URL may expire
|
|
114
|
+
// and a non-multimodal agent ignores it.
|
|
115
|
+
const variables = await this.fetchVariables(credentials, fileKey);
|
|
63
116
|
const previewUrl = await this.fetchPreviewUrl(credentials, fileKey, nodeId);
|
|
64
117
|
const context = figmaLogic.buildFigmaDesignContext({
|
|
65
118
|
externalId,
|
|
66
119
|
fileName,
|
|
67
120
|
nodeId,
|
|
68
121
|
roots,
|
|
69
|
-
components,
|
|
70
|
-
|
|
122
|
+
components: maps.components,
|
|
123
|
+
componentSets: maps.componentSets,
|
|
124
|
+
styles: maps.styles,
|
|
125
|
+
variablesMeta: variables.status === 'ok' ? variables.meta : null,
|
|
126
|
+
variablesStatus: variables.status,
|
|
71
127
|
previewUrl,
|
|
128
|
+
fetchNotes: notes,
|
|
72
129
|
});
|
|
73
130
|
return {
|
|
74
131
|
externalId,
|
|
@@ -91,50 +148,151 @@ export class FigmaProvider {
|
|
|
91
148
|
const res = await this.get(credentials, `/files/${encodeURIComponent(fileKey)}?depth=1`);
|
|
92
149
|
return fileVersion(res);
|
|
93
150
|
}
|
|
94
|
-
/** Fetch a specific node's subtree, or the whole file's
|
|
151
|
+
/** Fetch a specific node's subtree, or the whole file's frames, plus its design-system maps. */
|
|
95
152
|
async fetchNodes(credentials, fileKey, nodeId) {
|
|
96
|
-
if (nodeId)
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
153
|
+
if (nodeId)
|
|
154
|
+
return await this.fetchNodeSubtree(credentials, fileKey, nodeId);
|
|
155
|
+
return await this.fetchFileFrames(credentials, fileKey);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* A node link: one `/nodes` read of the referenced frame's subtree, bounded by the same
|
|
159
|
+
* {@link FRAME_DEPTH} the whole-file path uses. Unbounded, a deep frame can exceed
|
|
160
|
+
* {@link MAX_RESPONSE_BYTES} and fail the whole import for content the renderer would have
|
|
161
|
+
* capped anyway.
|
|
162
|
+
*/
|
|
163
|
+
async fetchNodeSubtree(credentials, fileKey, nodeId) {
|
|
164
|
+
const res = await this.get(credentials, `/files/${encodeURIComponent(fileKey)}/nodes` +
|
|
165
|
+
`?ids=${encodeURIComponent(nodeId)}&depth=${FRAME_DEPTH}`);
|
|
166
|
+
const entry = res.nodes?.[nodeId];
|
|
167
|
+
if (!entry?.document) {
|
|
168
|
+
throw new FigmaApiError(404, `Figma node ${nodeId} not found in file ${fileKey}`);
|
|
108
169
|
}
|
|
170
|
+
const maps = emptyMaps();
|
|
171
|
+
mergeMaps(maps, entry);
|
|
172
|
+
return {
|
|
173
|
+
roots: [entry.document],
|
|
174
|
+
maps,
|
|
175
|
+
fileName: res.name ?? fileKey,
|
|
176
|
+
version: fileVersion(res),
|
|
177
|
+
notes: [],
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* A whole-file link: read the file's OUTLINE (pages + top-level frames, no grandchildren),
|
|
182
|
+
* then fetch a bounded set of those frames as real subtrees. A single `depth=` bump on the
|
|
183
|
+
* file endpoint cannot do this: Figma returns pages and their top-level frames with no
|
|
184
|
+
* children at `depth=2`, and the whole document at a depth that would reach the content.
|
|
185
|
+
*
|
|
186
|
+
* A frame whose subtree read fails still renders from the outline, and every frame the
|
|
187
|
+
* cap or a failure cost is NAMED, so a bounded import can't read as the whole design.
|
|
188
|
+
*/
|
|
189
|
+
async fetchFileFrames(credentials, fileKey) {
|
|
109
190
|
const res = await this.get(credentials, `/files/${encodeURIComponent(fileKey)}?depth=${FILE_DEPTH}`);
|
|
110
191
|
if (!res.document) {
|
|
111
192
|
throw new FigmaApiError(502, `Figma returned no document for file ${fileKey}`);
|
|
112
193
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
194
|
+
const maps = emptyMaps();
|
|
195
|
+
mergeMaps(maps, res);
|
|
196
|
+
const outline = figmaLogic.figmaTopLevelFrames(res.document);
|
|
197
|
+
const base = {
|
|
198
|
+
// A file with no frames at all (an empty document) still renders its own root, which
|
|
199
|
+
// is what the outline-only fallback did before frames were fetched separately.
|
|
200
|
+
roots: outline.length ? outline : [res.document],
|
|
201
|
+
maps,
|
|
119
202
|
fileName: res.name ?? fileKey,
|
|
120
203
|
version: fileVersion(res),
|
|
204
|
+
notes: [],
|
|
121
205
|
};
|
|
206
|
+
if (!outline.length)
|
|
207
|
+
return base;
|
|
208
|
+
const selected = outline.slice(0, figmaLogic.MAX_FILE_FRAMES);
|
|
209
|
+
if (selected.length < outline.length) {
|
|
210
|
+
// Frames are flattened across pages in document order, so a frame COUNT alone cannot say
|
|
211
|
+
// whether the cap stopped mid-page or dropped a whole page of the design. Naming the
|
|
212
|
+
// per-page counts is the difference between those two facts.
|
|
213
|
+
const pages = figmaLogic.figmaPageSummary(res.document);
|
|
214
|
+
const perPage = pages.length > 1 ? ` across ${pages.length} pages (${describePages(pages)})` : '';
|
|
215
|
+
base.notes.push(`This file has ${outline.length} top-level frames${perPage}; the first ` +
|
|
216
|
+
`${selected.length} in document order were imported. Link a specific frame URL to ` +
|
|
217
|
+
`import one that is not listed here.`);
|
|
218
|
+
}
|
|
219
|
+
const deep = await this.fetchFrameSubtrees(credentials, fileKey, selected, maps);
|
|
220
|
+
base.roots = selected.map((frame) => (frame.id ? (deep.byId.get(frame.id) ?? frame) : frame));
|
|
221
|
+
// A read that FAILED and a read that came back without the frame need different fixes (a
|
|
222
|
+
// token scope or rate limit vs. a frame Figma would not return), so they are counted and
|
|
223
|
+
// stated apart rather than summed into one "unread" tally.
|
|
224
|
+
if (deep.failed.size) {
|
|
225
|
+
const causes = [...deep.causes].sort().join(', ');
|
|
226
|
+
base.notes.push(`${deep.failed.size} of ${selected.length} frame subtree reads failed` +
|
|
227
|
+
`${causes ? ` (${causes})` : ''}; those frames show their name and size only, not ` +
|
|
228
|
+
`their layout or text.`);
|
|
229
|
+
}
|
|
230
|
+
const missing = selected.length - deep.byId.size - deep.failed.size;
|
|
231
|
+
if (missing > 0) {
|
|
232
|
+
base.notes.push(`Figma returned no subtree for ${missing} of ${selected.length} frames, so they show ` +
|
|
233
|
+
`their name and size only. The frames may have been deleted since the link was made.`);
|
|
234
|
+
}
|
|
235
|
+
return base;
|
|
122
236
|
}
|
|
123
237
|
/**
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
238
|
+
* Read the selected frames' subtrees in chunks, folding each response's design-system maps
|
|
239
|
+
* in. Chunked so one oversize response costs its own frames rather than every frame, and
|
|
240
|
+
* best-effort per chunk: the caller reports the frames a failure left at outline depth.
|
|
241
|
+
*/
|
|
242
|
+
async fetchFrameSubtrees(credentials, fileKey, frames, maps) {
|
|
243
|
+
const out = { byId: new Map(), failed: new Set(), causes: new Set() };
|
|
244
|
+
for (let i = 0; i < frames.length; i += FRAME_CHUNK) {
|
|
245
|
+
const ids = frames
|
|
246
|
+
.slice(i, i + FRAME_CHUNK)
|
|
247
|
+
.map((frame) => frame.id)
|
|
248
|
+
.filter((id) => Boolean(id));
|
|
249
|
+
if (!ids.length)
|
|
250
|
+
continue;
|
|
251
|
+
let res;
|
|
252
|
+
try {
|
|
253
|
+
res = await this.get(credentials, `/files/${encodeURIComponent(fileKey)}/nodes` +
|
|
254
|
+
`?ids=${encodeURIComponent(ids.join(','))}&depth=${FRAME_DEPTH}`);
|
|
255
|
+
}
|
|
256
|
+
catch (err) {
|
|
257
|
+
// silent-catch-ok: the miss is REPORTED by the caller as the frames left at outline
|
|
258
|
+
// depth, WITH this cause, which is the honest form of it; a chunk may not fail the
|
|
259
|
+
// import. A 403 (token scope), a 429 (rate limit) and a 502 (oversize response) each
|
|
260
|
+
// need a different fix, so the cause is carried rather than flattened to "failed".
|
|
261
|
+
for (const id of ids)
|
|
262
|
+
out.failed.add(id);
|
|
263
|
+
out.causes.add(describeFetchCause(err));
|
|
264
|
+
continue;
|
|
265
|
+
}
|
|
266
|
+
for (const id of ids) {
|
|
267
|
+
const entry = res.nodes?.[id];
|
|
268
|
+
if (!entry?.document)
|
|
269
|
+
continue;
|
|
270
|
+
mergeMaps(maps, entry);
|
|
271
|
+
out.byId.set(id, entry.document);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return out;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Fetch the local-variables `meta` (design tokens). A 403/404 is the Enterprise PLAN GATE
|
|
278
|
+
* and is reported as `gated` rather than as a failure, because the render says which of
|
|
279
|
+
* the two happened. Fully best-effort either way: any transport failure (incl. a
|
|
280
|
+
* blocked-redirect `DocumentHttpError`) drops the tokens rather than failing the import.
|
|
127
281
|
*/
|
|
128
282
|
async fetchVariables(credentials, fileKey) {
|
|
129
283
|
try {
|
|
130
284
|
const res = await safeFetch(`${API_BASE}/files/${encodeURIComponent(fileKey)}/variables/local`, { method: 'GET', headers: this.headers(credentials) });
|
|
285
|
+
if (res.status === 403 || res.status === 404)
|
|
286
|
+
return { status: 'gated' };
|
|
131
287
|
if (!res.ok)
|
|
132
|
-
return
|
|
288
|
+
return { status: 'failed' };
|
|
133
289
|
const json = this.parse(await readCappedText(res, MAX_RESPONSE_BYTES));
|
|
134
|
-
return json
|
|
290
|
+
return json ? { status: 'ok', meta: json.meta ?? null } : { status: 'failed' };
|
|
135
291
|
}
|
|
136
292
|
catch {
|
|
137
|
-
|
|
293
|
+
// silent-catch-ok: reported as the `failed` status, which the token origin states in
|
|
294
|
+
// the rendered body; the variables read may never fail the import.
|
|
295
|
+
return { status: 'failed' };
|
|
138
296
|
}
|
|
139
297
|
}
|
|
140
298
|
/** Best-effort short-lived PNG render URL for the node (or whole file); null on any failure. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FigmaProvider.js","sourceRoot":"","sources":["../../../src/modules/documents/FigmaProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FigmaProvider.js","sourceRoot":"","sources":["../../../src/modules/documents/FigmaProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,GAKhB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEpF,iFAAiF;AACjF,8EAA8E;AAC9E,+EAA+E;AAC/E,iFAAiF;AACjF,+EAA+E;AAC/E,2EAA2E;AAC3E,iFAAiF;AACjF,gFAAgF;AAChF,6EAA6E;AAE7E,MAAM,QAAQ,GAAG,0BAA0B,CAAA;AAC3C,MAAM,UAAU,GAAG,aAAa,CAAA;AAChC;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CAAC,CAAA;AACpB;;;;;;;;;GASG;AACH,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,GAAG,CAAC,CAAA;AACjD,4FAA4F;AAC5F,MAAM,WAAW,GAAG,CAAC,CAAA;AACrB,gFAAgF;AAChF,MAAM,kBAAkB,GAAG,SAAS,CAAA;AAEpC,yEAAyE;AACzE,MAAM,OAAO,aAAc,SAAQ,KAAK;IAE3B,MAAM;IADjB,YACW,MAAc,EACvB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAA;sBAHL,MAAM;QAIf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAA;IAC7B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,SAAS,GAAG,qBAAqB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;AAkDjF,SAAS,SAAS;IAChB,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;AAC1D,CAAC;AAED,wEAAwE;AACxE,SAAS,SAAS,CAAC,IAAyB,EAAE,IAA2B;IACvE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC,CAAA;IACtD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,aAAa,IAAI,EAAE,CAAC,CAAA;IAC5D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAA;AAChD,CAAC;AAWD,sFAAsF;AACtF,SAAS,WAAW,CAAC,GAAgD;IACnE,OAAO,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,YAAY,IAAI,EAAE,CAAA;AAC9C,CAAC;AAED;;;GAGG;AACH,SAAS,aAAa,CAAC,KAAyC;IAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IACxC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7E,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;AACvD,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,KAAK,YAAY,aAAa;QAAE,OAAO,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAA;IACjE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACzD,IAAI,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,OAAO,IAAI,eAAe,CAAC,CAAA;IACvD,OAAO,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAA;AACrE,CAAC;AAED,MAAM,OAAO,aAAa;IACf,IAAI,GAAG,OAAgB,CAAA;IACvB,UAAU,GAAG,gBAAgB,CAAA;IAEtC,mBAAmB,CAAC,KAA0B;QAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAA;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,eAAe,CAAC,wCAAwC,CAAC,CAAA;QACrE,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;IACtD,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,OAAO,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,WAAgC,EAChC,UAAkB,EAClB,YAAoB;QAEpB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAA;QACvE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,oCAAoC,UAAU,EAAE,CAAC,CAAA;QAChF,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CACrE,WAAW,EACX,OAAO,EACP,MAAM,CACP,CAAA;QACD,qFAAqF;QACrF,uFAAuF;QACvF,wFAAwF;QACxF,yCAAyC;QACzC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACjE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAE3E,MAAM,OAAO,GAAG,UAAU,CAAC,uBAAuB,CAAC;YACjD,UAAU;YACV,QAAQ;YACR,MAAM;YACN,KAAK;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,aAAa,EAAE,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;YAChE,eAAe,EAAE,SAAS,CAAC,MAAM;YACjC,UAAU;YACV,UAAU,EAAE,KAAK;SAClB,CAAC,CAAA;QAEF,OAAO;YACL,UAAU;YACV,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC;YAClC,OAAO;SACR,CAAA;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAChB,WAAgC,EAChC,UAAkB,EAClB,YAAoB;QAEpB,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAA;QAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,oCAAoC,UAAU,EAAE,CAAC,CAAA;QAChF,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CACxB,WAAW,EACX,UAAU,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAChD,CAAA;QACD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAED,gGAAgG;IACxF,KAAK,CAAC,UAAU,CACtB,WAAgC,EAChC,OAAe,EACf,MAA0B;QAE1B,IAAI,MAAM;YAAE,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAC5E,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IACzD,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,gBAAgB,CAC5B,WAAgC,EAChC,OAAe,EACf,MAAc;QAEd,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CACxB,WAAW,EACX,UAAU,kBAAkB,CAAC,OAAO,CAAC,QAAQ;YAC3C,QAAQ,kBAAkB,CAAC,MAAM,CAAC,UAAU,WAAW,EAAE,CAC5D,CAAA;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAA;QACjC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,cAAc,MAAM,sBAAsB,OAAO,EAAE,CAAC,CAAA;QACnF,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,EAAE,CAAA;QACxB,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACtB,OAAO;YACL,KAAK,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YACvB,IAAI;YACJ,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,OAAO;YAC7B,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC;YACzB,KAAK,EAAE,EAAE;SACV,CAAA;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,eAAe,CAC3B,WAAgC,EAChC,OAAe;QAEf,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CACxB,WAAW,EACX,UAAU,kBAAkB,CAAC,OAAO,CAAC,UAAU,UAAU,EAAE,CAC5D,CAAA;QACD,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,uCAAuC,OAAO,EAAE,CAAC,CAAA;QAChF,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,EAAE,CAAA;QACxB,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAEpB,MAAM,OAAO,GAAG,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC5D,MAAM,IAAI,GAAiB;YACzB,qFAAqF;YACrF,+EAA+E;YAC/E,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;YAChD,IAAI;YACJ,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,OAAO;YAC7B,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC;YACzB,KAAK,EAAE,EAAE;SACV,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,IAAI,CAAA;QAEhC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAA;QAC7D,IAAI,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACrC,yFAAyF;YACzF,qFAAqF;YACrF,6DAA6D;YAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACvD,MAAM,OAAO,GACX,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,MAAM,WAAW,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YACnF,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,iBAAiB,OAAO,CAAC,MAAM,oBAAoB,OAAO,cAAc;gBACtE,GAAG,QAAQ,CAAC,MAAM,iEAAiE;gBACnF,qCAAqC,CACxC,CAAA;QACH,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QAChF,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7F,yFAAyF;QACzF,yFAAyF;QACzF,2DAA2D;QAC3D,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,QAAQ,CAAC,MAAM,6BAA6B;gBACpE,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,oDAAoD;gBACnF,uBAAuB,CAC1B,CAAA;QACH,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;QACnE,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,iCAAiC,OAAO,OAAO,QAAQ,CAAC,MAAM,wBAAwB;gBACpF,qFAAqF,CACxF,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,kBAAkB,CAC9B,WAAgC,EAChC,OAAe,EACf,MAA8B,EAC9B,IAAyB;QAEzB,MAAM,GAAG,GAAiB,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,CAAA;QACnF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,MAAM;iBACf,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC;iBACzB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;iBACxB,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;YAC5C,IAAI,CAAC,GAAG,CAAC,MAAM;gBAAE,SAAQ;YACzB,IAAI,GAAkB,CAAA;YACtB,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAClB,WAAW,EACX,UAAU,kBAAkB,CAAC,OAAO,CAAC,QAAQ;oBAC3C,QAAQ,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,WAAW,EAAE,CACnE,CAAA;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,oFAAoF;gBACpF,mFAAmF;gBACnF,qFAAqF;gBACrF,mFAAmF;gBACnF,KAAK,MAAM,EAAE,IAAI,GAAG;oBAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACxC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;gBACvC,SAAQ;YACV,CAAC;YACD,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC7B,IAAI,CAAC,KAAK,EAAE,QAAQ;oBAAE,SAAQ;gBAC9B,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBACtB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAA;YAClC,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,cAAc,CAC1B,WAAgC,EAChC,OAAe;QAEf,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,SAAS,CACzB,GAAG,QAAQ,UAAU,kBAAkB,CAAC,OAAO,CAAC,kBAAkB,EAClE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CACtD,CAAA;YACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;gBAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;YACxE,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAoB,MAAM,cAAc,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAA;YACzF,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;QAChF,CAAC;QAAC,MAAM,CAAC;YACP,qFAAqF;YACrF,mEAAmE;YACnE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;QAC7B,CAAC;IACH,CAAC;IAED,gGAAgG;IACxF,KAAK,CAAC,eAAe,CAC3B,WAAgC,EAChC,OAAe,EACf,MAA0B;QAE1B,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAA;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,SAAS,CACzB,GAAG,QAAQ,WAAW,kBAAkB,CAAC,OAAO,CAAC,QAAQ,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAChG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CACtD,CAAA;YACD,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAA;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAiB,MAAM,cAAc,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAA;YACtF,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAA;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAA;YACjC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,WAAgC;QAC9C,OAAO;YACL,eAAe,EAAE,WAAW,CAAC,QAAQ,IAAI,EAAE;YAC3C,MAAM,EAAE,kBAAkB;YAC1B,YAAY,EAAE,UAAU;SACzB,CAAA;IACH,CAAC;IAEO,KAAK,CAAI,IAAY;QAC3B,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAA;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,GAAG,CAAI,WAAgC,EAAE,IAAY;QACjE,MAAM,GAAG,GAAG,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAA;QAChC,IAAI,GAAa,CAAA;QACjB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QACnF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,gFAAgF;YAChF,wEAAwE;YACxE,IAAI,GAAG,YAAY,iBAAiB;gBAAE,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;YACtF,MAAM,GAAG,CAAA;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;YAC1E,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QAChG,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAI,MAAM,cAAc,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAA;QACzE,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,0CAA0C,IAAI,EAAE,CAAC,CAAA;QAChF,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
|
|
@@ -32,6 +32,11 @@ export declare class ZeplinProvider implements DocumentSourceProvider {
|
|
|
32
32
|
probeVersion(credentials: DocumentCredentials, externalId: string, _workspaceId: string): Promise<string>;
|
|
33
33
|
/** Fetch the single referenced screen, or a bounded list of the project's screens. */
|
|
34
34
|
private fetchScreens;
|
|
35
|
+
/**
|
|
36
|
+
* A supplementary read that may not fail the import. It reports WHETHER it failed, because
|
|
37
|
+
* a dropped read and a project that simply has no components/tokens render identically as
|
|
38
|
+
* an absent section, and only the caller can state which one happened.
|
|
39
|
+
*/
|
|
35
40
|
private bestEffort;
|
|
36
41
|
private headers;
|
|
37
42
|
private get;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZeplinProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/ZeplinProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;AAkC5B,yEAAyE;AACzE,qBAAa,cAAe,SAAQ,KAAK;IAErC,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIhB;CACF;AAID,qBAAa,cAAe,YAAW,sBAAsB;IAC3D,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAS;IACjC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;MAAoB;IAEvC,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAMpE;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErC;IAEK,aAAa,CACjB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"ZeplinProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/ZeplinProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;AAkC5B,yEAAyE;AACzE,qBAAa,cAAe,SAAQ,KAAK;IAErC,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIhB;CACF;AAID,qBAAa,cAAe,YAAW,sBAAsB;IAC3D,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAS;IACjC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;MAAoB;IAEvC,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAMpE;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErC;IAEK,aAAa,CACjB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,CAAC,CAsD1B;IAED;;;;OAIG;IACG,YAAY,CAChB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAUjB;IAED,sFAAsF;YACxE,YAAY;IAsB1B;;;;OAIG;YACW,UAAU;IAUxB,OAAO,CAAC,OAAO;YAQD,GAAG;CAuBlB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ValidationError, } from '@cat-factory/kernel';
|
|
2
2
|
import { renderDesignContext } from './design.logic.js';
|
|
3
3
|
import { DocumentHttpError, createHostPinnedFetch, readCappedText } from './http.js';
|
|
4
|
-
import {
|
|
4
|
+
import { SCREEN_FETCH_LIMIT, ZEPLIN_API_HOST, ZEPLIN_DESCRIPTOR, buildZeplinDesignContext, parseZeplinRef, splitZeplinExternalId, unwrapArray, unwrapObject, } from './zeplin.logic.js';
|
|
5
5
|
// ZeplinProvider: the document-source provider for Zeplin, the design→dev handoff tool.
|
|
6
6
|
// It authenticates with a per-workspace personal access token (`Authorization: Bearer`),
|
|
7
7
|
// reads a project's screens + design-system (components + tokens) over the REST API, and
|
|
@@ -58,8 +58,9 @@ export class ZeplinProvider {
|
|
|
58
58
|
externalId,
|
|
59
59
|
projectName: project.name ?? projectId,
|
|
60
60
|
screens,
|
|
61
|
-
components: unwrapArray(components, 'components'),
|
|
62
|
-
designTokens,
|
|
61
|
+
components: unwrapArray(components.value, 'components'),
|
|
62
|
+
designTokens: designTokens.value,
|
|
63
|
+
failedReads: { components: components.failed, designTokens: designTokens.failed },
|
|
63
64
|
});
|
|
64
65
|
const body = renderDesignContext(context);
|
|
65
66
|
if (!body.trim()) {
|
|
@@ -95,15 +96,22 @@ export class ZeplinProvider {
|
|
|
95
96
|
const screen = unwrapObject(await this.get(credentials, `/projects/${encodeURIComponent(projectId)}/screens/${encodeURIComponent(screenId)}`), 'screen');
|
|
96
97
|
return screen ? [screen] : [];
|
|
97
98
|
}
|
|
98
|
-
const listed = await this.get(credentials, `/projects/${encodeURIComponent(projectId)}/screens?limit=${
|
|
99
|
+
const listed = await this.get(credentials, `/projects/${encodeURIComponent(projectId)}/screens?limit=${SCREEN_FETCH_LIMIT}`);
|
|
99
100
|
return unwrapArray(listed, 'screens');
|
|
100
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* A supplementary read that may not fail the import. It reports WHETHER it failed, because
|
|
104
|
+
* a dropped read and a project that simply has no components/tokens render identically as
|
|
105
|
+
* an absent section, and only the caller can state which one happened.
|
|
106
|
+
*/
|
|
101
107
|
async bestEffort(fn) {
|
|
102
108
|
try {
|
|
103
|
-
return await fn();
|
|
109
|
+
return { value: await fn(), failed: false };
|
|
104
110
|
}
|
|
105
111
|
catch {
|
|
106
|
-
|
|
112
|
+
// silent-catch-ok: the failure is REPORTED through the returned flag, which the
|
|
113
|
+
// rendered body states as a note rather than passing off as an empty section.
|
|
114
|
+
return { value: null, failed: true };
|
|
107
115
|
}
|
|
108
116
|
}
|
|
109
117
|
headers(credentials) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZeplinProvider.js","sourceRoot":"","sources":["../../../src/modules/documents/ZeplinProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAKhB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AACpF,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"ZeplinProvider.js","sourceRoot":"","sources":["../../../src/modules/documents/ZeplinProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,18 @@ export interface DesignReference {
|
|
|
32
32
|
label: string;
|
|
33
33
|
url: string;
|
|
34
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Where a context's tokens came from, and what a reader must not conclude from a short or
|
|
37
|
+
* missing token list. "This design defines no tokens" and "the richer token API is not on
|
|
38
|
+
* this plan" are different facts that render identically as an absence, so a source that
|
|
39
|
+
* has more than one token path names the one that produced the section.
|
|
40
|
+
*/
|
|
41
|
+
export interface DesignTokenOrigin {
|
|
42
|
+
/** The producing source, e.g. `Figma variables`. Omitted when nothing produced tokens. */
|
|
43
|
+
label?: string;
|
|
44
|
+
/** One sentence on what is missing and why (a plan gate, a failed read). */
|
|
45
|
+
note?: string;
|
|
46
|
+
}
|
|
35
47
|
/** The fully-normalised design context a provider hands the shared renderer. */
|
|
36
48
|
export interface DesignContext {
|
|
37
49
|
/** Document title (used as the `DocumentContent.title`). */
|
|
@@ -41,7 +53,15 @@ export interface DesignContext {
|
|
|
41
53
|
blocks: DesignBlock[];
|
|
42
54
|
components: DesignComponent[];
|
|
43
55
|
tokens: DesignToken[];
|
|
56
|
+
/** Which token path produced `tokens`; omitted when the source has exactly one. */
|
|
57
|
+
tokenOrigin?: DesignTokenOrigin;
|
|
44
58
|
references: DesignReference[];
|
|
59
|
+
/**
|
|
60
|
+
* Coverage caveats: what an import cap dropped, which read failed, what the reader must
|
|
61
|
+
* open the design itself to see. Rendered FIRST, because each one qualifies everything
|
|
62
|
+
* below it and a body that gets truncated loses its tail.
|
|
63
|
+
*/
|
|
64
|
+
notes?: string[];
|
|
45
65
|
}
|
|
46
66
|
/**
|
|
47
67
|
* The ` (W×H)` size qualifier appended to a block heading, shared by every source so a
|
|
@@ -49,12 +69,31 @@ export interface DesignContext {
|
|
|
49
69
|
* when either dimension is missing, so the caller omits the qualifier.
|
|
50
70
|
*/
|
|
51
71
|
export declare function dimensionMeta(width?: number | null, height?: number | null): string | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* Cap a list, RETURNING what it dropped so the caller can state it in {@link
|
|
74
|
+
* DesignContext.notes}. A cap that reports nothing renders as a complete list, which is the
|
|
75
|
+
* silence every note in this model exists to break.
|
|
76
|
+
*
|
|
77
|
+
* The caller must sort/rank BEFORE capping when the rendered order differs from the input
|
|
78
|
+
* order: a reader who assumes a cap is a plain prefix of what they see would otherwise
|
|
79
|
+
* conclude the tail was never considered.
|
|
80
|
+
*/
|
|
81
|
+
export declare function capped<T>(items: T[], max: number): {
|
|
82
|
+
items: T[];
|
|
83
|
+
dropped: number;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* The canonical order a token list renders in. Exported because a source that CAPS its tokens
|
|
87
|
+
* must sort by the same key first, or its cap is not a prefix of what the reader sees and the
|
|
88
|
+
* "N not listed" note points at the wrong tail.
|
|
89
|
+
*/
|
|
90
|
+
export declare function sortDesignTokens(tokens: DesignToken[]): DesignToken[];
|
|
52
91
|
/**
|
|
53
92
|
* Render a {@link DesignContext} to the Markdown body the agent reads from
|
|
54
|
-
* `.cat-context/<slug>.md`: each block as a `## <title>` with its
|
|
55
|
-
* single de-duplicated `### Components`, the `### Design tokens`, and
|
|
56
|
-
* `### References`. Empty groups are dropped so a source that
|
|
57
|
-
*
|
|
93
|
+
* `.cat-context/<slug>.md`: the coverage `### Notes`, each block as a `## <title>` with its
|
|
94
|
+
* sub-sections, then a single de-duplicated `### Components`, the `### Design tokens`, and
|
|
95
|
+
* any best-effort `### References`. Empty groups are dropped so a source that genuinely has
|
|
96
|
+
* no tokens simply omits that section rather than emitting a stub.
|
|
58
97
|
*/
|
|
59
98
|
export declare function renderDesignContext(ctx: DesignContext): string;
|
|
60
99
|
//# sourceMappingURL=design.logic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/design.logic.ts"],"names":[],"mappings":"AAQA,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,+EAA+E;AAC/E,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,2DAA2D;IAC3D,QAAQ,EAAE,aAAa,EAAE,CAAA;CAC1B;AAED,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,gFAAgF;AAChF,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAA;IACb,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,EAAE,eAAe,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"design.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/design.logic.ts"],"names":[],"mappings":"AAQA,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,+EAA+E;AAC/E,MAAM,WAAW,WAAW;IAC1B,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,2DAA2D;IAC3D,QAAQ,EAAE,aAAa,EAAE,CAAA;CAC1B;AAED,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,0FAA0F;IAC1F,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,gFAAgF;AAChF,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAA;IACb,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,mFAAmF;IACnF,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAG/F;AAED;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAGlF;AAYD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAErE;AA6BD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAqC9D"}
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design.logic.js","sourceRoot":"","sources":["../../../src/modules/documents/design.logic.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,sFAAsF;AACtF,sFAAsF;AACtF,uFAAuF;AACvF,0FAA0F;AAC1F,sFAAsF;AACtF,uCAAuC;
|
|
1
|
+
{"version":3,"file":"design.logic.js","sourceRoot":"","sources":["../../../src/modules/documents/design.logic.ts"],"names":[],"mappings":"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"}
|