@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.
- package/dist/index.js +1033 -535
- 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
|
|
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
|
|
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.
|
|
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
|
-
|
|
31771
|
-
|
|
31772
|
-
|
|
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
|
|
31870
|
-
|
|
31871
|
-
|
|
31872
|
-
if (
|
|
31873
|
-
|
|
31874
|
-
|
|
31875
|
-
|
|
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
|
|
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,
|
|
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.
|
|
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
|
-
#
|
|
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.#
|
|
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.#
|
|
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.#
|
|
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.#
|
|
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.#
|
|
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.#
|
|
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.#
|
|
36964
|
+
for (const [key, value] of this.#synced) {
|
|
36446
36965
|
if (value === child) {
|
|
36447
|
-
this.#
|
|
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.#
|
|
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.#
|
|
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.#
|
|
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.#
|
|
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.#
|
|
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.#
|
|
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.#
|
|
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
|
-
|
|
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.#
|
|
37155
|
+
return this.#local.has(key) ? this.#local.get(key) : this.#synced.get(key);
|
|
36604
37156
|
}
|
|
36605
|
-
|
|
37157
|
+
#prepareDelete(key) {
|
|
36606
37158
|
this._pool?.assertStorageIsWritable();
|
|
36607
|
-
const
|
|
36608
|
-
|
|
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.#
|
|
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,
|
|
37204
|
+
reverse = oldValue._toOps(this._id, k);
|
|
36624
37205
|
} else {
|
|
36625
37206
|
reverse = [
|
|
36626
37207
|
{
|
|
36627
37208
|
type: OpCode.UPDATE_OBJECT,
|
|
36628
|
-
data: { [
|
|
37209
|
+
data: { [k]: oldValue },
|
|
36629
37210
|
id: this._id
|
|
36630
37211
|
}
|
|
36631
37212
|
];
|
|
36632
37213
|
}
|
|
36633
|
-
this.#
|
|
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
|
-
|
|
36644
|
-
|
|
36645
|
-
|
|
36646
|
-
|
|
36647
|
-
|
|
36648
|
-
|
|
36649
|
-
|
|
36650
|
-
|
|
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.#
|
|
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.#
|
|
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.#
|
|
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.#
|
|
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.#
|
|
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.#
|
|
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.#
|
|
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
|
-
|
|
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.
|
|
36900
|
-
var PKG_NAME2 = "@liveblocks/client", PKG_VERSION2 = "3.
|
|
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.
|
|
37530
|
-
var PKG_NAME3 = "@liveblocks/yjs", PKG_VERSION3 = "3.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
40889
|
-
var import_stream,
|
|
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,
|
|
63709
|
+
function syntaxExtension(all3, extension) {
|
|
63103
63710
|
let hook;
|
|
63104
|
-
for (hook in
|
|
63711
|
+
for (hook in extension) {
|
|
63105
63712
|
const left = (hasOwnProperty2.call(all3, hook) ? all3[hook] : undefined) || (all3[hook] = {});
|
|
63106
|
-
const right =
|
|
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-
|
|
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 (
|
|
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
|
-
|
|
90929
|
+
extension(combined, value);
|
|
90321
90930
|
}
|
|
90322
90931
|
}
|
|
90323
|
-
function
|
|
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 (
|
|
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 (
|
|
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 &&
|
|
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
|
|
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
|
|
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
|
|
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-
|
|
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
|
|
155470
|
-
|
|
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,
|
|
156258
|
+
function configure2(base3, extension2) {
|
|
155625
156259
|
let index2 = -1;
|
|
155626
156260
|
let key2;
|
|
155627
|
-
if (
|
|
155628
|
-
while (++index2 <
|
|
155629
|
-
configure2(base3,
|
|
155630
|
-
for (key2 in
|
|
155631
|
-
if (own4.call(
|
|
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],
|
|
156270
|
+
list3(base3[key2], extension2[key2]);
|
|
155637
156271
|
break;
|
|
155638
156272
|
case "join":
|
|
155639
|
-
list3(base3[key2],
|
|
156273
|
+
list3(base3[key2], extension2[key2]);
|
|
155640
156274
|
break;
|
|
155641
156275
|
case "handlers":
|
|
155642
|
-
map5(base3[key2],
|
|
156276
|
+
map5(base3[key2], extension2[key2]);
|
|
155643
156277
|
break;
|
|
155644
156278
|
default:
|
|
155645
|
-
base3.options[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
|
|
157883
|
+
let extension2 = this.getFileExtension(name)?.toLowerCase();
|
|
157250
157884
|
let detectedType = null;
|
|
157251
|
-
if (!IMAGE_EXTS.has(
|
|
157885
|
+
if (!IMAGE_EXTS.has(extension2) || extension2 === "tmp") {
|
|
157252
157886
|
detectedType = detectImageType(fileBase64);
|
|
157253
157887
|
if (detectedType)
|
|
157254
|
-
|
|
157888
|
+
extension2 = detectedType;
|
|
157255
157889
|
}
|
|
157256
|
-
if (IMAGE_EXTS.has(
|
|
157257
|
-
const mimeSubtype = MIME_TYPE_FOR_EXT[
|
|
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.
|
|
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 (
|
|
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-
|
|
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(
|
|
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) ===
|
|
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,
|
|
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 =
|
|
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 =
|
|
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
|
|
253090
|
-
const resolvedSrc = resolveImageSrc(blk.src, relId, attrSrc,
|
|
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,
|
|
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
|
-
|
|
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
|
|
261914
|
-
const addGlobalAttributes = getExtensionConfigField(
|
|
261915
|
-
name:
|
|
261916
|
-
options:
|
|
261917
|
-
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
|
|
261933
|
-
const addAttributes = getExtensionConfigField(
|
|
261934
|
-
name:
|
|
261935
|
-
options:
|
|
261936
|
-
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:
|
|
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((
|
|
271645
|
-
const extensionAttributes = attributes.filter((a2) => a2.type ===
|
|
272364
|
+
const nodeEntries = nodeExtensions.map((extension2) => {
|
|
272365
|
+
const extensionAttributes = attributes.filter((a2) => a2.type === extension2.name);
|
|
271646
272366
|
const context = {
|
|
271647
|
-
name:
|
|
271648
|
-
options:
|
|
271649
|
-
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(
|
|
272379
|
+
...extendNodeSchema ? extendNodeSchema(extension2) : {}
|
|
271660
272380
|
};
|
|
271661
272381
|
}, {});
|
|
271662
272382
|
const schema = cleanSchemaItem({
|
|
271663
|
-
content: callOrGet(getExtensionConfigField(
|
|
271664
|
-
group: callOrGet(getExtensionConfigField(
|
|
271665
|
-
marks: callOrGet(getExtensionConfigField(
|
|
271666
|
-
inline: callOrGet(getExtensionConfigField(
|
|
271667
|
-
atom: callOrGet(getExtensionConfigField(
|
|
271668
|
-
selectable: callOrGet(getExtensionConfigField(
|
|
271669
|
-
draggable: callOrGet(getExtensionConfigField(
|
|
271670
|
-
code: callOrGet(getExtensionConfigField(
|
|
271671
|
-
defining: callOrGet(getExtensionConfigField(
|
|
271672
|
-
isolating: callOrGet(getExtensionConfigField(
|
|
271673
|
-
summary: getExtensionConfigField(
|
|
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
|
|
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: () =>
|
|
272401
|
+
get: () => extension2.validChildren
|
|
271682
272402
|
});
|
|
271683
|
-
const parseDOM = callOrGet(getExtensionConfigField(
|
|
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(
|
|
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(
|
|
272414
|
+
const renderText = getExtensionConfigField(extension2, "renderText", context);
|
|
271695
272415
|
if (renderText)
|
|
271696
272416
|
schema.toText = renderText;
|
|
271697
|
-
return [
|
|
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((
|
|
271703
|
-
const extensionAttributes = attributes.filter((a2) => a2.type ===
|
|
272422
|
+
const markEntries = markExtensions.map((extension2) => {
|
|
272423
|
+
const extensionAttributes = attributes.filter((a2) => a2.type === extension2.name);
|
|
271704
272424
|
const context = {
|
|
271705
|
-
name:
|
|
271706
|
-
options:
|
|
271707
|
-
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(
|
|
271715
|
-
inclusive: callOrGet(getExtensionConfigField(
|
|
271716
|
-
excludes: callOrGet(getExtensionConfigField(
|
|
271717
|
-
spanning: callOrGet(getExtensionConfigField(
|
|
271718
|
-
code: callOrGet(getExtensionConfigField(
|
|
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(
|
|
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(
|
|
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 [
|
|
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((
|
|
272577
|
+
this.externalExtensions = this.externalExtensions.map((extension2) => {
|
|
271858
272578
|
return {
|
|
271859
|
-
...
|
|
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
|
|
271891
|
-
const addCommands = getExtensionConfigField(
|
|
271892
|
-
name:
|
|
271893
|
-
options:
|
|
271894
|
-
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(
|
|
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
|
|
271909
|
-
const name =
|
|
272628
|
+
for (const extension2 of this.extensions) {
|
|
272629
|
+
const name = extension2.name;
|
|
271910
272630
|
if (!name)
|
|
271911
272631
|
continue;
|
|
271912
|
-
const addHelpers = getExtensionConfigField(
|
|
271913
|
-
name:
|
|
271914
|
-
options:
|
|
271915
|
-
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(
|
|
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((
|
|
272648
|
+
const allPlugins = extensions.map((extension2) => {
|
|
271929
272649
|
const context = {
|
|
271930
|
-
name:
|
|
271931
|
-
options:
|
|
271932
|
-
storage:
|
|
272650
|
+
name: extension2.name,
|
|
272651
|
+
options: extension2.options,
|
|
272652
|
+
storage: extension2.storage,
|
|
271933
272653
|
editor,
|
|
271934
|
-
type: getSchemaTypeByName(
|
|
272654
|
+
type: getSchemaTypeByName(extension2.name, this.schema)
|
|
271935
272655
|
};
|
|
271936
272656
|
const plugins = [];
|
|
271937
|
-
const addShortcuts = getExtensionConfigField(
|
|
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(
|
|
271950
|
-
if (isExtensionRulesEnabled(
|
|
272669
|
+
const addInputRules = getExtensionConfigField(extension2, "addInputRules", context);
|
|
272670
|
+
if (isExtensionRulesEnabled(extension2, editor.options.enableInputRules) && addInputRules)
|
|
271951
272671
|
inputRules.push(...addInputRules());
|
|
271952
|
-
const addPmPlugins = getExtensionConfigField(
|
|
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((
|
|
271965
|
-
const extensionAttrs = this.attributes.filter((a2) => a2.type ===
|
|
271966
|
-
const addNodeView = getExtensionConfigField(
|
|
271967
|
-
name:
|
|
271968
|
-
options:
|
|
271969
|
-
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(
|
|
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:
|
|
272705
|
+
extension: extension2,
|
|
271986
272706
|
extensionAttrs
|
|
271987
272707
|
});
|
|
271988
272708
|
};
|
|
271989
|
-
return [
|
|
272709
|
+
return [extension2.name, nodeview];
|
|
271990
272710
|
}).filter(Boolean);
|
|
271991
272711
|
return Object.fromEntries(entries2);
|
|
271992
272712
|
}
|
|
271993
272713
|
#setupExtensions() {
|
|
271994
|
-
for (const
|
|
271995
|
-
this.editor.extensionStorage[
|
|
272714
|
+
for (const extension2 of this.extensions) {
|
|
272715
|
+
this.editor.extensionStorage[extension2.name] = extension2.storage;
|
|
271996
272716
|
const context = {
|
|
271997
|
-
name:
|
|
271998
|
-
options:
|
|
271999
|
-
storage:
|
|
272717
|
+
name: extension2.name,
|
|
272718
|
+
options: extension2.options,
|
|
272719
|
+
storage: extension2.storage,
|
|
272000
272720
|
editor: this.editor,
|
|
272001
|
-
type: getSchemaTypeByName(
|
|
272721
|
+
type: getSchemaTypeByName(extension2.name, this.schema)
|
|
272002
272722
|
};
|
|
272003
|
-
if (
|
|
272004
|
-
if (callOrGet(getExtensionConfigField(
|
|
272005
|
-
this.splittableMarks.push(
|
|
272723
|
+
if (extension2.type === "mark") {
|
|
272724
|
+
if (callOrGet(getExtensionConfigField(extension2, "keepOnSplit", context)) ?? true)
|
|
272725
|
+
this.splittableMarks.push(extension2.name);
|
|
272006
272726
|
}
|
|
272007
|
-
this.#attachEditorEvents(
|
|
272727
|
+
this.#attachEditorEvents(extension2);
|
|
272008
272728
|
}
|
|
272009
272729
|
}
|
|
272010
|
-
#attachEditorEvents(
|
|
272730
|
+
#attachEditorEvents(extension2) {
|
|
272011
272731
|
const context = {
|
|
272012
|
-
name:
|
|
272013
|
-
options:
|
|
272014
|
-
storage:
|
|
272732
|
+
name: extension2.name,
|
|
272733
|
+
options: extension2.options,
|
|
272734
|
+
storage: extension2.storage,
|
|
272015
272735
|
editor: this.editor,
|
|
272016
|
-
type: getSchemaTypeByName(
|
|
272017
|
-
};
|
|
272018
|
-
const onBeforeCreate = getExtensionConfigField(
|
|
272019
|
-
const onCreate2 = getExtensionConfigField(
|
|
272020
|
-
const onUpdate = getExtensionConfigField(
|
|
272021
|
-
const onSelectionUpdate = getExtensionConfigField(
|
|
272022
|
-
const onTransaction = getExtensionConfigField(
|
|
272023
|
-
const onFocus = getExtensionConfigField(
|
|
272024
|
-
const onBlur = getExtensionConfigField(
|
|
272025
|
-
const onDestroy2 = getExtensionConfigField(
|
|
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 =
|
|
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
|
|
273433
|
+
return extension2;
|
|
272714
273434
|
try {
|
|
272715
273435
|
return new ExtensionCtor(config2);
|
|
272716
273436
|
} catch {
|
|
272717
|
-
return
|
|
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
|
|
286939
|
+
var init_src_Deswfs9W_es = __esm(() => {
|
|
286220
286940
|
init_rolldown_runtime_Bg48TavK_es();
|
|
286221
|
-
|
|
286941
|
+
init_SuperConverter_Dze38Knd_es();
|
|
286222
286942
|
init_jszip_C49i9kUs_es();
|
|
286223
286943
|
init_uuid_qzgm05fK_es();
|
|
286224
|
-
|
|
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.
|
|
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(
|
|
287384
|
-
return { allowGapCursor: callOrGet(getExtensionConfigField(
|
|
287385
|
-
name:
|
|
287386
|
-
options:
|
|
287387
|
-
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 =
|
|
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
|
-
|
|
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(
|
|
290832
|
-
return { tableRole: callOrGet(getExtensionConfigField(
|
|
290833
|
-
name:
|
|
290834
|
-
options:
|
|
290835
|
-
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((
|
|
310528
|
-
const extensionType = typeof
|
|
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((
|
|
310531
|
-
const isolatedExternalExtensions = externalExtensions.map((
|
|
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
|
-
|
|
320691
|
-
|
|
321421
|
+
init_src_Deswfs9W_es();
|
|
321422
|
+
init_SuperConverter_Dze38Knd_es();
|
|
320692
321423
|
init_jszip_C49i9kUs_es();
|
|
320693
321424
|
init_xml_js_CqGKpaft_es();
|
|
320694
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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();
|