@cat-factory/integrations 0.148.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.
@@ -1,7 +1,8 @@
1
- import type { Clock, IdGenerator } from '@cat-factory/kernel';
1
+ import type { Clock, IdGenerator, Logger } from '@cat-factory/kernel';
2
2
  import type { DocumentSourceRegistry } from '@cat-factory/kernel';
3
3
  import type { DocumentRecord, DocumentRepository } from '@cat-factory/kernel';
4
4
  import type { GroupCacheHandle, LinkedDocumentRefreshOutcome } from '@cat-factory/kernel';
5
+ import type { ResolveBinaryArtifactStore } from '@cat-factory/kernel';
5
6
  import type { SourceDocument, DocumentSearchResult, DocumentSourceKind } from '@cat-factory/kernel';
6
7
  import { type ResolvedDocumentRef } from '@cat-factory/contracts';
7
8
  import type { WorkspaceRepository } from '@cat-factory/kernel';
@@ -21,6 +22,17 @@ export interface DocumentImportServiceDependencies {
21
22
  * is the fresh one and an invalidation would race the store it precedes.
22
23
  */
23
24
  versionCache?: GroupCacheHandle<LinkedDocumentRefreshOutcome>;
25
+ /**
26
+ * Where a design source's rendered frames are retained, resolved per workspace because the blob
27
+ * backend is an ACCOUNT choice rather than a boot-time one.
28
+ *
29
+ * Optional, and its absence is a first-class answer rather than a missing wire: a deployment that
30
+ * has configured no image storage imports the design textually and the row says
31
+ * `storage_unavailable`, which is a different fact from a source that offered no image.
32
+ */
33
+ resolveBinaryArtifactStore?: ResolveBinaryArtifactStore;
34
+ /** Where the best-effort render pass reports what it could not retain. */
35
+ logger?: Logger;
24
36
  }
25
37
  /** A document body supplied directly by a caller rather than fetched from a connected source. */
