@cat-factory/integrations 0.147.0 → 0.149.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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/documents/DocumentConnectionService.d.ts +41 -4
- package/dist/modules/documents/DocumentConnectionService.d.ts.map +1 -1
- package/dist/modules/documents/DocumentConnectionService.js +56 -19
- package/dist/modules/documents/DocumentConnectionService.js.map +1 -1
- package/dist/modules/documents/DocumentImportService.d.ts +48 -1
- package/dist/modules/documents/DocumentImportService.d.ts.map +1 -1
- package/dist/modules/documents/DocumentImportService.js +154 -1
- package/dist/modules/documents/DocumentImportService.js.map +1 -1
- package/dist/modules/documents/FigmaProvider.d.ts +29 -1
- package/dist/modules/documents/FigmaProvider.d.ts.map +1 -1
- package/dist/modules/documents/FigmaProvider.js +143 -3
- package/dist/modules/documents/FigmaProvider.js.map +1 -1
- package/dist/modules/documents/LinkedDocumentRefreshService.d.ts +14 -5
- package/dist/modules/documents/LinkedDocumentRefreshService.d.ts.map +1 -1
- package/dist/modules/documents/LinkedDocumentRefreshService.js +39 -22
- package/dist/modules/documents/LinkedDocumentRefreshService.js.map +1 -1
- package/dist/modules/documents/documentConnectionStore.d.ts +19 -0
- package/dist/modules/documents/documentConnectionStore.d.ts.map +1 -0
- package/dist/modules/documents/documentConnectionStore.js +17 -0
- package/dist/modules/documents/documentConnectionStore.js.map +1 -0
- package/dist/modules/documents/figma.logic.d.ts +43 -1
- package/dist/modules/documents/figma.logic.d.ts.map +1 -1
- package/dist/modules/documents/figma.logic.js +70 -0
- package/dist/modules/documents/figma.logic.js.map +1 -1
- package/dist/modules/documents/http.d.ts +12 -3
- package/dist/modules/documents/http.d.ts.map +1 -1
- package/dist/modules/documents/http.js +17 -4
- package/dist/modules/documents/http.js.map +1 -1
- package/dist/modules/github/GitHubInstallationService.d.ts +8 -1
- package/dist/modules/github/GitHubInstallationService.d.ts.map +1 -1
- package/dist/modules/github/GitHubInstallationService.js +4 -3
- package/dist/modules/github/GitHubInstallationService.js.map +1 -1
- package/dist/modules/shared/sealedConnectionStore.d.ts +100 -0
- package/dist/modules/shared/sealedConnectionStore.d.ts.map +1 -0
- package/dist/modules/shared/sealedConnectionStore.js +118 -0
- package/dist/modules/shared/sealedConnectionStore.js.map +1 -0
- package/dist/modules/tasks/BugHuntService.d.ts +2 -2
- package/dist/modules/tasks/BugHuntService.d.ts.map +1 -1
- package/dist/modules/tasks/BugHuntService.js +1 -1
- package/dist/modules/tasks/BugHuntService.js.map +1 -1
- package/dist/modules/tasks/BugIntakeService.d.ts +2 -2
- package/dist/modules/tasks/BugIntakeService.d.ts.map +1 -1
- package/dist/modules/tasks/BugIntakeService.js +1 -1
- package/dist/modules/tasks/BugIntakeService.js.map +1 -1
- package/dist/modules/tasks/TaskConnectionService.d.ts +43 -4
- package/dist/modules/tasks/TaskConnectionService.d.ts.map +1 -1
- package/dist/modules/tasks/TaskConnectionService.js +122 -22
- package/dist/modules/tasks/TaskConnectionService.js.map +1 -1
- package/dist/modules/tasks/TrackerWebhookService.d.ts +2 -2
- package/dist/modules/tasks/TrackerWebhookService.d.ts.map +1 -1
- package/dist/modules/tasks/TrackerWebhookService.js +1 -1
- package/dist/modules/tasks/TrackerWebhookService.js.map +1 -1
- package/dist/modules/tasks/taskConnectionStore.d.ts +18 -0
- package/dist/modules/tasks/taskConnectionStore.d.ts.map +1 -0
- package/dist/modules/tasks/taskConnectionStore.js +17 -0
- package/dist/modules/tasks/taskConnectionStore.js.map +1 -0
- package/dist/modules/vcs/VcsPatConnectionService.d.ts +9 -1
- package/dist/modules/vcs/VcsPatConnectionService.d.ts.map +1 -1
- package/dist/modules/vcs/VcsPatConnectionService.js +4 -3
- package/dist/modules/vcs/VcsPatConnectionService.js.map +1 -1
- package/dist/modules/writeback/IssueWritebackService.d.ts +7 -2
- package/dist/modules/writeback/IssueWritebackService.d.ts.map +1 -1
- package/dist/modules/writeback/IssueWritebackService.js +31 -11
- package/dist/modules/writeback/IssueWritebackService.js.map +1 -1
- package/package.json +4 -4
|
@@ -28,12 +28,6 @@ import { probeCacheKey, sameAgentVisibleProjection } from './documents.logic.js'
|
|
|
28
28
|
// the whole pass rather than per document.
|
|
29
29
|
/** How many documents of one corpus are asked about at a time. */
|
|
30
30
|
const REFRESH_CONCURRENCY = 4;
|
|
31
|
-
/**
|
|
32
|
-
* Sentinel for "the connection READ itself failed", distinct from the `null` that means "there is
|
|
33
|
-
* definitely no connection". A sentinel rather than a rethrow because the two land on different
|
|
34
|
-
* `DocumentFreshnessGap`s and the caller must not have to tell them apart by inspecting an error.
|
|
35
|
-
*/
|
|
36
|
-
const CONNECTION_UNREADABLE = Symbol('connection-unreadable');
|
|
37
31
|
export class LinkedDocumentRefreshService {
|
|
38
32
|
deps;
|
|
39
33
|
log;
|
|
@@ -91,11 +85,20 @@ export class LinkedDocumentRefreshService {
|
|
|
91
85
|
* The live connection per source this corpus actually needs, in ONE read.
|
|
92
86
|
*
|
|
93
87
|
* Its own failure disposition, so three different facts stay three different notes. A definite
|
|
94
|
-
* "no connection" is the workspace's to fix; a
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
88
|
+
* "no connection" is the workspace's to fix; a bag that will not open is the deployment's — a
|
|
89
|
+
* corrupt envelope, a drifted key, or a mothership that could not be reached to open the row.
|
|
90
|
+
* Folding it into the per-document catch would tell every such run that Figma is down.
|
|
91
|
+
*
|
|
92
|
+
* The unreadable verdict is PER SOURCE, which is the distinction that stopped one drifted shelf
|
|
93
|
+
* entry speaking for the whole corpus: a workspace with a broken Confluence bag still gets
|
|
94
|
+
* confirmed freshness on its Figma designs. Only a read that fails WHOLESALE (the stored-row
|
|
95
|
+
* query itself, which precedes every open) can mark them all, because in that case nothing about
|
|
96
|
+
* any source was learned.
|
|
97
|
+
*
|
|
98
|
+
* It is no longer the PERMANENT state it was: a mothership-mode node used to fail this read on
|
|
99
|
+
* every dispatch of every run, because the connection repository decrypted inside and so had to
|
|
100
|
+
* stay db-direct over an absent `db` handle. The row now carries its envelope and the mothership
|
|
101
|
+
* opens it by name, so `credentials_unreadable` has gone back to meaning what it says.
|
|
99
102
|
*/
|
|
100
103
|
async resolveConnections(workspaceId, documents) {
|
|
101
104
|
const sources = [
|
|
@@ -104,20 +107,34 @@ export class LinkedDocumentRefreshService {
|
|
|
104
107
|
.filter((source) => isConnectableSource(source))
|
|
105
108
|
.filter((source) => this.deps.registry.get(source))),
|
|
106
109
|
];
|
|
110
|
+
// WARN on either shape below, because there is now always something to fix. This was `info`
|
|
111
|
+
// while a mothership-mode node failed it permanently and by design (a warning that repeats
|
|
112
|
+
// forever is how a channel gets tuned out); with the connection row sealed and openable over
|
|
113
|
+
// the machine API, every remaining cause is a real fault. The `document.freshness_gap` counter,
|
|
114
|
+
// incremented per affected document, is what answers whether it is rising.
|
|
107
115
|
try {
|
|
108
|
-
|
|
116
|
+
const resolved = new Map(await this.deps.connectionService.resolveConnections(workspaceId, sources));
|
|
117
|
+
// One line per FAILING source, which is the granularity of both the fault and its remedy.
|
|
118
|
+
for (const [source, connection] of resolved) {
|
|
119
|
+
if (connection.status !== 'unreadable')
|
|
120
|
+
continue;
|
|
121
|
+
this.log.warn('linked document freshness: source credentials could not be read', {
|
|
122
|
+
workspaceId,
|
|
123
|
+
source,
|
|
124
|
+
...describeError(connection.cause),
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
return resolved;
|
|
109
128
|
}
|
|
110
129
|
catch (error) {
|
|
111
|
-
//
|
|
112
|
-
//
|
|
113
|
-
|
|
114
|
-
// layer up). The `document.freshness_gap` counter, incremented per affected document below,
|
|
115
|
-
// is what answers whether this is rising.
|
|
116
|
-
this.log.info('linked document freshness: source credentials could not be read', {
|
|
130
|
+
// ONE fault, so ONE line naming the sources it took down with it — not the same cause
|
|
131
|
+
// repeated once per source, which would read as several independent failures.
|
|
132
|
+
this.log.warn('linked document freshness: the connection read failed for every source', {
|
|
117
133
|
workspaceId,
|
|
134
|
+
sources,
|
|
118
135
|
...describeError(error),
|
|
119
136
|
});
|
|
120
|
-
return new Map(sources.map((source) => [source,
|
|
137
|
+
return new Map(sources.map((source) => [source, { status: 'unreadable', cause: error }]));
|
|
121
138
|
}
|
|
122
139
|
}
|
|
123
140
|
/**
|
|
@@ -155,12 +172,12 @@ export class LinkedDocumentRefreshService {
|
|
|
155
172
|
if (!provider)
|
|
156
173
|
return notApplicable(record);
|
|
157
174
|
const connection = connections.get(source);
|
|
158
|
-
if (connection ===
|
|
175
|
+
if (connection?.status === 'unreadable')
|
|
159
176
|
return unconfirmed(record, 'credentials_unreadable');
|
|
160
|
-
if (
|
|
177
|
+
if (connection?.status !== 'connected')
|
|
161
178
|
return unconfirmed(record, 'not_connected');
|
|
162
179
|
try {
|
|
163
|
-
return await this.confirm(workspaceId, source, provider, connection, record, trigger);
|
|
180
|
+
return await this.confirm(workspaceId, source, provider, connection.connection, record, trigger);
|
|
164
181
|
}
|
|
165
182
|
catch (error) {
|
|
166
183
|
// The ladder catches its own failures inside the cache loader (so they are REMEMBERED rather
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkedDocumentRefreshService.js","sourceRoot":"","sources":["../../../src/modules/documents/LinkedDocumentRefreshService.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACvF,OAAO,EAAE,mBAAmB,EAA8B,MAAM,wBAAwB,CAAA;AACxF,OAAO,IAAI,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"LinkedDocumentRefreshService.js","sourceRoot":"","sources":["../../../src/modules/documents/LinkedDocumentRefreshService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { DocumentConnectionRepository, DocumentConnectionStore, SecretCipher, SecretDelegate } from '@cat-factory/kernel';
|
|
2
|
+
export interface DocumentConnectionStoreDependencies {
|
|
3
|
+
documentConnectionRepository: DocumentConnectionRepository;
|
|
4
|
+
/** The deployment's `cat-factory:documents` cipher. */
|
|
5
|
+
secretCipher: SecretCipher;
|
|
6
|
+
/**
|
|
7
|
+
* Present ONLY on a mothership-mode node, where the row was sealed under the MOTHERSHIP's key
|
|
8
|
+
* and this process holds none. Without it a mothership-mode deployment could store a document
|
|
9
|
+
* connection and never authenticate with it, which is the shape this whole integration was
|
|
10
|
+
* parked on until the row started carrying its envelope.
|
|
11
|
+
*/
|
|
12
|
+
secretDelegate?: SecretDelegate;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The one place a document-source credential bag is sealed or opened, over the
|
|
16
|
+
* `document_source_connection` entry of the mothership's org-secret table.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createDocumentConnectionStore(deps: DocumentConnectionStoreDependencies): DocumentConnectionStore;
|
|
19
|
+
//# sourceMappingURL=documentConnectionStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentConnectionStore.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/documentConnectionStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,uBAAuB,EAEvB,YAAY,EACZ,cAAc,EACf,MAAM,qBAAqB,CAAA;AAI5B,MAAM,WAAW,mCAAmC;IAClD,4BAA4B,EAAE,4BAA4B,CAAA;IAC1D,uDAAuD;IACvD,YAAY,EAAE,YAAY,CAAA;IAC1B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,mCAAmC,GACxC,uBAAuB,CASzB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createOrgSecretCipher } from '@cat-factory/kernel';
|
|
2
|
+
import { createSealedConnectionStore } from '../shared/sealedConnectionStore.js';
|
|
3
|
+
/**
|
|
4
|
+
* The one place a document-source credential bag is sealed or opened, over the
|
|
5
|
+
* `document_source_connection` entry of the mothership's org-secret table.
|
|
6
|
+
*/
|
|
7
|
+
export function createDocumentConnectionStore(deps) {
|
|
8
|
+
return createSealedConnectionStore({
|
|
9
|
+
repository: deps.documentConnectionRepository,
|
|
10
|
+
orgSecrets: createOrgSecretCipher({
|
|
11
|
+
cipher: deps.secretCipher,
|
|
12
|
+
...(deps.secretDelegate ? { delegate: deps.secretDelegate } : {}),
|
|
13
|
+
}),
|
|
14
|
+
secretSource: 'document_source_connection',
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=documentConnectionStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentConnectionStore.js","sourceRoot":"","sources":["../../../src/modules/documents/documentConnectionStore.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAA;AAehF;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAC3C,IAAyC;IAEzC,OAAO,2BAA2B,CAAqB;QACrD,UAAU,EAAE,IAAI,CAAC,4BAA4B;QAC7C,UAAU,EAAE,qBAAqB,CAAC;YAChC,MAAM,EAAE,IAAI,CAAC,YAAY;YACzB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC;QACF,YAAY,EAAE,4BAA4B;KAC3C,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,7 +1,20 @@
|
|
|
1
|
-
import type { DocumentSourceDescriptor, DocumentSourceOAuthSpec } from '@cat-factory/kernel';
|
|
1
|
+
import type { DocumentRenderPlan, DocumentSourceDescriptor, DocumentSourceOAuthSpec } from '@cat-factory/kernel';
|
|
2
2
|
import { type DesignBlock, type DesignComponent, type DesignContext, type DesignToken, type DesignTokenOrigin } from './design.logic.js';
|
|
3
3
|
/** Figma's REST API host. The credential is sent to this host only — see {@link assertSafeFigmaUrl}. */
|
|
4
4
|
export declare const FIGMA_API_HOST = "api.figma.com";
|
|
5
|
+
/**
|
|
6
|
+
* The hosts Figma serves a RENDERED image from, as short-lived signed URLs the `/v1/images`
|
|
7
|
+
* endpoint hands back. Two of them because the vendor has moved between these buckets and both
|
|
8
|
+
* are still returned in the wild.
|
|
9
|
+
*
|
|
10
|
+
* Pinned to this fixed set for the same reason the API host is pinned: the URL comes back inside a
|
|
11
|
+
* response body, so following it unchecked would let a compromised or spoofed API response point
|
|
12
|
+
* the downloader at an internal address. Fail-CLOSED is the right trade here — a Figma that starts
|
|
13
|
+
* serving from a third bucket costs the deployment its renders, which the import states, where the
|
|
14
|
+
* alternative costs it an SSRF. The download itself carries NO credential (the URL is already
|
|
15
|
+
* signed), so a host outside the set leaks nothing even before the guard refuses it.
|
|
16
|
+
*/
|
|
17
|
+
export declare const FIGMA_RENDER_HOSTS: readonly ['s3-alpha-sig.figma.com', 'figma-alpha-api.s3.us-west-2.amazonaws.com'];
|
|
5
18
|
/**
|
|
6
19
|
* Figma's `authorization_code` endpoints.
|
|
7
20
|
*
|
|
@@ -151,6 +164,16 @@ export interface FigmaStyleMap {
|
|
|
151
164
|
export declare const MAX_TREE_DEPTH = 6;
|
|
152
165
|
/** Top-level frames a whole-file import fetches as subtrees. */
|
|
153
166
|
export declare const MAX_FILE_FRAMES = 12;
|
|
167
|
+
/**
|
|
168
|
+
* Top-level frames a whole-file import RASTERISES, well below {@link MAX_FILE_FRAMES}.
|
|
169
|
+
*
|
|
170
|
+
* The two caps count the same frames and are deliberately different numbers, because they bound
|
|
171
|
+
* different budgets: a frame's text costs the ~256 KB context corpus a few KB, while its PNG costs
|
|
172
|
+
* the account's blob storage a megabyte or two and buys a reader nothing the next frame's picture
|
|
173
|
+
* does not. Six covers the screens a design-led task is actually about; the text still covers
|
|
174
|
+
* twelve, and the import says which frames it rendered.
|
|
175
|
+
*/
|
|
176
|
+
export declare const MAX_RENDERS = 6;
|
|
154
177
|
/** Figma's 0–1 colour channels → `#rrggbb`, with an alpha qualifier below full opacity. */
|
|
155
178
|
export declare function figmaColorHex(color: {
|
|
156
179
|
r?: number;
|
|
@@ -183,6 +206,25 @@ export declare function figmaBlocks(roots: FigmaNode[]): FigmaBlocksResult;
|
|
|
183
206
|
* returns these with no grandchildren), so the caller fetches their subtrees separately.
|
|
184
207
|
*/
|
|
185
208
|
export declare function figmaTopLevelFrames(document: FigmaNode | undefined): FigmaNode[];
|
|
209
|
+
/**
|
|
210
|
+
* The frames a render pass covers, capped at {@link MAX_RENDERS} in document order, with the
|
|
211
|
+
* frames the cap left out COUNTED rather than dropped.
|
|
212
|
+
*
|
|
213
|
+
* The count is what keeps a bounded pass from reading as a complete one: six pictures of a
|
|
214
|
+
* twenty-frame file and six pictures of a six-frame file are the same list, and only one of them
|
|
215
|
+
* means "this is the whole design".
|
|
216
|
+
*
|
|
217
|
+
* A `view` must identify ONE screen, because it is the key a captured screenshot pairs with, so
|
|
218
|
+
* two frames may never resolve to the same one. Two ways they otherwise would:
|
|
219
|
+
*
|
|
220
|
+
* - A frame with no name. It still renders (its picture is worth having) under its id, which is
|
|
221
|
+
* the only honest label left; `(unnamed)` would collide every nameless frame onto one view.
|
|
222
|
+
* - A name repeated across pages, which real files do constantly ("Header", "Empty state"). EVERY
|
|
223
|
+
* occurrence is then qualified by its id, including the first: letting the first keep the bare
|
|
224
|
+
* name would hand it to whichever frame the file happens to list first, so re-ordering a page
|
|
225
|
+
* would silently move a stored view from one screen to another.
|
|
226
|
+
*/
|
|
227
|
+
export declare function figmaRenderTargets(frames: readonly FigmaNode[]): DocumentRenderPlan;
|
|
186
228
|
/**
|
|
187
229
|
* How many importable frames each page contributes, in the same document order
|
|
188
230
|
* {@link figmaTopLevelFrames} flattens. The frame cap counts frames, so on its own it cannot
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figma.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/figma.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"figma.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/figma.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAA;AAS1B,wGAAwG;AACxG,eAAO,MAAM,cAAc,kBAAkB,CAAA;AAE7C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,YAC7B,wBAAwB,EACxB,4CAA4C,CACpC,CAAA;AAaV;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,uBAOzB,CAAA;AAED,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,EAAE,wBAoB9B,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEpD;AAID;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4B1D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAInF;AAiBD,8FAA8F;AAC9F,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAI7F;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAKtD;AAID,2FAA2F;AAC3F,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;CAClE;AAED,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,uFAAuF;AACvF,MAAM,WAAW,wBAAwB;IACvC,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;CAC/D;AAED,0FAA0F;AAC1F,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mBAAmB,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAChE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;IACtB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;IACpB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;IACtB,KAAK,CAAC,EAAE,cAAc,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IAC3C,mBAAmB,CAAC,EAAE,wBAAwB,CAAA;CAC/C;AAED,iFAAiF;AACjF,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;CAC3F;AAED,2FAA2F;AAC3F,MAAM,WAAW,oBAAoB;IACnC,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;CAClE;AAED,iFAAiF;AACjF,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;CACtF;AASD;;;;GAIG;AACH,eAAO,MAAM,cAAc,IAAI,CAAA;AAQ/B,gEAAgE;AAChE,eAAO,MAAM,eAAe,KAAK,CAAA;AACjC;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,IAAI,CAAA;AAqB5B,2FAA2F;AAC3F,wBAAgB,aAAa,CAC3B,KAAK,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EAC5E,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,GAAG,IAAI,CASf;AA4DD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,CAa3D;AAuHD,0EAA0E;AAC1E,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,qFAAqF;IACrF,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAwCjE;AA+CD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,EAAE,CAQhF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,GAAG,kBAAkB,CAwBnF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,GAAG,SAAS,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,CASpC;AAsFD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,EAAE,EAClB,UAAU,GAAE,iBAAsB,EAClC,aAAa,GAAE,oBAAyB,GACvC,eAAe,EAAE,CAMnB;AAID,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACvC;AAED,UAAU,uBAAuB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC7C;AAED,mEAAmE;AACnE,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAAC,CAAA;IACrD,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAAA;CAC1E;AAoBD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,SAAS,GAAG,IAAI,GAAG,WAAW,EAAE,CAsBtF;AAwCD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,GAAE,aAAkB,GAAG,WAAW,EAAE,CAI9F;AAED,wFAAwF;AACxF,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE5D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,MAAM,EAAE,oBAAoB,CAAA;IAC5B,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;CACpB,GAAG,iBAAiB,GAAG,SAAS,CAkBhC;AAID,MAAM,WAAW,iBAAiB;IAChC,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAA;IAClB,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAA;IAChB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+BAA+B;IAC/B,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,qEAAqE;IACrE,UAAU,EAAE,iBAAiB,CAAA;IAC7B,sEAAsE;IACtE,aAAa,CAAC,EAAE,oBAAoB,CAAA;IACpC,sEAAsE;IACtE,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,wEAAwE;IACxE,aAAa,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;IACzC,uEAAuE;IACvE,eAAe,CAAC,EAAE,oBAAoB,CAAA;IACtC,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,+EAA+E;AAC/E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,GAAG,aAAa,CAiD/E"}
|
|
@@ -7,6 +7,22 @@ import { assertHostPinned } from './http.js';
|
|
|
7
7
|
// The `fetch` itself (the `X-Figma-Token` REST client) lives in `FigmaProvider`.
|
|
8
8
|
/** Figma's REST API host. The credential is sent to this host only — see {@link assertSafeFigmaUrl}. */
|
|
9
9
|
export const FIGMA_API_HOST = 'api.figma.com';
|
|
10
|
+
/**
|
|
11
|
+
* The hosts Figma serves a RENDERED image from, as short-lived signed URLs the `/v1/images`
|
|
12
|
+
* endpoint hands back. Two of them because the vendor has moved between these buckets and both
|
|
13
|
+
* are still returned in the wild.
|
|
14
|
+
*
|
|
15
|
+
* Pinned to this fixed set for the same reason the API host is pinned: the URL comes back inside a
|
|
16
|
+
* response body, so following it unchecked would let a compromised or spoofed API response point
|
|
17
|
+
* the downloader at an internal address. Fail-CLOSED is the right trade here — a Figma that starts
|
|
18
|
+
* serving from a third bucket costs the deployment its renders, which the import states, where the
|
|
19
|
+
* alternative costs it an SSRF. The download itself carries NO credential (the URL is already
|
|
20
|
+
* signed), so a host outside the set leaks nothing even before the guard refuses it.
|
|
21
|
+
*/
|
|
22
|
+
export const FIGMA_RENDER_HOSTS = [
|
|
23
|
+
's3-alpha-sig.figma.com',
|
|
24
|
+
'figma-alpha-api.s3.us-west-2.amazonaws.com',
|
|
25
|
+
];
|
|
10
26
|
/**
|
|
11
27
|
* The scopes the OAuth consent screen asks for, and the reason each is on the list.
|
|
12
28
|
*
|
|
@@ -203,6 +219,16 @@ const MAX_FRAME_TEXT = 200;
|
|
|
203
219
|
const MAX_IMPORT_TEXT = 600;
|
|
204
220
|
/** Top-level frames a whole-file import fetches as subtrees. */
|
|
205
221
|
export const MAX_FILE_FRAMES = 12;
|
|
222
|
+
/**
|
|
223
|
+
* Top-level frames a whole-file import RASTERISES, well below {@link MAX_FILE_FRAMES}.
|
|
224
|
+
*
|
|
225
|
+
* The two caps count the same frames and are deliberately different numbers, because they bound
|
|
226
|
+
* different budgets: a frame's text costs the ~256 KB context corpus a few KB, while its PNG costs
|
|
227
|
+
* the account's blob storage a megabyte or two and buys a reader nothing the next frame's picture
|
|
228
|
+
* does not. Six covers the screens a design-led task is actually about; the text still covers
|
|
229
|
+
* twelve, and the import says which frames it rendered.
|
|
230
|
+
*/
|
|
231
|
+
export const MAX_RENDERS = 6;
|
|
206
232
|
/** Distinct variants listed on one component's note before the rest are summarised away. */
|
|
207
233
|
const MAX_VARIANTS_PER_COMPONENT = 6;
|
|
208
234
|
/** Components listed, ranked by how often the design instantiates them. */
|
|
@@ -479,6 +505,50 @@ export function figmaTopLevelFrames(document) {
|
|
|
479
505
|
}
|
|
480
506
|
return frames;
|
|
481
507
|
}
|
|
508
|
+
/**
|
|
509
|
+
* The frames a render pass covers, capped at {@link MAX_RENDERS} in document order, with the
|
|
510
|
+
* frames the cap left out COUNTED rather than dropped.
|
|
511
|
+
*
|
|
512
|
+
* The count is what keeps a bounded pass from reading as a complete one: six pictures of a
|
|
513
|
+
* twenty-frame file and six pictures of a six-frame file are the same list, and only one of them
|
|
514
|
+
* means "this is the whole design".
|
|
515
|
+
*
|
|
516
|
+
* A `view` must identify ONE screen, because it is the key a captured screenshot pairs with, so
|
|
517
|
+
* two frames may never resolve to the same one. Two ways they otherwise would:
|
|
518
|
+
*
|
|
519
|
+
* - A frame with no name. It still renders (its picture is worth having) under its id, which is
|
|
520
|
+
* the only honest label left; `(unnamed)` would collide every nameless frame onto one view.
|
|
521
|
+
* - A name repeated across pages, which real files do constantly ("Header", "Empty state"). EVERY
|
|
522
|
+
* occurrence is then qualified by its id, including the first: letting the first keep the bare
|
|
523
|
+
* name would hand it to whichever frame the file happens to list first, so re-ordering a page
|
|
524
|
+
* would silently move a stored view from one screen to another.
|
|
525
|
+
*/
|
|
526
|
+
export function figmaRenderTargets(frames) {
|
|
527
|
+
const selected = [];
|
|
528
|
+
let dropped = 0;
|
|
529
|
+
for (const frame of frames) {
|
|
530
|
+
if (!frame.id)
|
|
531
|
+
continue;
|
|
532
|
+
if (selected.length >= MAX_RENDERS) {
|
|
533
|
+
dropped += 1;
|
|
534
|
+
continue;
|
|
535
|
+
}
|
|
536
|
+
selected.push({ id: frame.id, name: frame.name?.trim() || frame.id });
|
|
537
|
+
}
|
|
538
|
+
// Counted over the SELECTED frames, not the whole file: a duplicate the cap already excluded
|
|
539
|
+
// would otherwise qualify a name that is unique among the frames actually rendered.
|
|
540
|
+
const occurrences = new Map();
|
|
541
|
+
for (const frame of selected) {
|
|
542
|
+
occurrences.set(frame.name, (occurrences.get(frame.name) ?? 0) + 1);
|
|
543
|
+
}
|
|
544
|
+
return {
|
|
545
|
+
targets: selected.map((frame) => ({
|
|
546
|
+
id: frame.id,
|
|
547
|
+
view: (occurrences.get(frame.name) ?? 0) > 1 ? `${frame.name} (${frame.id})` : frame.name,
|
|
548
|
+
})),
|
|
549
|
+
capped: dropped,
|
|
550
|
+
};
|
|
551
|
+
}
|
|
482
552
|
/**
|
|
483
553
|
* How many importable frames each page contributes, in the same document order
|
|
484
554
|
* {@link figmaTopLevelFrames} flattens. The frame cap counts frames, so on its own it cannot
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figma.logic.js","sourceRoot":"","sources":["../../../src/modules/documents/figma.logic.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"figma.logic.js","sourceRoot":"","sources":["../../../src/modules/documents/figma.logic.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,MAAM,EACN,aAAa,EACb,gBAAgB,GAMjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAE5C,mFAAmF;AACnF,sFAAsF;AACtF,mFAAmF;AACnF,sFAAsF;AACtF,iFAAiF;AAEjF,wGAAwG;AACxG,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAA;AAE7C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,wBAAwB;IACxB,4CAA4C;CACpC,CAAA;AAEV;;;;;;;;GAQG;AACH,MAAM,kBAAkB,GAAG,CAAC,mBAAmB,EAAE,qBAAqB,CAAU,CAAA;AAEhF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAA4B;IAClD,YAAY,EAAE,6BAA6B;IAC3C,QAAQ,EAAE,WAAW,cAAc,iBAAiB;IACpD,UAAU,EAAE,WAAW,cAAc,mBAAmB;IACxD,MAAM,EAAE,kBAAkB;IAC1B,uDAAuD;IACvD,cAAc,EAAE,GAAG;CACpB,CAAA;AAED,6EAA6E;AAC7E,MAAM,CAAC,MAAM,gBAAgB,GAA6B;IACxD,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,gBAAgB;IACtB,gBAAgB,EAAE;QAChB;YACE,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,uBAAuB;YAC9B,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,QAAQ;YACrB,IAAI,EAAE,oOAAoO;SAC3O;KACF;IACD,QAAQ,EAAE,yBAAyB;IACnC,cAAc,EAAE,sDAAsD;IACtE,uFAAuF;IACvF,UAAU,EAAE,KAAK;IACjB,8FAA8F;IAC9F,8FAA8F;IAC9F,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,kBAAkB,CAAC,EAAE;CAC3C,CAAA;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,gBAAgB,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,CAAC,CAAA;AAChD,CAAC;AAED,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IACxB,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACpE,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAChE,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IAEzB,gFAAgF;IAChF,iEAAiE;IACjE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACzC,IAAI,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAA;QACpD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,CAAA;QACjC,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QACjD,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;IACtC,CAAC;IAED,IAAI,GAAQ,CAAA;IACZ,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAA;IACzD,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAA;IACjF,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,OAAO,CAAA;IAC5B,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAA;IAC1C,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;AAC9C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa,EAAE,UAAkB;IAClE,IAAI,oBAAoB,CAAC,UAAU,CAAC,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACxD,MAAM,GAAG,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAA;IACxC,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AACvD,CAAC;AAED,kGAAkG;AAClG,SAAS,qBAAqB,CAAC,KAAa;IAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC5C,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACnC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;IAC9C,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAA;AACjF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,UAAkB;IAC5C,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAA;IAC5D,MAAM,IAAI,GAAG,gCAAgC,OAAO,EAAE,CAAA;IACtD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACxB,OAAO,GAAG,IAAI,YAAY,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAA;AACvD,CAAC;AAiED,4EAA4E;AAC5E,6FAA6F;AAC7F,0FAA0F;AAC1F,2FAA2F;AAC3F,sFAAsF;AACtF,6DAA6D;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAA;AAC/B,oCAAoC;AACpC,MAAM,eAAe,GAAG,GAAG,CAAA;AAC3B,6FAA6F;AAC7F,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAC7B,uEAAuE;AACvE,MAAM,cAAc,GAAG,GAAG,CAAA;AAC1B,MAAM,eAAe,GAAG,GAAG,CAAA;AAC3B,gEAAgE;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAA;AACjC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAA;AAC5B,4FAA4F;AAC5F,MAAM,0BAA0B,GAAG,CAAC,CAAA;AACpC,2EAA2E;AAC3E,MAAM,cAAc,GAAG,GAAG,CAAA;AAC1B,0DAA0D;AAC1D,MAAM,UAAU,GAAG,GAAG,CAAA;AAEtB,4FAA4F;AAC5F,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;AAExF,SAAS,cAAc,CAAC,IAAe;IACrC,OAAO,aAAa,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;AAC/F,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAA;AACtC,CAAC;AAED,+EAA+E;AAE/E,2FAA2F;AAC3F,MAAM,UAAU,aAAa,CAC3B,KAA4E,EAC5E,YAAqB;IAErB,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,MAAM,GAAG,GAAG,CAAC,CAAqB,EAAE,EAAE,CACpC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SACnD,QAAQ,CAAC,EAAE,CAAC;SACZ,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACrB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5D,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC,CAAA;IAClD,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;AAC3D,CAAC;AAED,uFAAuF;AACvF,SAAS,aAAa,CAAC,MAAgC;IACrD,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,SAAQ;QAC/D,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;QACrD,IAAI,GAAG;YAAE,OAAO,GAAG,CAAA;IACrB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,yFAAyF;AACzF,SAAS,eAAe,CAAC,KAAiC;IACxD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA;IACjE,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,UAAU,IAAI,IAAI;YACtB,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE;YAChD,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CACjC,CAAA;IACH,CAAC;SAAM,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC,CAAA;IACpC,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;IAC7E,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AAC9C,CAAC;AAED,qGAAqG;AACrG,SAAS,YAAY,CAAC,IAAe;IACnC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACxF,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC9C,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;IACxD,CAAC;IACD,OAAO,WAAW,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;AACtC,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAe;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAA;IACzC,IAAI,OAAO,EAAE,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,UAAU,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IAC3D,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IAChD,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAClD,CAAC;AAED,SAAS,eAAe,CAAC,IAAe;IACtC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAA;IAC5B,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,CAAA;IACzC,MAAM,KAAK,GAAG,CAAC,eAAe,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;IACnD,IAAI,IAAI,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IAClE,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IAClC,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAe;IAC/C,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtC,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IACpC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC1C,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,EAAE,CAAC,CAAA;IAC1C,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9C,IAAI,UAAU;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9B,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACpC,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9B,OAAO,KAAK,CAAA;AACd,CAAC;AAsCD;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,IAAe,EAAE,KAAa,EAAE,IAAgB,EAAE,KAAe;IACrF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACjC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAC7B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,iBAAiB,CAAC,CAAA;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,iBAAiB,CAAC,CAAA;QACtC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAA;IACjB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;IACnB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,WAAW,CAAA;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/C,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5D,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,KAAK,IAAI,GAAG,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,CAAA;IAExE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;IACpC,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACjC,IAAI,KAAK,IAAI,cAAc,EAAE,CAAC;QAC5B,yFAAyF;QACzF,uFAAuF;QACvF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;QACtD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,UAAU,QAAQ,CAAC,MAAM,WAAW,KAAK,aAAa,CAAC,CAAA;QAC3E,OAAO,IAAI,CAAA;IACb,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;IAChE,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAYD;;;;;GAKG;AACH,SAAS,WAAW,CAAC,IAAe,EAAE,IAAc,EAAE,GAAa;IACjE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,aAAa,CAAA;QACxB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,YAAY,CAAA;QACvB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA;QAChC,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IACpB,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,KAAK,CAAA;IAClD,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AASD;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAkB;IAC5C,iFAAiF;IACjF,qFAAqF;IACrF,MAAM,MAAM,GAAiB,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe,EAAE,CAAA;IAC/E,0FAA0F;IAC1F,mDAAmD;IACnD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAA;IAC7C,MAAM,KAAK,GAAG,CAAC,GAAa,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAElF,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAChC,yFAAyF;QACzF,yFAAyF;QACzF,MAAM,IAAI,GAAe,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,CAAA;QACjF,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC;gBAAE,MAAK;QAClD,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,CAAA;QAEvC,MAAM,QAAQ,GAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,CAAA;QACjE,MAAM,IAAI,GAAa,EAAE,CAAA;QACzB,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QAC5D,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YACjB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YACnB,uFAAuF;YACvF,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QACpC,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,iBAAiB;YAC7C,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;YAC1B,QAAQ,EAAE;gBACR,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;gBACpC,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE;aACnC;SACF,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAA;AAC7D,CAAC;AAED,gGAAgG;AAChG,SAAS,QAAQ,CAAC,SAAgC,EAAE,KAAa;IAC/D,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAA;IACnD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACpC,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,IAAI,CACR,sBAAsB,cAAc,mDAAmD;YACrF,GAAG,EAAE,CAAC,KAAK,CAAC,2EAA2E;YACvF,mEAAmE,CACtE,CAAA;IACH,CAAC;IACD,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAC/C,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CACR,uBAAuB,eAAe,qBAAqB,EAAE,CAAC,UAAU,CAAC,gBAAgB;YACvF,kFAAkF,CACrF,CAAA;IACH,CAAC;IACD,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IACjD,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CACR,6BAA6B,gBAAgB,4BAA4B,EAAE,CAAC,WAAW,CAAC,GAAG;YACzF,sFAAsF;YACtF,0BAA0B,CAC7B,CAAA;IACH,CAAC;IACD,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;IAC7C,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CACR,6BAA6B,cAAc,qBAAqB,EAAE,CAAC,SAAS,CAAC,aAAa;YACxF,4BAA4B,CAC/B,CAAA;IACH,CAAC;IACD,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAC/C,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CACR,6BAA6B,eAAe,0BAA0B,EAAE,CAAC,UAAU,CAAC,OAAO;YACzF,uFAAuF;YACvF,mBAAmB,CACtB,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAA+B;IACjE,MAAM,MAAM,GAAgB,EAAE,CAAA;IAC9B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,QAAQ,IAAI,EAAE,EAAE,CAAC;QAC5C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClF,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA4B;IAC7D,MAAM,QAAQ,GAAmC,EAAE,CAAA;IACnD,IAAI,OAAO,GAAG,CAAC,CAAA;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,EAAE;YAAE,SAAQ;QACvB,IAAI,QAAQ,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,CAAA;YACZ,SAAQ;QACV,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;IACvE,CAAC;IACD,6FAA6F;IAC7F,oFAAoF;IACpF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC7C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACrE,CAAC;IACD,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChC,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;SAC1F,CAAC,CAAC;QACH,MAAM,EAAE,OAAO;KAChB,CAAA;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAA+B;IAE/B,MAAM,KAAK,GAAuC,EAAE,CAAA;IACpD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,MAAM,CACzC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CACpE,CAAC,MAAM,CAAA;QACR,IAAI,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,QAAQ,KAAK,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IACpF,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,+EAA+E;AAE/E,gFAAgF;AAChF,SAAS,iBAAiB,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAA;AAClC,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,CAAA;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACjF,OAAO,IAAI,CAAA;AACb,CAAC;AAeD,SAAS,sBAAsB,CAC7B,KAA2C,EAC3C,KAAqB;IAErB,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACvC,IAAI,CAAC,IAAI;YAAE,SAAQ;QACnB,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC/C,IAAI,KAAK,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,KAAK;gBAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAA;QACnD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACzF,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAe,EACf,UAA6B,EAC7B,IAA0B,EAC1B,GAAgC;IAEhC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC9E,MAAM,GAAG,GAAG,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACpF,0FAA0F;QAC1F,yFAAyF;QACzF,qDAAqD;QACrD,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,UAAU,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAA;QACjE,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI;gBAC7B,QAAQ,EAAE,IAAI,GAAG,EAAU;gBAC3B,KAAK,EAAE,IAAI,GAAG,EAAU;gBACxB,SAAS,EAAE,CAAC;aACb,CAAA;YACD,KAAK,CAAC,SAAS,EAAE,CAAA;YACjB,IAAI,GAAG,EAAE,IAAI,IAAI,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC;gBAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YAC5F,sBAAsB,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;YACvD,KAAK,CAAC,WAAW,KAAK,CAAC,UAAU,EAAE,WAAW,IAAI,GAAG,EAAE,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1F,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QACtB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;QAAE,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;AAC1F,CAAC;AAED,SAAS,SAAS,CAAC,KAAqB;IACtC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,0BAA0B,CAAC,CAAA;IAC/E,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxC,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3F,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;IACrC,IAAI,KAAK,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1D,IAAI,KAAK,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACpD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AACpD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAkB,EAClB,UAAU,GAAsB,EAAE,EAClC,aAAa,GAAyB,EAAE;IAExC,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAA;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;IACpF,OAAO,CAAC,GAAG,MAAM,CAAC;SACf,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACzF,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;AAC/D,CAAC;AAsBD,oFAAoF;AACpF,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,GAAG,IAAK,KAAiC,EAAE,CAAC;QACpF,MAAM,CAAC,GAAG,KAAwD,CAAA;QAClE,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;QACvD,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACvF,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAA;IAC7E,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAK,KAAiC,EAAE,CAAC;QACvF,wDAAwD;QACxD,MAAM,KAAK,GAAG,KAAuC,CAAA;QACrD,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,EAAE;YAAE,OAAO,KAAK,KAAK,CAAC,EAAE,EAAE,CAAA;IACzE,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAChG,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACjF,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAA2C;IACrE,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,EAAE,CAAA;IACvC,MAAM,WAAW,GAAG,IAAI,EAAE,mBAAmB,IAAI,EAAE,CAAA;IACnD,MAAM,MAAM,GAAkB,EAAE,CAAA;IAChC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,QAAQ,EAAE,IAAI;YAAE,SAAQ;QAC7B,MAAM,UAAU,GAAG,QAAQ,CAAC,oBAAoB;YAC9C,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC5C,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,cAAc,GAAG,UAAU,EAAE,IAAI,IAAI,QAAQ,CAAA;QACnD,MAAM,KAAK,GAAG,UAAU,EAAE,KAAK,IAAI,EAAE,CAAA;QACrC,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;YAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,IAAI,IAAI,SAAS,CAAA;YAC1E,MAAM,CAAC,IAAI,CAAC;gBACV,UAAU,EAAE,cAAc;gBAC1B,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC;aAClC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,+EAA+E;AAE/E,+EAA+E;AAC/E,MAAM,iBAAiB,GAA2B;IAChD,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,YAAY;CACnB,CAAA;AAED,0FAA0F;AAC1F,SAAS,WAAW,CAAC,IAAe,EAAE,IAAY;IAChD,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACzE,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/E,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACvD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAe,EACf,MAAqB,EACrB,GAA6B;IAE7B,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAChE,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAChE,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI;YAAE,SAAQ;QAClC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACrC,gFAAgF;QAChF,2EAA2E;QAC3E,IAAI,CAAC,KAAK;YAAE,SAAQ;QACpB,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,IAAI,EAAE,CAAA;QACnC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC9D,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;QAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;AACjF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAkB,EAAE,MAAM,GAAkB,EAAE;IAC7E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAA;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAClE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;AAC7B,CAAC;AAKD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAIhC;IACC,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;IACjE,MAAM,OAAO,GACX,KAAK,CAAC,MAAM,KAAK,OAAO;QACtB,CAAC,CAAC,uDAAuD;QACzD,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ;YACzB,CAAC,CAAC,iCAAiC;YACnC,CAAC,CAAC,IAAI,CAAA;IACZ,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,uCAAuC,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS;SAC9E,CAAA;IACH,CAAC;IACD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAA;IAC9B,OAAO;QACL,IAAI,EAAE,qBAAqB,OAAO,4DAA4D;KAC/F,CAAA;AACH,CAAC;AA6BD,+EAA+E;AAC/E,MAAM,UAAU,uBAAuB,CAAC,KAAwB;IAC9D,MAAM,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM;QACxB,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,OAAO,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE;QAClF,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAA;IAC7B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClD,MAAM,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IACvD,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAE/D,2FAA2F;IAC3F,sFAAsF;IACtF,uDAAuD;IACvD,MAAM,UAAU,GAAG,MAAM,CACvB,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,EACnE,cAAc,CACf,CAAA;IACD,MAAM,MAAM,GAAG,MAAM,CACnB,gBAAgB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,EACtE,UAAU,CACX,CAAA;IACD,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CACX,GAAG,UAAU,CAAC,OAAO,OAAO,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,kBAAkB;YACxF,mBAAmB,cAAc,yDAAyD;YAC1F,gBAAgB,CACnB,CAAA;IACH,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,QAAQ,CAAC,IAAI,CACX,GAAG,MAAM,CAAC,OAAO,OAAO,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,yBAAyB;YACnF,iCAAiC,UAAU,4BAA4B,CAC1E,CAAA;IACH,CAAC;IAED,OAAO;QACL,KAAK;QACL,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC;QAClC,MAAM;QACN,UAAU,EAAE,UAAU,CAAC,KAAK;QAC5B,MAAM,EAAE,MAAM,CAAC,KAAK;QACpB,WAAW,EAAE,gBAAgB,CAAC;YAC5B,MAAM,EAAE,KAAK,CAAC,eAAe,IAAI,IAAI;YACrC,cAAc,EAAE,cAAc,CAAC,MAAM;YACrC,WAAW,EAAE,WAAW,CAAC,MAAM;SAChC,CAAC;QACF,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;QAC1F,KAAK,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC;KAC5D,CAAA;AACH,CAAC"}
|
|
@@ -10,10 +10,13 @@ export declare class DocumentHttpError extends Error {
|
|
|
10
10
|
* unit-testable without a network; the caller maps it to a {@link DocumentHttpError}.
|
|
11
11
|
* `label` names the provider in the message (e.g. `Figma`, `Claude Design`).
|
|
12
12
|
*/
|
|
13
|
-
export declare function assertHostPinned(url: string, host: string, label: string): void;
|
|
13
|
+
export declare function assertHostPinned(url: string, host: string | readonly string[], label: string): void;
|
|
14
14
|
export interface HostPinnedFetchOptions {
|
|
15
|
-
/**
|
|
16
|
-
|
|
15
|
+
/**
|
|
16
|
+
* The host this provider's API lives on (e.g. `api.figma.com`), or the fixed SET of hosts when
|
|
17
|
+
* the vendor serves assets from a second constant host. Never a per-connection value.
|
|
18
|
+
*/
|
|
19
|
+
host: string | readonly string[];
|
|
17
20
|
/** Provider name used in error messages. */
|
|
18
21
|
label: string;
|
|
19
22
|
/** Max redirect hops before giving up (default 5). */
|
|
@@ -32,4 +35,10 @@ export declare function createHostPinnedFetch(opts: HostPinnedFetchOptions): (ur
|
|
|
32
35
|
* streaming. `label` names the provider in the error message.
|
|
33
36
|
*/
|
|
34
37
|
export declare function readCappedText(res: Response, maxBytes: number, label?: string): Promise<string>;
|
|
38
|
+
/**
|
|
39
|
+
* The binary half of {@link readCappedText}: the same running byte cap, without the UTF-8 decode.
|
|
40
|
+
* A rendered design image is the one response a provider reads that is NOT text, and decoding it
|
|
41
|
+
* would both corrupt the bytes and double the memory the cap exists to bound.
|
|
42
|
+
*/
|
|
43
|
+
export declare function readCappedBytes(res: Response, maxBytes: number, label?: string): Promise<Uint8Array>;
|
|
35
44
|
//# sourceMappingURL=http.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/http.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/http.ts"],"names":[],"mappings":"AAgBA,0FAA0F;AAC1F,qBAAa,iBAAkB,SAAQ,KAAK;IAExC,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIhB;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EAChC,KAAK,EAAE,MAAM,GACZ,IAAI,CAeN;AAKD,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;IAChC,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,sBAAsB,GAC3B,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CA0BvD;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAa,GACjB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAa,GACjB,OAAO,CAAC,UAAU,CAAC,CAgCrB"}
|
|
@@ -9,7 +9,10 @@
|
|
|
9
9
|
//
|
|
10
10
|
// The helper is host-*pinned*, not host-*allow-listed*: it serves providers whose API
|
|
11
11
|
// lives at a single known host. A site-configurable provider (Confluence) keeps its own
|
|
12
|
-
// guard because its allowed host is per-connection, not a constant.
|
|
12
|
+
// guard because its allowed host is per-connection, not a constant. `host` accepts a small
|
|
13
|
+
// FIXED SET for the one case where a vendor's API and its asset CDN are different constants
|
|
14
|
+
// (Figma serves rendered PNGs from signed S3 URLs), which is still a constant and still not a
|
|
15
|
+
// per-connection value: a hop to anything outside the set is refused exactly as before.
|
|
13
16
|
/** Carries the HTTP status so a provider can surface a meaningful error to the caller. */
|
|
14
17
|
export class DocumentHttpError extends Error {
|
|
15
18
|
status;
|
|
@@ -37,7 +40,9 @@ export function assertHostPinned(url, host, label) {
|
|
|
37
40
|
if (parsed.protocol !== 'https:') {
|
|
38
41
|
throw new Error(`${label} request must use https`);
|
|
39
42
|
}
|
|
40
|
-
|
|
43
|
+
const allowed = typeof host === 'string' ? [host] : host;
|
|
44
|
+
const hostname = parsed.hostname.toLowerCase();
|
|
45
|
+
if (!allowed.some((h) => h.toLowerCase() === hostname)) {
|
|
41
46
|
throw new Error(`${label} redirect to a disallowed host: ${parsed.hostname}`);
|
|
42
47
|
}
|
|
43
48
|
}
|
|
@@ -81,13 +86,21 @@ export function createHostPinnedFetch(opts) {
|
|
|
81
86
|
* streaming. `label` names the provider in the error message.
|
|
82
87
|
*/
|
|
83
88
|
export async function readCappedText(res, maxBytes, label = 'Response') {
|
|
89
|
+
return new TextDecoder().decode(await readCappedBytes(res, maxBytes, label));
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* The binary half of {@link readCappedText}: the same running byte cap, without the UTF-8 decode.
|
|
93
|
+
* A rendered design image is the one response a provider reads that is NOT text, and decoding it
|
|
94
|
+
* would both corrupt the bytes and double the memory the cap exists to bound.
|
|
95
|
+
*/
|
|
96
|
+
export async function readCappedBytes(res, maxBytes, label = 'Response') {
|
|
84
97
|
const declared = res.headers.get('content-length');
|
|
85
98
|
if (declared && Number(declared) > maxBytes) {
|
|
86
99
|
throw new DocumentHttpError(502, `${label} response too large`);
|
|
87
100
|
}
|
|
88
101
|
const body = res.body;
|
|
89
102
|
if (!body)
|
|
90
|
-
return
|
|
103
|
+
return new Uint8Array(0);
|
|
91
104
|
const reader = body.getReader();
|
|
92
105
|
const chunks = [];
|
|
93
106
|
let total = 0;
|
|
@@ -115,6 +128,6 @@ export async function readCappedText(res, maxBytes, label = 'Response') {
|
|
|
115
128
|
merged.set(c, offset);
|
|
116
129
|
offset += c.byteLength;
|
|
117
130
|
}
|
|
118
|
-
return
|
|
131
|
+
return merged;
|
|
119
132
|
}
|
|
120
133
|
//# sourceMappingURL=http.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/modules/documents/http.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,qFAAqF;AACrF,qFAAqF;AACrF,kFAAkF;AAClF,uFAAuF;AACvF,wFAAwF;AACxF,gFAAgF;AAChF,uEAAuE;AACvE,EAAE;AACF,sFAAsF;AACtF,wFAAwF;AACxF,
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/modules/documents/http.ts"],"names":[],"mappings":"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"}
|