openfig-core 0.3.6 → 0.3.7

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.js CHANGED
@@ -158,6 +158,359 @@ function createFigZip(input) {
158
158
  return zipSync(opts);
159
159
  }
160
160
 
161
+ // src/convert.ts
162
+ function guidToString(guid) {
163
+ return `${guid.sessionID}:${guid.localID}`;
164
+ }
165
+ function safeDeepClone(val) {
166
+ if (val === null || val === void 0) return val;
167
+ if (val instanceof Uint8Array) {
168
+ return new Uint8Array(val);
169
+ }
170
+ if (Array.isArray(val)) {
171
+ return val.map(safeDeepClone);
172
+ }
173
+ if (typeof val === "object") {
174
+ const copy = {};
175
+ for (const k of Object.keys(val)) {
176
+ copy[k] = safeDeepClone(val[k]);
177
+ }
178
+ return copy;
179
+ }
180
+ return val;
181
+ }
182
+ function convertDeckToFig(deckDoc, options = {}) {
183
+ const {
184
+ title,
185
+ layout = "row",
186
+ gap = 200,
187
+ wrap = 5
188
+ } = options;
189
+ const activeSlides = deckDoc.nodes.filter((n) => n.type === "SLIDE" && n.phase !== "REMOVED").sort((a, b) => {
190
+ const posA = a.parentIndex?.position ?? "";
191
+ const posB = b.parentIndex?.position ?? "";
192
+ return posA.localeCompare(posB);
193
+ });
194
+ let maxLocalId = 0;
195
+ for (const node of deckDoc.nodes) {
196
+ if (node.guid?.localID > maxLocalId) {
197
+ maxLocalId = node.guid.localID;
198
+ }
199
+ }
200
+ let nextLocalId = maxLocalId + 1;
201
+ const sessionId = 1;
202
+ function generateGuid() {
203
+ return { sessionID: sessionId, localID: nextLocalId++ };
204
+ }
205
+ const documentNode = deckDoc.nodes.find((n) => n.type === "DOCUMENT");
206
+ const docGuid = documentNode?.guid ?? { sessionID: 0, localID: 0 };
207
+ const canvasGuid = generateGuid();
208
+ const canvasName = title || deckDoc.meta?.file_name || "Page 1";
209
+ const newCanvasNode = {
210
+ guid: canvasGuid,
211
+ type: "CANVAS",
212
+ name: canvasName,
213
+ phase: "CREATED",
214
+ parentIndex: {
215
+ guid: docGuid,
216
+ position: "!"
217
+ },
218
+ visible: true
219
+ };
220
+ const outputNodes = [];
221
+ if (documentNode) {
222
+ outputNodes.push(safeDeepClone(documentNode));
223
+ }
224
+ outputNodes.push(newCanvasNode);
225
+ const outputBlobs = [];
226
+ const blobRemap = /* @__PURE__ */ new Map();
227
+ function copyBlob(sourceIdx) {
228
+ if (sourceIdx === void 0 || sourceIdx === null || sourceIdx < 0) return void 0;
229
+ if (!deckDoc.message?.blobs || sourceIdx >= deckDoc.message.blobs.length) return sourceIdx;
230
+ if (blobRemap.has(sourceIdx)) {
231
+ return blobRemap.get(sourceIdx);
232
+ }
233
+ const newIdx = outputBlobs.length;
234
+ outputBlobs.push(safeDeepClone(deckDoc.message.blobs[sourceIdx]));
235
+ blobRemap.set(sourceIdx, newIdx);
236
+ return newIdx;
237
+ }
238
+ const totalSlides = activeSlides.length;
239
+ const paddingWidth = Math.max(2, String(totalSlides).length);
240
+ activeSlides.forEach((slide, index) => {
241
+ const slideId = guidToString(slide.guid);
242
+ const slideSize = slide.size ?? { x: 1920, y: 1080 };
243
+ const width = slideSize.x;
244
+ const height = slideSize.y;
245
+ let x = 0;
246
+ let y = 0;
247
+ if (layout === "grid") {
248
+ const col = index % wrap;
249
+ const row = Math.floor(index / wrap);
250
+ x = col * (width + gap);
251
+ y = row * (height + gap);
252
+ } else {
253
+ x = index * (width + gap);
254
+ y = 0;
255
+ }
256
+ let slideTitle = "";
257
+ const children = deckDoc.childrenMap.get(slideId) || [];
258
+ const instanceNode = children.find((c) => c.type === "INSTANCE");
259
+ if (instanceNode?.symbolData?.symbolID) {
260
+ const symGuidStr = guidToString(instanceNode.symbolData.symbolID);
261
+ const symNode = deckDoc.nodeMap.get(symGuidStr);
262
+ if (symNode) {
263
+ const firstText = findFirstTextNode(deckDoc, symGuidStr);
264
+ if (firstText) {
265
+ const originalTextGuid = firstText.guid;
266
+ const overrides = instanceNode.symbolData?.symbolOverrides || [];
267
+ const ov = overrides.find(
268
+ (o) => o.guidPath?.guids?.length === 1 && o.guidPath.guids[0].sessionID === originalTextGuid.sessionID && o.guidPath.guids[0].localID === originalTextGuid.localID && o.textData?.characters
269
+ );
270
+ slideTitle = ov?.textData?.characters || firstText.textData?.characters || "";
271
+ }
272
+ }
273
+ }
274
+ slideTitle = slideTitle.trim();
275
+ const frameIndexStr = String(index + 1).padStart(paddingWidth, "0");
276
+ const frameName = slideTitle ? `${frameIndexStr} \xB7 ${slideTitle}` : `${frameIndexStr} \xB7 Slide ${frameIndexStr}`;
277
+ const frameGuid = generateGuid();
278
+ const frameNode = {
279
+ guid: frameGuid,
280
+ type: "FRAME",
281
+ name: frameName,
282
+ phase: "CREATED",
283
+ parentIndex: {
284
+ guid: canvasGuid,
285
+ position: String.fromCharCode(33 + index)
286
+ },
287
+ size: { x: width, y: height },
288
+ transform: { m00: 1, m01: 0, m02: x, m10: 0, m11: 1, m12: y },
289
+ visible: true,
290
+ opacity: 1,
291
+ frameMaskDisabled: false,
292
+ // Inherit fill paints and geometry from the SLIDE node
293
+ fillPaints: slide.fillPaints ? safeDeepClone(slide.fillPaints) : [],
294
+ fillGeometry: slide.fillGeometry ? safeDeepClone(slide.fillGeometry) : [],
295
+ strokePaints: slide.strokePaints ? safeDeepClone(slide.strokePaints) : [],
296
+ strokeWeight: slide.strokeWeight ?? 0,
297
+ strokeAlign: slide.strokeAlign ?? "INSIDE"
298
+ };
299
+ if (frameNode.fillGeometry) {
300
+ for (const fg of frameNode.fillGeometry) {
301
+ if (fg.commandsBlob !== void 0) {
302
+ fg.commandsBlob = copyBlob(fg.commandsBlob);
303
+ }
304
+ }
305
+ }
306
+ outputNodes.push(frameNode);
307
+ if (instanceNode && instanceNode.symbolData?.symbolID) {
308
+ const symGuidStr = guidToString(instanceNode.symbolData.symbolID);
309
+ const symbolNode = deckDoc.nodeMap.get(symGuidStr);
310
+ if (symbolNode) {
311
+ let collectSubtree2 = function(id) {
312
+ if (visited.has(id)) return;
313
+ visited.add(id);
314
+ const node = deckDoc.nodeMap.get(id);
315
+ if (!node || node.phase === "REMOVED") return;
316
+ subtree.push(node);
317
+ const kids = deckDoc.childrenMap.get(id) || [];
318
+ for (const kid of kids) {
319
+ collectSubtree2(guidToString(kid.guid));
320
+ }
321
+ };
322
+ var collectSubtree = collectSubtree2;
323
+ const subtree = [];
324
+ const visited = /* @__PURE__ */ new Set();
325
+ const symbolChildren = deckDoc.childrenMap.get(symGuidStr) || [];
326
+ for (const child of symbolChildren) {
327
+ collectSubtree2(guidToString(child.guid));
328
+ }
329
+ const idRemap = /* @__PURE__ */ new Map();
330
+ for (const node of subtree) {
331
+ idRemap.set(guidToString(node.guid), generateGuid());
332
+ }
333
+ const clonedSubtree = subtree.map((node) => {
334
+ const clone = safeDeepClone(node);
335
+ const origIdStr = guidToString(node.guid);
336
+ const newGuid = idRemap.get(origIdStr);
337
+ clone.guid = newGuid;
338
+ clone.phase = "CREATED";
339
+ delete clone.slideThumbnailHash;
340
+ delete clone.editInfo;
341
+ delete clone.prototypeInteractions;
342
+ if (clone.parentIndex?.guid) {
343
+ const parentIdStr = guidToString(clone.parentIndex.guid);
344
+ if (parentIdStr === symGuidStr) {
345
+ clone.parentIndex.guid = frameGuid;
346
+ } else if (idRemap.has(parentIdStr)) {
347
+ clone.parentIndex.guid = idRemap.get(parentIdStr);
348
+ }
349
+ }
350
+ const overrides = instanceNode.symbolData?.symbolOverrides || [];
351
+ const matchingOverrides = overrides.filter((o) => {
352
+ if (!o.guidPath?.guids?.length) return false;
353
+ const lastGuid = o.guidPath.guids[o.guidPath.guids.length - 1];
354
+ return lastGuid.sessionID === node.guid.sessionID && lastGuid.localID === node.guid.localID;
355
+ });
356
+ for (const ov of matchingOverrides) {
357
+ if (ov.textData && clone.textData) {
358
+ let chars = ov.textData.characters || "";
359
+ if (chars === "") chars = " ";
360
+ clone.textData.characters = chars;
361
+ }
362
+ if (ov.fillPaints) {
363
+ clone.fillPaints = safeDeepClone(ov.fillPaints);
364
+ }
365
+ if (ov.strokePaints) {
366
+ clone.strokePaints = safeDeepClone(ov.strokePaints);
367
+ }
368
+ }
369
+ if (clone.fillGeometry) {
370
+ for (const fg of clone.fillGeometry) {
371
+ if (fg.commandsBlob !== void 0) {
372
+ fg.commandsBlob = copyBlob(fg.commandsBlob);
373
+ }
374
+ }
375
+ }
376
+ if (clone.strokeGeometry) {
377
+ for (const sg of clone.strokeGeometry) {
378
+ if (sg.commandsBlob !== void 0) {
379
+ sg.commandsBlob = copyBlob(sg.commandsBlob);
380
+ }
381
+ }
382
+ }
383
+ if (clone.vectorNetworkBlob !== void 0) {
384
+ clone.vectorNetworkBlob = copyBlob(clone.vectorNetworkBlob);
385
+ }
386
+ return clone;
387
+ });
388
+ outputNodes.push(...clonedSubtree);
389
+ }
390
+ }
391
+ for (const sibling of children) {
392
+ let collectSiblingSubtree2 = function(id) {
393
+ if (visited.has(id)) return;
394
+ visited.add(id);
395
+ const node = deckDoc.nodeMap.get(id);
396
+ if (!node || node.phase === "REMOVED") return;
397
+ subtree.push(node);
398
+ const kids = deckDoc.childrenMap.get(id) || [];
399
+ for (const kid of kids) {
400
+ collectSiblingSubtree2(guidToString(kid.guid));
401
+ }
402
+ };
403
+ var collectSiblingSubtree = collectSiblingSubtree2;
404
+ if (sibling.type === "INSTANCE" || sibling.phase === "REMOVED") continue;
405
+ const subtree = [];
406
+ const visited = /* @__PURE__ */ new Set();
407
+ collectSiblingSubtree2(guidToString(sibling.guid));
408
+ const sibIdRemap = /* @__PURE__ */ new Map();
409
+ for (const node of subtree) {
410
+ sibIdRemap.set(guidToString(node.guid), generateGuid());
411
+ }
412
+ const clonedSibNodes = subtree.map((node) => {
413
+ const clone = safeDeepClone(node);
414
+ const origIdStr = guidToString(node.guid);
415
+ const newGuid = sibIdRemap.get(origIdStr);
416
+ clone.guid = newGuid;
417
+ clone.phase = "CREATED";
418
+ if (clone.parentIndex?.guid) {
419
+ const parentIdStr = guidToString(clone.parentIndex.guid);
420
+ if (parentIdStr === slideId) {
421
+ clone.parentIndex.guid = frameGuid;
422
+ } else if (sibIdRemap.has(parentIdStr)) {
423
+ clone.parentIndex.guid = sibIdRemap.get(parentIdStr);
424
+ }
425
+ }
426
+ if (clone.fillGeometry) {
427
+ for (const fg of clone.fillGeometry) {
428
+ if (fg.commandsBlob !== void 0) {
429
+ fg.commandsBlob = copyBlob(fg.commandsBlob);
430
+ }
431
+ }
432
+ }
433
+ if (clone.strokeGeometry) {
434
+ for (const sg of clone.strokeGeometry) {
435
+ if (sg.commandsBlob !== void 0) {
436
+ sg.commandsBlob = copyBlob(sg.commandsBlob);
437
+ }
438
+ }
439
+ }
440
+ if (clone.vectorNetworkBlob !== void 0) {
441
+ clone.vectorNetworkBlob = copyBlob(clone.vectorNetworkBlob);
442
+ }
443
+ return clone;
444
+ });
445
+ outputNodes.push(...clonedSibNodes);
446
+ }
447
+ });
448
+ const globalSupportTypes = /* @__PURE__ */ new Set([
449
+ "VARIABLE",
450
+ "VARIABLE_SET",
451
+ "VARIABLE_COLLECTION",
452
+ "PUBLISHED_VARIABLE_COLLECTION"
453
+ ]);
454
+ const supportNodes = deckDoc.nodes.filter(
455
+ (n) => globalSupportTypes.has(n.type) && n.phase !== "REMOVED"
456
+ );
457
+ for (const sNode of supportNodes) {
458
+ outputNodes.push(safeDeepClone(sNode));
459
+ }
460
+ const nodeMap = /* @__PURE__ */ new Map();
461
+ const childrenMap = /* @__PURE__ */ new Map();
462
+ for (const node of outputNodes) {
463
+ const id = guidToString(node.guid);
464
+ nodeMap.set(id, node);
465
+ }
466
+ for (const node of outputNodes) {
467
+ if (!node.parentIndex?.guid) continue;
468
+ const pid = guidToString(node.parentIndex.guid);
469
+ if (!childrenMap.has(pid)) {
470
+ childrenMap.set(pid, []);
471
+ }
472
+ childrenMap.get(pid).push(node);
473
+ }
474
+ const targetMeta = safeDeepClone(deckDoc.meta) || {};
475
+ targetMeta.file_name = canvasName;
476
+ const newDoc = {
477
+ header: { prelude: "fig-kiwi", version: deckDoc.header.version },
478
+ nodes: outputNodes,
479
+ nodeMap,
480
+ childrenMap,
481
+ schema: safeDeepClone(deckDoc.schema),
482
+ compiledSchema: deckDoc.compiledSchema,
483
+ rawChunks: [
484
+ deckDoc.rawChunks[0],
485
+ // Schema chunk (will be re-deflated or kept as-is)
486
+ new Uint8Array(0),
487
+ // Placeholder for chunk 1 (pre-compressed canvas message)
488
+ ...deckDoc.rawChunks.slice(2)
489
+ // Remaining passthrough chunks
490
+ ],
491
+ message: {
492
+ ...safeDeepClone(deckDoc.message),
493
+ nodeChanges: outputNodes,
494
+ blobs: outputBlobs
495
+ },
496
+ meta: targetMeta,
497
+ thumbnail: safeDeepClone(deckDoc.thumbnail),
498
+ images: safeDeepClone(deckDoc.images)
499
+ };
500
+ return newDoc;
501
+ }
502
+ function findFirstTextNode(doc, id) {
503
+ const node = doc.nodeMap.get(id);
504
+ if (!node || node.phase === "REMOVED") return null;
505
+ if (node.type === "TEXT" && node.textData?.characters) return node;
506
+ const children = doc.childrenMap.get(id) || [];
507
+ for (const child of children) {
508
+ const found = findFirstTextNode(doc, guidToString(child.guid));
509
+ if (found) return found;
510
+ }
511
+ return null;
512
+ }
513
+
161
514
  // src/schema.ts
162
515
  var emptyFigTemplate = "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";
163
516
 
@@ -950,6 +1303,7 @@ function mapStrokeCap(value) {
950
1303
  export {
951
1304
  appendVectorPayloadToDocument,
952
1305
  assembleCanvasFig,
1306
+ convertDeckToFig,
953
1307
  createEmptyFigDoc,
954
1308
  createFigZip,
955
1309
  cssColorToFigColor,