26
38
  export interface UploadedDocument {
@@ -47,6 +59,7 @@ export declare function assertUploadReadable(input: UploadedDocument): string;
47
59
  export declare function toSourceDocument(record: DocumentRecord): SourceDocument;
48
60
  export declare class DocumentImportService {
49
61
  private readonly deps;
62
+ private readonly log;
50
63
  constructor(deps: DocumentImportServiceDependencies);
51
64
  private requireProvider;
52
65
  /**
@@ -113,6 +126,40 @@ export declare class DocumentImportService {
113
126
  reimport(workspaceId: string, source: DocumentSourceKind, externalId: string, opts?: {
114
127
  fallbackVersion?: string;
115
128
  }): Promise<DocumentRecord>;
129
+ /**
130
+ * Re-retain the document's rendered images, returning what became of them.
131
+ *
132
+ * The order is prune-then-fetch, deliberately: a document's pictures are never a mix of two
133
+ * revisions, and the cost is a window where a failed download leaves it with none, which the
134
+ * returned status states. The reverse ordering is the trap, because it fails INVISIBLY — the
135
+ * body of the new revision lands beside last month's frames, and a row saying `failed` beside a
136
+ * full set of pictures reads to everyone as a transient blip rather than as a document
137
+ * illustrating something that no longer exists.
138
+ *
139
+ * Everything here is BEST-EFFORT — an image is an enrichment, and an import that already holds
140
+ * the body must not fail because a CDN did.
141
+ *
142
+ * The status is derived from what was RETAINED rather than from what was downloaded, so a store
143
+ * that rejects half the bytes reads as `partial` exactly like a source that rendered half the
144
+ * frames. What a caller does about either is the same, and claiming `stored` over an artifact
145
+ * that never landed is the one answer that would send them looking in the wrong place.
146
+ */
147
+ private refreshRenders;
148
+ /**
149
+ * The workspace's artifact store, or WHY there isn't one.
150
+ *
151
+ * Three outcomes rather than a nullable store, because the two empty ones are opposite facts
152
+ * that the same `null` would have stated identically. `none` is a settled deployment answer
153
+ * ("this account retains no images"), which the row records as `storage_unavailable` and a
154
+ * person fixes by configuring storage. `unreadable` is an OUTAGE in the account-settings read,
155
+ * and telling an operator their storage is unconfigured when it is configured sends them to
156
+ * change a setting that is already right; worse, the status is then carried forward untouched
157
+ * by every token-only re-import, so the misattribution outlives the outage that caused it.
158
+ *
159
+ * The failure is still swallowed rather than propagated: the caller is a best-effort enrichment
160
+ * on a path that already holds the document body.
161
+ */
162
+ private resolveArtifactStore;
116
163
  /**
117
164
  * Persist a document body the caller supplied directly, as an `upload`-origin projection.
118
165
  *
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentImportService.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/DocumentImportService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DocumentImportService.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/DocumentImportService.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { contentHash, redactSecrets, ValidationError } from '@cat-factory/kernel';
1
+ import { contentHash, describeError, noopLogger, redactSecrets, ValidationError, } from '@cat-factory/kernel';
2
2
  import { orderSourcesByClaimConfidence, } from '@cat-factory/contracts';
3
3
  import { requireWorkspace } from '@cat-factory/kernel';
4
4
  import { buildExcerpt, probeCacheKey, sameAgentVisibleProjection } from './documents.logic.js';
@@ -36,12 +36,15 @@ export function toSourceDocument(record) {
36
36
  role: record.role,
37
37
  docKind: record.docKind,
38
38
  syncedAt: record.syncedAt,
39
+ renderStatus: record.renderStatus,
39
40
  };
40
41
  }
41
42
  export class DocumentImportService {
42
43
  deps;
44
+ log;
43
45
  constructor(deps) {
44
46
  this.deps = deps;
47
+ this.log = deps.logger ?? noopLogger;
45
48
  }
46
49
  requireProvider(source) {
47
50
  const provider = this.deps.registry.get(source);
@@ -166,6 +169,17 @@ export class DocumentImportService {
166
169
  sameAgentVisibleProjection(existing, { ...content, contentHash: hash });
167
170
  if (existing && unchangedForReaders && existing.sourceVersion === version)
168
171
  return existing;
172
+ // Renders belong to the BODY, so they are refreshed on exactly the writes that change one. A
173
+ // token-only write (below) carries the previous status forward untouched: a design file's
174
+ // version moves on any edit anywhere in it, and re-rasterising six frames because someone
175
+ // renamed a layer on another page is the cost this branch exists to avoid.
176
+ const renderStatus = unchangedForReaders
177
+ ? (existing?.renderStatus ?? null)
178
+ : // The credentials this import already opened, rather than a second `requireConnection`:
179
+ // the render pass runs against the very revision `fetchDocument` just read, so re-opening
180
+ // the sealed bag buys nothing and adds a decrypt plus a window in which the connection can
181
+ // vanish between the two reads.
182
+ await this.refreshRenders(workspaceId, provider, source, connection.credentials, content);
169
183
  // The write that remains, when `unchangedForReaders` still holds, exists ONLY to record the
170
184
  // moved token: a page whose version bumped without changing a byte (a Figma file version moves
171
185
  // on any edit in the file, including frames this document does not cover) would otherwise keep
@@ -188,6 +202,7 @@ export class DocumentImportService {
188
202
  // any existing tag across a re-import (the repo's upsert also leaves these columns alone).
189
203
  role: existing?.role ?? null,
190
204
  docKind: existing?.docKind ?? null,
205
+ renderStatus,
191
206
  // `syncedAt` is "when the body was last written", which is what every reader renders it as,
192
207
  // so a token-only write must NOT move it. Moving it would put a fresh timestamp on bytes
193
208
  // nobody changed, and the person reading it would conclude their edit had landed.
@@ -197,6 +212,141 @@ export class DocumentImportService {
197
212
  await this.deps.documentRepository.upsert(record);
198
213
  return record;
199
214
  }
215
+ /**
216
+ * Re-retain the document's rendered images, returning what became of them.
217
+ *
218
+ * The order is prune-then-fetch, deliberately: a document's pictures are never a mix of two
219
+ * revisions, and the cost is a window where a failed download leaves it with none, which the
220
+ * returned status states. The reverse ordering is the trap, because it fails INVISIBLY — the
221
+ * body of the new revision lands beside last month's frames, and a row saying `failed` beside a
222
+ * full set of pictures reads to everyone as a transient blip rather than as a document
223
+ * illustrating something that no longer exists.
224
+ *
225
+ * Everything here is BEST-EFFORT — an image is an enrichment, and an import that already holds
226
+ * the body must not fail because a CDN did.
227
+ *
228
+ * The status is derived from what was RETAINED rather than from what was downloaded, so a store
229
+ * that rejects half the bytes reads as `partial` exactly like a source that rendered half the
230
+ * frames. What a caller does about either is the same, and claiming `stored` over an artifact
231
+ * that never landed is the one answer that would send them looking in the wrong place.
232
+ */
233
+ async refreshRenders(workspaceId, provider, source, credentials, content) {
234
+ // A source with nothing to rasterise: not a failure and not an empty set, but a question that
235
+ // does not apply. NULL is the only value that says so.
236
+ if (!provider.fetchRenders)
237
+ return null;
238
+ const externalId = content.externalId;
239
+ const storage = await this.resolveArtifactStore(workspaceId);
240
+ // Asked BEFORE the download, so an unconfigured deployment spends no bandwidth on bytes it
241
+ // could not keep. An account that retains no images and a settings read that FAILED are
242
+ // deliberately different answers: the first is a deployment fact a person fixes by configuring
243
+ // storage, the second is an outage this import should be retried past.
244
+ if (storage.kind === 'unreadable')
245
+ return 'failed';
246
+ if (storage.kind === 'none')
247
+ return 'storage_unavailable';
248
+ const store = storage.store;
249
+ const document = { source, externalId };
250
+ try {
251
+ // The FIRST thing this does, so every later failure — a rate-limited source, a CDN outage,
252
+ // a store that will not take the bytes — can only ever leave the document with no pictures,
253
+ // never with the previous revision's beside the new body. A prune that itself throws lands
254
+ // in the same `catch` and records `failed`, which is honest for the one case where the old
255
+ // set may genuinely survive: nobody can then claim the set is current.
256
+ await store.pruneByDocument(workspaceId, document);
257
+ const result = await provider.fetchRenders(credentials, externalId, workspaceId, content.renderPlan);
258
+ let stored = 0;
259
+ // Frames the provider's own cap excluded were never going to be retained, so they count
260
+ // against completeness exactly like a failed download: six pictures of a twenty-frame design
261
+ // is a partly illustrated document, not a fully illustrated six-frame one.
262
+ let dropped = result.failed + result.capped;
263
+ for (const render of result.renders) {
264
+ try {
265
+ await store.store({
266
+ meta: {
267
+ workspaceId,
268
+ // No run and no block: an import happens before either exists, and the document's
269
+ // own identity is what a later reader joins on.
270
+ executionId: null,
271
+ blockId: null,
272
+ kind: 'reference',
273
+ view: render.view,
274
+ contentType: render.contentType,
275
+ document,
276
+ },
277
+ blob: render.bytes,
278
+ });
279
+ stored += 1;
280
+ }
281
+ catch (error) {
282
+ // A bespoke catch rather than `runBestEffort`: the failure is a VALUE here (it decides
283
+ // between `stored` and `partial`), and the loop must go on to the next frame.
284
+ dropped += 1;
285
+ this.log.warn('document render could not be retained', {
286
+ workspaceId,
287
+ source,
288
+ externalId,
289
+ view: render.view,
290
+ ...describeError(error),
291
+ });
292
+ }
293
+ }
294
+ if (result.causes.length || result.capped > 0) {
295
+ this.log.warn('document renders were not fully retrieved', {
296
+ workspaceId,
297
+ source,
298
+ externalId,
299
+ retrieved: result.renders.length,
300
+ failed: result.failed,
301
+ // Named apart from `failed` on the line too: a retry fixes one and never the other.
302
+ capped: result.capped,
303
+ causes: result.causes.join(', '),
304
+ });
305
+ }
306
+ if (stored > 0)
307
+ return dropped > 0 ? 'partial' : 'stored';
308
+ return dropped > 0 ? 'failed' : 'none';
309
+ }
310
+ catch (error) {
311
+ this.log.warn('document render pass failed', {
312
+ workspaceId,
313
+ source,
314
+ externalId,
315
+ ...describeError(error),
316
+ });
317
+ return 'failed';
318
+ }
319
+ }
320
+ /**
321
+ * The workspace's artifact store, or WHY there isn't one.
322
+ *
323
+ * Three outcomes rather than a nullable store, because the two empty ones are opposite facts
324
+ * that the same `null` would have stated identically. `none` is a settled deployment answer
325
+ * ("this account retains no images"), which the row records as `storage_unavailable` and a
326
+ * person fixes by configuring storage. `unreadable` is an OUTAGE in the account-settings read,
327
+ * and telling an operator their storage is unconfigured when it is configured sends them to
328
+ * change a setting that is already right; worse, the status is then carried forward untouched
329
+ * by every token-only re-import, so the misattribution outlives the outage that caused it.
330
+ *
331
+ * The failure is still swallowed rather than propagated: the caller is a best-effort enrichment
332
+ * on a path that already holds the document body.
333
+ */
334
+ async resolveArtifactStore(workspaceId) {
335
+ const resolve = this.deps.resolveBinaryArtifactStore;
336
+ if (!resolve)
337
+ return { kind: 'none' };
338
+ try {
339
+ const store = await resolve(workspaceId);
340
+ return store ? { kind: 'store', store } : { kind: 'none' };
341
+ }
342
+ catch (error) {
343
+ this.log.warn('could not resolve artifact storage for document renders', {
344
+ workspaceId,
345
+ ...describeError(error),
346
+ });
347
+ return { kind: 'unreadable' };
348
+ }
349
+ }
200
350
  /**
201
351
  * Persist a document body the caller supplied directly, as an `upload`-origin projection.
202
352
  *
@@ -236,6 +386,9 @@ export class DocumentImportService {
236
386
  linkedBlockId: null,
237
387
  role: null,
238
388
  docKind: null,
389
+ // Markdown handed to the platform directly: there is no source to rasterise, which is the
390
+ // same "does not apply" the null states one field over.
391
+ renderStatus: null,
239
392
  syncedAt: this.deps.clock.now(),
240
393
  deletedAt: null,
241
394
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentImportService.js","sourceRoot":"","sources":["../../../src/modules/documents/DocumentImportService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DocumentImportService.js","sourceRoot":"","sources":["../../../src/modules/documents/DocumentImportService.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type DocumentContent, type DocumentCredentials, type DocumentSourceProvider, type NormalizedConnection } from '@cat-factory/kernel';
1
+ import { type DocumentContent, type DocumentCredentials, type DocumentRenderPlan, type DocumentRenderResult, type DocumentSourceProvider, type NormalizedConnection } from '@cat-factory/kernel';
2
2
  /** Carries the HTTP status so callers can surface a meaningful error. */
3
3
  export declare class FigmaApiError extends Error {
4
4
  readonly status: number;
@@ -35,6 +35,34 @@ export declare class FigmaProvider implements DocumentSourceProvider {
35
35
  */
36
36
  droppedScope(input: string, externalId: string): string | null;
37
37
  fetchDocument(credentials: DocumentCredentials, externalId: string, _workspaceId: string | null): Promise<DocumentContent>;
38
+ /**
39
+ * Rasterise the referenced frames and download the PNGs.
40
+ *
41
+ * Three hops, and the split matters: a STRUCTURAL read learns which frames to render and what
42
+ * they are called (the `view` a captured screenshot pairs with), the `/v1/images` endpoint turns
43
+ * those ids into short-lived signed URLs, and the URLs are downloaded from the asset host with no
44
+ * credential attached. A frame whose own download fails is counted rather than thrown, so one
45
+ * oversize artboard costs its own picture and not the other five.
46
+ *
47
+ * The first hop is SKIPPED when the caller hands over the plan its own `fetchDocument` produced,
48
+ * which is the normal path: an import fetches the body and the renders back to back off one
49
+ * revision, and the structural read is the same request twice against a rate-limited API.
50
+ */
51
+ fetchRenders(credentials: DocumentCredentials, externalId: string, _workspaceId: string | null, plan?: DocumentRenderPlan): Promise<DocumentRenderResult>;
52
+ /**
53
+ * The frames to rasterise, with their names, for a caller that supplied no plan.
54
+ *
55
+ * A node link renders the frame it names; a whole-file link renders the first
56
+ * {@link figmaLogic.MAX_RENDERS} top-level frames in document order — the same frames, in the
57
+ * same order, the text import covers, so the pictures and the prose describe the same screens.
58
+ * This is the FALLBACK: it repeats the structural read `fetchDocument` performs, which is why
59
+ * the import hands its own plan over instead.
60
+ */
61
+ private resolveRenderTargets;
62
+ /** `/v1/images` in ONE call for every target: id → signed URL, absent when Figma rendered none. */
63
+ private fetchRenderUrls;
64
+ /** Download one signed render. No credential is sent: the URL already carries its own. */
65
+ private downloadRender;
38
66
  /**
39
67
  * The cheap version probe: read the file's metadata at `depth=1` (no node tree)
40
68
  * for its `version` / `lastModified`, skipping the deep node fetch + variables +
@@ -1 +1 @@
1
- {"version":3,"file":"FigmaProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/FigmaProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;AA0C5B,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;IACtC,QAAQ,CAAC,KAAK,wDAAc;IAE5B,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAMpE;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErC;IAED,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvC;IAED;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE7D;IAEK,aAAa,CACjB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,eAAe,CAAC,CAuC1B;IAED;;;;OAIG;IACG,YAAY,CAChB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,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;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,KAAK;YAQC,GAAG;CAqBlB"}
1
+ {"version":3,"file":"FigmaProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/FigmaProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAA;AA2D5B,yEAAyE;AACzE,qBAAa,aAAc,SAAQ,KAAK;IAEpC,QAAQ,CAAC,MAAM,EAAE,MAAM;IADzB,YACW,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM,EAIhB;CACF;AA2HD,qBAAa,aAAc,YAAW,sBAAsB;IAC1D,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAS;IAChC,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;;;;MAAmB;IACtC,QAAQ,CAAC,KAAK,wDAAc;IAE5B,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAMpE;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErC;IAED,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEvC;IAED;;;;OAIG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE7D;IAEK,aAAa,CACjB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,eAAe,CAAC,CA2C1B;IAED;;;;;;;;;;;;OAYG;IACG,YAAY,CAChB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,IAAI,CAAC,EAAE,kBAAkB,GACxB,OAAO,CAAC,oBAAoB,CAAC,CAkD/B;IAED;;;;;;;;OAQG;YACW,oBAAoB;IAsBlC,mGAAmG;YACrF,eAAe;IAkB7B,0FAA0F;YAC5E,cAAc;IAW5B;;;;OAIG;IACG,YAAY,CAChB,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,MAAM,CAAC,CAUjB;IAED,gGAAgG;YAClF,UAAU;IASxB;;;;;OAKG;YACW,gBAAgB;IA4B9B;;;;;;;;OAQG;YACW,eAAe;IAoE7B;;;;OAIG;YACW,kBAAkB;IAuChC;;;;;OAKG;YACW,cAAc;IAoB5B,gGAAgG;YAClF,eAAe;IAqB7B;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,KAAK;YAQC,GAAG;CAqBlB"}
@@ -1,8 +1,8 @@
1
1
  import { describeError, documentOAuthAccessToken, ValidationError, } from '@cat-factory/kernel';
2
2
  import { renderDesignContext } from './design.logic.js';
3
- import { FIGMA_API_HOST, FIGMA_DESCRIPTOR, FIGMA_OAUTH } from './figma.logic.js';
3
+ import { FIGMA_API_HOST, FIGMA_DESCRIPTOR, FIGMA_OAUTH, FIGMA_RENDER_HOSTS } from './figma.logic.js';
4
4
  import * as figmaLogic from './figma.logic.js';
5
- import { DocumentHttpError, createHostPinnedFetch, readCappedText } from './http.js';
5
+ import { DocumentHttpError, createHostPinnedFetch, readCappedBytes, readCappedText, } from './http.js';
6
6
  // FigmaProvider: the document-source provider for Figma. It authenticates with
7
7
  // whichever credential the workspace connected — a personal access token (the
8
8
  // `X-Figma-Token` header) or an OAuth grant the platform holds (a `Bearer` token) —
@@ -37,6 +37,18 @@ const FRAME_DEPTH = figmaLogic.MAX_TREE_DEPTH + 3;
37
37
  const FRAME_CHUNK = 4;
38
38
  /** Hard cap on the bytes read off any response body, to protect the isolate. */
39
39
  const MAX_RESPONSE_BYTES = 5_000_000;
40
+ /**
41
+ * Hard cap on one rendered PNG. A frame is rasterised at `scale=1`, so a phone screen lands well
42
+ * under this and a poster-sized artboard is dropped with a stated cause rather than pulled into
43
+ * the isolate.
44
+ */
45
+ const MAX_RENDER_BYTES = 3_000_000;
46
+ /**
47
+ * Renders downloaded concurrently. The images come from a signed-URL CDN rather than the rate-
48
+ * limited API, so a small fan-out is safe; bounded anyway because each holds its bytes in memory
49
+ * until the caller has stored them.
50
+ */
51
+ const RENDER_DOWNLOAD_CONCURRENCY = 3;
40
52
  /** Carries the HTTP status so callers can surface a meaningful error. */
41
53
  export class FigmaApiError extends Error {
42
54
  status;
@@ -52,6 +64,15 @@ export class FigmaApiError extends Error {
52
64
  * capped-read are the shared documents `http` helpers; only the host/label differ.
53
65
  */
54
66
  const safeFetch = createHostPinnedFetch({ host: FIGMA_API_HOST, label: 'Figma' });
67
+ /**
68
+ * `fetch` for a rendered image, pinned to Figma's signed-asset hosts. A SEPARATE client from
69
+ * {@link safeFetch} because the two carry different things: this one sends NO credential (the URL
70
+ * is already signed) and reaches a host the API token must never be offered to.
71
+ */
72
+ const safeRenderFetch = createHostPinnedFetch({
73
+ host: FIGMA_RENDER_HOSTS,
74
+ label: 'Figma render',
75
+ });
55
76
  function emptyMaps() {
56
77
  return { components: {}, componentSets: {}, styles: {} };
57
78
  }
@@ -120,7 +141,7 @@ export class FigmaProvider {
120
141
  if (!fileKey) {
121
142
  throw new FigmaApiError(400, `Figma ref is missing a file key: ${externalId}`);
122
143
  }
123
- const { roots, maps, fileName, version, notes } = await this.fetchNodes(credentials, fileKey, nodeId);
144
+ const { roots, maps, fileName, version, notes, renderPlan } = await this.fetchNodes(credentials, fileKey, nodeId);
124
145
  // Design tokens are Enterprise-gated; on 403/404 the published styles carried by the
125
146
  // node tree are the fallback and the render says which one it used. A rendered preview
126
147
  // rides along as a reference (no download): best-effort, the short-lived URL may expire
@@ -146,8 +167,120 @@ export class FigmaProvider {
146
167
  url: context.url,
147
168
  body: renderDesignContext(context),
148
169
  version,
170
+ // The frames this same read already named. `fetchRenders` would otherwise re-issue the very
171
+ // request that produced them, against the rate-limited API, to relearn ids and names it had
172
+ // in hand a moment ago.
173
+ renderPlan,
149
174
  };
150
175
  }
176
+ /**
177
+ * Rasterise the referenced frames and download the PNGs.
178
+ *
179
+ * Three hops, and the split matters: a STRUCTURAL read learns which frames to render and what
180
+ * they are called (the `view` a captured screenshot pairs with), the `/v1/images` endpoint turns
181
+ * those ids into short-lived signed URLs, and the URLs are downloaded from the asset host with no
182
+ * credential attached. A frame whose own download fails is counted rather than thrown, so one
183
+ * oversize artboard costs its own picture and not the other five.
184
+ *
185
+ * The first hop is SKIPPED when the caller hands over the plan its own `fetchDocument` produced,
186
+ * which is the normal path: an import fetches the body and the renders back to back off one
187
+ * revision, and the structural read is the same request twice against a rate-limited API.
188
+ */
189
+ async fetchRenders(credentials, externalId, _workspaceId, plan) {
190
+ const { fileKey, nodeId } = figmaLogic.splitFigmaExternalId(externalId);
191
+ if (!fileKey) {
192
+ throw new FigmaApiError(400, `Figma ref is missing a file key: ${externalId}`);
193
+ }
194
+ const resolved = plan ?? (await this.resolveRenderTargets(credentials, fileKey, nodeId));
195
+ const targets = resolved.targets;
196
+ // The cap rides every return: frames excluded before the first request are just as absent
197
+ // from the stored set as ones whose download failed, and only this count says so.
198
+ if (!targets.length)
199
+ return { renders: [], failed: 0, capped: resolved.capped, causes: [] };
200
+ const urls = await this.fetchRenderUrls(credentials, fileKey, targets.map((t) => t.id));
201
+ const causes = new Set();
202
+ const renders = [];
203
+ let failed = 0;
204
+ // A target the images endpoint answered with no URL never had a picture to download, so it is
205
+ // counted with the same cause vocabulary rather than silently dropped: "Figma rendered nothing
206
+ // for this frame" and "the download failed" ask for different things of the person reading it.
207
+ const pending = targets.filter((target) => {
208
+ const url = urls.get(target.id);
209
+ if (url)
210
+ return true;
211
+ failed += 1;
212
+ causes.add('no render returned');
213
+ return false;
214
+ });
215
+ for (let i = 0; i < pending.length; i += RENDER_DOWNLOAD_CONCURRENCY) {
216
+ const chunk = pending.slice(i, i + RENDER_DOWNLOAD_CONCURRENCY);
217
+ const settled = await Promise.all(chunk.map(async (target) => {
218
+ try {
219
+ return await this.downloadRender(urls.get(target.id), target.view);
220
+ }
221
+ catch (err) {
222
+ // silent-catch-ok: REPORTED to the caller as `failed` + this cause, which is the honest
223
+ // form of it. A single frame's picture may not fail the import that carries the text.
224
+ return describeFetchCause(err);
225
+ }
226
+ }));
227
+ for (const result of settled) {
228
+ if (typeof result === 'string') {
229
+ failed += 1;
230
+ causes.add(result);
231
+ }
232
+ else
233
+ renders.push(result);
234
+ }
235
+ }
236
+ return { renders, failed, capped: resolved.capped, causes: [...causes].sort() };
237
+ }
238
+ /**
239
+ * The frames to rasterise, with their names, for a caller that supplied no plan.
240
+ *
241
+ * A node link renders the frame it names; a whole-file link renders the first
242
+ * {@link figmaLogic.MAX_RENDERS} top-level frames in document order — the same frames, in the
243
+ * same order, the text import covers, so the pictures and the prose describe the same screens.
244
+ * This is the FALLBACK: it repeats the structural read `fetchDocument` performs, which is why
245
+ * the import hands its own plan over instead.
246
+ */
247
+ async resolveRenderTargets(credentials, fileKey, nodeId) {
248
+ if (nodeId) {
249
+ // `depth=1` is the node ALONE: this read wants its name, not its subtree.
250
+ const res = await this.get(credentials, `/files/${encodeURIComponent(fileKey)}/nodes` +
251
+ `?ids=${encodeURIComponent(nodeId)}&depth=1`);
252
+ const node = res.nodes?.[nodeId]?.document;
253
+ return node ? figmaLogic.figmaRenderTargets([node]) : { targets: [], capped: 0 };
254
+ }
255
+ const res = await this.get(credentials, `/files/${encodeURIComponent(fileKey)}?depth=${FILE_DEPTH}`);
256
+ return figmaLogic.figmaRenderTargets(figmaLogic.figmaTopLevelFrames(res.document));
257
+ }
258
+ /** `/v1/images` in ONE call for every target: id → signed URL, absent when Figma rendered none. */
259
+ async fetchRenderUrls(credentials, fileKey, ids) {
260
+ const res = await this.get(credentials, `/images/${encodeURIComponent(fileKey)}` +
261
+ `?ids=${encodeURIComponent(ids.join(','))}&format=png&scale=1`);
262
+ if (res.err)
263
+ throw new FigmaApiError(502, `Figma images endpoint reported: ${res.err}`);
264
+ const out = new Map();
265
+ for (const [id, url] of Object.entries(res.images ?? {})) {
266
+ if (typeof url === 'string' && url)
267
+ out.set(id, url);
268
+ }
269
+ return out;
270
+ }
271
+ /** Download one signed render. No credential is sent: the URL already carries its own. */
272
+ async downloadRender(url, view) {
273
+ const res = await safeRenderFetch(url, {
274
+ method: 'GET',
275
+ headers: { accept: 'image/png', 'user-agent': USER_AGENT },
276
+ });
277
+ if (!res.ok)
278
+ throw new FigmaApiError(res.status, `Figma render GET → ${res.status}`);
279
+ const bytes = await readCappedBytes(res, MAX_RENDER_BYTES, 'Figma render');
280
+ if (!bytes.byteLength)
281
+ throw new FigmaApiError(502, 'Figma returned an empty render');
282
+ return { view, contentType: 'image/png', bytes };
283
+ }
151
284
  /**
152
285
  * The cheap version probe: read the file's metadata at `depth=1` (no node tree)
153
286
  * for its `version` / `lastModified`, skipping the deep node fetch + variables +
@@ -188,6 +321,9 @@ export class FigmaProvider {
188
321
  fileName: res.name ?? fileKey,
189
322
  version: fileVersion(res),
190
323
  notes: [],
324
+ // A node link renders the frame it names, and nothing is capped: one frame was asked for and
325
+ // one is covered.
326
+ renderPlan: figmaLogic.figmaRenderTargets([entry.document]),
191
327
  };
192
328
  }
193
329
  /**
@@ -215,6 +351,10 @@ export class FigmaProvider {
215
351
  fileName: res.name ?? fileKey,
216
352
  version: fileVersion(res),
217
353
  notes: [],
354
+ // Resolved against the WHOLE outline rather than the text pass's own `selected` slice: the
355
+ // two caps are different numbers, and `capped` has to count frames this file has that no
356
+ // picture will cover, not frames the text budget happened to keep.
357
+ renderPlan: figmaLogic.figmaRenderTargets(outline),
218
358
  };
219
359
  if (!outline.length)
220
360
  return base;
@@ -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":"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"}
@@ -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":"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"}
1
+ {"version":3,"file":"figma.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/documents/figma.logic.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
@@ -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
- /** The single host this provider's API lives on (e.g. `api.figma.com`). */
16
- host: string;
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":"AAaA,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,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAa/E;AAKD,MAAM,WAAW,sBAAsB;IACrC,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAA;IACZ,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,CAgCjB"}
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
- if (parsed.hostname.toLowerCase() !== host.toLowerCase()) {
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 new TextDecoder().decode(merged);
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":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/modules/documents/http.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/integrations",
3
- "version": "0.148.0",
3
+ "version": "0.149.0",
4
4
  "description": "External-system integration domain logic for the Agent Architecture Board (GitHub, documents, tasks, environments, runners).",
5
5
  "repository": {
6
6
  "type": "git",
@@ -27,15 +27,15 @@
27
27
  "ai": "^7.0.51",
28
28
  "p-map": "^7.0.6",
29
29
  "yaml": "^2.9.0",
30
- "@cat-factory/contracts": "0.272.0",
31
- "@cat-factory/kernel": "0.270.0"
30
+ "@cat-factory/contracts": "0.273.0",
31
+ "@cat-factory/kernel": "0.271.0"
32
32
  },
33
33
  "devDependencies": {
34
34
  "typescript": "7.0.2",
35
35
  "undici": "^8.10.0",
36
36
  "valibot": "^1.4.2",
37
37
  "vitest": "^4.1.10",
38
- "@cat-factory/caching": "0.18.11"
38
+ "@cat-factory/caching": "0.18.12"
39
39
  },
40
40
  "scripts": {
41
41
  "build": "tsc -b tsconfig.build.json",