@superdoc-dev/cli 0.8.0-next.101 → 0.8.0-next.102

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.
Files changed (2) hide show
  1. package/dist/index.js +162 -50
  2. package/package.json +7 -7
package/dist/index.js CHANGED
@@ -208837,7 +208837,7 @@ var init_remark_gfm_eZN6yzWQ_es = __esm(() => {
208837
208837
  init_remark_gfm_BhnWr3yf_es();
208838
208838
  });
208839
208839
 
208840
- // ../../packages/superdoc/dist/chunks/src-VLFj9vqo.es.js
208840
+ // ../../packages/superdoc/dist/chunks/src-OZOxpRA7.es.js
208841
208841
  function deleteProps(obj, propOrProps) {
208842
208842
  const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
208843
208843
  const removeNested = (target, pathParts, index2 = 0) => {
@@ -213581,6 +213581,9 @@ function getTableContext($head) {
213581
213581
  table: table2
213582
213582
  };
213583
213583
  }
213584
+ function isRtlTable(table2) {
213585
+ return table2?.attrs?.tableProperties?.rightToLeft === true;
213586
+ }
213584
213587
  function getCellRect(context) {
213585
213588
  const map$12 = TableMap.get(context.table);
213586
213589
  return {
@@ -213588,6 +213591,9 @@ function getCellRect(context) {
213588
213591
  rect: map$12.findCell(context.cellStart - context.tableStart)
213589
213592
  };
213590
213593
  }
213594
+ function getEffectiveTableDir(table2, dir) {
213595
+ return isRtlTable(table2) ? -dir : dir;
213596
+ }
213591
213597
  function isLastCellInTable(context) {
213592
213598
  if (!context)
213593
213599
  return false;
@@ -213679,7 +213685,8 @@ function getTableBoundaryExitSelection(state, dir) {
213679
213685
  const context = getTableContext(selection.$head);
213680
213686
  if (!context)
213681
213687
  return null;
213682
- const helpers = getDirectionHelpers(dir);
213688
+ const effectiveDir = getEffectiveTableDir(context.table, dir);
213689
+ const helpers = getDirectionHelpers(effectiveDir);
213683
213690
  if (!helpers.isEdgeParagraphInCell(selection.$head, context.cellDepth))
213684
213691
  return null;
213685
213692
  if (!helpers.isAtParagraphBoundary(selection.$head))
@@ -213690,7 +213697,38 @@ function getTableBoundaryExitSelection(state, dir) {
213690
213697
  const targetPos = helpers.findTextPosAcrossBoundary(state, boundaryPos);
213691
213698
  if (targetPos != null)
213692
213699
  return TextSelection.create(state.doc, targetPos);
213693
- return findSelectionNearBoundary(state, boundaryPos, dir);
213700
+ return findSelectionNearBoundary(state, boundaryPos, effectiveDir);
213701
+ }
213702
+ function getIntraTableArrowSelection(state, dir, expandSelection) {
213703
+ const selection = state.selection;
213704
+ if (!selection.empty)
213705
+ return null;
213706
+ const context = getTableContext(selection.$head);
213707
+ if (!context)
213708
+ return null;
213709
+ if (!isRtlTable(context.table))
213710
+ return null;
213711
+ const effectiveDir = getEffectiveTableDir(context.table, dir);
213712
+ const helpers = getDirectionHelpers(effectiveDir);
213713
+ if (!helpers.isEdgeParagraphInCell(selection.$head, context.cellDepth))
213714
+ return null;
213715
+ if (!helpers.isAtParagraphBoundary(selection.$head))
213716
+ return null;
213717
+ const { map: map$12 } = getCellRect(context);
213718
+ const currentCellRelativePos = context.cellStart - context.tableStart;
213719
+ const nextCellRelativePos = map$12.nextCell(currentCellRelativePos, "horiz", effectiveDir);
213720
+ if (nextCellRelativePos == null)
213721
+ return null;
213722
+ const nextCellAbsolutePos = context.tableStart + nextCellRelativePos;
213723
+ if (expandSelection)
213724
+ return CellSelection.create(state.doc, context.cellStart, nextCellAbsolutePos);
213725
+ const nextCellNode = state.doc.nodeAt(nextCellAbsolutePos);
213726
+ if (!nextCellNode)
213727
+ return null;
213728
+ const targetPos = effectiveDir > 0 ? findFirstTextPosInNode(nextCellNode, nextCellAbsolutePos) : findLastTextPosInNode(nextCellNode, nextCellAbsolutePos);
213729
+ if (targetPos != null)
213730
+ return TextSelection.create(state.doc, targetPos);
213731
+ return findSelectionNearBoundary(state, nextCellAbsolutePos, effectiveDir);
213694
213732
  }
213695
213733
  function getAdjacentTableEntrySelection(state, dir) {
213696
213734
  const selection = state.selection;
@@ -213707,13 +213745,14 @@ function getAdjacentTableEntrySelection(state, dir) {
213707
213745
  const adjacentNode = dir > 0 ? $boundary.nodeAfter : $boundary.nodeBefore;
213708
213746
  if (!adjacentNode || adjacentNode.type.spec.tableRole !== "table")
213709
213747
  return null;
213710
- if (dir > 0) {
213711
- const targetPos$1 = findFirstTextPosInNode(adjacentNode, boundaryPos);
213748
+ const effectiveDir = isRtlTable(adjacentNode) ? -dir : dir;
213749
+ const tablePos = dir > 0 ? boundaryPos : boundaryPos - adjacentNode.nodeSize;
213750
+ if (effectiveDir > 0) {
213751
+ const targetPos$1 = findFirstTextPosInNode(adjacentNode, tablePos);
213712
213752
  if (targetPos$1 != null)
213713
213753
  return TextSelection.create(state.doc, targetPos$1);
213714
- return findSelectionNearBoundary(state, boundaryPos, 1);
213754
+ return findSelectionNearBoundary(state, tablePos, 1);
213715
213755
  }
213716
- const tablePos = boundaryPos - adjacentNode.nodeSize;
213717
213756
  const targetPos = findLastTextPosInNode(adjacentNode, tablePos);
213718
213757
  if (targetPos != null)
213719
213758
  return TextSelection.create(state.doc, targetPos);
@@ -213725,7 +213764,7 @@ function createTableBoundaryNavigationPlugin() {
213725
213764
  props: { handleKeyDown(view, event) {
213726
213765
  if (event.defaultPrevented)
213727
213766
  return false;
213728
- if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey)
213767
+ if (event.altKey || event.ctrlKey || event.metaKey)
213729
213768
  return false;
213730
213769
  if ((event.key === "Backspace" || event.key === "Delete") && isInProtectedTrailingTableParagraph(view.state)) {
213731
213770
  event.preventDefault();
@@ -213734,7 +213773,14 @@ function createTableBoundaryNavigationPlugin() {
213734
213773
  const dir = event.key === "ArrowRight" ? 1 : event.key === "ArrowLeft" ? -1 : 0;
213735
213774
  if (!dir)
213736
213775
  return false;
213737
- const nextSelection = getTableBoundaryExitSelection(view.state, dir) ?? getAdjacentTableEntrySelection(view.state, dir);
213776
+ const context = getTableContext(view.state.selection.$head);
213777
+ const allowShiftInRtlTable = Boolean(event.shiftKey && context && isRtlTable(context.table));
213778
+ if (event.shiftKey && !allowShiftInRtlTable)
213779
+ return false;
213780
+ let nextSelection = getIntraTableArrowSelection(view.state, dir, event.shiftKey);
213781
+ if (!nextSelection && event.shiftKey)
213782
+ return false;
213783
+ nextSelection = nextSelection ?? getTableBoundaryExitSelection(view.state, dir) ?? getAdjacentTableEntrySelection(view.state, dir);
213738
213784
  if (!nextSelection)
213739
213785
  return false;
213740
213786
  view.dispatch(view.state.tr.setSelection(nextSelection).scrollIntoView());
@@ -255296,18 +255342,28 @@ function resolveRenderedTableWidth(columnWidth, measuredWidth, attrs) {
255296
255342
  }
255297
255343
  function resolveTableFrame(baseX, columnWidth, tableWidth, attrs) {
255298
255344
  const width = resolveRenderedTableWidth(columnWidth, tableWidth, attrs);
255299
- const justification = typeof attrs?.justification === "string" ? attrs.justification : undefined;
255300
- if (justification === "center")
255345
+ const explicitJustification = typeof attrs?.justification === "string" ? attrs.justification : undefined;
255346
+ const isRtlTable$1 = attrs?.tableProperties?.rightToLeft === true;
255347
+ const effectiveJustification = explicitJustification ?? (isRtlTable$1 ? "end" : undefined);
255348
+ const tableIndent = getTableIndentWidth(attrs);
255349
+ if (effectiveJustification === "center")
255301
255350
  return {
255302
255351
  x: baseX + (columnWidth - width) / 2,
255303
255352
  width
255304
255353
  };
255305
- if (justification === "right" || justification === "end")
255354
+ if (effectiveJustification === "right" || effectiveJustification === "end") {
255355
+ const rightAlignedX = baseX + (columnWidth - width);
255356
+ if (explicitJustification == null && isRtlTable$1 && tableIndent !== 0)
255357
+ return {
255358
+ x: rightAlignedX - tableIndent,
255359
+ width
255360
+ };
255306
255361
  return {
255307
- x: baseX + (columnWidth - width),
255362
+ x: rightAlignedX,
255308
255363
  width
255309
255364
  };
255310
- return applyTableIndent(baseX, width, getTableIndentWidth(attrs), columnWidth);
255365
+ }
255366
+ return applyTableIndent(baseX, width, tableIndent, columnWidth);
255311
255367
  }
255312
255368
  function calculateColumnMinWidth(measuredWidth) {
255313
255369
  if (!Number.isFinite(measuredWidth) || measuredWidth <= 0)
@@ -263678,30 +263734,61 @@ function isTableBorderValue(value) {
263678
263734
  function extractTableBorders(bordersInput, options) {
263679
263735
  if (!bordersInput || typeof bordersInput !== "object")
263680
263736
  return;
263681
- const sides = [
263737
+ const borders = {};
263738
+ const assignConverted = (side, raw) => {
263739
+ if (raw == null)
263740
+ return;
263741
+ if (isTableBorderValue(raw)) {
263742
+ borders[side] = raw;
263743
+ return;
263744
+ }
263745
+ const converted = convertTableBorderValue(raw, options);
263746
+ if (converted !== undefined)
263747
+ borders[side] = converted;
263748
+ };
263749
+ for (const side of [
263682
263750
  "top",
263683
263751
  "right",
263684
263752
  "bottom",
263685
263753
  "left",
263686
263754
  "insideH",
263687
263755
  "insideV"
263688
- ];
263756
+ ])
263757
+ assignConverted(side, bordersInput[side]);
263758
+ if (borders.left == null)
263759
+ assignConverted("left", bordersInput.start);
263760
+ if (borders.right == null)
263761
+ assignConverted("right", bordersInput.end);
263762
+ return Object.keys(borders).length > 0 ? borders : undefined;
263763
+ }
263764
+ function extractCellBorders(cellAttrs, _options) {
263765
+ if (!cellAttrs?.borders)
263766
+ return;
263767
+ const bordersData = cellAttrs.borders;
263689
263768
  const borders = {};
263690
- for (const side of sides) {
263691
- const raw = bordersInput[side];
263692
- if (raw == null)
263693
- continue;
263694
- if (isTableBorderValue(raw))
263695
- borders[side] = raw;
263696
- else {
263697
- const converted = convertTableBorderValue(raw, options);
263698
- if (converted !== undefined)
263699
- borders[side] = converted;
263700
- }
263769
+ for (const side of [
263770
+ "top",
263771
+ "right",
263772
+ "bottom",
263773
+ "left"
263774
+ ]) {
263775
+ const spec = convertBorderSpec(bordersData[side]);
263776
+ if (spec)
263777
+ borders[side] = spec;
263778
+ }
263779
+ if (borders.left == null) {
263780
+ const spec = convertBorderSpec(bordersData.start);
263781
+ if (spec)
263782
+ borders.left = spec;
263783
+ }
263784
+ if (borders.right == null) {
263785
+ const spec = convertBorderSpec(bordersData.end);
263786
+ if (spec)
263787
+ borders.right = spec;
263701
263788
  }
263702
263789
  return Object.keys(borders).length > 0 ? borders : undefined;
263703
263790
  }
263704
- function extractCellPadding(cellAttrs) {
263791
+ function extractCellPadding(cellAttrs, _options) {
263705
263792
  const cellMargins = cellAttrs?.cellMargins;
263706
263793
  if (!cellMargins || typeof cellMargins !== "object")
263707
263794
  return;
@@ -263715,6 +263802,12 @@ function extractCellPadding(cellAttrs) {
263715
263802
  padding.bottom = margins.bottom;
263716
263803
  if (typeof margins.left === "number")
263717
263804
  padding.left = margins.left;
263805
+ const marginStart = margins.marginStart;
263806
+ const marginEnd = margins.marginEnd;
263807
+ if (typeof marginStart === "number" && padding.left == null)
263808
+ padding.left = marginStart;
263809
+ if (typeof marginEnd === "number" && padding.right == null)
263810
+ padding.right = marginEnd;
263718
263811
  if (Object.keys(padding).length === 0)
263719
263812
  return;
263720
263813
  return normalizeCellPaddingTopBottom(padding);
@@ -265539,7 +265632,11 @@ function tableNodeToBlock(node3, { nextBlockId, positions, storyKey, trackedChan
265539
265632
  };
265540
265633
  };
265541
265634
  const borderSource = getBorderSource();
265542
- const tableBorders = borderSource ? extractTableBorders(borderSource.borders, { unit: borderSource.unit }) : undefined;
265635
+ const isRtlTable$1 = tablePropertiesForCascade?.rightToLeft === true;
265636
+ const tableBorders = borderSource ? extractTableBorders(borderSource.borders, {
265637
+ unit: borderSource.unit,
265638
+ isRtl: isRtlTable$1
265639
+ }) : undefined;
265543
265640
  if (tableBorders)
265544
265641
  tableAttrs.borders = tableBorders;
265545
265642
  if (node3.attrs?.borderCollapse)
@@ -290195,6 +290292,7 @@ menclose::after {
290195
290292
  min: boundary.minWidth,
290196
290293
  r: boundary.resizable ? 1 : 0
290197
290294
  })),
290295
+ rtl: isRtl,
290198
290296
  segments: boundarySegments.map((segs, colIndex) => segs.map((seg) => ({
290199
290297
  c: colIndex,
290200
290298
  y: seg.y + contentTop,
@@ -290213,7 +290311,7 @@ menclose::after {
290213
290311
  }
290214
290312
  if (block.id)
290215
290313
  container.setAttribute("data-sd-block-id", block.id);
290216
- if ((block.attrs?.borderCollapse ?? (block.attrs?.cellSpacing != null ? "separate" : "collapse")) === "separate" && block.attrs?.cellSpacing && tableBorders) {
290314
+ if ((block.attrs?.borderCollapse ?? (block.attrs?.cellSpacing != null ? "separate" : "collapse")) === "separate" && tableBorders) {
290217
290315
  applyBorder(container, "Top", borderValueToSpec(tableBorders.top));
290218
290316
  applyBorder(container, "Right", borderValueToSpec(isRtl ? tableBorders.left : tableBorders.right));
290219
290317
  applyBorder(container, "Bottom", borderValueToSpec(tableBorders.bottom));
@@ -296942,10 +297040,11 @@ menclose::after {
296942
297040
  }, EMPTY_CHART_DATA, hydrateTableStyleAttrs = (tableNode, context, effectiveStyleId) => {
296943
297041
  const hydration = {};
296944
297042
  const tableProps = tableNode.attrs?.tableProperties ?? null;
297043
+ const isRtlTable$1 = tableProps?.rightToLeft === true;
296945
297044
  let inlineBorders;
296946
297045
  let inlinePadding;
296947
297046
  if (tableProps) {
296948
- const padding = convertCellMarginsToPx(tableProps.cellMargins);
297047
+ const padding = convertCellMarginsToPx(tableProps.cellMargins, isRtlTable$1);
296949
297048
  if (padding)
296950
297049
  inlinePadding = normalizeCellPaddingTopBottom(padding);
296951
297050
  if (tableProps.borders && typeof tableProps.borders === "object")
@@ -296976,7 +297075,7 @@ menclose::after {
296976
297075
  } else if (inlineBorders)
296977
297076
  hydration.borders = inlineBorders;
296978
297077
  if (resolved.cellMargins) {
296979
- const stylePadding = convertCellMarginsToPx(resolved.cellMargins);
297078
+ const stylePadding = convertCellMarginsToPx(resolved.cellMargins, isRtlTable$1);
296980
297079
  if (stylePadding) {
296981
297080
  const normalizedStylePadding = normalizeCellPaddingTopBottom(stylePadding);
296982
297081
  hydration.cellPadding = inlinePadding ? {
@@ -297022,7 +297121,9 @@ menclose::after {
297022
297121
  "left",
297023
297122
  "right",
297024
297123
  "insideH",
297025
- "insideV"
297124
+ "insideV",
297125
+ "start",
297126
+ "end"
297026
297127
  ];
297027
297128
  const result = {};
297028
297129
  for (const side of sides) {
@@ -297040,7 +297141,7 @@ menclose::after {
297040
297141
  ...border,
297041
297142
  size: size$1
297042
297143
  } : border;
297043
- }, convertCellMarginsToPx = (margins) => {
297144
+ }, convertCellMarginsToPx = (margins, isRtlTable$1 = false) => {
297044
297145
  if (!margins || typeof margins !== "object")
297045
297146
  return;
297046
297147
  const spacing = {};
@@ -297053,8 +297154,8 @@ menclose::after {
297053
297154
  marginBottom: "bottom",
297054
297155
  marginLeft: "left",
297055
297156
  marginRight: "right",
297056
- marginStart: "left",
297057
- marginEnd: "right"
297157
+ marginStart: isRtlTable$1 ? "right" : "left",
297158
+ marginEnd: isRtlTable$1 ? "left" : "right"
297058
297159
  };
297059
297160
  Object.entries(margins).forEach(([key2, value]) => {
297060
297161
  const side = keyMap[key2];
@@ -297347,6 +297448,7 @@ menclose::after {
297347
297448
  return null;
297348
297449
  const cellAttrs = {};
297349
297450
  if (resolvedTcProps?.borders && typeof resolvedTcProps.borders === "object") {
297451
+ const resolvedBordersData = resolvedTcProps.borders;
297350
297452
  const resolvedBorders = {};
297351
297453
  for (const side of [
297352
297454
  "top",
@@ -297354,36 +297456,46 @@ menclose::after {
297354
297456
  "bottom",
297355
297457
  "left"
297356
297458
  ]) {
297357
- const spec = convertResolvedCellBorder(resolvedTcProps.borders[side]);
297459
+ const spec = convertResolvedCellBorder(resolvedBordersData[side]);
297358
297460
  if (spec)
297359
297461
  resolvedBorders[side] = spec;
297360
297462
  }
297463
+ if (resolvedBorders.left == null) {
297464
+ const spec = convertResolvedCellBorder(resolvedBordersData.start);
297465
+ if (spec)
297466
+ resolvedBorders.left = spec;
297467
+ }
297468
+ if (resolvedBorders.right == null) {
297469
+ const spec = convertResolvedCellBorder(resolvedBordersData.end);
297470
+ if (spec)
297471
+ resolvedBorders.right = spec;
297472
+ }
297361
297473
  if (Object.keys(resolvedBorders).length > 0)
297362
297474
  cellAttrs.borders = resolvedBorders;
297363
297475
  }
297364
297476
  if (!cellAttrs.borders && cellNode.attrs?.borders && typeof cellNode.attrs.borders === "object") {
297365
297477
  const legacy = cellNode.attrs.borders;
297366
- const fallback = {};
297478
+ const filteredLegacyBorders = {};
297367
297479
  for (const side of [
297368
297480
  "top",
297369
297481
  "right",
297370
297482
  "bottom",
297371
- "left"
297483
+ "left",
297484
+ "start",
297485
+ "end"
297372
297486
  ]) {
297373
297487
  const b$1 = legacy[side];
297374
- if (b$1 && b$1.val && typeof b$1.size === "number" && b$1.size > 0) {
297375
- const color2 = b$1.color ? b$1.color.startsWith("#") ? b$1.color : `#${b$1.color}` : "#000000";
297376
- fallback[side] = {
297377
- style: normalizeLegacyBorderStyle(b$1.val),
297378
- width: b$1.size,
297379
- color: color2
297488
+ if (b$1 && b$1.val && typeof b$1.size === "number" && b$1.size > 0)
297489
+ filteredLegacyBorders[side] = {
297490
+ ...b$1,
297491
+ val: normalizeLegacyBorderStyle(b$1.val)
297380
297492
  };
297381
- }
297382
297493
  }
297383
- if (Object.keys(fallback).length > 0)
297494
+ const fallback = extractCellBorders({ borders: filteredLegacyBorders }, { isRtl: tableProperties?.rightToLeft === true });
297495
+ if (fallback)
297384
297496
  cellAttrs.borders = fallback;
297385
297497
  }
297386
- const padding = extractCellPadding(cellNode.attrs ?? {}) ?? (defaultCellPadding ? { ...defaultCellPadding } : undefined);
297498
+ const padding = extractCellPadding(cellNode.attrs ?? {}, { isRtl: tableProperties?.rightToLeft === true }) ?? (defaultCellPadding ? { ...defaultCellPadding } : undefined);
297387
297499
  if (padding)
297388
297500
  cellAttrs.padding = padding;
297389
297501
  const verticalAlign = cellNode.attrs?.verticalAlign;
@@ -302529,7 +302641,7 @@ menclose::after {
302529
302641
  return;
302530
302642
  console.log(...args$1);
302531
302643
  }, HEADER_FOOTER_INIT_BUDGET_MS = 200, MAX_ZOOM_WARNING_THRESHOLD = 10, MAX_SELECTION_RECTS_PER_USER = 100, SEMANTIC_RESIZE_DEBOUNCE_MS = 120, MIN_SEMANTIC_CONTENT_WIDTH_PX = 1, GLOBAL_PERFORMANCE, PresentationEditor, ICONS, TEXTS, tableActionsOptions;
302532
- var init_src_VLFj9vqo_es = __esm(() => {
302644
+ var init_src_OZOxpRA7_es = __esm(() => {
302533
302645
  init_rolldown_runtime_Bg48TavK_es();
302534
302646
  init_SuperConverter_5Idv4fhC_es();
302535
302647
  init_jszip_C49i9kUs_es();
@@ -340621,7 +340733,7 @@ var init_zipper_BxRAi0_5_es = __esm(() => {
340621
340733
 
340622
340734
  // ../../packages/superdoc/dist/super-editor.es.js
340623
340735
  var init_super_editor_es = __esm(() => {
340624
- init_src_VLFj9vqo_es();
340736
+ init_src_OZOxpRA7_es();
340625
340737
  init_SuperConverter_5Idv4fhC_es();
340626
340738
  init_jszip_C49i9kUs_es();
340627
340739
  init_xml_js_CqGKpaft_es();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superdoc-dev/cli",
3
- "version": "0.8.0-next.101",
3
+ "version": "0.8.0-next.102",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "superdoc": "./dist/index.js"
@@ -24,9 +24,9 @@
24
24
  "@types/node": "22.19.2",
25
25
  "@types/ws": "^8.5.13",
26
26
  "typescript": "^5.9.2",
27
- "@superdoc/pm-adapter": "0.0.0",
28
27
  "@superdoc/document-api": "0.0.1",
29
28
  "@superdoc/super-editor": "0.0.1",
29
+ "@superdoc/pm-adapter": "0.0.0",
30
30
  "superdoc": "1.32.0"
31
31
  },
32
32
  "module": "src/index.ts",
@@ -34,11 +34,11 @@
34
34
  "access": "public"
35
35
  },
36
36
  "optionalDependencies": {
37
- "@superdoc-dev/cli-darwin-arm64": "0.8.0-next.101",
38
- "@superdoc-dev/cli-darwin-x64": "0.8.0-next.101",
39
- "@superdoc-dev/cli-linux-x64": "0.8.0-next.101",
40
- "@superdoc-dev/cli-linux-arm64": "0.8.0-next.101",
41
- "@superdoc-dev/cli-windows-x64": "0.8.0-next.101"
37
+ "@superdoc-dev/cli-darwin-x64": "0.8.0-next.102",
38
+ "@superdoc-dev/cli-linux-arm64": "0.8.0-next.102",
39
+ "@superdoc-dev/cli-linux-x64": "0.8.0-next.102",
40
+ "@superdoc-dev/cli-windows-x64": "0.8.0-next.102",
41
+ "@superdoc-dev/cli-darwin-arm64": "0.8.0-next.102"
42
42
  },
43
43
  "scripts": {
44
44
  "predev": "node scripts/ensure-superdoc-build.js",