@superdoc-dev/cli 0.5.0-next.61 → 0.5.0-next.63

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 +1033 -535
  2. package/package.json +8 -8
package/dist/index.js CHANGED
@@ -3101,7 +3101,7 @@ var init_operation_definitions = __esm(() => {
3101
3101
  "trackChanges.list": {
3102
3102
  memberPath: "trackChanges.list",
3103
3103
  description: "List all tracked changes in the document.",
3104
- expectedResult: "Returns a TrackChangesListResult with an array of tracked change entries and total count.",
3104
+ expectedResult: "Returns a TrackChangesListResult with tracked change entries, total count, and source Word revision IDs when available.",
3105
3105
  requiresDocumentContext: true,
3106
3106
  metadata: readOperation({
3107
3107
  idempotency: "idempotent",
@@ -3115,7 +3115,7 @@ var init_operation_definitions = __esm(() => {
3115
3115
  "trackChanges.get": {
3116
3116
  memberPath: "trackChanges.get",
3117
3117
  description: "Retrieve a single tracked change by ID.",
3118
- expectedResult: "Returns a TrackChangeInfo object with the change type, author, date, and affected content.",
3118
+ expectedResult: "Returns a TrackChangeInfo object with the change type, author, date, affected content, and source Word revision IDs when available.",
3119
3119
  requiresDocumentContext: true,
3120
3120
  metadata: readOperation({
3121
3121
  idempotency: "idempotent",
@@ -8244,7 +8244,7 @@ function buildInternalContractSchemas() {
8244
8244
  operations
8245
8245
  };
8246
8246
  }
8247
- var nodeTypeValues, blockNodeTypeValues, deletableBlockNodeTypeValues, inlineNodeTypeValues, knownTargetKindValues, SHARED_DEFS, rangeSchema, positionSchema, inlineAnchorSchema, targetKindSchema, textAddressSchema, textTargetSchema, blockNodeAddressSchema, deletableBlockNodeAddressSchema, tableAddressSchema, tableRowAddressSchema, tableCellAddressSchema, tableOrCellAddressSchema, paragraphAddressSchema, headingAddressSchema, listItemAddressSchema, paragraphTargetSchema, sectionAddressSchema, inlineNodeAddressSchema, nodeAddressSchema, commentAddressSchema, trackedChangeAddressSchema, entityAddressSchema, selectionTargetSchema, targetLocatorSchema, deleteBehaviorSchema, resolvedHandleSchema, pageInfoSchema, receiptSuccessSchema, textMutationRangeSchema, textMutationResolutionSchema, textMutationSuccessSchema, matchRunSchema, matchBlockSchema, storyLocatorSchema, trackChangeRefSchema, createParagraphSuccessSchema, createHeadingSuccessSchema, headingLevelSchema, listsInsertSuccessSchema, listsMutateItemSuccessSchema, listsExitSuccessSchema, nodeSummarySchema, nodeInfoSchema, matchContextSchema, unknownNodeDiagnosticSchema, textSelectorSchema, nodeSelectorSchema, selectorShorthandSchema, sdTextSelectorSchema, sdNodeSelectorSchema, sdSelectorSchema, sdReadOptionsSchema, sdFindInputSchema, sdNodeResultSchema, sdFindResultSchema, sdMutationResolutionSchema, sdMutationSuccessSchema, documentInfoCountsSchema, documentInfoOutlineItemSchema, documentInfoCapabilitiesSchema, documentStyleInfoSchema, documentStylesSchema, documentDefaultsSchema, documentInfoSchema, listKindSchema, listInsertPositionSchema, listItemInfoSchema, listItemDomainItemSchema, listsListResultSchema, sectionBreakTypeSchema, sectionOrientationSchema, sectionVerticalAlignSchema, sectionDirectionSchema, sectionHeaderFooterKindSchema, sectionHeaderFooterVariantSchema, sectionLineNumberRestartSchema, sectionPageNumberFormatSchema, sectionRangeDomainSchema, sectionPageMarginsSchema, sectionHeaderFooterMarginsSchema, sectionPageSetupSchema, sectionColumnsSchema, sectionLineNumberingSchema, sectionPageNumberingSchema, sectionHeaderFooterRefsSchema, sectionBorderSpecSchema, sectionPageBordersSchema, sectionInfoSchema, sectionResolvedHandleSchema, sectionDomainItemSchema, sectionsListResultSchema, sectionMutationSuccessSchema, documentMutationSuccessSchema, paragraphMutationTargetSchema, paragraphMutationSuccessSchema, createSectionBreakSuccessSchema, commentInfoSchema, commentDomainItemSchema, commentsListResultSchema, trackChangeInfoSchema, trackChangeDomainItemSchema, trackChangesListResultSchema, capabilityReasonCodeSchema, capabilityReasonsSchema, capabilityFlagSchema, operationRuntimeCapabilitySchema, operationCapabilitiesSchema, inlinePropertyCapabilitySchema, inlinePropertyCapabilitiesByKeySchema, formatCapabilitiesSchema, planEngineCapabilitiesSchema, capabilitiesOutputSchema, strictEmptyObjectSchema, tableBorderColorPattern = "^([0-9A-Fa-f]{6}|auto)$", tableBorderSpecSchema, nullableTableBorderSpecSchema, sdFragmentSchema, placementSchema, nestingPolicySchema, insertInputSchema, tableLocatorSchema, cellLocatorSchema, cellOrTableScopedCellLocatorSchema, tableOrCellLocatorSchema, mergeRangeLocatorSchema, tableCreateLocationSchema, tableMutationSuccessSchema, createTableSuccessSchema, tableMutationFailureCodes, tableMutationFailureSchema, tableMutationResultSchema, createTableResultSchema, historyActionSuccessSchema, historyActionFailureSchema, formatInlineAliasOperationSchemas, tocMutationFailureCodes, tocMutationFailureSchema, tocMutationSuccessSchema, tocEntryMutationFailureCodes, tocEntryMutationFailureSchema, tocEntryMutationSuccessSchema, hyperlinkTargetSchema, hyperlinkReadPropertiesSchema, hyperlinkDestinationSchema, hyperlinkSpecSchema, hyperlinkPatchSchema, hyperlinkDomainSchema, hyperlinkMutationSuccessSchema, hyperlinkMutationFailureCodes, hyperlinkMutationFailureSchema, hyperlinkInfoSchema, contentControlTargetSchema, contentControlMutationSuccessSchema, contentControlMutationFailureSchema, ccListResultSchema, ccInfoSchema, refListQuerySchema, discoveryOutputSchema, receiptFailureSchema, refFailureSchema, bookmarkAddressSchema, bookmarkMutation, footnoteAddressSchema, footnoteConfigScopeSchema, footnoteNumberingSchema, footnoteMutation, footnoteConfig, crossRefAddressSchema, crossRefTargetSchema, crossRefDisplaySchema, crossRefMutation, indexAddressSchema, indexEntryAddressSchema, indexConfigSchema, indexEntryDataSchema, indexEntryPatchSchema, indexMutation, indexEntryMutation, captionAddressSchema, captionMutation, captionConfig, fieldAddressSchema, fieldMutation, citationAddressSchema, citationSourceAddressSchema, bibliographyAddressSchema, citationMutation, citationSourceMutation, bibliographyMutation, citationPersonSchema, citationSourceFieldsSchema, tocCreateLocationSchema, authoritiesAddressSchema, authorityEntryAddressSchema, authoritiesConfigSchema, authorityEntryDataSchema, authorityEntryPatchSchema, authoritiesMutation, authorityEntryMutation, diffCoverageSchema, diffSummarySchema, diffSnapshotSchema, diffPayloadSchema, diffApplyResultSchema, operationSchemas;
8247
+ var nodeTypeValues, blockNodeTypeValues, deletableBlockNodeTypeValues, inlineNodeTypeValues, knownTargetKindValues, SHARED_DEFS, rangeSchema, positionSchema, inlineAnchorSchema, targetKindSchema, textAddressSchema, textTargetSchema, blockNodeAddressSchema, deletableBlockNodeAddressSchema, tableAddressSchema, tableRowAddressSchema, tableCellAddressSchema, tableOrCellAddressSchema, paragraphAddressSchema, headingAddressSchema, listItemAddressSchema, paragraphTargetSchema, sectionAddressSchema, inlineNodeAddressSchema, nodeAddressSchema, commentAddressSchema, trackedChangeAddressSchema, entityAddressSchema, selectionTargetSchema, targetLocatorSchema, deleteBehaviorSchema, resolvedHandleSchema, pageInfoSchema, receiptSuccessSchema, textMutationRangeSchema, textMutationResolutionSchema, textMutationSuccessSchema, matchRunSchema, matchBlockSchema, storyLocatorSchema, trackChangeRefSchema, createParagraphSuccessSchema, createHeadingSuccessSchema, headingLevelSchema, listsInsertSuccessSchema, listsMutateItemSuccessSchema, listsExitSuccessSchema, nodeSummarySchema, nodeInfoSchema, matchContextSchema, unknownNodeDiagnosticSchema, textSelectorSchema, nodeSelectorSchema, selectorShorthandSchema, sdTextSelectorSchema, sdNodeSelectorSchema, sdSelectorSchema, sdReadOptionsSchema, sdFindInputSchema, sdNodeResultSchema, sdFindResultSchema, sdMutationResolutionSchema, sdMutationSuccessSchema, documentInfoCountsSchema, documentInfoOutlineItemSchema, documentInfoCapabilitiesSchema, documentStyleInfoSchema, documentStylesSchema, documentDefaultsSchema, documentInfoSchema, listKindSchema, listInsertPositionSchema, listItemInfoSchema, listItemDomainItemSchema, listsListResultSchema, sectionBreakTypeSchema, sectionOrientationSchema, sectionVerticalAlignSchema, sectionDirectionSchema, sectionHeaderFooterKindSchema, sectionHeaderFooterVariantSchema, sectionLineNumberRestartSchema, sectionPageNumberFormatSchema, sectionRangeDomainSchema, sectionPageMarginsSchema, sectionHeaderFooterMarginsSchema, sectionPageSetupSchema, sectionColumnsSchema, sectionLineNumberingSchema, sectionPageNumberingSchema, sectionHeaderFooterRefsSchema, sectionBorderSpecSchema, sectionPageBordersSchema, sectionInfoSchema, sectionResolvedHandleSchema, sectionDomainItemSchema, sectionsListResultSchema, sectionMutationSuccessSchema, documentMutationSuccessSchema, paragraphMutationTargetSchema, paragraphMutationSuccessSchema, createSectionBreakSuccessSchema, commentInfoSchema, commentDomainItemSchema, commentsListResultSchema, trackChangeWordRevisionIdsSchema, trackChangeInfoSchema, trackChangeDomainItemSchema, trackChangesListResultSchema, capabilityReasonCodeSchema, capabilityReasonsSchema, capabilityFlagSchema, operationRuntimeCapabilitySchema, operationCapabilitiesSchema, inlinePropertyCapabilitySchema, inlinePropertyCapabilitiesByKeySchema, formatCapabilitiesSchema, planEngineCapabilitiesSchema, capabilitiesOutputSchema, strictEmptyObjectSchema, tableBorderColorPattern = "^([0-9A-Fa-f]{6}|auto)$", tableBorderSpecSchema, nullableTableBorderSpecSchema, sdFragmentSchema, placementSchema, nestingPolicySchema, insertInputSchema, tableLocatorSchema, cellLocatorSchema, cellOrTableScopedCellLocatorSchema, tableOrCellLocatorSchema, mergeRangeLocatorSchema, tableCreateLocationSchema, tableMutationSuccessSchema, createTableSuccessSchema, tableMutationFailureCodes, tableMutationFailureSchema, tableMutationResultSchema, createTableResultSchema, historyActionSuccessSchema, historyActionFailureSchema, formatInlineAliasOperationSchemas, tocMutationFailureCodes, tocMutationFailureSchema, tocMutationSuccessSchema, tocEntryMutationFailureCodes, tocEntryMutationFailureSchema, tocEntryMutationSuccessSchema, hyperlinkTargetSchema, hyperlinkReadPropertiesSchema, hyperlinkDestinationSchema, hyperlinkSpecSchema, hyperlinkPatchSchema, hyperlinkDomainSchema, hyperlinkMutationSuccessSchema, hyperlinkMutationFailureCodes, hyperlinkMutationFailureSchema, hyperlinkInfoSchema, contentControlTargetSchema, contentControlMutationSuccessSchema, contentControlMutationFailureSchema, ccListResultSchema, ccInfoSchema, refListQuerySchema, discoveryOutputSchema, receiptFailureSchema, refFailureSchema, bookmarkAddressSchema, bookmarkMutation, footnoteAddressSchema, footnoteConfigScopeSchema, footnoteNumberingSchema, footnoteMutation, footnoteConfig, crossRefAddressSchema, crossRefTargetSchema, crossRefDisplaySchema, crossRefMutation, indexAddressSchema, indexEntryAddressSchema, indexConfigSchema, indexEntryDataSchema, indexEntryPatchSchema, indexMutation, indexEntryMutation, captionAddressSchema, captionMutation, captionConfig, fieldAddressSchema, fieldMutation, citationAddressSchema, citationSourceAddressSchema, bibliographyAddressSchema, citationMutation, citationSourceMutation, bibliographyMutation, citationPersonSchema, citationSourceFieldsSchema, tocCreateLocationSchema, authoritiesAddressSchema, authorityEntryAddressSchema, authoritiesConfigSchema, authorityEntryDataSchema, authorityEntryPatchSchema, authoritiesMutation, authorityEntryMutation, diffCoverageSchema, diffSummarySchema, diffSnapshotSchema, diffPayloadSchema, diffApplyResultSchema, operationSchemas;
8248
8248
  var init_schemas = __esm(() => {
8249
8249
  init_command_catalog();
8250
8250
  init_types2();
@@ -8958,10 +8958,16 @@ var init_schemas = __esm(() => {
8958
8958
  creatorEmail: { type: "string" }
8959
8959
  }, ["address", "status"]);
8960
8960
  commentsListResultSchema = discoveryResultSchema(commentDomainItemSchema);
8961
+ trackChangeWordRevisionIdsSchema = objectSchema({
8962
+ insert: { type: "string" },
8963
+ delete: { type: "string" },
8964
+ format: { type: "string" }
8965
+ });
8961
8966
  trackChangeInfoSchema = objectSchema({
8962
8967
  address: trackedChangeAddressSchema,
8963
8968
  id: { type: "string" },
8964
8969
  type: { enum: ["insert", "delete", "format"] },
8970
+ wordRevisionIds: trackChangeWordRevisionIdsSchema,
8965
8971
  author: { type: "string" },
8966
8972
  authorEmail: { type: "string" },
8967
8973
  authorImage: { type: "string" },
@@ -8971,6 +8977,7 @@ var init_schemas = __esm(() => {
8971
8977
  trackChangeDomainItemSchema = discoveryItemSchema({
8972
8978
  address: trackedChangeAddressSchema,
8973
8979
  type: { enum: ["insert", "delete", "format"] },
8980
+ wordRevisionIds: trackChangeWordRevisionIdsSchema,
8974
8981
  author: { type: "string" },
8975
8982
  authorEmail: { type: "string" },
8976
8983
  authorImage: { type: "string" },
@@ -27924,7 +27931,7 @@ var init_y_websocket = __esm(() => {
27924
27931
  };
27925
27932
  });
27926
27933
 
27927
- // ../../node_modules/.pnpm/@liveblocks+core@3.15.5_@types+json-schema@7.0.15/node_modules/@liveblocks/core/dist/index.js
27934
+ // ../../node_modules/.pnpm/@liveblocks+core@3.17.0_@types+json-schema@7.0.15/node_modules/@liveblocks/core/dist/index.js
27928
27935
  function error(msg) {
27929
27936
  if (false) {} else {
27930
27937
  throw new Error(msg);
@@ -31280,6 +31287,108 @@ function HACK_addIntentAndDeletedIdToOperation(ops, deletedId) {
31280
31287
  }
31281
31288
  });
31282
31289
  }
31290
+ function deepLiveify(value, config) {
31291
+ if (Array.isArray(value)) {
31292
+ return new LiveList(value.map((v) => deepLiveify(v, config)));
31293
+ } else if (isPlainObject(value)) {
31294
+ const init = {};
31295
+ const locals = {};
31296
+ for (const key in value) {
31297
+ const val = value[key];
31298
+ if (val === undefined) {
31299
+ continue;
31300
+ }
31301
+ const subConfig = isPlainObject(config) ? config[key] : config;
31302
+ if (subConfig === false) {
31303
+ locals[key] = val;
31304
+ } else if (subConfig === "atomic") {
31305
+ init[key] = val;
31306
+ } else {
31307
+ init[key] = deepLiveify(val, subConfig);
31308
+ }
31309
+ }
31310
+ const lo = new LiveObject(init);
31311
+ for (const key in locals) {
31312
+ lo.setLocal(key, locals[key]);
31313
+ }
31314
+ return lo;
31315
+ } else {
31316
+ return value;
31317
+ }
31318
+ }
31319
+ function reconcile(live, json, config) {
31320
+ if (isLiveObject(live) && isPlainObject(json)) {
31321
+ return reconcileLiveObject(live, json, config);
31322
+ } else if (isLiveList(live) && Array.isArray(json)) {
31323
+ return reconcileLiveList(live, json, config);
31324
+ } else if (isLiveMap(live) && isPlainObject(json)) {
31325
+ return reconcileLiveMap(live, config);
31326
+ } else {
31327
+ return deepLiveify(json, config);
31328
+ }
31329
+ }
31330
+ function reconcileLiveMap(_liveMap, _config) {
31331
+ throw new Error("Reconciling a LiveMap is not supported yet");
31332
+ }
31333
+ function reconcileLiveObject(liveObj, jsonObj, config) {
31334
+ const currentKeys = liveObj.keys();
31335
+ for (const key in jsonObj) {
31336
+ currentKeys.delete(key);
31337
+ const newVal = jsonObj[key];
31338
+ if (newVal === undefined) {
31339
+ liveObj.delete(key);
31340
+ continue;
31341
+ }
31342
+ const subConfig = isPlainObject(config) ? config[key] : config;
31343
+ if (subConfig === false) {
31344
+ liveObj.setLocal(key, newVal);
31345
+ } else if (subConfig === "atomic") {
31346
+ const curVal = liveObj.get(key);
31347
+ if (curVal !== newVal) {
31348
+ liveObj.set(key, newVal);
31349
+ }
31350
+ } else {
31351
+ const curVal = liveObj.get(key);
31352
+ if (curVal === undefined) {
31353
+ liveObj.set(key, deepLiveify(newVal, subConfig));
31354
+ } else if (isLiveStructure(curVal)) {
31355
+ const next = reconcile(curVal, newVal, subConfig);
31356
+ if (next !== curVal) {
31357
+ liveObj.set(key, next);
31358
+ }
31359
+ } else if (curVal !== newVal) {
31360
+ liveObj.set(key, deepLiveify(newVal, subConfig));
31361
+ }
31362
+ }
31363
+ }
31364
+ for (const key of currentKeys) {
31365
+ liveObj.delete(key);
31366
+ }
31367
+ return liveObj;
31368
+ }
31369
+ function reconcileLiveList(liveList, jsonArr, config) {
31370
+ const curLen = liveList.length;
31371
+ const newLen = jsonArr.length;
31372
+ for (let i = 0;i < Math.min(curLen, newLen); i++) {
31373
+ const curVal = liveList.get(i);
31374
+ const newVal = jsonArr[i];
31375
+ if (isLiveStructure(curVal)) {
31376
+ const next = reconcile(curVal, newVal, config);
31377
+ if (next !== curVal) {
31378
+ liveList.set(i, next);
31379
+ }
31380
+ } else if (curVal !== newVal) {
31381
+ liveList.set(i, deepLiveify(newVal, config));
31382
+ }
31383
+ }
31384
+ for (let i = curLen;i < newLen; i++) {
31385
+ liveList.push(deepLiveify(jsonArr[i], config));
31386
+ }
31387
+ for (let i = curLen - 1;i >= newLen; i--) {
31388
+ liveList.delete(i);
31389
+ }
31390
+ return liveList;
31391
+ }
31283
31392
  function creationOpToLiveNode(op) {
31284
31393
  return lsonToLiveNode(creationOpToLson(op));
31285
31394
  }
@@ -31584,6 +31693,8 @@ function defaultMessageFromContext(context) {
31584
31693
  return "Could not update notification settings";
31585
31694
  case "LARGE_MESSAGE_ERROR":
31586
31695
  return "Could not send large message";
31696
+ case "FEED_REQUEST_ERROR":
31697
+ return context.reason ?? "Feed request failed";
31587
31698
  default:
31588
31699
  return assertNever(context, "Unhandled case");
31589
31700
  }
@@ -31767,9 +31878,13 @@ function createRoom(options, config) {
31767
31878
  }
31768
31879
  context.activeBatch.reverseOps.pushLeft(reverse);
31769
31880
  } else {
31770
- addToUndoStack(reverse);
31771
- context.redoStack.length = 0;
31772
- dispatchOps(ops);
31881
+ if (reverse.length > 0) {
31882
+ addToUndoStack(reverse);
31883
+ }
31884
+ if (ops.length > 0) {
31885
+ context.redoStack.length = 0;
31886
+ dispatchOps(ops);
31887
+ }
31773
31888
  notify({ storageUpdates });
31774
31889
  }
31775
31890
  }
@@ -31790,6 +31905,7 @@ function createRoom(options, config) {
31790
31905
  storageStatus: makeEventSource(),
31791
31906
  ydoc: makeEventSource(),
31792
31907
  comments: makeEventSource(),
31908
+ feeds: makeEventSource(),
31793
31909
  roomWillDestroy: makeEventSource()
31794
31910
  };
31795
31911
  async function createTextMention(mentionId, mention) {
@@ -31866,17 +31982,18 @@ function createRoom(options, config) {
31866
31982
  context.root = LiveObject._fromItems(nodes, context.pool);
31867
31983
  }
31868
31984
  const canWrite = self2.get()?.canWrite ?? true;
31869
- const stackSizeBefore = context.undoStack.length;
31870
- for (const key in context.initialStorage) {
31871
- if (context.root.get(key) === undefined) {
31872
- if (canWrite) {
31873
- context.root.set(key, cloneLson(context.initialStorage[key]));
31874
- } else {
31875
- warn2(`Attempted to populate missing storage key '${key}', but current user has no write access`);
31985
+ const root = context.root;
31986
+ withoutHistory(() => {
31987
+ for (const key in context.initialStorage) {
31988
+ if (root.get(key) === undefined) {
31989
+ if (canWrite) {
31990
+ root.set(key, cloneLson(context.initialStorage[key]));
31991
+ } else {
31992
+ warn2(`Attempted to populate missing storage key '${key}', but current user has no write access`);
31993
+ }
31876
31994
  }
31877
31995
  }
31878
- }
31879
- context.undoStack.length = stackSizeBefore;
31996
+ });
31880
31997
  }
31881
31998
  function _addToRealUndoStack(frames) {
31882
31999
  if (context.undoStack.length >= 50) {
@@ -32160,6 +32277,9 @@ function createRoom(options, config) {
32160
32277
  notify(result.updates);
32161
32278
  sendMessages(messages);
32162
32279
  }
32280
+ function isFeedRequestFailedMsg(msg) {
32281
+ return msg.type === ServerMsgCode.FEED_REQUEST_FAILED;
32282
+ }
32163
32283
  function handleServerMessage(event) {
32164
32284
  if (typeof event.data !== "string") {
32165
32285
  return;
@@ -32259,6 +32379,92 @@ function createRoom(options, config) {
32259
32379
  eventHub.comments.notify(message);
32260
32380
  break;
32261
32381
  }
32382
+ case ServerMsgCode.FEEDS_LIST: {
32383
+ const feedsListMsg = message;
32384
+ const pending = pendingFeedsRequests.get(feedsListMsg.requestId);
32385
+ if (pending) {
32386
+ pending.resolve({
32387
+ feeds: feedsListMsg.feeds,
32388
+ nextCursor: feedsListMsg.nextCursor
32389
+ });
32390
+ pendingFeedsRequests.delete(feedsListMsg.requestId);
32391
+ }
32392
+ eventHub.feeds.notify(feedsListMsg);
32393
+ break;
32394
+ }
32395
+ case ServerMsgCode.FEEDS_ADDED: {
32396
+ const feedsAddedMsg = message;
32397
+ eventHub.feeds.notify(feedsAddedMsg);
32398
+ tryResolvePendingFeedMutationsFromFeedsEvent(feedsAddedMsg);
32399
+ break;
32400
+ }
32401
+ case ServerMsgCode.FEEDS_UPDATED: {
32402
+ const feedsUpdatedMsg = message;
32403
+ eventHub.feeds.notify(feedsUpdatedMsg);
32404
+ tryResolvePendingFeedMutationsFromFeedsEvent(feedsUpdatedMsg);
32405
+ break;
32406
+ }
32407
+ case ServerMsgCode.FEED_DELETED: {
32408
+ eventHub.feeds.notify(message);
32409
+ tryResolvePendingFeedMutationsFromFeedsEvent(message);
32410
+ break;
32411
+ }
32412
+ case ServerMsgCode.FEED_MESSAGES_LIST: {
32413
+ const feedMsgsListMsg = message;
32414
+ const pending = pendingFeedMessagesRequests.get(feedMsgsListMsg.requestId);
32415
+ if (pending) {
32416
+ pending.resolve({
32417
+ messages: feedMsgsListMsg.messages,
32418
+ nextCursor: feedMsgsListMsg.nextCursor
32419
+ });
32420
+ pendingFeedMessagesRequests.delete(feedMsgsListMsg.requestId);
32421
+ }
32422
+ eventHub.feeds.notify(feedMsgsListMsg);
32423
+ break;
32424
+ }
32425
+ case ServerMsgCode.FEED_MESSAGES_ADDED: {
32426
+ const feedMsgsAddedMsg = message;
32427
+ eventHub.feeds.notify(feedMsgsAddedMsg);
32428
+ tryResolvePendingFeedMutationsFromFeedsEvent(feedMsgsAddedMsg);
32429
+ break;
32430
+ }
32431
+ case ServerMsgCode.FEED_MESSAGES_UPDATED: {
32432
+ const feedMsgsUpdatedMsg = message;
32433
+ eventHub.feeds.notify(feedMsgsUpdatedMsg);
32434
+ tryResolvePendingFeedMutationsFromFeedsEvent(feedMsgsUpdatedMsg);
32435
+ break;
32436
+ }
32437
+ case ServerMsgCode.FEED_MESSAGES_DELETED: {
32438
+ eventHub.feeds.notify(message);
32439
+ tryResolvePendingFeedMutationsFromFeedsEvent(message);
32440
+ break;
32441
+ }
32442
+ case ServerMsgCode.FEED_REQUEST_FAILED: {
32443
+ if (!isFeedRequestFailedMsg(message)) {
32444
+ break;
32445
+ }
32446
+ const { requestId, code, reason } = message;
32447
+ const err = new LiveblocksError(reason ?? "Feed request failed", {
32448
+ type: "FEED_REQUEST_ERROR",
32449
+ roomId,
32450
+ requestId,
32451
+ code,
32452
+ reason
32453
+ });
32454
+ if (pendingFeedMutations.has(requestId)) {
32455
+ settleFeedMutation(requestId, "error", err);
32456
+ } else if (pendingFeedsRequests.has(requestId)) {
32457
+ const pending = pendingFeedsRequests.get(requestId);
32458
+ pendingFeedsRequests.delete(requestId);
32459
+ pending?.reject(err);
32460
+ } else if (pendingFeedMessagesRequests.has(requestId)) {
32461
+ const pending = pendingFeedMessagesRequests.get(requestId);
32462
+ pendingFeedMessagesRequests.delete(requestId);
32463
+ pending?.reject(err);
32464
+ }
32465
+ eventHub.feeds.notify(message);
32466
+ break;
32467
+ }
32262
32468
  case ServerMsgCode.STORAGE_STATE_V7:
32263
32469
  default:
32264
32470
  break;
@@ -32353,6 +32559,137 @@ function createRoom(options, config) {
32353
32559
  }
32354
32560
  let _getStorage$ = null;
32355
32561
  let _resolveStoragePromise = null;
32562
+ const pendingFeedsRequests = /* @__PURE__ */ new Map;
32563
+ const pendingFeedMessagesRequests = /* @__PURE__ */ new Map;
32564
+ const pendingFeedMutations = /* @__PURE__ */ new Map;
32565
+ const pendingAddMessageFifoByFeed = /* @__PURE__ */ new Map;
32566
+ function settleFeedMutation(requestId, outcome, error3) {
32567
+ const pending = pendingFeedMutations.get(requestId);
32568
+ if (pending === undefined) {
32569
+ return;
32570
+ }
32571
+ clearTimeout(pending.timeoutId);
32572
+ pendingFeedMutations.delete(requestId);
32573
+ if (pending.kind === "add-message" && !pending.expectedClientMessageId) {
32574
+ const q = pendingAddMessageFifoByFeed.get(pending.feedId);
32575
+ if (q !== undefined) {
32576
+ const idx = q.indexOf(requestId);
32577
+ if (idx >= 0) {
32578
+ q.splice(idx, 1);
32579
+ }
32580
+ if (q.length === 0) {
32581
+ pendingAddMessageFifoByFeed.delete(pending.feedId);
32582
+ }
32583
+ }
32584
+ }
32585
+ if (outcome === "ok") {
32586
+ pending.resolve();
32587
+ } else {
32588
+ pending.reject(error3 ?? new Error("Feed mutation failed"));
32589
+ }
32590
+ }
32591
+ function registerFeedMutation(requestId, kind, feedId, options2) {
32592
+ const { promise, resolve, reject } = Promise_withResolvers();
32593
+ const timeoutId = setTimeout(() => {
32594
+ if (pendingFeedMutations.has(requestId)) {
32595
+ settleFeedMutation(requestId, "error", new Error("Feed mutation timeout"));
32596
+ }
32597
+ }, FEEDS_TIMEOUT);
32598
+ pendingFeedMutations.set(requestId, {
32599
+ resolve,
32600
+ reject,
32601
+ timeoutId,
32602
+ kind,
32603
+ feedId,
32604
+ messageId: options2?.messageId,
32605
+ expectedClientMessageId: options2?.expectedClientMessageId
32606
+ });
32607
+ if (kind === "add-message" && options2?.expectedClientMessageId === undefined) {
32608
+ const q = pendingAddMessageFifoByFeed.get(feedId) ?? [];
32609
+ q.push(requestId);
32610
+ pendingAddMessageFifoByFeed.set(feedId, q);
32611
+ }
32612
+ return promise;
32613
+ }
32614
+ function tryResolvePendingFeedMutationsFromFeedsEvent(message) {
32615
+ switch (message.type) {
32616
+ case ServerMsgCode.FEEDS_ADDED: {
32617
+ for (const feed of message.feeds) {
32618
+ for (const [requestId, pending] of [...pendingFeedMutations]) {
32619
+ if (pending.kind === "add-feed" && pending.feedId === feed.feedId) {
32620
+ settleFeedMutation(requestId, "ok");
32621
+ break;
32622
+ }
32623
+ }
32624
+ }
32625
+ break;
32626
+ }
32627
+ case ServerMsgCode.FEEDS_UPDATED: {
32628
+ for (const feed of message.feeds) {
32629
+ for (const [requestId, pending] of [...pendingFeedMutations]) {
32630
+ if (pending.kind === "update-feed" && pending.feedId === feed.feedId) {
32631
+ settleFeedMutation(requestId, "ok");
32632
+ }
32633
+ }
32634
+ }
32635
+ break;
32636
+ }
32637
+ case ServerMsgCode.FEED_DELETED: {
32638
+ for (const [requestId, pending] of [...pendingFeedMutations]) {
32639
+ if (pending.kind === "delete-feed" && pending.feedId === message.feedId) {
32640
+ settleFeedMutation(requestId, "ok");
32641
+ break;
32642
+ }
32643
+ }
32644
+ break;
32645
+ }
32646
+ case ServerMsgCode.FEED_MESSAGES_ADDED: {
32647
+ for (const m of message.messages) {
32648
+ let matched = false;
32649
+ for (const [requestId, pending] of [...pendingFeedMutations]) {
32650
+ if (pending.kind === "add-message" && pending.feedId === message.feedId && pending.expectedClientMessageId === m.id) {
32651
+ settleFeedMutation(requestId, "ok");
32652
+ matched = true;
32653
+ break;
32654
+ }
32655
+ }
32656
+ if (!matched) {
32657
+ const q = pendingAddMessageFifoByFeed.get(message.feedId);
32658
+ const headId = q?.[0];
32659
+ if (headId !== undefined) {
32660
+ const pending = pendingFeedMutations.get(headId);
32661
+ if (pending?.kind === "add-message" && pending.expectedClientMessageId === undefined) {
32662
+ settleFeedMutation(headId, "ok");
32663
+ }
32664
+ }
32665
+ }
32666
+ }
32667
+ break;
32668
+ }
32669
+ case ServerMsgCode.FEED_MESSAGES_UPDATED: {
32670
+ for (const m of message.messages) {
32671
+ for (const [requestId, pending] of [...pendingFeedMutations]) {
32672
+ if (pending.kind === "update-message" && pending.feedId === message.feedId && pending.messageId === m.id) {
32673
+ settleFeedMutation(requestId, "ok");
32674
+ }
32675
+ }
32676
+ }
32677
+ break;
32678
+ }
32679
+ case ServerMsgCode.FEED_MESSAGES_DELETED: {
32680
+ for (const mid of message.messageIds) {
32681
+ for (const [requestId, pending] of [...pendingFeedMutations]) {
32682
+ if (pending.kind === "delete-message" && pending.feedId === message.feedId && pending.messageId === mid) {
32683
+ settleFeedMutation(requestId, "ok");
32684
+ }
32685
+ }
32686
+ }
32687
+ break;
32688
+ }
32689
+ default:
32690
+ break;
32691
+ }
32692
+ }
32356
32693
  function processInitialStorage(nodes) {
32357
32694
  const unacknowledgedOps = new Map(context.unacknowledgedOps);
32358
32695
  createOrUpdateRootFromMessage(nodes);
@@ -32423,6 +32760,138 @@ function createRoom(options, config) {
32423
32760
  }
32424
32761
  flushNowOrSoon();
32425
32762
  }
32763
+ async function fetchFeeds(options2) {
32764
+ const requestId = nanoid();
32765
+ const { promise, resolve, reject } = Promise_withResolvers();
32766
+ pendingFeedsRequests.set(requestId, { resolve, reject });
32767
+ const message = {
32768
+ type: ClientMsgCode.FETCH_FEEDS,
32769
+ requestId,
32770
+ cursor: options2?.cursor,
32771
+ since: options2?.since,
32772
+ limit: options2?.limit,
32773
+ metadata: options2?.metadata
32774
+ };
32775
+ context.buffer.messages.push(message);
32776
+ flushNowOrSoon();
32777
+ setTimeout(() => {
32778
+ if (pendingFeedsRequests.has(requestId)) {
32779
+ pendingFeedsRequests.delete(requestId);
32780
+ reject(new Error("Feeds fetch timeout"));
32781
+ }
32782
+ }, FEEDS_TIMEOUT);
32783
+ return promise;
32784
+ }
32785
+ async function fetchFeedMessages(feedId, options2) {
32786
+ const requestId = nanoid();
32787
+ const { promise, resolve, reject } = Promise_withResolvers();
32788
+ pendingFeedMessagesRequests.set(requestId, { resolve, reject });
32789
+ const message = {
32790
+ type: ClientMsgCode.FETCH_FEED_MESSAGES,
32791
+ requestId,
32792
+ feedId,
32793
+ cursor: options2?.cursor,
32794
+ since: options2?.since,
32795
+ limit: options2?.limit
32796
+ };
32797
+ context.buffer.messages.push(message);
32798
+ flushNowOrSoon();
32799
+ setTimeout(() => {
32800
+ if (pendingFeedMessagesRequests.has(requestId)) {
32801
+ pendingFeedMessagesRequests.delete(requestId);
32802
+ reject(new Error("Feed messages fetch timeout"));
32803
+ }
32804
+ }, FEEDS_TIMEOUT);
32805
+ return promise;
32806
+ }
32807
+ function addFeed(feedId, options2) {
32808
+ const requestId = nanoid();
32809
+ const promise = registerFeedMutation(requestId, "add-feed", feedId);
32810
+ const message = {
32811
+ type: ClientMsgCode.ADD_FEED,
32812
+ requestId,
32813
+ feedId,
32814
+ metadata: options2?.metadata,
32815
+ createdAt: options2?.createdAt
32816
+ };
32817
+ context.buffer.messages.push(message);
32818
+ flushNowOrSoon();
32819
+ return promise;
32820
+ }
32821
+ function updateFeed(feedId, metadata) {
32822
+ const requestId = nanoid();
32823
+ const promise = registerFeedMutation(requestId, "update-feed", feedId);
32824
+ const message = {
32825
+ type: ClientMsgCode.UPDATE_FEED,
32826
+ requestId,
32827
+ feedId,
32828
+ metadata
32829
+ };
32830
+ context.buffer.messages.push(message);
32831
+ flushNowOrSoon();
32832
+ return promise;
32833
+ }
32834
+ function deleteFeed(feedId) {
32835
+ const requestId = nanoid();
32836
+ const promise = registerFeedMutation(requestId, "delete-feed", feedId);
32837
+ const message = {
32838
+ type: ClientMsgCode.DELETE_FEED,
32839
+ requestId,
32840
+ feedId
32841
+ };
32842
+ context.buffer.messages.push(message);
32843
+ flushNowOrSoon();
32844
+ return promise;
32845
+ }
32846
+ function addFeedMessage(feedId, data, options2) {
32847
+ const requestId = nanoid();
32848
+ const promise = registerFeedMutation(requestId, "add-message", feedId, {
32849
+ expectedClientMessageId: options2?.id
32850
+ });
32851
+ const message = {
32852
+ type: ClientMsgCode.ADD_FEED_MESSAGE,
32853
+ requestId,
32854
+ feedId,
32855
+ data,
32856
+ id: options2?.id,
32857
+ createdAt: options2?.createdAt
32858
+ };
32859
+ context.buffer.messages.push(message);
32860
+ flushNowOrSoon();
32861
+ return promise;
32862
+ }
32863
+ function updateFeedMessage(feedId, messageId, data, options2) {
32864
+ const requestId = nanoid();
32865
+ const promise = registerFeedMutation(requestId, "update-message", feedId, {
32866
+ messageId
32867
+ });
32868
+ const message = {
32869
+ type: ClientMsgCode.UPDATE_FEED_MESSAGE,
32870
+ requestId,
32871
+ feedId,
32872
+ messageId,
32873
+ data,
32874
+ updatedAt: options2?.updatedAt
32875
+ };
32876
+ context.buffer.messages.push(message);
32877
+ flushNowOrSoon();
32878
+ return promise;
32879
+ }
32880
+ function deleteFeedMessage(feedId, messageId) {
32881
+ const requestId = nanoid();
32882
+ const promise = registerFeedMutation(requestId, "delete-message", feedId, {
32883
+ messageId
32884
+ });
32885
+ const message = {
32886
+ type: ClientMsgCode.DELETE_FEED_MESSAGE,
32887
+ requestId,
32888
+ feedId,
32889
+ messageId
32890
+ };
32891
+ context.buffer.messages.push(message);
32892
+ flushNowOrSoon();
32893
+ return promise;
32894
+ }
32426
32895
  function undo() {
32427
32896
  if (context.activeBatch) {
32428
32897
  throw new Error("undo is not allowed during a batch");
@@ -32475,7 +32944,8 @@ function createRoom(options, config) {
32475
32944
  presence: false,
32476
32945
  others: []
32477
32946
  },
32478
- reverseOps: new Deque
32947
+ reverseOps: new Deque,
32948
+ scheduleHistoryResume: false
32479
32949
  };
32480
32950
  try {
32481
32951
  returnValue = callback();
@@ -32485,6 +32955,9 @@ function createRoom(options, config) {
32485
32955
  if (currentBatch.reverseOps.length > 0) {
32486
32956
  addToUndoStack(Array.from(currentBatch.reverseOps));
32487
32957
  }
32958
+ if (currentBatch.scheduleHistoryResume) {
32959
+ commitPausedHistoryToUndoStack();
32960
+ }
32488
32961
  if (currentBatch.ops.length > 0) {
32489
32962
  context.redoStack.length = 0;
32490
32963
  }
@@ -32501,13 +32974,30 @@ function createRoom(options, config) {
32501
32974
  context.pausedHistory = new Deque;
32502
32975
  }
32503
32976
  }
32504
- function resumeHistory() {
32977
+ function commitPausedHistoryToUndoStack() {
32505
32978
  const frames = context.pausedHistory;
32506
32979
  context.pausedHistory = null;
32507
32980
  if (frames !== null && frames.length > 0) {
32508
32981
  _addToRealUndoStack(Array.from(frames));
32509
32982
  }
32510
32983
  }
32984
+ function resumeHistory() {
32985
+ if (context.activeBatch !== null) {
32986
+ context.activeBatch.scheduleHistoryResume = true;
32987
+ return;
32988
+ }
32989
+ commitPausedHistoryToUndoStack();
32990
+ }
32991
+ function withoutHistory(fn) {
32992
+ const undoBefore = context.undoStack.length;
32993
+ const redoBefore = context.redoStack.length;
32994
+ try {
32995
+ return fn();
32996
+ } finally {
32997
+ context.undoStack.length = undoBefore;
32998
+ context.redoStack.length = redoBefore;
32999
+ }
33000
+ }
32511
33001
  const syncSourceForStorage = config.createSyncSource();
32512
33002
  function getStorageStatus() {
32513
33003
  if (context.root === undefined) {
@@ -32560,6 +33050,7 @@ function createRoom(options, config) {
32560
33050
  storageStatus: eventHub.storageStatus.observable,
32561
33051
  ydoc: eventHub.ydoc.observable,
32562
33052
  comments: eventHub.comments.observable,
33053
+ feeds: eventHub.feeds.observable,
32563
33054
  roomWillDestroy: eventHub.roomWillDestroy.observable
32564
33055
  };
32565
33056
  async function getThreadsSince(options2) {
@@ -32750,11 +33241,13 @@ function createRoom(options, config) {
32750
33241
  attachmentUrlsStore: httpClient.getOrCreateAttachmentUrlsStore(roomId)
32751
33242
  },
32752
33243
  id: roomId,
32753
- subscribe: makeClassicSubscribeFn(roomId, events, config.errorEventSource),
33244
+ subscribe: makeClassicSubscribeFn(roomId, eventHub, config.errorEventSource),
32754
33245
  connect: () => managedSocket.connect(),
32755
33246
  reconnect: () => managedSocket.reconnect(),
32756
33247
  disconnect: () => managedSocket.disconnect(),
32757
33248
  destroy: () => {
33249
+ pendingFeedsRequests.forEach((request) => request.reject(new Error("Room destroyed")));
33250
+ pendingFeedMessagesRequests.forEach((request) => request.reject(new Error("Room destroyed")));
32758
33251
  const { roomWillDestroy, ...eventsExceptDestroy } = eventHub;
32759
33252
  for (const source of Object.values(eventsExceptDestroy)) {
32760
33253
  source.dispose();
@@ -32778,9 +33271,20 @@ function createRoom(options, config) {
32778
33271
  canRedo,
32779
33272
  clear,
32780
33273
  pause: pauseHistory,
32781
- resume: resumeHistory
33274
+ resume: resumeHistory,
33275
+ [kInternal]: {
33276
+ withoutHistory
33277
+ }
32782
33278
  },
32783
33279
  fetchYDoc,
33280
+ fetchFeeds,
33281
+ fetchFeedMessages,
33282
+ addFeed,
33283
+ updateFeed,
33284
+ deleteFeed,
33285
+ addFeedMessage,
33286
+ updateFeedMessage,
33287
+ deleteFeedMessage,
32784
33288
  getStorage,
32785
33289
  getStorageSnapshot,
32786
33290
  getStorageStatus,
@@ -33253,7 +33757,7 @@ function escapeMarkdown(value) {
33253
33757
  var __defProp2, __export2 = (target, all2) => {
33254
33758
  for (var name in all2)
33255
33759
  __defProp2(target, name, { get: all2[name], enumerable: true });
33256
- }, PKG_NAME = "@liveblocks/core", PKG_VERSION = "3.15.5", PKG_FORMAT = "esm", g, crossLinkedDocs = "https://liveblocks.io/docs/errors/cross-linked", dupesDocs = "https://liveblocks.io/docs/errors/dupes", SPACE = " ", freeze2, kSinks, kTrigger, signalsToTrigger = null, trackedReads = null, AbstractSignal, Signal, PatchableSignal, INITIAL, DerivedSignal, MutableSignal, SortedList, AiChatDB = class {
33760
+ }, PKG_NAME = "@liveblocks/core", PKG_VERSION = "3.17.0", PKG_FORMAT = "esm", g, crossLinkedDocs = "https://liveblocks.io/docs/errors/cross-linked", dupesDocs = "https://liveblocks.io/docs/errors/dupes", SPACE = " ", freeze2, kSinks, kTrigger, signalsToTrigger = null, trackedReads = null, AbstractSignal, Signal, PatchableSignal, INITIAL, DerivedSignal, MutableSignal, SortedList, AiChatDB = class {
33257
33761
  #byId;
33258
33762
  #chats;
33259
33763
  signal;
@@ -34365,6 +34869,9 @@ var __defProp2, __export2 = (target, all2) => {
34365
34869
  }
34366
34870
  return this.#cachedTreeNode;
34367
34871
  }
34872
+ immutableIs(value) {
34873
+ return this.#cachedImmutable !== undefined && this.#cachedImmutable === value;
34874
+ }
34368
34875
  toImmutable() {
34369
34876
  if (this.#cachedImmutable === undefined) {
34370
34877
  this.#cachedImmutable = this._toImmutable();
@@ -34464,7 +34971,7 @@ var __defProp2, __export2 = (target, all2) => {
34464
34971
  return this.#invalidateUser(connectionId);
34465
34972
  });
34466
34973
  }
34467
- }, LiveblocksError, MIN_THROTTLE = 16, MAX_THROTTLE = 1000, DEFAULT_THROTTLE = 100, MIN_BACKGROUND_KEEP_ALIVE_TIMEOUT = 15000, MIN_LOST_CONNECTION_TIMEOUT = 200, RECOMMENDED_MIN_LOST_CONNECTION_TIMEOUT = 1000, MAX_LOST_CONNECTION_TIMEOUT = 30000, DEFAULT_LOST_CONNECTION_TIMEOUT = 5000, RESOLVE_USERS_BATCH_DELAY = 50, RESOLVE_ROOMS_INFO_BATCH_DELAY = 50, RESOLVE_GROUPS_INFO_BATCH_DELAY = 50, htmlEscapables, htmlEscapablesRegex, HtmlSafeString = class {
34974
+ }, LiveblocksError, FEEDS_TIMEOUT = 5000, MIN_THROTTLE = 16, MAX_THROTTLE = 1000, DEFAULT_THROTTLE = 100, MIN_BACKGROUND_KEEP_ALIVE_TIMEOUT = 15000, MIN_LOST_CONNECTION_TIMEOUT = 200, RECOMMENDED_MIN_LOST_CONNECTION_TIMEOUT = 1000, MAX_LOST_CONNECTION_TIMEOUT = 30000, DEFAULT_LOST_CONNECTION_TIMEOUT = 5000, RESOLVE_USERS_BATCH_DELAY = 50, RESOLVE_ROOMS_INFO_BATCH_DELAY = 50, RESOLVE_GROUPS_INFO_BATCH_DELAY = 50, htmlEscapables, htmlEscapablesRegex, HtmlSafeString = class {
34468
34975
  #strings;
34469
34976
  #values;
34470
34977
  constructor(strings, values2) {
@@ -34953,6 +35460,15 @@ var init_dist = __esm(() => {
34953
35460
  COMMENT_REACTION_ADDED: 405,
34954
35461
  COMMENT_REACTION_REMOVED: 406,
34955
35462
  COMMENT_METADATA_UPDATED: 409,
35463
+ FEEDS_LIST: 500,
35464
+ FEEDS_ADDED: 501,
35465
+ FEEDS_UPDATED: 502,
35466
+ FEED_DELETED: 503,
35467
+ FEED_MESSAGES_LIST: 504,
35468
+ FEED_MESSAGES_ADDED: 505,
35469
+ FEED_MESSAGES_UPDATED: 506,
35470
+ FEED_MESSAGES_DELETED: 507,
35471
+ FEED_REQUEST_FAILED: 508,
34956
35472
  REJECT_STORAGE_OP: 299
34957
35473
  });
34958
35474
  BACKOFF_DELAYS = [250, 500, 1000, 2000, 4000, 8000, 1e4];
@@ -35411,7 +35927,8 @@ var init_dist = __esm(() => {
35411
35927
  };
35412
35928
  } else {
35413
35929
  if (indexOfItemWithSamePosition !== -1) {
35414
- nn(this.#items.removeAt(indexOfItemWithSamePosition));
35930
+ const displaced = nn(this.#items.removeAt(indexOfItemWithSamePosition));
35931
+ this.#implicitlyDeletedItems.add(displaced);
35415
35932
  }
35416
35933
  const { newItem, newIndex } = this.#createAttachItemAndSort(op, op.parentKey);
35417
35934
  return {
@@ -36292,7 +36809,8 @@ var init_dist = __esm(() => {
36292
36809
  };
36293
36810
  MAX_LIVE_OBJECT_SIZE = 128 * 1024;
36294
36811
  LiveObject = class _LiveObject extends AbstractCrdt {
36295
- #map;
36812
+ #synced;
36813
+ #local = /* @__PURE__ */ new Map;
36296
36814
  #unackedOpsByKey;
36297
36815
  static detectLargeObjects = false;
36298
36816
  static #buildRootAndParentToChildren(nodes) {
@@ -36330,7 +36848,7 @@ var init_dist = __esm(() => {
36330
36848
  value._setParentLink(this, key);
36331
36849
  }
36332
36850
  }
36333
- this.#map = new Map(Object.entries(o));
36851
+ this.#synced = new Map(Object.entries(o));
36334
36852
  }
36335
36853
  _toOps(parentId, parentKey) {
36336
36854
  if (this._id === undefined) {
@@ -36345,7 +36863,7 @@ var init_dist = __esm(() => {
36345
36863
  data: {}
36346
36864
  };
36347
36865
  ops.push(op);
36348
- for (const [key, value] of this.#map) {
36866
+ for (const [key, value] of this.#synced) {
36349
36867
  if (isLiveNode(value)) {
36350
36868
  for (const childOp of value._toOps(this._id, key)) {
36351
36869
  ops.push(childOp);
@@ -36372,14 +36890,14 @@ var init_dist = __esm(() => {
36372
36890
  if (isLiveStructure(child)) {
36373
36891
  child._setParentLink(liveObj, crdt.parentKey);
36374
36892
  }
36375
- liveObj.#map.set(crdt.parentKey, child);
36893
+ liveObj.#synced.set(crdt.parentKey, child);
36376
36894
  liveObj.invalidate();
36377
36895
  }
36378
36896
  return liveObj;
36379
36897
  }
36380
36898
  _attach(id2, pool) {
36381
36899
  super._attach(id2, pool);
36382
- for (const [_key, value] of this.#map) {
36900
+ for (const [_key, value] of this.#synced) {
36383
36901
  if (isLiveNode(value)) {
36384
36902
  value._attach(pool.generateId(), pool);
36385
36903
  }
@@ -36406,7 +36924,7 @@ var init_dist = __esm(() => {
36406
36924
  return { modified: false };
36407
36925
  }
36408
36926
  const thisId = nn(this._id);
36409
- const previousValue = this.#map.get(key);
36927
+ const previousValue = this.#synced.get(key);
36410
36928
  let reverse;
36411
36929
  if (isLiveNode(previousValue)) {
36412
36930
  reverse = previousValue._toOps(thisId, key);
@@ -36422,7 +36940,8 @@ var init_dist = __esm(() => {
36422
36940
  }
36423
36941
  ];
36424
36942
  }
36425
- this.#map.set(key, child);
36943
+ this.#local.delete(key);
36944
+ this.#synced.set(key, child);
36426
36945
  this.invalidate();
36427
36946
  if (isLiveStructure(child)) {
36428
36947
  child._setParentLink(this, key);
@@ -36442,9 +36961,9 @@ var init_dist = __esm(() => {
36442
36961
  const id2 = nn(this._id);
36443
36962
  const parentKey = nn(child._parentKey);
36444
36963
  const reverse = child._toOps(id2, parentKey);
36445
- for (const [key, value] of this.#map) {
36964
+ for (const [key, value] of this.#synced) {
36446
36965
  if (value === child) {
36447
- this.#map.delete(key);
36966
+ this.#synced.delete(key);
36448
36967
  this.invalidate();
36449
36968
  }
36450
36969
  }
@@ -36462,7 +36981,7 @@ var init_dist = __esm(() => {
36462
36981
  }
36463
36982
  _detach() {
36464
36983
  super._detach();
36465
- for (const value of this.#map.values()) {
36984
+ for (const value of this.#synced.values()) {
36466
36985
  if (isLiveNode(value)) {
36467
36986
  value._detach();
36468
36987
  }
@@ -36478,7 +36997,7 @@ var init_dist = __esm(() => {
36478
36997
  }
36479
36998
  _serialize() {
36480
36999
  const data = {};
36481
- for (const [key, value] of this.#map) {
37000
+ for (const [key, value] of this.#synced) {
36482
37001
  if (!isLiveNode(value)) {
36483
37002
  data[key] = value;
36484
37003
  }
@@ -36507,7 +37026,7 @@ var init_dist = __esm(() => {
36507
37026
  data: {}
36508
37027
  };
36509
37028
  for (const key in op.data) {
36510
- const oldValue = this.#map.get(key);
37029
+ const oldValue = this.#synced.get(key);
36511
37030
  if (isLiveNode(oldValue)) {
36512
37031
  for (const childOp of oldValue._toOps(id2, key)) {
36513
37032
  reverse.push(childOp);
@@ -36535,13 +37054,14 @@ var init_dist = __esm(() => {
36535
37054
  } else {
36536
37055
  continue;
36537
37056
  }
36538
- const oldValue = this.#map.get(key);
37057
+ const oldValue = this.#synced.get(key);
36539
37058
  if (isLiveNode(oldValue)) {
36540
37059
  oldValue._detach();
36541
37060
  }
36542
37061
  isModified = true;
36543
37062
  updateDelta[key] = { type: "update" };
36544
- this.#map.set(key, value);
37063
+ this.#local.delete(key);
37064
+ this.#synced.set(key, value);
36545
37065
  this.invalidate();
36546
37066
  }
36547
37067
  if (Object.keys(reverseUpdate.data).length !== 0) {
@@ -36558,7 +37078,7 @@ var init_dist = __esm(() => {
36558
37078
  }
36559
37079
  #applyDeleteObjectKey(op, isLocal) {
36560
37080
  const key = op.key;
36561
- const oldValue = this.#map.get(key);
37081
+ const oldValue = this.#synced.get(key);
36562
37082
  if (oldValue === undefined) {
36563
37083
  return { modified: false };
36564
37084
  }
@@ -36579,7 +37099,8 @@ var init_dist = __esm(() => {
36579
37099
  }
36580
37100
  ];
36581
37101
  }
36582
- this.#map.delete(key);
37102
+ this.#local.delete(key);
37103
+ this.#synced.delete(key);
36583
37104
  this.invalidate();
36584
37105
  return {
36585
37106
  modified: {
@@ -36592,45 +37113,105 @@ var init_dist = __esm(() => {
36592
37113
  reverse
36593
37114
  };
36594
37115
  }
37116
+ keys() {
37117
+ const result = new Set(this.#synced.keys());
37118
+ for (const key of this.#local.keys()) {
37119
+ result.add(key);
37120
+ }
37121
+ return result;
37122
+ }
36595
37123
  toObject() {
36596
- return Object.fromEntries(this.#map);
37124
+ const result = Object.fromEntries(this.#synced);
37125
+ for (const [key, value] of this.#local) {
37126
+ result[key] = value;
37127
+ }
37128
+ return result;
36597
37129
  }
36598
37130
  set(key, value) {
36599
- this._pool?.assertStorageIsWritable();
36600
37131
  this.update({ [key]: value });
36601
37132
  }
37133
+ setLocal(key, value) {
37134
+ this._pool?.assertStorageIsWritable();
37135
+ const deleteResult = this.#prepareDelete(key);
37136
+ this.#local.set(key, value);
37137
+ this.invalidate();
37138
+ if (this._pool !== undefined && this._id !== undefined) {
37139
+ const ops = deleteResult?.[0] ?? [];
37140
+ const reverse = deleteResult?.[1] ?? [];
37141
+ const storageUpdates = deleteResult?.[2] ?? /* @__PURE__ */ new Map;
37142
+ const existing = storageUpdates.get(this._id);
37143
+ storageUpdates.set(this._id, {
37144
+ node: this,
37145
+ type: "LiveObject",
37146
+ updates: {
37147
+ ...existing?.updates,
37148
+ [key]: { type: "update" }
37149
+ }
37150
+ });
37151
+ this._pool.dispatch(ops, reverse, storageUpdates);
37152
+ }
37153
+ }
36602
37154
  get(key) {
36603
- return this.#map.get(key);
37155
+ return this.#local.has(key) ? this.#local.get(key) : this.#synced.get(key);
36604
37156
  }
36605
- delete(key) {
37157
+ #prepareDelete(key) {
36606
37158
  this._pool?.assertStorageIsWritable();
36607
- const keyAsString = key;
36608
- const oldValue = this.#map.get(keyAsString);
37159
+ const k = key;
37160
+ if (this.#local.has(k) && !this.#synced.has(k)) {
37161
+ const oldValue2 = this.#local.get(k);
37162
+ this.#local.delete(k);
37163
+ this.invalidate();
37164
+ if (this._pool !== undefined && this._id !== undefined) {
37165
+ const storageUpdates2 = /* @__PURE__ */ new Map;
37166
+ storageUpdates2.set(this._id, {
37167
+ node: this,
37168
+ type: "LiveObject",
37169
+ updates: {
37170
+ [k]: {
37171
+ type: "delete",
37172
+ deletedItem: oldValue2
37173
+ }
37174
+ }
37175
+ });
37176
+ return [[], [], storageUpdates2];
37177
+ }
37178
+ return null;
37179
+ }
37180
+ this.#local.delete(k);
37181
+ const oldValue = this.#synced.get(k);
36609
37182
  if (oldValue === undefined) {
36610
- return;
37183
+ return null;
36611
37184
  }
36612
37185
  if (this._pool === undefined || this._id === undefined) {
36613
37186
  if (isLiveNode(oldValue)) {
36614
37187
  oldValue._detach();
36615
37188
  }
36616
- this.#map.delete(keyAsString);
37189
+ this.#synced.delete(k);
36617
37190
  this.invalidate();
36618
- return;
37191
+ return null;
36619
37192
  }
37193
+ const ops = [
37194
+ {
37195
+ type: OpCode.DELETE_OBJECT_KEY,
37196
+ key: k,
37197
+ id: this._id,
37198
+ opId: this._pool.generateOpId()
37199
+ }
37200
+ ];
36620
37201
  let reverse;
36621
37202
  if (isLiveNode(oldValue)) {
36622
37203
  oldValue._detach();
36623
- reverse = oldValue._toOps(this._id, keyAsString);
37204
+ reverse = oldValue._toOps(this._id, k);
36624
37205
  } else {
36625
37206
  reverse = [
36626
37207
  {
36627
37208
  type: OpCode.UPDATE_OBJECT,
36628
- data: { [keyAsString]: oldValue },
37209
+ data: { [k]: oldValue },
36629
37210
  id: this._id
36630
37211
  }
36631
37212
  ];
36632
37213
  }
36633
- this.#map.delete(keyAsString);
37214
+ this.#synced.delete(k);
36634
37215
  this.invalidate();
36635
37216
  const storageUpdates = /* @__PURE__ */ new Map;
36636
37217
  storageUpdates.set(this._id, {
@@ -36640,20 +37221,20 @@ var init_dist = __esm(() => {
36640
37221
  [key]: { type: "delete", deletedItem: oldValue }
36641
37222
  }
36642
37223
  });
36643
- this._pool.dispatch([
36644
- {
36645
- type: OpCode.DELETE_OBJECT_KEY,
36646
- key: keyAsString,
36647
- id: this._id,
36648
- opId: this._pool.generateOpId()
36649
- }
36650
- ], reverse, storageUpdates);
37224
+ return [ops, reverse, storageUpdates];
37225
+ }
37226
+ delete(key) {
37227
+ const result = this.#prepareDelete(key);
37228
+ if (result) {
37229
+ const [ops, reverse, storageUpdates] = result;
37230
+ this._pool?.dispatch(ops, reverse, storageUpdates);
37231
+ }
36651
37232
  }
36652
37233
  update(patch) {
36653
37234
  this._pool?.assertStorageIsWritable();
36654
37235
  if (_LiveObject.detectLargeObjects) {
36655
37236
  const data = {};
36656
- for (const [key, value] of this.#map) {
37237
+ for (const [key, value] of this.#synced) {
36657
37238
  if (!isLiveNode(value)) {
36658
37239
  data[key] = value;
36659
37240
  }
@@ -36681,14 +37262,15 @@ var init_dist = __esm(() => {
36681
37262
  if (newValue === undefined) {
36682
37263
  continue;
36683
37264
  }
36684
- const oldValue = this.#map.get(key);
37265
+ const oldValue = this.#synced.get(key);
36685
37266
  if (isLiveNode(oldValue)) {
36686
37267
  oldValue._detach();
36687
37268
  }
36688
37269
  if (isLiveNode(newValue)) {
36689
37270
  newValue._setParentLink(this, key);
36690
37271
  }
36691
- this.#map.set(key, newValue);
37272
+ this.#local.delete(key);
37273
+ this.#synced.set(key, newValue);
36692
37274
  this.invalidate();
36693
37275
  }
36694
37276
  return;
@@ -36708,7 +37290,10 @@ var init_dist = __esm(() => {
36708
37290
  if (newValue === undefined) {
36709
37291
  continue;
36710
37292
  }
36711
- const oldValue = this.#map.get(key);
37293
+ const oldValue = this.#synced.get(key);
37294
+ if (oldValue === newValue) {
37295
+ continue;
37296
+ }
36712
37297
  if (isLiveNode(oldValue)) {
36713
37298
  for (const childOp of oldValue._toOps(this._id, key)) {
36714
37299
  reverseOps.push(childOp);
@@ -36734,7 +37319,8 @@ var init_dist = __esm(() => {
36734
37319
  updatedProps[key] = newValue;
36735
37320
  this.#unackedOpsByKey.set(key, opId);
36736
37321
  }
36737
- this.#map.set(key, newValue);
37322
+ this.#local.delete(key);
37323
+ this.#synced.set(key, newValue);
36738
37324
  this.invalidate();
36739
37325
  updateDelta[key] = { type: "update" };
36740
37326
  }
@@ -36749,6 +37335,9 @@ var init_dist = __esm(() => {
36749
37335
  data: updatedProps
36750
37336
  });
36751
37337
  }
37338
+ if (ops.length === 0 && reverseOps.length === 0 && Object.keys(updateDelta).length === 0) {
37339
+ return;
37340
+ }
36752
37341
  const storageUpdates = /* @__PURE__ */ new Map;
36753
37342
  storageUpdates.set(this._id, {
36754
37343
  node: this,
@@ -36757,6 +37346,20 @@ var init_dist = __esm(() => {
36757
37346
  });
36758
37347
  this._pool.dispatch(ops, reverseOps, storageUpdates);
36759
37348
  }
37349
+ static from(obj, config) {
37350
+ if (!isPlainObject(obj))
37351
+ throw new Error("Expected a JSON object");
37352
+ const liveObj = new _LiveObject({});
37353
+ liveObj.reconcile(obj, config);
37354
+ return liveObj;
37355
+ }
37356
+ reconcile(jsonObj, config) {
37357
+ if (this.immutableIs(jsonObj))
37358
+ return;
37359
+ if (!isPlainObject(jsonObj))
37360
+ throw new Error("Reconciling the document root expects a plain object value");
37361
+ reconcileLiveObject(this, jsonObj, config);
37362
+ }
36760
37363
  toImmutable() {
36761
37364
  return super.toImmutable();
36762
37365
  }
@@ -36769,21 +37372,28 @@ var init_dist = __esm(() => {
36769
37372
  type: "LiveObject",
36770
37373
  id: nodeId,
36771
37374
  key,
36772
- payload: Array.from(this.#map.entries()).map(([key2, value]) => isLiveNode(value) ? value.toTreeNode(key2) : { type: "Json", id: `${nodeId}:${key2}`, key: key2, payload: value })
37375
+ payload: Array.from(this.#synced.entries()).map(([key2, value]) => isLiveNode(value) ? value.toTreeNode(key2) : { type: "Json", id: `${nodeId}:${key2}`, key: key2, payload: value })
36773
37376
  };
36774
37377
  }
36775
37378
  _toImmutable() {
36776
37379
  const result = {};
36777
- for (const [key, val] of this.#map) {
37380
+ for (const [key, val] of this.#synced) {
36778
37381
  result[key] = isLiveStructure(val) ? val.toImmutable() : val;
36779
37382
  }
37383
+ for (const [key, val] of this.#local) {
37384
+ result[key] = val;
37385
+ }
36780
37386
  return Object.freeze(result);
36781
37387
  }
36782
37388
  clone() {
36783
- return new _LiveObject(Object.fromEntries(Array.from(this.#map).map(([key, value]) => [
37389
+ const cloned = new _LiveObject(Object.fromEntries(Array.from(this.#synced).map(([key, value]) => [
36784
37390
  key,
36785
37391
  isLiveStructure(value) ? value.clone() : deepClone(value)
36786
37392
  ])));
37393
+ for (const [key, value] of this.#local) {
37394
+ cloned.#local.set(key, deepClone(value));
37395
+ }
37396
+ return cloned;
36787
37397
  }
36788
37398
  };
36789
37399
  Deque = class {
@@ -36850,7 +37460,15 @@ var init_dist = __esm(() => {
36850
37460
  FETCH_STORAGE: 200,
36851
37461
  UPDATE_STORAGE: 201,
36852
37462
  FETCH_YDOC: 300,
36853
- UPDATE_YDOC: 301
37463
+ UPDATE_YDOC: 301,
37464
+ FETCH_FEEDS: 510,
37465
+ FETCH_FEED_MESSAGES: 511,
37466
+ ADD_FEED: 512,
37467
+ UPDATE_FEED: 513,
37468
+ DELETE_FEED: 514,
37469
+ ADD_FEED_MESSAGE: 515,
37470
+ UPDATE_FEED_MESSAGE: 516,
37471
+ DELETE_FEED_MESSAGE: 517
36854
37472
  });
36855
37473
  LiveblocksError = class _LiveblocksError extends Error {
36856
37474
  context;
@@ -36896,8 +37514,8 @@ var init_dist = __esm(() => {
36896
37514
  detectDupes(PKG_NAME, PKG_VERSION, PKG_FORMAT);
36897
37515
  });
36898
37516
 
36899
- // ../../node_modules/.pnpm/@liveblocks+client@3.15.5_@types+json-schema@7.0.15/node_modules/@liveblocks/client/dist/index.js
36900
- var PKG_NAME2 = "@liveblocks/client", PKG_VERSION2 = "3.15.5", PKG_FORMAT2 = "esm";
37517
+ // ../../node_modules/.pnpm/@liveblocks+client@3.17.0_@types+json-schema@7.0.15/node_modules/@liveblocks/client/dist/index.js
37518
+ var PKG_NAME2 = "@liveblocks/client", PKG_VERSION2 = "3.17.0", PKG_FORMAT2 = "esm";
36901
37519
  var init_dist2 = __esm(() => {
36902
37520
  init_dist();
36903
37521
  init_dist();
@@ -37526,8 +38144,8 @@ var init_sha2 = __esm(() => {
37526
38144
  sha256 = /* @__PURE__ */ createHasher(() => new SHA256);
37527
38145
  });
37528
38146
 
37529
- // ../../node_modules/.pnpm/@liveblocks+yjs@3.15.5_@types+json-schema@7.0.15_yjs@13.6.30/node_modules/@liveblocks/yjs/dist/index.js
37530
- var PKG_NAME3 = "@liveblocks/yjs", PKG_VERSION3 = "3.15.5", PKG_FORMAT3 = "esm", create9 = () => /* @__PURE__ */ new Map, setIfUndefined3 = (map3, key, createT) => {
38147
+ // ../../node_modules/.pnpm/@liveblocks+yjs@3.17.0_@types+json-schema@7.0.15_yjs@13.6.30/node_modules/@liveblocks/yjs/dist/index.js
38148
+ var PKG_NAME3 = "@liveblocks/yjs", PKG_VERSION3 = "3.17.0", PKG_FORMAT3 = "esm", create9 = () => /* @__PURE__ */ new Map, setIfUndefined3 = (map3, key, createT) => {
37531
38149
  let set = map3.get(key);
37532
38150
  if (set === undefined) {
37533
38151
  map3.set(key, set = createT());
@@ -38033,7 +38651,7 @@ var init_dist3 = __esm(() => {
38033
38651
  detectDupes(PKG_NAME3, PKG_VERSION3, PKG_FORMAT3);
38034
38652
  });
38035
38653
 
38036
- // ../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/constants.js
38654
+ // ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/constants.js
38037
38655
  var require_constants = __commonJS((exports, module) => {
38038
38656
  var BINARY_TYPES = ["nodebuffer", "arraybuffer", "fragments"];
38039
38657
  var hasBlob = typeof Blob !== "undefined";
@@ -38053,7 +38671,7 @@ var require_constants = __commonJS((exports, module) => {
38053
38671
  };
38054
38672
  });
38055
38673
 
38056
- // ../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/buffer-util.js
38674
+ // ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/buffer-util.js
38057
38675
  var require_buffer_util = __commonJS((exports, module) => {
38058
38676
  var { EMPTY_BUFFER } = require_constants();
38059
38677
  var FastBuffer = Buffer[Symbol.species];
@@ -38131,7 +38749,7 @@ var require_buffer_util = __commonJS((exports, module) => {
38131
38749
  }
38132
38750
  });
38133
38751
 
38134
- // ../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/limiter.js
38752
+ // ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/limiter.js
38135
38753
  var require_limiter = __commonJS((exports, module) => {
38136
38754
  var kDone = Symbol("kDone");
38137
38755
  var kRun = Symbol("kRun");
@@ -38163,7 +38781,7 @@ var require_limiter = __commonJS((exports, module) => {
38163
38781
  module.exports = Limiter;
38164
38782
  });
38165
38783
 
38166
- // ../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/permessage-deflate.js
38784
+ // ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/permessage-deflate.js
38167
38785
  var require_permessage_deflate = __commonJS((exports, module) => {
38168
38786
  var zlib = __require("zlib");
38169
38787
  var bufferUtil = require_buffer_util();
@@ -38179,11 +38797,11 @@ var require_permessage_deflate = __commonJS((exports, module) => {
38179
38797
  var zlibLimiter;
38180
38798
 
38181
38799
  class PerMessageDeflate {
38182
- constructor(options) {
38800
+ constructor(options, isServer, maxPayload) {
38801
+ this._maxPayload = maxPayload | 0;
38183
38802
  this._options = options || {};
38184
38803
  this._threshold = this._options.threshold !== undefined ? this._options.threshold : 1024;
38185
- this._maxPayload = this._options.maxPayload | 0;
38186
- this._isServer = !!this._options.isServer;
38804
+ this._isServer = !!isServer;
38187
38805
  this._deflate = null;
38188
38806
  this._inflate = null;
38189
38807
  this.params = null;
@@ -38427,7 +39045,7 @@ var require_permessage_deflate = __commonJS((exports, module) => {
38427
39045
  }
38428
39046
  });
38429
39047
 
38430
- // ../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/validation.js
39048
+ // ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/validation.js
38431
39049
  var require_validation = __commonJS((exports, module) => {
38432
39050
  var { isUtf8 } = __require("buffer");
38433
39051
  var { hasBlob } = require_constants();
@@ -38614,7 +39232,7 @@ var require_validation = __commonJS((exports, module) => {
38614
39232
  }
38615
39233
  });
38616
39234
 
38617
- // ../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/receiver.js
39235
+ // ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/receiver.js
38618
39236
  var require_receiver = __commonJS((exports, module) => {
38619
39237
  var { Writable } = __require("stream");
38620
39238
  var PerMessageDeflate = require_permessage_deflate();
@@ -38995,7 +39613,7 @@ var require_receiver = __commonJS((exports, module) => {
38995
39613
  module.exports = Receiver;
38996
39614
  });
38997
39615
 
38998
- // ../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/sender.js
39616
+ // ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/sender.js
38999
39617
  var require_sender = __commonJS((exports, module) => {
39000
39618
  var { Duplex } = __require("stream");
39001
39619
  var { randomFillSync } = __require("crypto");
@@ -39349,7 +39967,7 @@ var require_sender = __commonJS((exports, module) => {
39349
39967
  }
39350
39968
  });
39351
39969
 
39352
- // ../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/event-target.js
39970
+ // ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/event-target.js
39353
39971
  var require_event_target = __commonJS((exports, module) => {
39354
39972
  var { kForOnEventAttribute, kListener } = require_constants();
39355
39973
  var kCode = Symbol("kCode");
@@ -39500,7 +40118,7 @@ var require_event_target = __commonJS((exports, module) => {
39500
40118
  }
39501
40119
  });
39502
40120
 
39503
- // ../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/extension.js
40121
+ // ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/extension.js
39504
40122
  var require_extension = __commonJS((exports, module) => {
39505
40123
  var { tokenChars } = require_validation();
39506
40124
  function push(dest, name, elem) {
@@ -39665,7 +40283,7 @@ var require_extension = __commonJS((exports, module) => {
39665
40283
  module.exports = { format, parse };
39666
40284
  });
39667
40285
 
39668
- // ../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/websocket.js
40286
+ // ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket.js
39669
40287
  var require_websocket = __commonJS((exports, module) => {
39670
40288
  var EventEmitter2 = __require("events");
39671
40289
  var https = __require("https");
@@ -40054,7 +40672,7 @@ var require_websocket = __commonJS((exports, module) => {
40054
40672
  } else {
40055
40673
  try {
40056
40674
  parsedUrl = new URL2(address2);
40057
- } catch {
40675
+ } catch (e) {
40058
40676
  throw new SyntaxError(`Invalid URL: ${address2}`);
40059
40677
  }
40060
40678
  }
@@ -40102,11 +40720,7 @@ var require_websocket = __commonJS((exports, module) => {
40102
40720
  opts.path = parsedUrl.pathname + parsedUrl.search;
40103
40721
  opts.timeout = opts.handshakeTimeout;
40104
40722
  if (opts.perMessageDeflate) {
40105
- perMessageDeflate = new PerMessageDeflate({
40106
- ...opts.perMessageDeflate,
40107
- isServer: false,
40108
- maxPayload: opts.maxPayload
40109
- });
40723
+ perMessageDeflate = new PerMessageDeflate(opts.perMessageDeflate !== true ? opts.perMessageDeflate : {}, false, opts.maxPayload);
40110
40724
  opts.headers["Sec-WebSocket-Extensions"] = format({
40111
40725
  [PerMessageDeflate.extensionName]: perMessageDeflate.offer()
40112
40726
  });
@@ -40431,7 +41045,7 @@ var require_websocket = __commonJS((exports, module) => {
40431
41045
  }
40432
41046
  });
40433
41047
 
40434
- // ../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/stream.js
41048
+ // ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/stream.js
40435
41049
  var require_stream = __commonJS((exports, module) => {
40436
41050
  var WebSocket2 = require_websocket();
40437
41051
  var { Duplex } = __require("stream");
@@ -40534,7 +41148,7 @@ var require_stream = __commonJS((exports, module) => {
40534
41148
  module.exports = createWebSocketStream;
40535
41149
  });
40536
41150
 
40537
- // ../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/subprotocol.js
41151
+ // ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/subprotocol.js
40538
41152
  var require_subprotocol = __commonJS((exports, module) => {
40539
41153
  var { tokenChars } = require_validation();
40540
41154
  function parse(header) {
@@ -40579,7 +41193,7 @@ var require_subprotocol = __commonJS((exports, module) => {
40579
41193
  module.exports = { parse };
40580
41194
  });
40581
41195
 
40582
- // ../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/lib/websocket-server.js
41196
+ // ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket-server.js
40583
41197
  var require_websocket_server = __commonJS((exports, module) => {
40584
41198
  var EventEmitter2 = __require("events");
40585
41199
  var http = __require("http");
@@ -40752,11 +41366,7 @@ var require_websocket_server = __commonJS((exports, module) => {
40752
41366
  const secWebSocketExtensions = req.headers["sec-websocket-extensions"];
40753
41367
  const extensions = {};
40754
41368
  if (this.options.perMessageDeflate && secWebSocketExtensions !== undefined) {
40755
- const perMessageDeflate = new PerMessageDeflate({
40756
- ...this.options.perMessageDeflate,
40757
- isServer: true,
40758
- maxPayload: this.options.maxPayload
40759
- });
41369
+ const perMessageDeflate = new PerMessageDeflate(this.options.perMessageDeflate, true, this.options.maxPayload);
40760
41370
  try {
40761
41371
  const offers = extension.parse(secWebSocketExtensions);
40762
41372
  if (offers[PerMessageDeflate.extensionName]) {
@@ -40885,15 +41495,12 @@ var require_websocket_server = __commonJS((exports, module) => {
40885
41495
  }
40886
41496
  });
40887
41497
 
40888
- // ../../node_modules/.pnpm/ws@8.20.0/node_modules/ws/wrapper.mjs
40889
- var import_stream, import_extension, import_permessage_deflate, import_receiver, import_sender, import_subprotocol, import_websocket, import_websocket_server, wrapper_default;
41498
+ // ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/wrapper.mjs
41499
+ var import_stream, import_receiver, import_sender, import_websocket, import_websocket_server, wrapper_default;
40890
41500
  var init_wrapper = __esm(() => {
40891
41501
  import_stream = __toESM(require_stream(), 1);
40892
- import_extension = __toESM(require_extension(), 1);
40893
- import_permessage_deflate = __toESM(require_permessage_deflate(), 1);
40894
41502
  import_receiver = __toESM(require_receiver(), 1);
40895
41503
  import_sender = __toESM(require_sender(), 1);
40896
- import_subprotocol = __toESM(require_subprotocol(), 1);
40897
41504
  import_websocket = __toESM(require_websocket(), 1);
40898
41505
  import_websocket_server = __toESM(require_websocket_server(), 1);
40899
41506
  wrapper_default = import_websocket.default;
@@ -63099,11 +63706,11 @@ function combineExtensions(extensions) {
63099
63706
  syntaxExtension(all3, extensions[index2]);
63100
63707
  return all3;
63101
63708
  }
63102
- function syntaxExtension(all3, extension2) {
63709
+ function syntaxExtension(all3, extension) {
63103
63710
  let hook;
63104
- for (hook in extension2) {
63711
+ for (hook in extension) {
63105
63712
  const left = (hasOwnProperty2.call(all3, hook) ? all3[hook] : undefined) || (all3[hook] = {});
63106
- const right = extension2[hook];
63713
+ const right = extension[hook];
63107
63714
  let code$1;
63108
63715
  if (right)
63109
63716
  for (code$1 in right) {
@@ -65262,7 +65869,7 @@ var init_remark_gfm_BhnWr3yf_es = __esm(() => {
65262
65869
  emptyOptions2 = {};
65263
65870
  });
65264
65871
 
65265
- // ../../packages/superdoc/dist/chunks/SuperConverter-CE_qGNRx.es.js
65872
+ // ../../packages/superdoc/dist/chunks/SuperConverter-Dze38Knd.es.js
65266
65873
  function getExtensionConfigField(extension$1, field, context = { name: "" }) {
65267
65874
  const fieldValue = extension$1.config[field];
65268
65875
  if (typeof fieldValue === "function")
@@ -74792,6 +75399,7 @@ function handleStyleChangeMarksV2(rPrChange, currentMarks, params3) {
74792
75399
  const attributes = rPrChange.attributes || {};
74793
75400
  const mappedAttributes = {
74794
75401
  id: attributes["w:id"],
75402
+ sourceId: attributes["w:id"],
74795
75403
  date: attributes["w:date"],
74796
75404
  author: attributes["w:author"],
74797
75405
  authorEmail: attributes["w:authorEmail"]
@@ -74819,6 +75427,7 @@ function handleStyleChangeMarks(rPr, currentMarks) {
74819
75427
  const { attributes } = styleChangeMark;
74820
75428
  const mappedAttributes = {
74821
75429
  id: attributes["w:id"],
75430
+ sourceId: attributes["w:id"],
74822
75431
  date: attributes["w:date"],
74823
75432
  author: attributes["w:author"],
74824
75433
  authorEmail: attributes["w:authorEmail"]
@@ -89683,7 +90292,7 @@ function preprocess() {
89683
90292
  }
89684
90293
  }
89685
90294
  function fromMarkdown(value, encoding, options) {
89686
- if (encoding && typeof encoding === "object") {
90295
+ if (typeof encoding !== "string") {
89687
90296
  options = encoding;
89688
90297
  encoding = undefined;
89689
90298
  }
@@ -90317,10 +90926,10 @@ function configure(combined, extensions) {
90317
90926
  if (Array.isArray(value))
90318
90927
  configure(combined, value);
90319
90928
  else
90320
- extension2(combined, value);
90929
+ extension(combined, value);
90321
90930
  }
90322
90931
  }
90323
- function extension2(combined, extension$1) {
90932
+ function extension(combined, extension$1) {
90324
90933
  let key;
90325
90934
  for (key in extension$1)
90326
90935
  if (own3.call(extension$1, key))
@@ -99217,6 +99826,24 @@ function resolveTrackedChangeType(change) {
99217
99826
  return "delete";
99218
99827
  return "insert";
99219
99828
  }
99829
+ function mergeWordRevisionId(target, key, value) {
99830
+ if (!value)
99831
+ return target;
99832
+ if (!target)
99833
+ return { [key]: value };
99834
+ if (!target[key])
99835
+ target[key] = value;
99836
+ return target;
99837
+ }
99838
+ function getWordRevisionIdKey(markType) {
99839
+ if (markType === "trackInsert")
99840
+ return "insert";
99841
+ if (markType === "trackDelete")
99842
+ return "delete";
99843
+ if (markType === "trackFormat")
99844
+ return "format";
99845
+ return null;
99846
+ }
99220
99847
  function groupTrackedChanges(editor) {
99221
99848
  const currentDoc = editor.state.doc;
99222
99849
  const cached = groupedCache.get(editor);
@@ -99234,6 +99861,8 @@ function groupTrackedChanges(editor) {
99234
99861
  const nextHasInsert = markType === TrackInsertMarkName;
99235
99862
  const nextHasDelete = markType === TrackDeleteMarkName;
99236
99863
  const nextHasFormat = markType === TrackFormatMarkName;
99864
+ const wordRevisionId = toNonEmptyString(attrs.sourceId);
99865
+ const wordRevisionIdKey = getWordRevisionIdKey(markType);
99237
99866
  if (!existing) {
99238
99867
  byRawId.set(id2, {
99239
99868
  rawId: id2,
@@ -99242,7 +99871,8 @@ function groupTrackedChanges(editor) {
99242
99871
  hasInsert: nextHasInsert,
99243
99872
  hasDelete: nextHasDelete,
99244
99873
  hasFormat: nextHasFormat,
99245
- attrs: { ...attrs }
99874
+ attrs: { ...attrs },
99875
+ wordRevisionIds: wordRevisionIdKey ? mergeWordRevisionId(undefined, wordRevisionIdKey, wordRevisionId ?? undefined) : undefined
99246
99876
  });
99247
99877
  continue;
99248
99878
  }
@@ -99253,6 +99883,8 @@ function groupTrackedChanges(editor) {
99253
99883
  existing.hasFormat = existing.hasFormat || nextHasFormat;
99254
99884
  if (Object.keys(existing.attrs).length === 0 && Object.keys(attrs).length > 0)
99255
99885
  existing.attrs = { ...attrs };
99886
+ if (wordRevisionIdKey)
99887
+ existing.wordRevisionIds = mergeWordRevisionId(existing.wordRevisionIds, wordRevisionIdKey, wordRevisionId ?? undefined);
99256
99888
  }
99257
99889
  const grouped = Array.from(byRawId.values()).map((change) => ({
99258
99890
  ...change,
@@ -102494,7 +103126,7 @@ var isRegExp = (value) => {
102494
103126
  tracked: false,
102495
103127
  carrier: runAttributeCarrier2(runPropertyKey ?? key),
102496
103128
  schema
102497
- }), INLINE_PROPERTY_REGISTRY2, INLINE_PROPERTY_KEY_SET2, INLINE_PROPERTY_BY_KEY2, UNDERLINE_OBJECT_ALLOWED_KEYS2, SHADING_ALLOWED_KEYS2, BORDER_ALLOWED_KEYS2, FIT_TEXT_ALLOWED_KEYS2, LANG_ALLOWED_KEYS2, RFONTS_ALLOWED_KEYS2, EAST_ASIAN_LAYOUT_ALLOWED_KEYS2, STYLISTIC_SET_ALLOWED_KEYS2, VERT_ALIGN_VALUES2, PROPERTY_VALIDATOR_MAP2, NONE_FAILURES2, NONE_THROWS2, T_NOT_FOUND2, T_NOT_FOUND_CAPABLE2, T_PLAN_ENGINE2, T_NOT_FOUND_COMMAND2, T_IMAGE_COMMAND2, T_CC_READ2, T_CC_MUTATION2, T_CC_TYPED2, T_CC_TYPED_READ2, T_CC_RAW2, T_QUERY_MATCH2, T_SECTION_CREATE2, T_SECTION_READ2, T_PARAGRAPH_MUTATION2, T_SECTION_MUTATION2, T_SECTION_SETTINGS_MUTATION2, T_HEADER_FOOTER_MUTATION2, T_STORY2, T_REF_READ_LIST2, T_REF_MUTATION2, T_REF_MUTATION_REMOVE2, T_REF_INSERT2, T_PROTECTION_READ2, T_PROTECTION_MUTATION2, T_PERM_RANGE_READ2, T_PERM_RANGE_MUTATION2, FORMAT_INLINE_ALIAS_OPERATION_DEFINITIONS2, OPERATION_DEFINITIONS2, OPERATION_IDS2, COMMAND_CATALOG3, PARAGRAPH_ALIGNMENTS2, TAB_STOP_ALIGNMENTS2, TAB_STOP_LEADERS2, BORDER_SIDES2, CLEAR_BORDER_SIDES2, LINE_RULES2, PARAGRAPH_DIRECTIONS2, ALIGNMENT_POLICIES2, PARAGRAPH_BLOCK_TYPES2, SET_STYLE_KEYS2, CLEAR_STYLE_KEYS2, RESET_DIRECT_FORMATTING_KEYS2, SET_ALIGNMENT_KEYS2, CLEAR_ALIGNMENT_KEYS2, SET_INDENTATION_KEYS2, CLEAR_INDENTATION_KEYS2, SET_SPACING_KEYS2, CLEAR_SPACING_KEYS2, SET_KEEP_OPTIONS_KEYS2, SET_OUTLINE_LEVEL_KEYS2, SET_FLOW_OPTIONS_KEYS2, SET_TAB_STOP_KEYS2, CLEAR_TAB_STOP_KEYS2, CLEAR_ALL_TAB_STOPS_KEYS2, SET_BORDER_KEYS2, CLEAR_BORDER_KEYS2, SET_SHADING_KEYS2, CLEAR_SHADING_KEYS2, SET_DIRECTION_KEYS2, CLEAR_DIRECTION_KEYS2, ST_ON_OFF_ON_VALUES2, ST_ON_OFF_OFF_VALUES2, ST_UNDERLINE_VALUES2, ST_UNDERLINE_VALUE_SET2, ST_VERTICAL_ALIGN_RUN2, ST_EM2, ST_TEXT_ALIGNMENT2, ST_TEXT_DIRECTION2, ST_TEXTBOX_TIGHT_WRAP2, ST_TEXT_TRANSFORM2, ST_JUSTIFICATION2, FONT_FAMILY_SCHEMA2, COLOR_SCHEMA2, SPACING_SCHEMA2, INDENT_SCHEMA2, UNDERLINE_SCHEMA2, BORDER_PROPERTIES_SCHEMA2, SHADING_SCHEMA2, LANG_SCHEMA2, EAST_ASIAN_LAYOUT_SCHEMA2, FIT_TEXT_SCHEMA2, NUMBERING_PROPERTIES_SCHEMA2, FRAME_PR_SCHEMA2, PARAGRAPH_BORDERS_SCHEMA2, TAB_STOP_SCHEMA2, PROPERTY_REGISTRY2, ALLOWED_KEYS_BY_CHANNEL2, PROPERTY_INDEX2, EXCLUDED_KEYS2, INPUT_ALLOWED_KEYS2, TARGET_ALLOWED_KEYS2, OPTIONS_ALLOWED_KEYS2, VALID_CHANNELS2, Z_ORDER_RELATIVE_HEIGHT_MAX2 = 4294967295, nodeTypeValues2, blockNodeTypeValues2, deletableBlockNodeTypeValues2, inlineNodeTypeValues2, rangeSchema2, textAddressSchema2, textTargetSchema2, blockNodeAddressSchema2, deletableBlockNodeAddressSchema2, tableAddressSchema2, tableRowAddressSchema2, tableCellAddressSchema2, tableOrCellAddressSchema2, paragraphAddressSchema2, headingAddressSchema2, listItemAddressSchema2, paragraphTargetSchema2, sectionAddressSchema2, nodeAddressSchema2, commentAddressSchema2, trackedChangeAddressSchema2, entityAddressSchema2, selectionTargetSchema2, deleteBehaviorSchema2, resolvedHandleSchema2, pageInfoSchema2, receiptSuccessSchema2, textMutationRangeSchema2, textMutationResolutionSchema2, textMutationSuccessSchema2, matchBlockSchema2, storyLocatorSchema2, trackChangeRefSchema2, createParagraphSuccessSchema2, createHeadingSuccessSchema2, headingLevelSchema2, listsInsertSuccessSchema2, listsMutateItemSuccessSchema2, textSelectorSchema2, nodeSelectorSchema2, sdMutationResolutionSchema2, sdMutationSuccessSchema2, documentInfoCountsSchema2, documentInfoOutlineItemSchema2, documentInfoCapabilitiesSchema2, documentStylesSchema2, documentDefaultsSchema2, listKindSchema2, listInsertPositionSchema2, sectionBreakTypeSchema2, sectionOrientationSchema2, sectionVerticalAlignSchema2, sectionDirectionSchema2, sectionHeaderFooterKindSchema2, sectionHeaderFooterVariantSchema2, sectionLineNumberRestartSchema2, sectionPageNumberFormatSchema2, sectionRangeDomainSchema2, sectionPageMarginsSchema2, sectionHeaderFooterMarginsSchema2, sectionPageSetupSchema2, sectionColumnsSchema2, sectionLineNumberingSchema2, sectionPageNumberingSchema2, sectionHeaderFooterRefsSchema2, sectionBorderSpecSchema2, sectionPageBordersSchema2, sectionMutationSuccessSchema2, documentMutationSuccessSchema2, paragraphMutationTargetSchema2, paragraphMutationSuccessSchema2, createSectionBreakSuccessSchema2, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, inlinePropertyCapabilitySchema2, formatCapabilitiesSchema2, planEngineCapabilitiesSchema2, nullableTableBorderSpecSchema2, sdFragmentSchema2, placementSchema2, nestingPolicySchema2, tableCreateLocationSchema2, formatInlineAliasOperationSchemas2, tocMutationFailureSchema2, tocMutationSuccessSchema2, tocEntryMutationFailureSchema2, tocEntryMutationSuccessSchema2, hyperlinkTargetSchema2, hyperlinkReadPropertiesSchema2, hyperlinkSpecSchema2, hyperlinkPatchSchema2, hyperlinkDomainSchema2, hyperlinkMutationSuccessSchema2, hyperlinkMutationFailureSchema2, contentControlTargetSchema2, contentControlMutationSuccessSchema2, contentControlMutationFailureSchema2, ccListResultSchema2, ccInfoSchema2, refFailureSchema2, bookmarkAddressSchema2, bookmarkMutation2, footnoteAddressSchema2, footnoteConfigScopeSchema2, footnoteNumberingSchema2, footnoteMutation2, footnoteConfig2, crossRefAddressSchema2, crossRefTargetSchema2, crossRefDisplaySchema2, crossRefMutation2, indexAddressSchema2, indexEntryAddressSchema2, indexConfigSchema2, indexEntryDataSchema2, indexEntryPatchSchema2, indexMutation2, indexEntryMutation2, captionAddressSchema2, captionMutation2, captionConfig2, fieldAddressSchema2, fieldMutation2, citationAddressSchema2, citationSourceAddressSchema2, bibliographyAddressSchema2, citationMutation2, citationSourceMutation2, bibliographyMutation2, citationPersonSchema2, citationSourceFieldsSchema2, tocCreateLocationSchema2, authoritiesAddressSchema2, authorityEntryAddressSchema2, authoritiesConfigSchema2, authorityEntryDataSchema2, authorityEntryPatchSchema2, authoritiesMutation2, authorityEntryMutation2, diffCoverageSchema2, diffSummarySchema2, diffSnapshotSchema2, diffPayloadSchema2, GROUP_METADATA2, STEP_OP_CATALOG_UNFROZEN2, PUBLIC_STEP_OP_CATALOG_UNFROZEN2, PUBLIC_MUTATION_STEP_OP_IDS2, PUBLIC_MUTATION_STEP_OP_SET2, CAPABILITY_REASON_CODES, VALID_EDGE_VALUES2, VALID_EDGE_NODE_TYPES2, VALID_DOCUMENT_EDGES2, VALID_REF_BOUNDARIES2, VALID_ANCHOR_KINDS2, RESOLVE_RANGE_ALLOWED_KEYS2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, INLINE_ALIAS_INPUT_ALLOWED_KEYS2, DELETE_INPUT_ALLOWED_KEYS2, VALID_BEHAVIORS2, CONTENT_KIND_SET2, INLINE_KIND_SET2, LEGACY_TOP_LEVEL_TYPES2, TEXT_INSERT_ALLOWED_KEYS2, STRUCTURAL_INSERT_ALLOWED_KEYS2, VALID_INSERT_TYPES2, LIST_KINDS2, LIST_INSERT_POSITIONS2, JOIN_DIRECTIONS2, MUTATION_SCOPES2, LEVEL_ALIGNMENTS2, TRAILING_CHARACTERS2, LIST_PRESET_IDS2, VALID_BLOCK_NODE_TYPES$1, VALID_LIST_KINDS2, VALID_INSERT_POSITIONS2, VALID_JOIN_DIRECTIONS2, VALID_MUTATION_SCOPES2, VALID_LEVEL_ALIGNMENTS2, VALID_TRAILING_CHARACTERS2, VALID_LIST_PRESETS2, VALID_CONTINUITY_VALUES2, VALID_SEQUENCE_MODES2, VALID_LIST_CREATE_MODES2, TEXT_REPLACE_ALLOWED_KEYS2, STRUCTURAL_REPLACE_ALLOWED_KEYS2, VALID_HEADING_LEVELS2, SECTION_BREAK_TYPES$1, SUPPORTED_DELETE_NODE_TYPES2, REJECTED_DELETE_NODE_TYPES2, VALID_BLOCK_NODE_TYPES3, SNAPSHOT_VERSIONS2, PAYLOAD_VERSIONS2, VALID_STYLE_OPTION_FLAGS2, TABLE_BORDER_COLOR_PATTERN2, VALID_APPLY_TO_VALUES2, VALID_BORDER_EDGE_KEYS2, HEADER_FOOTER_KINDS$1, HEADER_FOOTER_VARIANTS$1, DEFAULT_SECTIONS_LIST_LIMIT2 = 250, SECTION_BREAK_TYPES3, SECTION_ORIENTATIONS2, SECTION_VERTICAL_ALIGNS2, SECTION_DIRECTIONS2, HEADER_FOOTER_KINDS3, HEADER_FOOTER_VARIANTS3, LINE_NUMBER_RESTARTS2, PAGE_NUMBER_FORMATS2, PAGE_BORDER_DISPLAYS2, PAGE_BORDER_OFFSET_FROM_VALUES2, PAGE_BORDER_Z_ORDER_VALUES2, VALID_WRAP_TYPES2, VALID_WRAP_SIDES2, VALID_IMAGE_SIZE_UNITS2, VALID_TOC_UPDATE_MODES2, EDIT_ENTRY_PATCH_ALLOWED_KEYS2, PATCH_FIELDS2, CONTENT_CONTROL_TYPES2, LOCK_MODES2, CONTENT_CONTROL_APPEARANCES2, VALID_NODE_KINDS2, VALID_LOCK_MODES$1, VALID_CC_TYPES2, VALID_CC_APPEARANCES2, VALID_CONTENT_FORMATS2, VALID_RAW_PATCH_OPS2, VALID_SET_MODES2, VALID_CREATE_LOCATION_KINDS2, DEFAULT_PROTECTION_STATE, ADAPTER_GATED_PREFIXES2, _buffers, _defaultCollectionId = null, _nextCollectionId = 1, generateV2HandlerEntity = (handlerName, translator$216) => ({
103129
+ }), INLINE_PROPERTY_REGISTRY2, INLINE_PROPERTY_KEY_SET2, INLINE_PROPERTY_BY_KEY2, UNDERLINE_OBJECT_ALLOWED_KEYS2, SHADING_ALLOWED_KEYS2, BORDER_ALLOWED_KEYS2, FIT_TEXT_ALLOWED_KEYS2, LANG_ALLOWED_KEYS2, RFONTS_ALLOWED_KEYS2, EAST_ASIAN_LAYOUT_ALLOWED_KEYS2, STYLISTIC_SET_ALLOWED_KEYS2, VERT_ALIGN_VALUES2, PROPERTY_VALIDATOR_MAP2, NONE_FAILURES2, NONE_THROWS2, T_NOT_FOUND2, T_NOT_FOUND_CAPABLE2, T_PLAN_ENGINE2, T_NOT_FOUND_COMMAND2, T_IMAGE_COMMAND2, T_CC_READ2, T_CC_MUTATION2, T_CC_TYPED2, T_CC_TYPED_READ2, T_CC_RAW2, T_QUERY_MATCH2, T_SECTION_CREATE2, T_SECTION_READ2, T_PARAGRAPH_MUTATION2, T_SECTION_MUTATION2, T_SECTION_SETTINGS_MUTATION2, T_HEADER_FOOTER_MUTATION2, T_STORY2, T_REF_READ_LIST2, T_REF_MUTATION2, T_REF_MUTATION_REMOVE2, T_REF_INSERT2, T_PROTECTION_READ2, T_PROTECTION_MUTATION2, T_PERM_RANGE_READ2, T_PERM_RANGE_MUTATION2, FORMAT_INLINE_ALIAS_OPERATION_DEFINITIONS2, OPERATION_DEFINITIONS2, OPERATION_IDS2, COMMAND_CATALOG3, PARAGRAPH_ALIGNMENTS2, TAB_STOP_ALIGNMENTS2, TAB_STOP_LEADERS2, BORDER_SIDES2, CLEAR_BORDER_SIDES2, LINE_RULES2, PARAGRAPH_DIRECTIONS2, ALIGNMENT_POLICIES2, PARAGRAPH_BLOCK_TYPES2, SET_STYLE_KEYS2, CLEAR_STYLE_KEYS2, RESET_DIRECT_FORMATTING_KEYS2, SET_ALIGNMENT_KEYS2, CLEAR_ALIGNMENT_KEYS2, SET_INDENTATION_KEYS2, CLEAR_INDENTATION_KEYS2, SET_SPACING_KEYS2, CLEAR_SPACING_KEYS2, SET_KEEP_OPTIONS_KEYS2, SET_OUTLINE_LEVEL_KEYS2, SET_FLOW_OPTIONS_KEYS2, SET_TAB_STOP_KEYS2, CLEAR_TAB_STOP_KEYS2, CLEAR_ALL_TAB_STOPS_KEYS2, SET_BORDER_KEYS2, CLEAR_BORDER_KEYS2, SET_SHADING_KEYS2, CLEAR_SHADING_KEYS2, SET_DIRECTION_KEYS2, CLEAR_DIRECTION_KEYS2, ST_ON_OFF_ON_VALUES2, ST_ON_OFF_OFF_VALUES2, ST_UNDERLINE_VALUES2, ST_UNDERLINE_VALUE_SET2, ST_VERTICAL_ALIGN_RUN2, ST_EM2, ST_TEXT_ALIGNMENT2, ST_TEXT_DIRECTION2, ST_TEXTBOX_TIGHT_WRAP2, ST_TEXT_TRANSFORM2, ST_JUSTIFICATION2, FONT_FAMILY_SCHEMA2, COLOR_SCHEMA2, SPACING_SCHEMA2, INDENT_SCHEMA2, UNDERLINE_SCHEMA2, BORDER_PROPERTIES_SCHEMA2, SHADING_SCHEMA2, LANG_SCHEMA2, EAST_ASIAN_LAYOUT_SCHEMA2, FIT_TEXT_SCHEMA2, NUMBERING_PROPERTIES_SCHEMA2, FRAME_PR_SCHEMA2, PARAGRAPH_BORDERS_SCHEMA2, TAB_STOP_SCHEMA2, PROPERTY_REGISTRY2, ALLOWED_KEYS_BY_CHANNEL2, PROPERTY_INDEX2, EXCLUDED_KEYS2, INPUT_ALLOWED_KEYS2, TARGET_ALLOWED_KEYS2, OPTIONS_ALLOWED_KEYS2, VALID_CHANNELS2, Z_ORDER_RELATIVE_HEIGHT_MAX2 = 4294967295, nodeTypeValues2, blockNodeTypeValues2, deletableBlockNodeTypeValues2, inlineNodeTypeValues2, rangeSchema2, textAddressSchema2, textTargetSchema2, blockNodeAddressSchema2, deletableBlockNodeAddressSchema2, tableAddressSchema2, tableRowAddressSchema2, tableCellAddressSchema2, tableOrCellAddressSchema2, paragraphAddressSchema2, headingAddressSchema2, listItemAddressSchema2, paragraphTargetSchema2, sectionAddressSchema2, nodeAddressSchema2, commentAddressSchema2, trackedChangeAddressSchema2, entityAddressSchema2, selectionTargetSchema2, deleteBehaviorSchema2, resolvedHandleSchema2, pageInfoSchema2, receiptSuccessSchema2, textMutationRangeSchema2, textMutationResolutionSchema2, textMutationSuccessSchema2, matchBlockSchema2, storyLocatorSchema2, trackChangeRefSchema2, createParagraphSuccessSchema2, createHeadingSuccessSchema2, headingLevelSchema2, listsInsertSuccessSchema2, listsMutateItemSuccessSchema2, textSelectorSchema2, nodeSelectorSchema2, sdMutationResolutionSchema2, sdMutationSuccessSchema2, documentInfoCountsSchema2, documentInfoOutlineItemSchema2, documentInfoCapabilitiesSchema2, documentStylesSchema2, documentDefaultsSchema2, listKindSchema2, listInsertPositionSchema2, sectionBreakTypeSchema2, sectionOrientationSchema2, sectionVerticalAlignSchema2, sectionDirectionSchema2, sectionHeaderFooterKindSchema2, sectionHeaderFooterVariantSchema2, sectionLineNumberRestartSchema2, sectionPageNumberFormatSchema2, sectionRangeDomainSchema2, sectionPageMarginsSchema2, sectionHeaderFooterMarginsSchema2, sectionPageSetupSchema2, sectionColumnsSchema2, sectionLineNumberingSchema2, sectionPageNumberingSchema2, sectionHeaderFooterRefsSchema2, sectionBorderSpecSchema2, sectionPageBordersSchema2, sectionMutationSuccessSchema2, documentMutationSuccessSchema2, paragraphMutationTargetSchema2, paragraphMutationSuccessSchema2, createSectionBreakSuccessSchema2, trackChangeWordRevisionIdsSchema2, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, inlinePropertyCapabilitySchema2, formatCapabilitiesSchema2, planEngineCapabilitiesSchema2, nullableTableBorderSpecSchema2, sdFragmentSchema2, placementSchema2, nestingPolicySchema2, tableCreateLocationSchema2, formatInlineAliasOperationSchemas2, tocMutationFailureSchema2, tocMutationSuccessSchema2, tocEntryMutationFailureSchema2, tocEntryMutationSuccessSchema2, hyperlinkTargetSchema2, hyperlinkReadPropertiesSchema2, hyperlinkSpecSchema2, hyperlinkPatchSchema2, hyperlinkDomainSchema2, hyperlinkMutationSuccessSchema2, hyperlinkMutationFailureSchema2, contentControlTargetSchema2, contentControlMutationSuccessSchema2, contentControlMutationFailureSchema2, ccListResultSchema2, ccInfoSchema2, refFailureSchema2, bookmarkAddressSchema2, bookmarkMutation2, footnoteAddressSchema2, footnoteConfigScopeSchema2, footnoteNumberingSchema2, footnoteMutation2, footnoteConfig2, crossRefAddressSchema2, crossRefTargetSchema2, crossRefDisplaySchema2, crossRefMutation2, indexAddressSchema2, indexEntryAddressSchema2, indexConfigSchema2, indexEntryDataSchema2, indexEntryPatchSchema2, indexMutation2, indexEntryMutation2, captionAddressSchema2, captionMutation2, captionConfig2, fieldAddressSchema2, fieldMutation2, citationAddressSchema2, citationSourceAddressSchema2, bibliographyAddressSchema2, citationMutation2, citationSourceMutation2, bibliographyMutation2, citationPersonSchema2, citationSourceFieldsSchema2, tocCreateLocationSchema2, authoritiesAddressSchema2, authorityEntryAddressSchema2, authoritiesConfigSchema2, authorityEntryDataSchema2, authorityEntryPatchSchema2, authoritiesMutation2, authorityEntryMutation2, diffCoverageSchema2, diffSummarySchema2, diffSnapshotSchema2, diffPayloadSchema2, GROUP_METADATA2, STEP_OP_CATALOG_UNFROZEN2, PUBLIC_STEP_OP_CATALOG_UNFROZEN2, PUBLIC_MUTATION_STEP_OP_IDS2, PUBLIC_MUTATION_STEP_OP_SET2, CAPABILITY_REASON_CODES, VALID_EDGE_VALUES2, VALID_EDGE_NODE_TYPES2, VALID_DOCUMENT_EDGES2, VALID_REF_BOUNDARIES2, VALID_ANCHOR_KINDS2, RESOLVE_RANGE_ALLOWED_KEYS2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, INLINE_ALIAS_INPUT_ALLOWED_KEYS2, DELETE_INPUT_ALLOWED_KEYS2, VALID_BEHAVIORS2, CONTENT_KIND_SET2, INLINE_KIND_SET2, LEGACY_TOP_LEVEL_TYPES2, TEXT_INSERT_ALLOWED_KEYS2, STRUCTURAL_INSERT_ALLOWED_KEYS2, VALID_INSERT_TYPES2, LIST_KINDS2, LIST_INSERT_POSITIONS2, JOIN_DIRECTIONS2, MUTATION_SCOPES2, LEVEL_ALIGNMENTS2, TRAILING_CHARACTERS2, LIST_PRESET_IDS2, VALID_BLOCK_NODE_TYPES$1, VALID_LIST_KINDS2, VALID_INSERT_POSITIONS2, VALID_JOIN_DIRECTIONS2, VALID_MUTATION_SCOPES2, VALID_LEVEL_ALIGNMENTS2, VALID_TRAILING_CHARACTERS2, VALID_LIST_PRESETS2, VALID_CONTINUITY_VALUES2, VALID_SEQUENCE_MODES2, VALID_LIST_CREATE_MODES2, TEXT_REPLACE_ALLOWED_KEYS2, STRUCTURAL_REPLACE_ALLOWED_KEYS2, VALID_HEADING_LEVELS2, SECTION_BREAK_TYPES$1, SUPPORTED_DELETE_NODE_TYPES2, REJECTED_DELETE_NODE_TYPES2, VALID_BLOCK_NODE_TYPES3, SNAPSHOT_VERSIONS2, PAYLOAD_VERSIONS2, VALID_STYLE_OPTION_FLAGS2, TABLE_BORDER_COLOR_PATTERN2, VALID_APPLY_TO_VALUES2, VALID_BORDER_EDGE_KEYS2, HEADER_FOOTER_KINDS$1, HEADER_FOOTER_VARIANTS$1, DEFAULT_SECTIONS_LIST_LIMIT2 = 250, SECTION_BREAK_TYPES3, SECTION_ORIENTATIONS2, SECTION_VERTICAL_ALIGNS2, SECTION_DIRECTIONS2, HEADER_FOOTER_KINDS3, HEADER_FOOTER_VARIANTS3, LINE_NUMBER_RESTARTS2, PAGE_NUMBER_FORMATS2, PAGE_BORDER_DISPLAYS2, PAGE_BORDER_OFFSET_FROM_VALUES2, PAGE_BORDER_Z_ORDER_VALUES2, VALID_WRAP_TYPES2, VALID_WRAP_SIDES2, VALID_IMAGE_SIZE_UNITS2, VALID_TOC_UPDATE_MODES2, EDIT_ENTRY_PATCH_ALLOWED_KEYS2, PATCH_FIELDS2, CONTENT_CONTROL_TYPES2, LOCK_MODES2, CONTENT_CONTROL_APPEARANCES2, VALID_NODE_KINDS2, VALID_LOCK_MODES$1, VALID_CC_TYPES2, VALID_CC_APPEARANCES2, VALID_CONTENT_FORMATS2, VALID_RAW_PATCH_OPS2, VALID_SET_MODES2, VALID_CREATE_LOCATION_KINDS2, DEFAULT_PROTECTION_STATE, ADAPTER_GATED_PREFIXES2, _buffers, _defaultCollectionId = null, _nextCollectionId = 1, generateV2HandlerEntity = (handlerName, translator$216) => ({
102498
103130
  handlerName,
102499
103131
  handler: (params3) => {
102500
103132
  const { nodes } = params3;
@@ -103058,7 +103690,7 @@ var isRegExp = (value) => {
103058
103690
  type: "element",
103059
103691
  name: "w:rPrChange",
103060
103692
  attributes: {
103061
- "w:id": trackFormatMark.attrs?.id,
103693
+ "w:id": trackFormatMark.attrs?.sourceId || trackFormatMark.attrs?.id,
103062
103694
  "w:author": trackFormatMark.attrs?.author,
103063
103695
  "w:authorEmail": trackFormatMark.attrs?.authorEmail,
103064
103696
  "w:date": trackFormatMark.attrs?.date
@@ -110201,19 +110833,7 @@ var isRegExp = (value) => {
110201
110833
  typeOver = true;
110202
110834
  }
110203
110835
  }
110204
- if (added.some((n) => n.nodeName == "BR") && (view.input.lastKeyCode == 8 || view.input.lastKeyCode == 46)) {
110205
- for (let node3 of added)
110206
- if (node3.nodeName == "BR" && node3.parentNode) {
110207
- let after2 = node3.nextSibling;
110208
- while (after2 && after2.nodeType == 1) {
110209
- if (after2.contentEditable == "false") {
110210
- node3.parentNode.removeChild(node3);
110211
- break;
110212
- }
110213
- after2 = after2.firstChild;
110214
- }
110215
- }
110216
- } else if (gecko && added.length) {
110836
+ if (gecko && added.length) {
110217
110837
  let brs = added.filter((n) => n.nodeName == "BR");
110218
110838
  if (brs.length == 2) {
110219
110839
  let [a, b] = brs;
@@ -110229,6 +110849,13 @@ var isRegExp = (value) => {
110229
110849
  br.remove();
110230
110850
  }
110231
110851
  }
110852
+ } else if ((chrome || safari) && added.some((n) => n.nodeName == "BR") && (view.input.lastKeyCode == 8 || view.input.lastKeyCode == 46)) {
110853
+ for (let node3 of added)
110854
+ if (node3.nodeName == "BR" && node3.parentNode) {
110855
+ let after2 = node3.nextSibling;
110856
+ if (after2 && after2.nodeType == 1 && after2.contentEditable == "false")
110857
+ node3.parentNode.removeChild(node3);
110858
+ }
110232
110859
  }
110233
110860
  let readSel = null;
110234
110861
  if (from4 < 0 && newSel && view.input.lastFocus > Date.now() - 200 && Math.max(view.input.lastTouch, view.input.lastClick.time) < Date.now() - 300 && selectionCollapsed(sel) && (readSel = selectionFromDOM(view)) && readSel.eq(Selection.near(view.state.doc.resolve(0), 1))) {
@@ -110477,11 +111104,11 @@ var isRegExp = (value) => {
110477
111104
  }
110478
111105
  updateDraggedNode(dragging, prev) {
110479
111106
  let sel = dragging.node, found$1 = -1;
110480
- if (sel.from < this.state.doc.content.size && this.state.doc.nodeAt(sel.from) == sel.node)
111107
+ if (this.state.doc.nodeAt(sel.from) == sel.node)
110481
111108
  found$1 = sel.from;
110482
111109
  else {
110483
111110
  let movedPos = sel.from + (this.state.doc.content.size - prev.doc.content.size);
110484
- if ((movedPos > 0 && movedPos < this.state.doc.content.size && this.state.doc.nodeAt(movedPos)) == sel.node)
111111
+ if ((movedPos > 0 && this.state.doc.nodeAt(movedPos)) == sel.node)
110485
111112
  found$1 = movedPos;
110486
111113
  }
110487
111114
  this.dragging = new Dragging(dragging.slice, dragging.move, found$1 < 0 ? undefined : NodeSelection.create(this.state.doc, found$1));
@@ -116857,7 +117484,7 @@ var isRegExp = (value) => {
116857
117484
  state.kern = kernNode.attributes["w:val"];
116858
117485
  }
116859
117486
  }, SuperConverter;
116860
- var init_SuperConverter_CE_qGNRx_es = __esm(() => {
117487
+ var init_SuperConverter_Dze38Knd_es = __esm(() => {
116861
117488
  init_rolldown_runtime_Bg48TavK_es();
116862
117489
  init_jszip_C49i9kUs_es();
116863
117490
  init_xml_js_CqGKpaft_es();
@@ -121754,7 +122381,7 @@ var init_SuperConverter_CE_qGNRx_es = __esm(() => {
121754
122381
  "trackChanges.list": {
121755
122382
  memberPath: "trackChanges.list",
121756
122383
  description: "List all tracked changes in the document.",
121757
- expectedResult: "Returns a TrackChangesListResult with an array of tracked change entries and total count.",
122384
+ expectedResult: "Returns a TrackChangesListResult with tracked change entries, total count, and source Word revision IDs when available.",
121758
122385
  requiresDocumentContext: true,
121759
122386
  metadata: readOperation2({
121760
122387
  idempotency: "idempotent",
@@ -121768,7 +122395,7 @@ var init_SuperConverter_CE_qGNRx_es = __esm(() => {
121768
122395
  "trackChanges.get": {
121769
122396
  memberPath: "trackChanges.get",
121770
122397
  description: "Retrieve a single tracked change by ID.",
121771
- expectedResult: "Returns a TrackChangeInfo object with the change type, author, date, and affected content.",
122398
+ expectedResult: "Returns a TrackChangeInfo object with the change type, author, date, affected content, and source Word revision IDs when available.",
121772
122399
  requiresDocumentContext: true,
121773
122400
  metadata: readOperation2({
121774
122401
  idempotency: "idempotent",
@@ -126986,6 +127613,11 @@ var init_SuperConverter_CE_qGNRx_es = __esm(() => {
126986
127613
  creatorName: { type: "string" },
126987
127614
  creatorEmail: { type: "string" }
126988
127615
  }, ["address", "status"]));
127616
+ trackChangeWordRevisionIdsSchema2 = objectSchema2({
127617
+ insert: { type: "string" },
127618
+ delete: { type: "string" },
127619
+ format: { type: "string" }
127620
+ });
126989
127621
  objectSchema2({
126990
127622
  address: trackedChangeAddressSchema2,
126991
127623
  id: { type: "string" },
@@ -126994,6 +127626,7 @@ var init_SuperConverter_CE_qGNRx_es = __esm(() => {
126994
127626
  "delete",
126995
127627
  "format"
126996
127628
  ] },
127629
+ wordRevisionIds: trackChangeWordRevisionIdsSchema2,
126997
127630
  author: { type: "string" },
126998
127631
  authorEmail: { type: "string" },
126999
127632
  authorImage: { type: "string" },
@@ -127011,6 +127644,7 @@ var init_SuperConverter_CE_qGNRx_es = __esm(() => {
127011
127644
  "delete",
127012
127645
  "format"
127013
127646
  ] },
127647
+ wordRevisionIds: trackChangeWordRevisionIdsSchema2,
127014
127648
  author: { type: "string" },
127015
127649
  authorEmail: { type: "string" },
127016
127650
  authorImage: { type: "string" },
@@ -153930,7 +154564,7 @@ var init_SuperConverter_CE_qGNRx_es = __esm(() => {
153930
154564
  };
153931
154565
  });
153932
154566
 
153933
- // ../../packages/superdoc/dist/chunks/create-headless-toolbar-oHAjbd4d.es.js
154567
+ // ../../packages/superdoc/dist/chunks/create-headless-toolbar-Bj-CBCCF.es.js
153934
154568
  function parseSizeUnit(val = "0") {
153935
154569
  const length3 = val.toString() || "0";
153936
154570
  const value = Number.parseFloat(length3);
@@ -155466,8 +156100,8 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, Extension = class Extension2 {
155466
156100
  return false;
155467
156101
  return Boolean(checker(attrs));
155468
156102
  };
155469
- var init_create_headless_toolbar_oHAjbd4d_es = __esm(() => {
155470
- init_SuperConverter_CE_qGNRx_es();
156103
+ var init_create_headless_toolbar_Bj_CBCCF_es = __esm(() => {
156104
+ init_SuperConverter_Dze38Knd_es();
155471
156105
  init_constants_5yyN6FZg_es();
155472
156106
  init_dist_B8HfvhaK_es();
155473
156107
  CSS_DIMENSION_REGEX = /[\d-.]+(\w+)$/;
@@ -155621,28 +156255,28 @@ function zwitch(key2, options) {
155621
156255
  one2.unknown = settings.unknown;
155622
156256
  return one2;
155623
156257
  }
155624
- function configure2(base3, extension3) {
156258
+ function configure2(base3, extension2) {
155625
156259
  let index2 = -1;
155626
156260
  let key2;
155627
- if (extension3.extensions)
155628
- while (++index2 < extension3.extensions.length)
155629
- configure2(base3, extension3.extensions[index2]);
155630
- for (key2 in extension3)
155631
- if (own4.call(extension3, key2))
156261
+ if (extension2.extensions)
156262
+ while (++index2 < extension2.extensions.length)
156263
+ configure2(base3, extension2.extensions[index2]);
156264
+ for (key2 in extension2)
156265
+ if (own4.call(extension2, key2))
155632
156266
  switch (key2) {
155633
156267
  case "extensions":
155634
156268
  break;
155635
156269
  case "unsafe":
155636
- list3(base3[key2], extension3[key2]);
156270
+ list3(base3[key2], extension2[key2]);
155637
156271
  break;
155638
156272
  case "join":
155639
- list3(base3[key2], extension3[key2]);
156273
+ list3(base3[key2], extension2[key2]);
155640
156274
  break;
155641
156275
  case "handlers":
155642
- map5(base3[key2], extension3[key2]);
156276
+ map5(base3[key2], extension2[key2]);
155643
156277
  break;
155644
156278
  default:
155645
- base3.options[key2] = extension3[key2];
156279
+ base3.options[key2] = extension2[key2];
155646
156280
  }
155647
156281
  return base3;
155648
156282
  }
@@ -157246,15 +157880,15 @@ var DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.docum
157246
157880
  this.mediaFiles[name] = fileBase64;
157247
157881
  } else {
157248
157882
  const fileBase64 = await zipEntry.async("base64");
157249
- let extension3 = this.getFileExtension(name)?.toLowerCase();
157883
+ let extension2 = this.getFileExtension(name)?.toLowerCase();
157250
157884
  let detectedType = null;
157251
- if (!IMAGE_EXTS.has(extension3) || extension3 === "tmp") {
157885
+ if (!IMAGE_EXTS.has(extension2) || extension2 === "tmp") {
157252
157886
  detectedType = detectImageType(fileBase64);
157253
157887
  if (detectedType)
157254
- extension3 = detectedType;
157888
+ extension2 = detectedType;
157255
157889
  }
157256
- if (IMAGE_EXTS.has(extension3)) {
157257
- const mimeSubtype = MIME_TYPE_FOR_EXT[extension3] || extension3;
157890
+ if (IMAGE_EXTS.has(extension2)) {
157891
+ const mimeSubtype = MIME_TYPE_FOR_EXT[extension2] || extension2;
157258
157892
  this.mediaFiles[name] = `data:image/${mimeSubtype};base64,${fileBase64}`;
157259
157893
  const blob = await zipEntry.async("blob");
157260
157894
  const fileObj = new File([blob], name, { type: blob.type });
@@ -158791,7 +159425,7 @@ var require_decode = __commonJS((exports) => {
158791
159425
  exports.decodeXML = decodeXML;
158792
159426
  });
158793
159427
 
158794
- // ../../node_modules/.pnpm/@babel+parser@7.29.2/node_modules/@babel/parser/lib/index.js
159428
+ // ../../node_modules/.pnpm/@babel+parser@7.29.0/node_modules/@babel/parser/lib/index.js
158795
159429
  var require_lib2 = __commonJS((exports) => {
158796
159430
  Object.defineProperty(exports, "__esModule", {
158797
159431
  value: true
@@ -170393,7 +171027,7 @@ var require_lib2 = __commonJS((exports) => {
170393
171027
  this.next();
170394
171028
  return this.parseAsyncFunctionExpression(this.startNodeAtNode(id2));
170395
171029
  } else if (tokenIsIdentifier(type2)) {
170396
- if (canBeArrow && this.lookaheadCharCode() === 61) {
171030
+ if (this.lookaheadCharCode() === 61) {
170397
171031
  return this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(id2));
170398
171032
  } else {
170399
171033
  return id2;
@@ -203905,7 +204539,7 @@ var init_remark_gfm_eZN6yzWQ_es = __esm(() => {
203905
204539
  init_remark_gfm_BhnWr3yf_es();
203906
204540
  });
203907
204541
 
203908
- // ../../packages/superdoc/dist/chunks/src-BFCuWPe2.es.js
204542
+ // ../../packages/superdoc/dist/chunks/src-Deswfs9W.es.js
203909
204543
  function deleteProps(obj, propOrProps) {
203910
204544
  const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
203911
204545
  const removeNested = (target, pathParts, index2 = 0) => {
@@ -208650,6 +209284,76 @@ function getFirstTableCellTextPos(tablePos, tableNode) {
208650
209284
  const map$12 = TableMap.get(tableNode);
208651
209285
  return tablePos + 1 + map$12.map[0] + 2;
208652
209286
  }
209287
+ function resolveCommandTargetTable(selection) {
209288
+ if (selection?.node?.type?.name === "structuredContentBlock") {
209289
+ let found2 = null;
209290
+ let count2 = 0;
209291
+ selection.node.descendants((node3, pos) => {
209292
+ if (node3.type?.name !== "table")
209293
+ return true;
209294
+ count2 += 1;
209295
+ found2 = {
209296
+ node: node3,
209297
+ pos: selection.from + 1 + pos
209298
+ };
209299
+ return false;
209300
+ });
209301
+ if (count2 === 1 && found2)
209302
+ return found2;
209303
+ }
209304
+ return findParentNode((node3) => node3.type.name === "table")(selection);
209305
+ }
209306
+ function resolveStructuredContentBlockTableInsertion(selection) {
209307
+ if (selection instanceof NodeSelection && selection.node?.type?.name === "structuredContentBlock") {
209308
+ const contentStart = selection.from + 1;
209309
+ const firstChild = selection.node.firstChild;
209310
+ if (selection.node.childCount === 1 && firstChild?.type?.name === "paragraph" && firstChild.textContent === "")
209311
+ return {
209312
+ from: contentStart,
209313
+ to: contentStart + firstChild.nodeSize,
209314
+ tablePos: contentStart
209315
+ };
209316
+ const contentEnd = contentStart + selection.node.content.size;
209317
+ return {
209318
+ from: contentEnd,
209319
+ to: contentEnd,
209320
+ tablePos: contentEnd
209321
+ };
209322
+ }
209323
+ const $from = selection.$from;
209324
+ let structuredContentDepth = -1;
209325
+ for (let depth = $from.depth;depth > 0; depth--)
209326
+ if ($from.node(depth).type?.name === "structuredContentBlock") {
209327
+ structuredContentDepth = depth;
209328
+ break;
209329
+ }
209330
+ if (structuredContentDepth === -1)
209331
+ return null;
209332
+ const paragraphDepth = $from.parent?.type?.name === "run" ? $from.depth - 1 : $from.depth;
209333
+ if (paragraphDepth <= structuredContentDepth) {
209334
+ const contentEnd = $from.end(structuredContentDepth);
209335
+ return {
209336
+ from: contentEnd,
209337
+ to: contentEnd,
209338
+ tablePos: contentEnd
209339
+ };
209340
+ }
209341
+ const paragraph2 = $from.node(paragraphDepth);
209342
+ if (paragraph2.type.name === "paragraph" && paragraph2.textContent === "") {
209343
+ const from$2 = $from.before(paragraphDepth);
209344
+ return {
209345
+ from: from$2,
209346
+ to: $from.after(paragraphDepth),
209347
+ tablePos: from$2
209348
+ };
209349
+ }
209350
+ const from$1 = $from.after(paragraphDepth);
209351
+ return {
209352
+ from: from$1,
209353
+ to: from$1,
209354
+ tablePos: from$1
209355
+ };
209356
+ }
208653
209357
  function getCellType({ node: node3, state }) {
208654
209358
  return tableNodeTypes(state.schema)[node3.type.spec.tableRole];
208655
209359
  }
@@ -215594,10 +216298,10 @@ function Item$1(fun, array) {
215594
216298
  this.array = array;
215595
216299
  }
215596
216300
  function noop2() {}
215597
- function isExtensionRulesEnabled(extension3, enabled) {
216301
+ function isExtensionRulesEnabled(extension2, enabled) {
215598
216302
  if (Array.isArray(enabled))
215599
216303
  return enabled.some((enabledExtension) => {
215600
- return (typeof enabledExtension === "string" ? enabledExtension : enabledExtension.name) === extension3.name;
216304
+ return (typeof enabledExtension === "string" ? enabledExtension : enabledExtension.name) === extension2.name;
215601
216305
  });
215602
216306
  return enabled;
215603
216307
  }
@@ -225892,6 +226596,18 @@ function paragraphsClearDirectionWrapper(editor, input2, options) {
225892
226596
  return result;
225893
226597
  }, options);
225894
226598
  }
226599
+ function normalizeWordRevisionIds(wordRevisionIds) {
226600
+ if (!wordRevisionIds)
226601
+ return;
226602
+ const normalized = {};
226603
+ if (wordRevisionIds.insert)
226604
+ normalized.insert = wordRevisionIds.insert;
226605
+ if (wordRevisionIds.delete)
226606
+ normalized.delete = wordRevisionIds.delete;
226607
+ if (wordRevisionIds.format)
226608
+ normalized.format = wordRevisionIds.format;
226609
+ return Object.keys(normalized).length > 0 ? normalized : undefined;
226610
+ }
225895
226611
  function buildTrackChangeInfo(editor, change) {
225896
226612
  const excerpt = normalizeExcerpt(editor.state.doc.textBetween(change.from, change.to, " ", ""));
225897
226613
  const type = resolveTrackedChangeType(change);
@@ -225903,6 +226619,7 @@ function buildTrackChangeInfo(editor, change) {
225903
226619
  },
225904
226620
  id: change.id,
225905
226621
  type,
226622
+ wordRevisionIds: normalizeWordRevisionIds(change.wordRevisionIds),
225906
226623
  author: toNonEmptyString(change.attrs.author),
225907
226624
  authorEmail: toNonEmptyString(change.attrs.authorEmail),
225908
226625
  authorImage: toNonEmptyString(change.attrs.authorImage),
@@ -225939,10 +226656,11 @@ function trackChangesListWrapper(editor, input2) {
225939
226656
  const items = paged.items.map((change) => {
225940
226657
  const info = buildTrackChangeInfo(editor, change);
225941
226658
  const handle3 = buildResolvedHandle(`tc:${info.id}`, "stable", "trackedChange");
225942
- const { address: address2, type, author, authorEmail, authorImage, date, excerpt } = info;
226659
+ const { address: address2, type, wordRevisionIds, author, authorEmail, authorImage, date, excerpt } = info;
225943
226660
  return buildDiscoveryItem(info.id, handle3, {
225944
226661
  address: address2,
225945
226662
  type,
226663
+ wordRevisionIds,
225946
226664
  author,
225947
226665
  authorEmail,
225948
226666
  authorImage,
@@ -253035,7 +253753,7 @@ function hydrateImageBlocks(blocks2, mediaFiles) {
253035
253753
  });
253036
253754
  if (normalizedMedia.size === 0)
253037
253755
  return blocks2;
253038
- const resolveImageSrc = (src, relId, attrSrc, extension3) => {
253756
+ const resolveImageSrc = (src, relId, attrSrc, extension2) => {
253039
253757
  if (!src || src.startsWith("data:"))
253040
253758
  return;
253041
253759
  const candidates = /* @__PURE__ */ new Set;
@@ -253043,7 +253761,7 @@ function hydrateImageBlocks(blocks2, mediaFiles) {
253043
253761
  if (attrSrc)
253044
253762
  candidates.add(attrSrc);
253045
253763
  if (relId) {
253046
- const inferredExt = extension3 ?? inferExtensionFromPath(src) ?? "jpeg";
253764
+ const inferredExt = extension2 ?? inferExtensionFromPath(src) ?? "jpeg";
253047
253765
  candidates.add(`word/media/${relId}.${inferredExt}`);
253048
253766
  candidates.add(`media/${relId}.${inferredExt}`);
253049
253767
  }
@@ -253054,7 +253772,7 @@ function hydrateImageBlocks(blocks2, mediaFiles) {
253054
253772
  const base64 = normalizedMedia.get(normalized);
253055
253773
  if (!base64)
253056
253774
  continue;
253057
- const finalExt = extension3 ?? inferExtensionFromPath(normalized) ?? "jpeg";
253775
+ const finalExt = extension2 ?? inferExtensionFromPath(normalized) ?? "jpeg";
253058
253776
  return base64.startsWith("data:") ? base64 : `data:image/${finalExt};base64,${base64}`;
253059
253777
  }
253060
253778
  };
@@ -253086,8 +253804,8 @@ function hydrateImageBlocks(blocks2, mediaFiles) {
253086
253804
  const attrs = blk.attrs ?? {};
253087
253805
  const relId = typeof attrs.rId === "string" ? attrs.rId : undefined;
253088
253806
  const attrSrc = typeof attrs.src === "string" ? attrs.src : undefined;
253089
- const extension3 = typeof attrs.extension === "string" ? attrs.extension.toLowerCase() : undefined;
253090
- const resolvedSrc = resolveImageSrc(blk.src, relId, attrSrc, extension3);
253807
+ const extension2 = typeof attrs.extension === "string" ? attrs.extension.toLowerCase() : undefined;
253808
+ const resolvedSrc = resolveImageSrc(blk.src, relId, attrSrc, extension2);
253091
253809
  if (resolvedSrc)
253092
253810
  return {
253093
253811
  ...blk,
@@ -261747,7 +262465,7 @@ var Node$13 = class Node$14 {
261747
262465
  seededAt: (/* @__PURE__ */ new Date()).toISOString(),
261748
262466
  source: "browser"
261749
262467
  });
261750
- }, initSyncListener = (ydoc, editor, extension3) => {
262468
+ }, initSyncListener = (ydoc, editor, extension2) => {
261751
262469
  const provider = editor.options.collaborationProvider;
261752
262470
  if (!provider)
261753
262471
  return () => {};
@@ -261757,7 +262475,7 @@ var Node$13 = class Node$14 {
261757
262475
  return;
261758
262476
  if (synced === false)
261759
262477
  return;
261760
- extension3.options.isReady = true;
262478
+ extension2.options.isReady = true;
261761
262479
  editor.emit("collaborationReady", {
261762
262480
  editor,
261763
262481
  ydoc
@@ -261910,11 +262628,11 @@ var Node$13 = class Node$14 {
261910
262628
  });
261911
262629
  }
261912
262630
  };
261913
- for (const extension3 of extensions) {
261914
- const addGlobalAttributes = getExtensionConfigField(extension3, "addGlobalAttributes", {
261915
- name: extension3.name,
261916
- options: extension3.options,
261917
- storage: extension3.storage
262631
+ for (const extension2 of extensions) {
262632
+ const addGlobalAttributes = getExtensionConfigField(extension2, "addGlobalAttributes", {
262633
+ name: extension2.name,
262634
+ options: extension2.options,
262635
+ storage: extension2.storage
261918
262636
  });
261919
262637
  if (!addGlobalAttributes)
261920
262638
  continue;
@@ -261929,11 +262647,11 @@ var Node$13 = class Node$14 {
261929
262647
  const nodeAndMarkExtensions = extensions.filter((e) => {
261930
262648
  return e.type === "node" || e.type === "mark";
261931
262649
  });
261932
- for (const extension3 of nodeAndMarkExtensions) {
261933
- const addAttributes = getExtensionConfigField(extension3, "addAttributes", {
261934
- name: extension3.name,
261935
- options: extension3.options,
261936
- storage: extension3.storage
262650
+ for (const extension2 of nodeAndMarkExtensions) {
262651
+ const addAttributes = getExtensionConfigField(extension2, "addAttributes", {
262652
+ name: extension2.name,
262653
+ options: extension2.options,
262654
+ storage: extension2.storage
261937
262655
  });
261938
262656
  if (!addAttributes)
261939
262657
  continue;
@@ -261946,7 +262664,7 @@ var Node$13 = class Node$14 {
261946
262664
  if (typeof merged.default === "function")
261947
262665
  merged.default = merged.default();
261948
262666
  extensionAttributes.push({
261949
- type: extension3.name,
262667
+ type: extension2.name,
261950
262668
  name,
261951
262669
  attribute: merged
261952
262670
  });
@@ -268322,6 +269040,7 @@ var Node$13 = class Node$14 {
268322
269040
  if (after2.length || before2.length) {
268323
269041
  const newFormatMark = state.schema.marks[TrackFormatMarkName].create({
268324
269042
  id: wid,
269043
+ sourceId: formatChangeMark?.attrs?.sourceId || "",
268325
269044
  author: user.name,
268326
269045
  authorEmail: user.email,
268327
269046
  authorImage: user.image,
@@ -268390,6 +269109,7 @@ var Node$13 = class Node$14 {
268390
269109
  if (after2.length || before2.length) {
268391
269110
  const newFormatMark = state.schema.marks[TrackFormatMarkName].create({
268392
269111
  id: formatChangeMark ? formatChangeMark.attrs.id : sharedWid ?? (sharedWid = v4_default()),
269112
+ sourceId: formatChangeMark?.attrs?.sourceId || "",
268393
269113
  author: user.name,
268394
269114
  authorEmail: user.email,
268395
269115
  authorImage: user.image,
@@ -271641,12 +272361,12 @@ var Node$13 = class Node$14 {
271641
272361
  });
271642
272362
  }
271643
272363
  static #createNodesSchema(nodeExtensions, attributes, editor) {
271644
- const nodeEntries = nodeExtensions.map((extension3) => {
271645
- const extensionAttributes = attributes.filter((a2) => a2.type === extension3.name);
272364
+ const nodeEntries = nodeExtensions.map((extension2) => {
272365
+ const extensionAttributes = attributes.filter((a2) => a2.type === extension2.name);
271646
272366
  const context = {
271647
- name: extension3.name,
271648
- options: extension3.options,
271649
- storage: extension3.storage,
272367
+ name: extension2.name,
272368
+ options: extension2.options,
272369
+ storage: extension2.storage,
271650
272370
  editor
271651
272371
  };
271652
272372
  const attrs = Object.fromEntries(extensionAttributes.map((attr) => {
@@ -271656,80 +272376,80 @@ var Node$13 = class Node$14 {
271656
272376
  const extendNodeSchema = getExtensionConfigField(e, "extendNodeSchema", context);
271657
272377
  return {
271658
272378
  ...fields,
271659
- ...extendNodeSchema ? extendNodeSchema(extension3) : {}
272379
+ ...extendNodeSchema ? extendNodeSchema(extension2) : {}
271660
272380
  };
271661
272381
  }, {});
271662
272382
  const schema = cleanSchemaItem({
271663
- content: callOrGet(getExtensionConfigField(extension3, "content", context)),
271664
- group: callOrGet(getExtensionConfigField(extension3, "group", context)),
271665
- marks: callOrGet(getExtensionConfigField(extension3, "marks", context)),
271666
- inline: callOrGet(getExtensionConfigField(extension3, "inline", context)),
271667
- atom: callOrGet(getExtensionConfigField(extension3, "atom", context)),
271668
- selectable: callOrGet(getExtensionConfigField(extension3, "selectable", context)),
271669
- draggable: callOrGet(getExtensionConfigField(extension3, "draggable", context)),
271670
- code: callOrGet(getExtensionConfigField(extension3, "code", context)),
271671
- defining: callOrGet(getExtensionConfigField(extension3, "defining", context)),
271672
- isolating: callOrGet(getExtensionConfigField(extension3, "isolating", context)),
271673
- summary: getExtensionConfigField(extension3, "summary", context),
272383
+ content: callOrGet(getExtensionConfigField(extension2, "content", context)),
272384
+ group: callOrGet(getExtensionConfigField(extension2, "group", context)),
272385
+ marks: callOrGet(getExtensionConfigField(extension2, "marks", context)),
272386
+ inline: callOrGet(getExtensionConfigField(extension2, "inline", context)),
272387
+ atom: callOrGet(getExtensionConfigField(extension2, "atom", context)),
272388
+ selectable: callOrGet(getExtensionConfigField(extension2, "selectable", context)),
272389
+ draggable: callOrGet(getExtensionConfigField(extension2, "draggable", context)),
272390
+ code: callOrGet(getExtensionConfigField(extension2, "code", context)),
272391
+ defining: callOrGet(getExtensionConfigField(extension2, "defining", context)),
272392
+ isolating: callOrGet(getExtensionConfigField(extension2, "isolating", context)),
272393
+ summary: getExtensionConfigField(extension2, "summary", context),
271674
272394
  attrs,
271675
272395
  ...additionalNodeFields
271676
272396
  });
271677
- if (typeof extension3.validChildren === "function" || Array.isArray(extension3.validChildren))
272397
+ if (typeof extension2.validChildren === "function" || Array.isArray(extension2.validChildren))
271678
272398
  Object.defineProperty(schema, "validChildren", {
271679
272399
  enumerable: false,
271680
272400
  configurable: false,
271681
- get: () => extension3.validChildren
272401
+ get: () => extension2.validChildren
271682
272402
  });
271683
- const parseDOM = callOrGet(getExtensionConfigField(extension3, "parseDOM", context));
272403
+ const parseDOM = callOrGet(getExtensionConfigField(extension2, "parseDOM", context));
271684
272404
  if (parseDOM)
271685
272405
  schema.parseDOM = parseDOM.map((parseRule) => {
271686
272406
  return Attribute2.insertExtensionAttrsToParseRule(parseRule, extensionAttributes);
271687
272407
  });
271688
- const renderDOM = getExtensionConfigField(extension3, "renderDOM", context);
272408
+ const renderDOM = getExtensionConfigField(extension2, "renderDOM", context);
271689
272409
  if (renderDOM)
271690
272410
  schema.toDOM = (node3) => renderDOM({
271691
272411
  node: node3,
271692
272412
  htmlAttributes: Attribute2.getAttributesToRender(node3, extensionAttributes)
271693
272413
  });
271694
- const renderText = getExtensionConfigField(extension3, "renderText", context);
272414
+ const renderText = getExtensionConfigField(extension2, "renderText", context);
271695
272415
  if (renderText)
271696
272416
  schema.toText = renderText;
271697
- return [extension3.name, schema];
272417
+ return [extension2.name, schema];
271698
272418
  });
271699
272419
  return Object.fromEntries(nodeEntries);
271700
272420
  }
271701
272421
  static #createMarksSchema(markExtensions, attributes, editor) {
271702
- const markEntries = markExtensions.map((extension3) => {
271703
- const extensionAttributes = attributes.filter((a2) => a2.type === extension3.name);
272422
+ const markEntries = markExtensions.map((extension2) => {
272423
+ const extensionAttributes = attributes.filter((a2) => a2.type === extension2.name);
271704
272424
  const context = {
271705
- name: extension3.name,
271706
- options: extension3.options,
271707
- storage: extension3.storage,
272425
+ name: extension2.name,
272426
+ options: extension2.options,
272427
+ storage: extension2.storage,
271708
272428
  editor
271709
272429
  };
271710
272430
  const attrs = Object.fromEntries(extensionAttributes.map((attr) => {
271711
272431
  return [attr.name, { default: attr?.attribute?.default }];
271712
272432
  }));
271713
272433
  const schema = cleanSchemaItem({
271714
- group: callOrGet(getExtensionConfigField(extension3, "group", context)),
271715
- inclusive: callOrGet(getExtensionConfigField(extension3, "inclusive", context)),
271716
- excludes: callOrGet(getExtensionConfigField(extension3, "excludes", context)),
271717
- spanning: callOrGet(getExtensionConfigField(extension3, "spanning", context)),
271718
- code: callOrGet(getExtensionConfigField(extension3, "code", context)),
272434
+ group: callOrGet(getExtensionConfigField(extension2, "group", context)),
272435
+ inclusive: callOrGet(getExtensionConfigField(extension2, "inclusive", context)),
272436
+ excludes: callOrGet(getExtensionConfigField(extension2, "excludes", context)),
272437
+ spanning: callOrGet(getExtensionConfigField(extension2, "spanning", context)),
272438
+ code: callOrGet(getExtensionConfigField(extension2, "code", context)),
271719
272439
  attrs
271720
272440
  });
271721
- const parseDOM = callOrGet(getExtensionConfigField(extension3, "parseDOM", context));
272441
+ const parseDOM = callOrGet(getExtensionConfigField(extension2, "parseDOM", context));
271722
272442
  if (parseDOM)
271723
272443
  schema.parseDOM = parseDOM.map((parseRule) => {
271724
272444
  return Attribute2.insertExtensionAttrsToParseRule(parseRule, extensionAttributes);
271725
272445
  });
271726
- const renderDOM = getExtensionConfigField(extension3, "renderDOM", context);
272446
+ const renderDOM = getExtensionConfigField(extension2, "renderDOM", context);
271727
272447
  if (renderDOM)
271728
272448
  schema.toDOM = (mark2) => renderDOM({
271729
272449
  mark: mark2,
271730
272450
  htmlAttributes: Attribute2.getAttributesToRender(mark2, extensionAttributes)
271731
272451
  });
271732
- return [extension3.name, schema];
272452
+ return [extension2.name, schema];
271733
272453
  });
271734
272454
  return Object.fromEntries(markEntries);
271735
272455
  }
@@ -271854,9 +272574,9 @@ var Node$13 = class Node$14 {
271854
272574
  constructor(extensions, userExtensions, editor) {
271855
272575
  this.editor = editor;
271856
272576
  this.externalExtensions = userExtensions || [];
271857
- this.externalExtensions = this.externalExtensions.map((extension3) => {
272577
+ this.externalExtensions = this.externalExtensions.map((extension2) => {
271858
272578
  return {
271859
- ...extension3,
272579
+ ...extension2,
271860
272580
  isExternal: true
271861
272581
  };
271862
272582
  });
@@ -271887,13 +272607,13 @@ var Node$13 = class Node$14 {
271887
272607
  }
271888
272608
  get commands() {
271889
272609
  let commandsObject = {};
271890
- for (const extension3 of this.extensions) {
271891
- const addCommands = getExtensionConfigField(extension3, "addCommands", {
271892
- name: extension3.name,
271893
- options: extension3.options,
271894
- storage: extension3.storage,
272610
+ for (const extension2 of this.extensions) {
272611
+ const addCommands = getExtensionConfigField(extension2, "addCommands", {
272612
+ name: extension2.name,
272613
+ options: extension2.options,
272614
+ storage: extension2.storage,
271895
272615
  editor: this.editor,
271896
- type: getSchemaTypeByName(extension3.name, this.schema)
272616
+ type: getSchemaTypeByName(extension2.name, this.schema)
271897
272617
  });
271898
272618
  if (addCommands)
271899
272619
  commandsObject = {
@@ -271905,16 +272625,16 @@ var Node$13 = class Node$14 {
271905
272625
  }
271906
272626
  get helpers() {
271907
272627
  const helpersObject = {};
271908
- for (const extension3 of this.extensions) {
271909
- const name = extension3.name;
272628
+ for (const extension2 of this.extensions) {
272629
+ const name = extension2.name;
271910
272630
  if (!name)
271911
272631
  continue;
271912
- const addHelpers = getExtensionConfigField(extension3, "addHelpers", {
271913
- name: extension3.name,
271914
- options: extension3.options,
271915
- storage: extension3.storage,
272632
+ const addHelpers = getExtensionConfigField(extension2, "addHelpers", {
272633
+ name: extension2.name,
272634
+ options: extension2.options,
272635
+ storage: extension2.storage,
271916
272636
  editor: this.editor,
271917
- type: getSchemaTypeByName(extension3.name, this.schema)
272637
+ type: getSchemaTypeByName(extension2.name, this.schema)
271918
272638
  });
271919
272639
  if (addHelpers)
271920
272640
  helpersObject[name] = addHelpers();
@@ -271925,16 +272645,16 @@ var Node$13 = class Node$14 {
271925
272645
  const editor = this.editor;
271926
272646
  const extensions = ExtensionService2.sortByPriority([...this.extensions].reverse());
271927
272647
  const inputRules = [];
271928
- const allPlugins = extensions.map((extension3) => {
272648
+ const allPlugins = extensions.map((extension2) => {
271929
272649
  const context = {
271930
- name: extension3.name,
271931
- options: extension3.options,
271932
- storage: extension3.storage,
272650
+ name: extension2.name,
272651
+ options: extension2.options,
272652
+ storage: extension2.storage,
271933
272653
  editor,
271934
- type: getSchemaTypeByName(extension3.name, this.schema)
272654
+ type: getSchemaTypeByName(extension2.name, this.schema)
271935
272655
  };
271936
272656
  const plugins = [];
271937
- const addShortcuts = getExtensionConfigField(extension3, "addShortcuts", context);
272657
+ const addShortcuts = getExtensionConfigField(extension2, "addShortcuts", context);
271938
272658
  let bindingsObject = {};
271939
272659
  if (addShortcuts) {
271940
272660
  const entries2 = Object.entries(addShortcuts()).map(([shortcut, method]) => {
@@ -271946,10 +272666,10 @@ var Node$13 = class Node$14 {
271946
272666
  bindingsObject = { ...Object.fromEntries(entries2) };
271947
272667
  }
271948
272668
  plugins.push(keymap(bindingsObject));
271949
- const addInputRules = getExtensionConfigField(extension3, "addInputRules", context);
271950
- if (isExtensionRulesEnabled(extension3, editor.options.enableInputRules) && addInputRules)
272669
+ const addInputRules = getExtensionConfigField(extension2, "addInputRules", context);
272670
+ if (isExtensionRulesEnabled(extension2, editor.options.enableInputRules) && addInputRules)
271951
272671
  inputRules.push(...addInputRules());
271952
- const addPmPlugins = getExtensionConfigField(extension3, "addPmPlugins", context);
272672
+ const addPmPlugins = getExtensionConfigField(extension2, "addPmPlugins", context);
271953
272673
  if (addPmPlugins)
271954
272674
  plugins.push(...addPmPlugins());
271955
272675
  return plugins;
@@ -271961,14 +272681,14 @@ var Node$13 = class Node$14 {
271961
272681
  }
271962
272682
  get nodeViews() {
271963
272683
  const { editor } = this;
271964
- const entries2 = this.extensions.filter((e) => e.type === "node").filter((extension3) => !!getExtensionConfigField(extension3, "addNodeView")).map((extension3) => {
271965
- const extensionAttrs = this.attributes.filter((a2) => a2.type === extension3.name);
271966
- const addNodeView = getExtensionConfigField(extension3, "addNodeView", {
271967
- name: extension3.name,
271968
- options: extension3.options,
271969
- storage: extension3.storage,
272684
+ const entries2 = this.extensions.filter((e) => e.type === "node").filter((extension2) => !!getExtensionConfigField(extension2, "addNodeView")).map((extension2) => {
272685
+ const extensionAttrs = this.attributes.filter((a2) => a2.type === extension2.name);
272686
+ const addNodeView = getExtensionConfigField(extension2, "addNodeView", {
272687
+ name: extension2.name,
272688
+ options: extension2.options,
272689
+ storage: extension2.storage,
271970
272690
  editor,
271971
- type: getNodeType(extension3.name, this.schema)
272691
+ type: getNodeType(extension2.name, this.schema)
271972
272692
  });
271973
272693
  if (!addNodeView)
271974
272694
  return null;
@@ -271982,47 +272702,47 @@ var Node$13 = class Node$14 {
271982
272702
  getPos,
271983
272703
  decorations,
271984
272704
  htmlAttributes: Attribute2.getAttributesToRender(node3, extensionAttrs),
271985
- extension: extension3,
272705
+ extension: extension2,
271986
272706
  extensionAttrs
271987
272707
  });
271988
272708
  };
271989
- return [extension3.name, nodeview];
272709
+ return [extension2.name, nodeview];
271990
272710
  }).filter(Boolean);
271991
272711
  return Object.fromEntries(entries2);
271992
272712
  }
271993
272713
  #setupExtensions() {
271994
- for (const extension3 of this.extensions) {
271995
- this.editor.extensionStorage[extension3.name] = extension3.storage;
272714
+ for (const extension2 of this.extensions) {
272715
+ this.editor.extensionStorage[extension2.name] = extension2.storage;
271996
272716
  const context = {
271997
- name: extension3.name,
271998
- options: extension3.options,
271999
- storage: extension3.storage,
272717
+ name: extension2.name,
272718
+ options: extension2.options,
272719
+ storage: extension2.storage,
272000
272720
  editor: this.editor,
272001
- type: getSchemaTypeByName(extension3.name, this.schema)
272721
+ type: getSchemaTypeByName(extension2.name, this.schema)
272002
272722
  };
272003
- if (extension3.type === "mark") {
272004
- if (callOrGet(getExtensionConfigField(extension3, "keepOnSplit", context)) ?? true)
272005
- this.splittableMarks.push(extension3.name);
272723
+ if (extension2.type === "mark") {
272724
+ if (callOrGet(getExtensionConfigField(extension2, "keepOnSplit", context)) ?? true)
272725
+ this.splittableMarks.push(extension2.name);
272006
272726
  }
272007
- this.#attachEditorEvents(extension3);
272727
+ this.#attachEditorEvents(extension2);
272008
272728
  }
272009
272729
  }
272010
- #attachEditorEvents(extension3) {
272730
+ #attachEditorEvents(extension2) {
272011
272731
  const context = {
272012
- name: extension3.name,
272013
- options: extension3.options,
272014
- storage: extension3.storage,
272732
+ name: extension2.name,
272733
+ options: extension2.options,
272734
+ storage: extension2.storage,
272015
272735
  editor: this.editor,
272016
- type: getSchemaTypeByName(extension3.name, this.schema)
272017
- };
272018
- const onBeforeCreate = getExtensionConfigField(extension3, "onBeforeCreate", context);
272019
- const onCreate2 = getExtensionConfigField(extension3, "onCreate", context);
272020
- const onUpdate = getExtensionConfigField(extension3, "onUpdate", context);
272021
- const onSelectionUpdate = getExtensionConfigField(extension3, "onSelectionUpdate", context);
272022
- const onTransaction = getExtensionConfigField(extension3, "onTransaction", context);
272023
- const onFocus = getExtensionConfigField(extension3, "onFocus", context);
272024
- const onBlur = getExtensionConfigField(extension3, "onBlur", context);
272025
- const onDestroy2 = getExtensionConfigField(extension3, "onDestroy", context);
272736
+ type: getSchemaTypeByName(extension2.name, this.schema)
272737
+ };
272738
+ const onBeforeCreate = getExtensionConfigField(extension2, "onBeforeCreate", context);
272739
+ const onCreate2 = getExtensionConfigField(extension2, "onCreate", context);
272740
+ const onUpdate = getExtensionConfigField(extension2, "onUpdate", context);
272741
+ const onSelectionUpdate = getExtensionConfigField(extension2, "onSelectionUpdate", context);
272742
+ const onTransaction = getExtensionConfigField(extension2, "onTransaction", context);
272743
+ const onFocus = getExtensionConfigField(extension2, "onFocus", context);
272744
+ const onBlur = getExtensionConfigField(extension2, "onBlur", context);
272745
+ const onDestroy2 = getExtensionConfigField(extension2, "onDestroy", context);
272026
272746
  if (onBeforeCreate)
272027
272747
  this.editor.on("beforeCreate", onBeforeCreate);
272028
272748
  if (onCreate2)
@@ -272705,16 +273425,16 @@ var Node$13 = class Node$14 {
272705
273425
  console.warn("Failed to initialize developer tools:", error3);
272706
273426
  }
272707
273427
  }
272708
- }, BLANK_DOCX_BASE64 = `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`, BLANK_DOCX_DATA_URI, TAB_LEADER_TO_SEPARATOR, SEPARATOR_TO_TAB_LEADER, DEFAULT_TOC_CONFIG, SWITCH_PATTERN$1, BULLET_FORMATS$1, LOCK_MODE_TO_SDT_LOCK, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, TOGGLE_MARK_SPECS, CORE_MARK_NAMES, METADATA_MARK_NAMES, CSS_NAMED_COLORS, V3_PREFIX = "text:", V4_PREFIX = "text:v4:", HEADING_STYLE_DEPTH, BULLET_FORMATS, MARK_PRIORITY, remarkProcessor, DEFAULT_UNFLATTEN_LISTS = true, HEADING_STYLE_PATTERN, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, REQUIRED_HELPERS, SCHEMA_NODE_GATES, schemaGatedIds, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, registry, VALID_CREATE_POSITIONS, REF_HANDLERS, STEP_INTERACTION_MATRIX, MATRIX_EXEMPT_OPS, DEFAULT_INLINE_POLICY, CORE_SET_MARK_KEYS, BOOLEAN_INLINE_MARK_KEYS, TEXT_STYLE_KEYS, PRESERVE_RUN_PROPERTIES_META_KEY = "sdPreserveRunPropertiesKeys", CONTENT_CAPABILITIES, INLINE_CAPABILITIES, SDT_LOCK_TO_LOCK_MODE, BODY_LOCATOR2, STUB_WHERE, EMPTY_RESOLUTION, CONTAINER_NODE_TYPES, VALID_EDGE_NODE_TYPES3, FALLBACK_STORE_KEY = "__documentApiComments", STYLES_PART = "word/styles.xml", PROPERTIES_KEY_BY_CHANNEL, XML_PATH_BY_CHANNEL2, UNDERLINE_API_TO_STORAGE, UNDERLINE_STORAGE_TO_API, HEX_SUBKEYS_BY_PROPERTY, PARAGRAPH_NODE_TYPES, TEXT_STYLE_CHARACTER_STYLE_ATTR = "styleId", DIRECT_FORMATTING_MARK_NAMES, ALIGNMENT_TO_JUSTIFICATION, SUPPORTED_DELETE_NODE_TYPES3, REJECTED_DELETE_NODE_TYPES3, TEXT_PREVIEW_MAX_LENGTH = 80, RANGE_DELETE_SAFE_NODE_TYPES, HEADING_PATTERN, INDENT_PER_LEVEL_TWIPS = 720, HANGING_INDENT_TWIPS = 360, ORDERED_PRESET_CONFIG, BULLET_PRESET_CONFIG, PRESET_TEMPLATES, LevelFormattingHelpers, PRESET_KIND_MAP, NUMBERING_PART = "word/numbering.xml", DEFAULT_PRESET_FOR_KIND, _setValueDelegate, PREVIEW_TEXT_MAX_LENGTH = 2000, BLOCK_PREVIEW_MAX_LENGTH = 200, EDGE_NODE_TYPES$1, POINTS_TO_PIXELS, POINTS_TO_TWIPS = 20, PIXELS_TO_TWIPS, DEFAULT_TABLE_GRID_WIDTH_TWIPS = 1500, SETTINGS_PART$1 = "word/settings.xml", WORD_DEFAULT_TBL_LOOK, FLAG_TO_OOXML_KEY, INVERTED_FLAGS, XML_KEY_TO_STYLE_OPTION, CLEARED_BORDER_OOXML, TABLE_MARGIN_KEY_GROUPS, TABLE_ADAPTER_DISPATCH, ROW_TARGETED_TABLE_OPS, registered = false, STYLES_PART_ID = "word/styles.xml", stylesPartDescriptor, settingsPartDescriptor, RELS_PART_ID2 = "word/_rels/document.xml.rels", RELS_XMLNS2 = "http://schemas.openxmlformats.org/package/2006/relationships", HEADER_RELATIONSHIP_TYPE$1 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE$1 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", relsPartDescriptor, HISTORY_UNSAFE_OPS, CANONICAL_COMMENT_IGNORED_KEYS, INITIAL_HASH, ROUND_CONSTANTS, V1_COVERAGE, V2_COVERAGE, SNAPSHOT_VERSION_V2 = "sd-diff-snapshot/v2", PAYLOAD_VERSION_V1 = "sd-diff-payload/v1", PAYLOAD_VERSION_V2 = "sd-diff-payload/v2", ENGINE_ID = "super-editor", STAGED_CONVERTER_KEYS, DiffServiceError, DEFAULT_LEVEL = 1, SWITCH_PATTERN, TOC_BOOKMARK_PREFIX = "_Toc", DEFAULT_RIGHT_TAB_POS = 9350, TAB_LEADER_MAP, NO_ENTRIES_PLACEHOLDER, TC_LEVEL_MIN = 1, TC_LEVEL_MAX = 9, ALLOWED_WRAP_ATTRS, WRAP_TYPES_SUPPORTING_SIDE, WRAP_TYPES_SUPPORTING_DISTANCES, RELATIVE_HEIGHT_MIN = 0, RELATIVE_HEIGHT_MAX = 4294967295, FORBIDDEN_RAW_PATCH_NAMES, CONTROL_TYPE_SDT_PR_ELEMENTS, DEFAULT_CHECKBOX_SYMBOL_FONT2 = "MS Gothic", DEFAULT_CHECKBOX_CHECKED_HEX2 = "2612", DEFAULT_CHECKBOX_UNCHECKED_HEX2 = "2610", VARIANT_ORDER, KIND_ORDER, HEADER_RELATIONSHIP_TYPE3 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE3 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", DOCUMENT_RELS_PATH2 = "word/_rels/document.xml.rels", HEADER_FILE_PATTERN2, FOOTER_FILE_PATTERN2, SETTINGS_PART, SPECIAL_NOTE_TYPES, RESTART_POLICY_TO_OOXML, VALID_DISPLAYS, REFERENCE_BLOCK_PREFIX, CAPTION_STYLE_NAMES, CAPTION_PARAGRAPH_STYLE_ID = "Caption", CAPTION_FORMAT_TO_OOXML, DOCUMENT_STAT_FIELD_TYPES, TOA_LEADER_REVERSE_MAP, EDGE_NODE_TYPES, CONTENT_TYPES_PART_ID = "[Content_Types].xml", CONTENT_TYPES_NS = "http://schemas.openxmlformats.org/package/2006/content-types", contentTypesPartDescriptor, empty_exports, init_empty, CURRENT_APP_VERSION2 = "1.24.0", PIXELS_PER_INCH2 = 96, MAX_HEIGHT_BUFFER_PX = 50, MAX_WIDTH_BUFFER_PX = 20, cloneExtensionInstance = (extension3) => {
272709
- const extensionLike = extension3;
273428
+ }, BLANK_DOCX_BASE64 = `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`, BLANK_DOCX_DATA_URI, TAB_LEADER_TO_SEPARATOR, SEPARATOR_TO_TAB_LEADER, DEFAULT_TOC_CONFIG, SWITCH_PATTERN$1, BULLET_FORMATS$1, LOCK_MODE_TO_SDT_LOCK, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, TOGGLE_MARK_SPECS, CORE_MARK_NAMES, METADATA_MARK_NAMES, CSS_NAMED_COLORS, V3_PREFIX = "text:", V4_PREFIX = "text:v4:", HEADING_STYLE_DEPTH, BULLET_FORMATS, MARK_PRIORITY, remarkProcessor, DEFAULT_UNFLATTEN_LISTS = true, HEADING_STYLE_PATTERN, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, REQUIRED_HELPERS, SCHEMA_NODE_GATES, schemaGatedIds, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, registry, VALID_CREATE_POSITIONS, REF_HANDLERS, STEP_INTERACTION_MATRIX, MATRIX_EXEMPT_OPS, DEFAULT_INLINE_POLICY, CORE_SET_MARK_KEYS, BOOLEAN_INLINE_MARK_KEYS, TEXT_STYLE_KEYS, PRESERVE_RUN_PROPERTIES_META_KEY = "sdPreserveRunPropertiesKeys", CONTENT_CAPABILITIES, INLINE_CAPABILITIES, SDT_LOCK_TO_LOCK_MODE, BODY_LOCATOR2, STUB_WHERE, EMPTY_RESOLUTION, CONTAINER_NODE_TYPES, VALID_EDGE_NODE_TYPES3, FALLBACK_STORE_KEY = "__documentApiComments", STYLES_PART = "word/styles.xml", PROPERTIES_KEY_BY_CHANNEL, XML_PATH_BY_CHANNEL2, UNDERLINE_API_TO_STORAGE, UNDERLINE_STORAGE_TO_API, HEX_SUBKEYS_BY_PROPERTY, PARAGRAPH_NODE_TYPES, TEXT_STYLE_CHARACTER_STYLE_ATTR = "styleId", DIRECT_FORMATTING_MARK_NAMES, ALIGNMENT_TO_JUSTIFICATION, SUPPORTED_DELETE_NODE_TYPES3, REJECTED_DELETE_NODE_TYPES3, TEXT_PREVIEW_MAX_LENGTH = 80, RANGE_DELETE_SAFE_NODE_TYPES, HEADING_PATTERN, INDENT_PER_LEVEL_TWIPS = 720, HANGING_INDENT_TWIPS = 360, ORDERED_PRESET_CONFIG, BULLET_PRESET_CONFIG, PRESET_TEMPLATES, LevelFormattingHelpers, PRESET_KIND_MAP, NUMBERING_PART = "word/numbering.xml", DEFAULT_PRESET_FOR_KIND, _setValueDelegate, PREVIEW_TEXT_MAX_LENGTH = 2000, BLOCK_PREVIEW_MAX_LENGTH = 200, EDGE_NODE_TYPES$1, POINTS_TO_PIXELS, POINTS_TO_TWIPS = 20, PIXELS_TO_TWIPS, DEFAULT_TABLE_GRID_WIDTH_TWIPS = 1500, SETTINGS_PART$1 = "word/settings.xml", WORD_DEFAULT_TBL_LOOK, FLAG_TO_OOXML_KEY, INVERTED_FLAGS, XML_KEY_TO_STYLE_OPTION, CLEARED_BORDER_OOXML, TABLE_MARGIN_KEY_GROUPS, TABLE_ADAPTER_DISPATCH, ROW_TARGETED_TABLE_OPS, registered = false, STYLES_PART_ID = "word/styles.xml", stylesPartDescriptor, settingsPartDescriptor, RELS_PART_ID2 = "word/_rels/document.xml.rels", RELS_XMLNS2 = "http://schemas.openxmlformats.org/package/2006/relationships", HEADER_RELATIONSHIP_TYPE$1 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE$1 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", relsPartDescriptor, HISTORY_UNSAFE_OPS, CANONICAL_COMMENT_IGNORED_KEYS, INITIAL_HASH, ROUND_CONSTANTS, V1_COVERAGE, V2_COVERAGE, SNAPSHOT_VERSION_V2 = "sd-diff-snapshot/v2", PAYLOAD_VERSION_V1 = "sd-diff-payload/v1", PAYLOAD_VERSION_V2 = "sd-diff-payload/v2", ENGINE_ID = "super-editor", STAGED_CONVERTER_KEYS, DiffServiceError, DEFAULT_LEVEL = 1, SWITCH_PATTERN, TOC_BOOKMARK_PREFIX = "_Toc", DEFAULT_RIGHT_TAB_POS = 9350, TAB_LEADER_MAP, NO_ENTRIES_PLACEHOLDER, TC_LEVEL_MIN = 1, TC_LEVEL_MAX = 9, ALLOWED_WRAP_ATTRS, WRAP_TYPES_SUPPORTING_SIDE, WRAP_TYPES_SUPPORTING_DISTANCES, RELATIVE_HEIGHT_MIN = 0, RELATIVE_HEIGHT_MAX = 4294967295, FORBIDDEN_RAW_PATCH_NAMES, CONTROL_TYPE_SDT_PR_ELEMENTS, DEFAULT_CHECKBOX_SYMBOL_FONT2 = "MS Gothic", DEFAULT_CHECKBOX_CHECKED_HEX2 = "2612", DEFAULT_CHECKBOX_UNCHECKED_HEX2 = "2610", VARIANT_ORDER, KIND_ORDER, HEADER_RELATIONSHIP_TYPE3 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE3 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", DOCUMENT_RELS_PATH2 = "word/_rels/document.xml.rels", HEADER_FILE_PATTERN2, FOOTER_FILE_PATTERN2, SETTINGS_PART, SPECIAL_NOTE_TYPES, RESTART_POLICY_TO_OOXML, VALID_DISPLAYS, REFERENCE_BLOCK_PREFIX, CAPTION_STYLE_NAMES, CAPTION_PARAGRAPH_STYLE_ID = "Caption", CAPTION_FORMAT_TO_OOXML, DOCUMENT_STAT_FIELD_TYPES, TOA_LEADER_REVERSE_MAP, EDGE_NODE_TYPES, CONTENT_TYPES_PART_ID = "[Content_Types].xml", CONTENT_TYPES_NS = "http://schemas.openxmlformats.org/package/2006/content-types", contentTypesPartDescriptor, empty_exports, init_empty, CURRENT_APP_VERSION2 = "1.24.0", PIXELS_PER_INCH2 = 96, MAX_HEIGHT_BUFFER_PX = 50, MAX_WIDTH_BUFFER_PX = 20, cloneExtensionInstance = (extension2) => {
273429
+ const extensionLike = extension2;
272710
273430
  const config2 = extensionLike?.config;
272711
273431
  const ExtensionCtor = extensionLike?.constructor;
272712
273432
  if (!config2 || typeof config2 !== "object" || typeof ExtensionCtor !== "function")
272713
- return extension3;
273433
+ return extension2;
272714
273434
  try {
272715
273435
  return new ExtensionCtor(config2);
272716
273436
  } catch {
272717
- return extension3;
273437
+ return extension2;
272718
273438
  }
272719
273439
  }, Editor, token = (varName, fallback) => ({
272720
273440
  css: `var(${varName}, ${fallback})`,
@@ -286216,12 +286936,12 @@ var Node$13 = class Node$14 {
286216
286936
  return;
286217
286937
  console.log(...args$1);
286218
286938
  }, 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;
286219
- var init_src_BFCuWPe2_es = __esm(() => {
286939
+ var init_src_Deswfs9W_es = __esm(() => {
286220
286940
  init_rolldown_runtime_Bg48TavK_es();
286221
- init_SuperConverter_CE_qGNRx_es();
286941
+ init_SuperConverter_Dze38Knd_es();
286222
286942
  init_jszip_C49i9kUs_es();
286223
286943
  init_uuid_qzgm05fK_es();
286224
- init_create_headless_toolbar_oHAjbd4d_es();
286944
+ init_create_headless_toolbar_Bj_CBCCF_es();
286225
286945
  init_constants_5yyN6FZg_es();
286226
286946
  init_dist_B8HfvhaK_es();
286227
286947
  init_unified_Dsuw2be5_es();
@@ -287317,7 +288037,7 @@ ${err.toString()}`);
287317
288037
  }
287318
288038
  static valid($pos) {
287319
288039
  let parent = $pos.parent;
287320
- if (parent.inlineContent || !closedBefore($pos) || !closedAfter($pos))
288040
+ if (parent.isTextblock || !closedBefore($pos) || !closedAfter($pos))
287321
288041
  return false;
287322
288042
  let override = parent.type.spec.allowGapCursor;
287323
288043
  if (override != null)
@@ -287380,11 +288100,11 @@ ${err.toString()}`);
287380
288100
  addPmPlugins() {
287381
288101
  return [gapCursor()];
287382
288102
  },
287383
- extendNodeSchema(extension3) {
287384
- return { allowGapCursor: callOrGet(getExtensionConfigField(extension3, "allowGapCursor", {
287385
- name: extension3.name,
287386
- options: extension3.options,
287387
- storage: extension3.storage
288103
+ extendNodeSchema(extension2) {
288104
+ return { allowGapCursor: callOrGet(getExtensionConfigField(extension2, "allowGapCursor", {
288105
+ name: extension2.name,
288106
+ options: extension2.options,
288107
+ storage: extension2.storage
287388
288108
  })) ?? null };
287389
288109
  }
287390
288110
  });
@@ -290342,6 +291062,14 @@ ${err.toString()}`);
290342
291062
  };
290343
291063
  const node3 = createTable(editor.schema, rows, cols, withHeaderRow, null, widths, tableAttrs);
290344
291064
  if (dispatch) {
291065
+ const structuredContentInsertion = resolveStructuredContentBlockTableInsertion(tr.selection);
291066
+ if (structuredContentInsertion) {
291067
+ const { from: from$1, to, tablePos } = structuredContentInsertion;
291068
+ tr.replaceWith(from$1, to, node3);
291069
+ const selectionPos$1 = getFirstTableCellTextPos(tablePos, node3);
291070
+ tr.scrollIntoView().setSelection(TextSelection2.near(tr.doc.resolve(selectionPos$1)));
291071
+ return true;
291072
+ }
290345
291073
  let offset$1;
290346
291074
  let replaceRange2 = undefined;
290347
291075
  if (tr.selection.$from.depth === 0) {
@@ -290668,18 +291396,16 @@ ${err.toString()}`);
290668
291396
  deleteCellAndTableBorders: () => ({ state, tr }) => {
290669
291397
  if (!isInTable(state))
290670
291398
  return false;
290671
- const table2 = findParentNode((node3) => node3.type.name === this.name)(state.selection);
291399
+ const table2 = resolveCommandTargetTable(state.selection);
290672
291400
  if (!table2)
290673
291401
  return false;
290674
- const from$1 = table2.pos;
290675
- const to = table2.pos + table2.node.nodeSize;
290676
291402
  const nilBorder = {
290677
291403
  val: "nil",
290678
291404
  size: 0,
290679
291405
  space: 0,
290680
291406
  color: "auto"
290681
291407
  };
290682
- state.doc.nodesBetween(from$1, to, (node3, pos) => {
291408
+ table2.node.descendants((node3, pos) => {
290683
291409
  if (["tableCell", "tableHeader"].includes(node3.type.name)) {
290684
291410
  const nextTableCellProperties = {
290685
291411
  ...node3.attrs.tableCellProperties ?? {},
@@ -290691,13 +291417,14 @@ ${err.toString()}`);
290691
291417
  }
290692
291418
  };
290693
291419
  const nextInlineKeys = [...new Set([...node3.attrs.tableCellPropertiesInlineKeys || [], "borders"])];
290694
- tr.setNodeMarkup(pos, undefined, {
291420
+ tr.setNodeMarkup(table2.pos + 1 + pos, undefined, {
290695
291421
  ...node3.attrs,
290696
291422
  borders: null,
290697
291423
  tableCellProperties: nextTableCellProperties,
290698
291424
  tableCellPropertiesInlineKeys: nextInlineKeys
290699
291425
  });
290700
291426
  }
291427
+ return true;
290701
291428
  });
290702
291429
  tr.setNodeMarkup(table2.pos, undefined, {
290703
291430
  ...table2.node.attrs,
@@ -290828,11 +291555,11 @@ ${err.toString()}`);
290828
291555
  })()
290829
291556
  ];
290830
291557
  },
290831
- extendNodeSchema(extension3) {
290832
- return { tableRole: callOrGet(getExtensionConfigField(extension3, "tableRole", {
290833
- name: extension3.name,
290834
- options: extension3.options,
290835
- storage: extension3.storage
291558
+ extendNodeSchema(extension2) {
291559
+ return { tableRole: callOrGet(getExtensionConfigField(extension2, "tableRole", {
291560
+ name: extension2.name,
291561
+ options: extension2.options,
291562
+ storage: extension2.storage
290836
291563
  })) };
290837
291564
  }
290838
291565
  });
@@ -302711,6 +303438,10 @@ function print() { __p += __j.call(arguments, '') }
302711
303438
  return { "data-after": JSON.stringify(attrs.after) };
302712
303439
  }
302713
303440
  },
303441
+ sourceId: {
303442
+ default: "",
303443
+ rendered: false
303444
+ },
302714
303445
  importedAuthor: {
302715
303446
  default: "",
302716
303447
  rendered: false
@@ -310524,11 +311255,11 @@ function print() { __p += __j.call(arguments, '') }
310524
311255
  SelectionHandleExtension
310525
311256
  ];
310526
311257
  const externalExtensions = this.options.externalExtensions || [];
310527
- const allExtensions = [...coreExtensions, ...this.options.extensions].filter((extension3) => {
310528
- const extensionType = typeof extension3?.type === "string" ? extension3.type : undefined;
311258
+ const allExtensions = [...coreExtensions, ...this.options.extensions].filter((extension2) => {
311259
+ const extensionType = typeof extension2?.type === "string" ? extension2.type : undefined;
310529
311260
  return extensionType ? allowedExtensions.includes(extensionType) : false;
310530
- }).map((extension3) => cloneExtensionInstance(extension3));
310531
- const isolatedExternalExtensions = externalExtensions.map((extension3) => cloneExtensionInstance(extension3));
311261
+ }).map((extension2) => cloneExtensionInstance(extension2));
311262
+ const isolatedExternalExtensions = externalExtensions.map((extension2) => cloneExtensionInstance(extension2));
310532
311263
  this.extensionService = ExtensionService.create(allExtensions, isolatedExternalExtensions, this);
310533
311264
  }
310534
311265
  #createCommandService() {
@@ -320687,11 +321418,11 @@ var init_zipper_DbkgrypV_es = __esm(() => {
320687
321418
 
320688
321419
  // ../../packages/superdoc/dist/super-editor.es.js
320689
321420
  var init_super_editor_es = __esm(() => {
320690
- init_src_BFCuWPe2_es();
320691
- init_SuperConverter_CE_qGNRx_es();
321421
+ init_src_Deswfs9W_es();
321422
+ init_SuperConverter_Dze38Knd_es();
320692
321423
  init_jszip_C49i9kUs_es();
320693
321424
  init_xml_js_CqGKpaft_es();
320694
- init_create_headless_toolbar_oHAjbd4d_es();
321425
+ init_create_headless_toolbar_Bj_CBCCF_es();
320695
321426
  init_constants_5yyN6FZg_es();
320696
321427
  init_dist_B8HfvhaK_es();
320697
321428
  init_unified_Dsuw2be5_es();
@@ -376498,12 +377229,11 @@ var require_braces = __commonJS((exports, module) => {
376498
377229
  module.exports = braces;
376499
377230
  });
376500
377231
 
376501
- // ../../node_modules/.pnpm/picomatch@2.3.2/node_modules/picomatch/lib/constants.js
377232
+ // ../../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/constants.js
376502
377233
  var require_constants4 = __commonJS((exports, module) => {
376503
377234
  var path2 = __require("path");
376504
377235
  var WIN_SLASH = "\\\\/";
376505
377236
  var WIN_NO_SLASH = `[^${WIN_SLASH}]`;
376506
- var DEFAULT_MAX_EXTGLOB_RECURSION = 0;
376507
377237
  var DOT_LITERAL = "\\.";
376508
377238
  var PLUS_LITERAL = "\\+";
376509
377239
  var QMARK_LITERAL = "\\?";
@@ -376551,7 +377281,6 @@ var require_constants4 = __commonJS((exports, module) => {
376551
377281
  END_ANCHOR: `(?:[${WIN_SLASH}]|$)`
376552
377282
  };
376553
377283
  var POSIX_REGEX_SOURCE = {
376554
- __proto__: null,
376555
377284
  alnum: "a-zA-Z0-9",
376556
377285
  alpha: "a-zA-Z",
376557
377286
  ascii: "\\x00-\\x7F",
@@ -376568,7 +377297,6 @@ var require_constants4 = __commonJS((exports, module) => {
376568
377297
  xdigit: "A-Fa-f0-9"
376569
377298
  };
376570
377299
  module.exports = {
376571
- DEFAULT_MAX_EXTGLOB_RECURSION,
376572
377300
  MAX_LENGTH: 1024 * 64,
376573
377301
  POSIX_REGEX_SOURCE,
376574
377302
  REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g,
@@ -376578,7 +377306,6 @@ var require_constants4 = __commonJS((exports, module) => {
376578
377306
  REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g,
376579
377307
  REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g,
376580
377308
  REPLACEMENTS: {
376581
- __proto__: null,
376582
377309
  "***": "*",
376583
377310
  "**/**": "**",
376584
377311
  "**/**/**": "**"
@@ -376642,7 +377369,7 @@ var require_constants4 = __commonJS((exports, module) => {
376642
377369
  };
376643
377370
  });
376644
377371
 
376645
- // ../../node_modules/.pnpm/picomatch@2.3.2/node_modules/picomatch/lib/utils.js
377372
+ // ../../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/utils.js
376646
377373
  var require_utils3 = __commonJS((exports) => {
376647
377374
  var path2 = __require("path");
376648
377375
  var win32 = process.platform === "win32";
@@ -376702,7 +377429,7 @@ var require_utils3 = __commonJS((exports) => {
376702
377429
  };
376703
377430
  });
376704
377431
 
376705
- // ../../node_modules/.pnpm/picomatch@2.3.2/node_modules/picomatch/lib/scan.js
377432
+ // ../../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/scan.js
376706
377433
  var require_scan = __commonJS((exports, module) => {
376707
377434
  var utils = require_utils3();
376708
377435
  var {
@@ -377017,7 +377744,7 @@ var require_scan = __commonJS((exports, module) => {
377017
377744
  module.exports = scan;
377018
377745
  });
377019
377746
 
377020
- // ../../node_modules/.pnpm/picomatch@2.3.2/node_modules/picomatch/lib/parse.js
377747
+ // ../../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/parse.js
377021
377748
  var require_parse2 = __commonJS((exports, module) => {
377022
377749
  var constants2 = require_constants4();
377023
377750
  var utils = require_utils3();
@@ -377044,213 +377771,6 @@ var require_parse2 = __commonJS((exports, module) => {
377044
377771
  var syntaxError = (type2, char) => {
377045
377772
  return `Missing ${type2}: "${char}" - use "\\\\${char}" to match literal characters`;
377046
377773
  };
377047
- var splitTopLevel = (input2) => {
377048
- const parts = [];
377049
- let bracket = 0;
377050
- let paren = 0;
377051
- let quote2 = 0;
377052
- let value2 = "";
377053
- let escaped = false;
377054
- for (const ch of input2) {
377055
- if (escaped === true) {
377056
- value2 += ch;
377057
- escaped = false;
377058
- continue;
377059
- }
377060
- if (ch === "\\") {
377061
- value2 += ch;
377062
- escaped = true;
377063
- continue;
377064
- }
377065
- if (ch === '"') {
377066
- quote2 = quote2 === 1 ? 0 : 1;
377067
- value2 += ch;
377068
- continue;
377069
- }
377070
- if (quote2 === 0) {
377071
- if (ch === "[") {
377072
- bracket++;
377073
- } else if (ch === "]" && bracket > 0) {
377074
- bracket--;
377075
- } else if (bracket === 0) {
377076
- if (ch === "(") {
377077
- paren++;
377078
- } else if (ch === ")" && paren > 0) {
377079
- paren--;
377080
- } else if (ch === "|" && paren === 0) {
377081
- parts.push(value2);
377082
- value2 = "";
377083
- continue;
377084
- }
377085
- }
377086
- }
377087
- value2 += ch;
377088
- }
377089
- parts.push(value2);
377090
- return parts;
377091
- };
377092
- var isPlainBranch = (branch) => {
377093
- let escaped = false;
377094
- for (const ch of branch) {
377095
- if (escaped === true) {
377096
- escaped = false;
377097
- continue;
377098
- }
377099
- if (ch === "\\") {
377100
- escaped = true;
377101
- continue;
377102
- }
377103
- if (/[?*+@!()[\]{}]/.test(ch)) {
377104
- return false;
377105
- }
377106
- }
377107
- return true;
377108
- };
377109
- var normalizeSimpleBranch = (branch) => {
377110
- let value2 = branch.trim();
377111
- let changed = true;
377112
- while (changed === true) {
377113
- changed = false;
377114
- if (/^@\([^\\()[\]{}|]+\)$/.test(value2)) {
377115
- value2 = value2.slice(2, -1);
377116
- changed = true;
377117
- }
377118
- }
377119
- if (!isPlainBranch(value2)) {
377120
- return;
377121
- }
377122
- return value2.replace(/\\(.)/g, "$1");
377123
- };
377124
- var hasRepeatedCharPrefixOverlap = (branches) => {
377125
- const values2 = branches.map(normalizeSimpleBranch).filter(Boolean);
377126
- for (let i4 = 0;i4 < values2.length; i4++) {
377127
- for (let j = i4 + 1;j < values2.length; j++) {
377128
- const a2 = values2[i4];
377129
- const b2 = values2[j];
377130
- const char = a2[0];
377131
- if (!char || a2 !== char.repeat(a2.length) || b2 !== char.repeat(b2.length)) {
377132
- continue;
377133
- }
377134
- if (a2 === b2 || a2.startsWith(b2) || b2.startsWith(a2)) {
377135
- return true;
377136
- }
377137
- }
377138
- }
377139
- return false;
377140
- };
377141
- var parseRepeatedExtglob = (pattern, requireEnd = true) => {
377142
- if (pattern[0] !== "+" && pattern[0] !== "*" || pattern[1] !== "(") {
377143
- return;
377144
- }
377145
- let bracket = 0;
377146
- let paren = 0;
377147
- let quote2 = 0;
377148
- let escaped = false;
377149
- for (let i4 = 1;i4 < pattern.length; i4++) {
377150
- const ch = pattern[i4];
377151
- if (escaped === true) {
377152
- escaped = false;
377153
- continue;
377154
- }
377155
- if (ch === "\\") {
377156
- escaped = true;
377157
- continue;
377158
- }
377159
- if (ch === '"') {
377160
- quote2 = quote2 === 1 ? 0 : 1;
377161
- continue;
377162
- }
377163
- if (quote2 === 1) {
377164
- continue;
377165
- }
377166
- if (ch === "[") {
377167
- bracket++;
377168
- continue;
377169
- }
377170
- if (ch === "]" && bracket > 0) {
377171
- bracket--;
377172
- continue;
377173
- }
377174
- if (bracket > 0) {
377175
- continue;
377176
- }
377177
- if (ch === "(") {
377178
- paren++;
377179
- continue;
377180
- }
377181
- if (ch === ")") {
377182
- paren--;
377183
- if (paren === 0) {
377184
- if (requireEnd === true && i4 !== pattern.length - 1) {
377185
- return;
377186
- }
377187
- return {
377188
- type: pattern[0],
377189
- body: pattern.slice(2, i4),
377190
- end: i4
377191
- };
377192
- }
377193
- }
377194
- }
377195
- };
377196
- var getStarExtglobSequenceOutput = (pattern) => {
377197
- let index2 = 0;
377198
- const chars = [];
377199
- while (index2 < pattern.length) {
377200
- const match2 = parseRepeatedExtglob(pattern.slice(index2), false);
377201
- if (!match2 || match2.type !== "*") {
377202
- return;
377203
- }
377204
- const branches = splitTopLevel(match2.body).map((branch2) => branch2.trim());
377205
- if (branches.length !== 1) {
377206
- return;
377207
- }
377208
- const branch = normalizeSimpleBranch(branches[0]);
377209
- if (!branch || branch.length !== 1) {
377210
- return;
377211
- }
377212
- chars.push(branch);
377213
- index2 += match2.end + 1;
377214
- }
377215
- if (chars.length < 1) {
377216
- return;
377217
- }
377218
- const source = chars.length === 1 ? utils.escapeRegex(chars[0]) : `[${chars.map((ch) => utils.escapeRegex(ch)).join("")}]`;
377219
- return `${source}*`;
377220
- };
377221
- var repeatedExtglobRecursion = (pattern) => {
377222
- let depth = 0;
377223
- let value2 = pattern.trim();
377224
- let match2 = parseRepeatedExtglob(value2);
377225
- while (match2) {
377226
- depth++;
377227
- value2 = match2.body.trim();
377228
- match2 = parseRepeatedExtglob(value2);
377229
- }
377230
- return depth;
377231
- };
377232
- var analyzeRepeatedExtglob = (body2, options2) => {
377233
- if (options2.maxExtglobRecursion === false) {
377234
- return { risky: false };
377235
- }
377236
- const max5 = typeof options2.maxExtglobRecursion === "number" ? options2.maxExtglobRecursion : constants2.DEFAULT_MAX_EXTGLOB_RECURSION;
377237
- const branches = splitTopLevel(body2).map((branch) => branch.trim());
377238
- if (branches.length > 1) {
377239
- if (branches.some((branch) => branch === "") || branches.some((branch) => /^[*?]+$/.test(branch)) || hasRepeatedCharPrefixOverlap(branches)) {
377240
- return { risky: true };
377241
- }
377242
- }
377243
- for (const branch of branches) {
377244
- const safeOutput = getStarExtglobSequenceOutput(branch);
377245
- if (safeOutput) {
377246
- return { risky: true, safeOutput };
377247
- }
377248
- if (repeatedExtglobRecursion(branch) > max5) {
377249
- return { risky: true };
377250
- }
377251
- }
377252
- return { risky: false };
377253
- };
377254
377774
  var parse4 = (input2, options2) => {
377255
377775
  if (typeof input2 !== "string") {
377256
377776
  throw new TypeError("Expected a string");
@@ -377383,8 +377903,6 @@ var require_parse2 = __commonJS((exports, module) => {
377383
377903
  token2.prev = prev;
377384
377904
  token2.parens = state2.parens;
377385
377905
  token2.output = state2.output;
377386
- token2.startIndex = state2.index;
377387
- token2.tokensIndex = tokens.length;
377388
377906
  const output = (opts.capture ? "(" : "") + token2.open;
377389
377907
  increment2("parens");
377390
377908
  push2({ type: type2, value: value3, output: state2.output ? "" : ONE_CHAR });
@@ -377392,26 +377910,6 @@ var require_parse2 = __commonJS((exports, module) => {
377392
377910
  extglobs.push(token2);
377393
377911
  };
377394
377912
  const extglobClose = (token2) => {
377395
- const literal = input2.slice(token2.startIndex, state2.index + 1);
377396
- const body2 = input2.slice(token2.startIndex + 2, state2.index);
377397
- const analysis = analyzeRepeatedExtglob(body2, opts);
377398
- if ((token2.type === "plus" || token2.type === "star") && analysis.risky) {
377399
- const safeOutput = analysis.safeOutput ? (token2.output ? "" : ONE_CHAR) + (opts.capture ? `(${analysis.safeOutput})` : analysis.safeOutput) : undefined;
377400
- const open2 = tokens[token2.tokensIndex];
377401
- open2.type = "text";
377402
- open2.value = literal;
377403
- open2.output = safeOutput || utils.escapeRegex(literal);
377404
- for (let i4 = token2.tokensIndex + 1;i4 < tokens.length; i4++) {
377405
- tokens[i4].value = "";
377406
- tokens[i4].output = "";
377407
- delete tokens[i4].suffix;
377408
- }
377409
- state2.output = token2.output + open2.output;
377410
- state2.backtrack = true;
377411
- push2({ type: "paren", extglob: true, value: value2, output: "" });
377412
- decrement("parens");
377413
- return;
377414
- }
377415
377913
  let output = token2.close + (opts.capture ? ")" : "");
377416
377914
  let rest;
377417
377915
  if (token2.type === "negate") {
@@ -378024,7 +378522,7 @@ var require_parse2 = __commonJS((exports, module) => {
378024
378522
  module.exports = parse4;
378025
378523
  });
378026
378524
 
378027
- // ../../node_modules/.pnpm/picomatch@2.3.2/node_modules/picomatch/lib/picomatch.js
378525
+ // ../../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/picomatch.js
378028
378526
  var require_picomatch = __commonJS((exports, module) => {
378029
378527
  var path2 = __require("path");
378030
378528
  var scan = require_scan();