@superdoc-dev/cli 0.5.0-next.61 → 0.5.0-next.62
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 +965 -526
- package/package.json +7 -7
package/dist/index.js
CHANGED
|
@@ -27924,7 +27924,7 @@ var init_y_websocket = __esm(() => {
|
|
|
27924
27924
|
};
|
|
27925
27925
|
});
|
|
27926
27926
|
|
|
27927
|
-
// ../../node_modules/.pnpm/@liveblocks+core@3.
|
|
27927
|
+
// ../../node_modules/.pnpm/@liveblocks+core@3.17.0_@types+json-schema@7.0.15/node_modules/@liveblocks/core/dist/index.js
|
|
27928
27928
|
function error(msg) {
|
|
27929
27929
|
if (false) {} else {
|
|
27930
27930
|
throw new Error(msg);
|
|
@@ -31280,6 +31280,108 @@ function HACK_addIntentAndDeletedIdToOperation(ops, deletedId) {
|
|
|
31280
31280
|
}
|
|
31281
31281
|
});
|
|
31282
31282
|
}
|
|
31283
|
+
function deepLiveify(value, config) {
|
|
31284
|
+
if (Array.isArray(value)) {
|
|
31285
|
+
return new LiveList(value.map((v) => deepLiveify(v, config)));
|
|
31286
|
+
} else if (isPlainObject(value)) {
|
|
31287
|
+
const init = {};
|
|
31288
|
+
const locals = {};
|
|
31289
|
+
for (const key in value) {
|
|
31290
|
+
const val = value[key];
|
|
31291
|
+
if (val === undefined) {
|
|
31292
|
+
continue;
|
|
31293
|
+
}
|
|
31294
|
+
const subConfig = isPlainObject(config) ? config[key] : config;
|
|
31295
|
+
if (subConfig === false) {
|
|
31296
|
+
locals[key] = val;
|
|
31297
|
+
} else if (subConfig === "atomic") {
|
|
31298
|
+
init[key] = val;
|
|
31299
|
+
} else {
|
|
31300
|
+
init[key] = deepLiveify(val, subConfig);
|
|
31301
|
+
}
|
|
31302
|
+
}
|
|
31303
|
+
const lo = new LiveObject(init);
|
|
31304
|
+
for (const key in locals) {
|
|
31305
|
+
lo.setLocal(key, locals[key]);
|
|
31306
|
+
}
|
|
31307
|
+
return lo;
|
|
31308
|
+
} else {
|
|
31309
|
+
return value;
|
|
31310
|
+
}
|
|
31311
|
+
}
|
|
31312
|
+
function reconcile(live, json, config) {
|
|
31313
|
+
if (isLiveObject(live) && isPlainObject(json)) {
|
|
31314
|
+
return reconcileLiveObject(live, json, config);
|
|
31315
|
+
} else if (isLiveList(live) && Array.isArray(json)) {
|
|
31316
|
+
return reconcileLiveList(live, json, config);
|
|
31317
|
+
} else if (isLiveMap(live) && isPlainObject(json)) {
|
|
31318
|
+
return reconcileLiveMap(live, config);
|
|
31319
|
+
} else {
|
|
31320
|
+
return deepLiveify(json, config);
|
|
31321
|
+
}
|
|
31322
|
+
}
|
|
31323
|
+
function reconcileLiveMap(_liveMap, _config) {
|
|
31324
|
+
throw new Error("Reconciling a LiveMap is not supported yet");
|
|
31325
|
+
}
|
|
31326
|
+
function reconcileLiveObject(liveObj, jsonObj, config) {
|
|
31327
|
+
const currentKeys = liveObj.keys();
|
|
31328
|
+
for (const key in jsonObj) {
|
|
31329
|
+
currentKeys.delete(key);
|
|
31330
|
+
const newVal = jsonObj[key];
|
|
31331
|
+
if (newVal === undefined) {
|
|
31332
|
+
liveObj.delete(key);
|
|
31333
|
+
continue;
|
|
31334
|
+
}
|
|
31335
|
+
const subConfig = isPlainObject(config) ? config[key] : config;
|
|
31336
|
+
if (subConfig === false) {
|
|
31337
|
+
liveObj.setLocal(key, newVal);
|
|
31338
|
+
} else if (subConfig === "atomic") {
|
|
31339
|
+
const curVal = liveObj.get(key);
|
|
31340
|
+
if (curVal !== newVal) {
|
|
31341
|
+
liveObj.set(key, newVal);
|
|
31342
|
+
}
|
|
31343
|
+
} else {
|
|
31344
|
+
const curVal = liveObj.get(key);
|
|
31345
|
+
if (curVal === undefined) {
|
|
31346
|
+
liveObj.set(key, deepLiveify(newVal, subConfig));
|
|
31347
|
+
} else if (isLiveStructure(curVal)) {
|
|
31348
|
+
const next = reconcile(curVal, newVal, subConfig);
|
|
31349
|
+
if (next !== curVal) {
|
|
31350
|
+
liveObj.set(key, next);
|
|
31351
|
+
}
|
|
31352
|
+
} else if (curVal !== newVal) {
|
|
31353
|
+
liveObj.set(key, deepLiveify(newVal, subConfig));
|
|
31354
|
+
}
|
|
31355
|
+
}
|
|
31356
|
+
}
|
|
31357
|
+
for (const key of currentKeys) {
|
|
31358
|
+
liveObj.delete(key);
|
|
31359
|
+
}
|
|
31360
|
+
return liveObj;
|
|
31361
|
+
}
|
|
31362
|
+
function reconcileLiveList(liveList, jsonArr, config) {
|
|
31363
|
+
const curLen = liveList.length;
|
|
31364
|
+
const newLen = jsonArr.length;
|
|
31365
|
+
for (let i = 0;i < Math.min(curLen, newLen); i++) {
|
|
31366
|
+
const curVal = liveList.get(i);
|
|
31367
|
+
const newVal = jsonArr[i];
|
|
31368
|
+
if (isLiveStructure(curVal)) {
|
|
31369
|
+
const next = reconcile(curVal, newVal, config);
|
|
31370
|
+
if (next !== curVal) {
|
|
31371
|
+
liveList.set(i, next);
|
|
31372
|
+
}
|
|
31373
|
+
} else if (curVal !== newVal) {
|
|
31374
|
+
liveList.set(i, deepLiveify(newVal, config));
|
|
31375
|
+
}
|
|
31376
|
+
}
|
|
31377
|
+
for (let i = curLen;i < newLen; i++) {
|
|
31378
|
+
liveList.push(deepLiveify(jsonArr[i], config));
|
|
31379
|
+
}
|
|
31380
|
+
for (let i = curLen - 1;i >= newLen; i--) {
|
|
31381
|
+
liveList.delete(i);
|
|
31382
|
+
}
|
|
31383
|
+
return liveList;
|
|
31384
|
+
}
|
|
31283
31385
|
function creationOpToLiveNode(op) {
|
|
31284
31386
|
return lsonToLiveNode(creationOpToLson(op));
|
|
31285
31387
|
}
|
|
@@ -31584,6 +31686,8 @@ function defaultMessageFromContext(context) {
|
|
|
31584
31686
|
return "Could not update notification settings";
|
|
31585
31687
|
case "LARGE_MESSAGE_ERROR":
|
|
31586
31688
|
return "Could not send large message";
|
|
31689
|
+
case "FEED_REQUEST_ERROR":
|
|
31690
|
+
return context.reason ?? "Feed request failed";
|
|
31587
31691
|
default:
|
|
31588
31692
|
return assertNever(context, "Unhandled case");
|
|
31589
31693
|
}
|
|
@@ -31767,9 +31871,13 @@ function createRoom(options, config) {
|
|
|
31767
31871
|
}
|
|
31768
31872
|
context.activeBatch.reverseOps.pushLeft(reverse);
|
|
31769
31873
|
} else {
|
|
31770
|
-
|
|
31771
|
-
|
|
31772
|
-
|
|
31874
|
+
if (reverse.length > 0) {
|
|
31875
|
+
addToUndoStack(reverse);
|
|
31876
|
+
}
|
|
31877
|
+
if (ops.length > 0) {
|
|
31878
|
+
context.redoStack.length = 0;
|
|
31879
|
+
dispatchOps(ops);
|
|
31880
|
+
}
|
|
31773
31881
|
notify({ storageUpdates });
|
|
31774
31882
|
}
|
|
31775
31883
|
}
|
|
@@ -31790,6 +31898,7 @@ function createRoom(options, config) {
|
|
|
31790
31898
|
storageStatus: makeEventSource(),
|
|
31791
31899
|
ydoc: makeEventSource(),
|
|
31792
31900
|
comments: makeEventSource(),
|
|
31901
|
+
feeds: makeEventSource(),
|
|
31793
31902
|
roomWillDestroy: makeEventSource()
|
|
31794
31903
|
};
|
|
31795
31904
|
async function createTextMention(mentionId, mention) {
|
|
@@ -31866,17 +31975,18 @@ function createRoom(options, config) {
|
|
|
31866
31975
|
context.root = LiveObject._fromItems(nodes, context.pool);
|
|
31867
31976
|
}
|
|
31868
31977
|
const canWrite = self2.get()?.canWrite ?? true;
|
|
31869
|
-
const
|
|
31870
|
-
|
|
31871
|
-
|
|
31872
|
-
if (
|
|
31873
|
-
|
|
31874
|
-
|
|
31875
|
-
|
|
31978
|
+
const root = context.root;
|
|
31979
|
+
withoutHistory(() => {
|
|
31980
|
+
for (const key in context.initialStorage) {
|
|
31981
|
+
if (root.get(key) === undefined) {
|
|
31982
|
+
if (canWrite) {
|
|
31983
|
+
root.set(key, cloneLson(context.initialStorage[key]));
|
|
31984
|
+
} else {
|
|
31985
|
+
warn2(`Attempted to populate missing storage key '${key}', but current user has no write access`);
|
|
31986
|
+
}
|
|
31876
31987
|
}
|
|
31877
31988
|
}
|
|
31878
|
-
}
|
|
31879
|
-
context.undoStack.length = stackSizeBefore;
|
|
31989
|
+
});
|
|
31880
31990
|
}
|
|
31881
31991
|
function _addToRealUndoStack(frames) {
|
|
31882
31992
|
if (context.undoStack.length >= 50) {
|
|
@@ -32160,6 +32270,9 @@ function createRoom(options, config) {
|
|
|
32160
32270
|
notify(result.updates);
|
|
32161
32271
|
sendMessages(messages);
|
|
32162
32272
|
}
|
|
32273
|
+
function isFeedRequestFailedMsg(msg) {
|
|
32274
|
+
return msg.type === ServerMsgCode.FEED_REQUEST_FAILED;
|
|
32275
|
+
}
|
|
32163
32276
|
function handleServerMessage(event) {
|
|
32164
32277
|
if (typeof event.data !== "string") {
|
|
32165
32278
|
return;
|
|
@@ -32259,6 +32372,92 @@ function createRoom(options, config) {
|
|
|
32259
32372
|
eventHub.comments.notify(message);
|
|
32260
32373
|
break;
|
|
32261
32374
|
}
|
|
32375
|
+
case ServerMsgCode.FEEDS_LIST: {
|
|
32376
|
+
const feedsListMsg = message;
|
|
32377
|
+
const pending = pendingFeedsRequests.get(feedsListMsg.requestId);
|
|
32378
|
+
if (pending) {
|
|
32379
|
+
pending.resolve({
|
|
32380
|
+
feeds: feedsListMsg.feeds,
|
|
32381
|
+
nextCursor: feedsListMsg.nextCursor
|
|
32382
|
+
});
|
|
32383
|
+
pendingFeedsRequests.delete(feedsListMsg.requestId);
|
|
32384
|
+
}
|
|
32385
|
+
eventHub.feeds.notify(feedsListMsg);
|
|
32386
|
+
break;
|
|
32387
|
+
}
|
|
32388
|
+
case ServerMsgCode.FEEDS_ADDED: {
|
|
32389
|
+
const feedsAddedMsg = message;
|
|
32390
|
+
eventHub.feeds.notify(feedsAddedMsg);
|
|
32391
|
+
tryResolvePendingFeedMutationsFromFeedsEvent(feedsAddedMsg);
|
|
32392
|
+
break;
|
|
32393
|
+
}
|
|
32394
|
+
case ServerMsgCode.FEEDS_UPDATED: {
|
|
32395
|
+
const feedsUpdatedMsg = message;
|
|
32396
|
+
eventHub.feeds.notify(feedsUpdatedMsg);
|
|
32397
|
+
tryResolvePendingFeedMutationsFromFeedsEvent(feedsUpdatedMsg);
|
|
32398
|
+
break;
|
|
32399
|
+
}
|
|
32400
|
+
case ServerMsgCode.FEED_DELETED: {
|
|
32401
|
+
eventHub.feeds.notify(message);
|
|
32402
|
+
tryResolvePendingFeedMutationsFromFeedsEvent(message);
|
|
32403
|
+
break;
|
|
32404
|
+
}
|
|
32405
|
+
case ServerMsgCode.FEED_MESSAGES_LIST: {
|
|
32406
|
+
const feedMsgsListMsg = message;
|
|
32407
|
+
const pending = pendingFeedMessagesRequests.get(feedMsgsListMsg.requestId);
|
|
32408
|
+
if (pending) {
|
|
32409
|
+
pending.resolve({
|
|
32410
|
+
messages: feedMsgsListMsg.messages,
|
|
32411
|
+
nextCursor: feedMsgsListMsg.nextCursor
|
|
32412
|
+
});
|
|
32413
|
+
pendingFeedMessagesRequests.delete(feedMsgsListMsg.requestId);
|
|
32414
|
+
}
|
|
32415
|
+
eventHub.feeds.notify(feedMsgsListMsg);
|
|
32416
|
+
break;
|
|
32417
|
+
}
|
|
32418
|
+
case ServerMsgCode.FEED_MESSAGES_ADDED: {
|
|
32419
|
+
const feedMsgsAddedMsg = message;
|
|
32420
|
+
eventHub.feeds.notify(feedMsgsAddedMsg);
|
|
32421
|
+
tryResolvePendingFeedMutationsFromFeedsEvent(feedMsgsAddedMsg);
|
|
32422
|
+
break;
|
|
32423
|
+
}
|
|
32424
|
+
case ServerMsgCode.FEED_MESSAGES_UPDATED: {
|
|
32425
|
+
const feedMsgsUpdatedMsg = message;
|
|
32426
|
+
eventHub.feeds.notify(feedMsgsUpdatedMsg);
|
|
32427
|
+
tryResolvePendingFeedMutationsFromFeedsEvent(feedMsgsUpdatedMsg);
|
|
32428
|
+
break;
|
|
32429
|
+
}
|
|
32430
|
+
case ServerMsgCode.FEED_MESSAGES_DELETED: {
|
|
32431
|
+
eventHub.feeds.notify(message);
|
|
32432
|
+
tryResolvePendingFeedMutationsFromFeedsEvent(message);
|
|
32433
|
+
break;
|
|
32434
|
+
}
|
|
32435
|
+
case ServerMsgCode.FEED_REQUEST_FAILED: {
|
|
32436
|
+
if (!isFeedRequestFailedMsg(message)) {
|
|
32437
|
+
break;
|
|
32438
|
+
}
|
|
32439
|
+
const { requestId, code, reason } = message;
|
|
32440
|
+
const err = new LiveblocksError(reason ?? "Feed request failed", {
|
|
32441
|
+
type: "FEED_REQUEST_ERROR",
|
|
32442
|
+
roomId,
|
|
32443
|
+
requestId,
|
|
32444
|
+
code,
|
|
32445
|
+
reason
|
|
32446
|
+
});
|
|
32447
|
+
if (pendingFeedMutations.has(requestId)) {
|
|
32448
|
+
settleFeedMutation(requestId, "error", err);
|
|
32449
|
+
} else if (pendingFeedsRequests.has(requestId)) {
|
|
32450
|
+
const pending = pendingFeedsRequests.get(requestId);
|
|
32451
|
+
pendingFeedsRequests.delete(requestId);
|
|
32452
|
+
pending?.reject(err);
|
|
32453
|
+
} else if (pendingFeedMessagesRequests.has(requestId)) {
|
|
32454
|
+
const pending = pendingFeedMessagesRequests.get(requestId);
|
|
32455
|
+
pendingFeedMessagesRequests.delete(requestId);
|
|
32456
|
+
pending?.reject(err);
|
|
32457
|
+
}
|
|
32458
|
+
eventHub.feeds.notify(message);
|
|
32459
|
+
break;
|
|
32460
|
+
}
|
|
32262
32461
|
case ServerMsgCode.STORAGE_STATE_V7:
|
|
32263
32462
|
default:
|
|
32264
32463
|
break;
|
|
@@ -32353,6 +32552,137 @@ function createRoom(options, config) {
|
|
|
32353
32552
|
}
|
|
32354
32553
|
let _getStorage$ = null;
|
|
32355
32554
|
let _resolveStoragePromise = null;
|
|
32555
|
+
const pendingFeedsRequests = /* @__PURE__ */ new Map;
|
|
32556
|
+
const pendingFeedMessagesRequests = /* @__PURE__ */ new Map;
|
|
32557
|
+
const pendingFeedMutations = /* @__PURE__ */ new Map;
|
|
32558
|
+
const pendingAddMessageFifoByFeed = /* @__PURE__ */ new Map;
|
|
32559
|
+
function settleFeedMutation(requestId, outcome, error3) {
|
|
32560
|
+
const pending = pendingFeedMutations.get(requestId);
|
|
32561
|
+
if (pending === undefined) {
|
|
32562
|
+
return;
|
|
32563
|
+
}
|
|
32564
|
+
clearTimeout(pending.timeoutId);
|
|
32565
|
+
pendingFeedMutations.delete(requestId);
|
|
32566
|
+
if (pending.kind === "add-message" && !pending.expectedClientMessageId) {
|
|
32567
|
+
const q = pendingAddMessageFifoByFeed.get(pending.feedId);
|
|
32568
|
+
if (q !== undefined) {
|
|
32569
|
+
const idx = q.indexOf(requestId);
|
|
32570
|
+
if (idx >= 0) {
|
|
32571
|
+
q.splice(idx, 1);
|
|
32572
|
+
}
|
|
32573
|
+
if (q.length === 0) {
|
|
32574
|
+
pendingAddMessageFifoByFeed.delete(pending.feedId);
|
|
32575
|
+
}
|
|
32576
|
+
}
|
|
32577
|
+
}
|
|
32578
|
+
if (outcome === "ok") {
|
|
32579
|
+
pending.resolve();
|
|
32580
|
+
} else {
|
|
32581
|
+
pending.reject(error3 ?? new Error("Feed mutation failed"));
|
|
32582
|
+
}
|
|
32583
|
+
}
|
|
32584
|
+
function registerFeedMutation(requestId, kind, feedId, options2) {
|
|
32585
|
+
const { promise, resolve, reject } = Promise_withResolvers();
|
|
32586
|
+
const timeoutId = setTimeout(() => {
|
|
32587
|
+
if (pendingFeedMutations.has(requestId)) {
|
|
32588
|
+
settleFeedMutation(requestId, "error", new Error("Feed mutation timeout"));
|
|
32589
|
+
}
|
|
32590
|
+
}, FEEDS_TIMEOUT);
|
|
32591
|
+
pendingFeedMutations.set(requestId, {
|
|
32592
|
+
resolve,
|
|
32593
|
+
reject,
|
|
32594
|
+
timeoutId,
|
|
32595
|
+
kind,
|
|
32596
|
+
feedId,
|
|
32597
|
+
messageId: options2?.messageId,
|
|
32598
|
+
expectedClientMessageId: options2?.expectedClientMessageId
|
|
32599
|
+
});
|
|
32600
|
+
if (kind === "add-message" && options2?.expectedClientMessageId === undefined) {
|
|
32601
|
+
const q = pendingAddMessageFifoByFeed.get(feedId) ?? [];
|
|
32602
|
+
q.push(requestId);
|
|
32603
|
+
pendingAddMessageFifoByFeed.set(feedId, q);
|
|
32604
|
+
}
|
|
32605
|
+
return promise;
|
|
32606
|
+
}
|
|
32607
|
+
function tryResolvePendingFeedMutationsFromFeedsEvent(message) {
|
|
32608
|
+
switch (message.type) {
|
|
32609
|
+
case ServerMsgCode.FEEDS_ADDED: {
|
|
32610
|
+
for (const feed of message.feeds) {
|
|
32611
|
+
for (const [requestId, pending] of [...pendingFeedMutations]) {
|
|
32612
|
+
if (pending.kind === "add-feed" && pending.feedId === feed.feedId) {
|
|
32613
|
+
settleFeedMutation(requestId, "ok");
|
|
32614
|
+
break;
|
|
32615
|
+
}
|
|
32616
|
+
}
|
|
32617
|
+
}
|
|
32618
|
+
break;
|
|
32619
|
+
}
|
|
32620
|
+
case ServerMsgCode.FEEDS_UPDATED: {
|
|
32621
|
+
for (const feed of message.feeds) {
|
|
32622
|
+
for (const [requestId, pending] of [...pendingFeedMutations]) {
|
|
32623
|
+
if (pending.kind === "update-feed" && pending.feedId === feed.feedId) {
|
|
32624
|
+
settleFeedMutation(requestId, "ok");
|
|
32625
|
+
}
|
|
32626
|
+
}
|
|
32627
|
+
}
|
|
32628
|
+
break;
|
|
32629
|
+
}
|
|
32630
|
+
case ServerMsgCode.FEED_DELETED: {
|
|
32631
|
+
for (const [requestId, pending] of [...pendingFeedMutations]) {
|
|
32632
|
+
if (pending.kind === "delete-feed" && pending.feedId === message.feedId) {
|
|
32633
|
+
settleFeedMutation(requestId, "ok");
|
|
32634
|
+
break;
|
|
32635
|
+
}
|
|
32636
|
+
}
|
|
32637
|
+
break;
|
|
32638
|
+
}
|
|
32639
|
+
case ServerMsgCode.FEED_MESSAGES_ADDED: {
|
|
32640
|
+
for (const m of message.messages) {
|
|
32641
|
+
let matched = false;
|
|
32642
|
+
for (const [requestId, pending] of [...pendingFeedMutations]) {
|
|
32643
|
+
if (pending.kind === "add-message" && pending.feedId === message.feedId && pending.expectedClientMessageId === m.id) {
|
|
32644
|
+
settleFeedMutation(requestId, "ok");
|
|
32645
|
+
matched = true;
|
|
32646
|
+
break;
|
|
32647
|
+
}
|
|
32648
|
+
}
|
|
32649
|
+
if (!matched) {
|
|
32650
|
+
const q = pendingAddMessageFifoByFeed.get(message.feedId);
|
|
32651
|
+
const headId = q?.[0];
|
|
32652
|
+
if (headId !== undefined) {
|
|
32653
|
+
const pending = pendingFeedMutations.get(headId);
|
|
32654
|
+
if (pending?.kind === "add-message" && pending.expectedClientMessageId === undefined) {
|
|
32655
|
+
settleFeedMutation(headId, "ok");
|
|
32656
|
+
}
|
|
32657
|
+
}
|
|
32658
|
+
}
|
|
32659
|
+
}
|
|
32660
|
+
break;
|
|
32661
|
+
}
|
|
32662
|
+
case ServerMsgCode.FEED_MESSAGES_UPDATED: {
|
|
32663
|
+
for (const m of message.messages) {
|
|
32664
|
+
for (const [requestId, pending] of [...pendingFeedMutations]) {
|
|
32665
|
+
if (pending.kind === "update-message" && pending.feedId === message.feedId && pending.messageId === m.id) {
|
|
32666
|
+
settleFeedMutation(requestId, "ok");
|
|
32667
|
+
}
|
|
32668
|
+
}
|
|
32669
|
+
}
|
|
32670
|
+
break;
|
|
32671
|
+
}
|
|
32672
|
+
case ServerMsgCode.FEED_MESSAGES_DELETED: {
|
|
32673
|
+
for (const mid of message.messageIds) {
|
|
32674
|
+
for (const [requestId, pending] of [...pendingFeedMutations]) {
|
|
32675
|
+
if (pending.kind === "delete-message" && pending.feedId === message.feedId && pending.messageId === mid) {
|
|
32676
|
+
settleFeedMutation(requestId, "ok");
|
|
32677
|
+
}
|
|
32678
|
+
}
|
|
32679
|
+
}
|
|
32680
|
+
break;
|
|
32681
|
+
}
|
|
32682
|
+
default:
|
|
32683
|
+
break;
|
|
32684
|
+
}
|
|
32685
|
+
}
|
|
32356
32686
|
function processInitialStorage(nodes) {
|
|
32357
32687
|
const unacknowledgedOps = new Map(context.unacknowledgedOps);
|
|
32358
32688
|
createOrUpdateRootFromMessage(nodes);
|
|
@@ -32423,6 +32753,138 @@ function createRoom(options, config) {
|
|
|
32423
32753
|
}
|
|
32424
32754
|
flushNowOrSoon();
|
|
32425
32755
|
}
|
|
32756
|
+
async function fetchFeeds(options2) {
|
|
32757
|
+
const requestId = nanoid();
|
|
32758
|
+
const { promise, resolve, reject } = Promise_withResolvers();
|
|
32759
|
+
pendingFeedsRequests.set(requestId, { resolve, reject });
|
|
32760
|
+
const message = {
|
|
32761
|
+
type: ClientMsgCode.FETCH_FEEDS,
|
|
32762
|
+
requestId,
|
|
32763
|
+
cursor: options2?.cursor,
|
|
32764
|
+
since: options2?.since,
|
|
32765
|
+
limit: options2?.limit,
|
|
32766
|
+
metadata: options2?.metadata
|
|
32767
|
+
};
|
|
32768
|
+
context.buffer.messages.push(message);
|
|
32769
|
+
flushNowOrSoon();
|
|
32770
|
+
setTimeout(() => {
|
|
32771
|
+
if (pendingFeedsRequests.has(requestId)) {
|
|
32772
|
+
pendingFeedsRequests.delete(requestId);
|
|
32773
|
+
reject(new Error("Feeds fetch timeout"));
|
|
32774
|
+
}
|
|
32775
|
+
}, FEEDS_TIMEOUT);
|
|
32776
|
+
return promise;
|
|
32777
|
+
}
|
|
32778
|
+
async function fetchFeedMessages(feedId, options2) {
|
|
32779
|
+
const requestId = nanoid();
|
|
32780
|
+
const { promise, resolve, reject } = Promise_withResolvers();
|
|
32781
|
+
pendingFeedMessagesRequests.set(requestId, { resolve, reject });
|
|
32782
|
+
const message = {
|
|
32783
|
+
type: ClientMsgCode.FETCH_FEED_MESSAGES,
|
|
32784
|
+
requestId,
|
|
32785
|
+
feedId,
|
|
32786
|
+
cursor: options2?.cursor,
|
|
32787
|
+
since: options2?.since,
|
|
32788
|
+
limit: options2?.limit
|
|
32789
|
+
};
|
|
32790
|
+
context.buffer.messages.push(message);
|
|
32791
|
+
flushNowOrSoon();
|
|
32792
|
+
setTimeout(() => {
|
|
32793
|
+
if (pendingFeedMessagesRequests.has(requestId)) {
|
|
32794
|
+
pendingFeedMessagesRequests.delete(requestId);
|
|
32795
|
+
reject(new Error("Feed messages fetch timeout"));
|
|
32796
|
+
}
|
|
32797
|
+
}, FEEDS_TIMEOUT);
|
|
32798
|
+
return promise;
|
|
32799
|
+
}
|
|
32800
|
+
function addFeed(feedId, options2) {
|
|
32801
|
+
const requestId = nanoid();
|
|
32802
|
+
const promise = registerFeedMutation(requestId, "add-feed", feedId);
|
|
32803
|
+
const message = {
|
|
32804
|
+
type: ClientMsgCode.ADD_FEED,
|
|
32805
|
+
requestId,
|
|
32806
|
+
feedId,
|
|
32807
|
+
metadata: options2?.metadata,
|
|
32808
|
+
createdAt: options2?.createdAt
|
|
32809
|
+
};
|
|
32810
|
+
context.buffer.messages.push(message);
|
|
32811
|
+
flushNowOrSoon();
|
|
32812
|
+
return promise;
|
|
32813
|
+
}
|
|
32814
|
+
function updateFeed(feedId, metadata) {
|
|
32815
|
+
const requestId = nanoid();
|
|
32816
|
+
const promise = registerFeedMutation(requestId, "update-feed", feedId);
|
|
32817
|
+
const message = {
|
|
32818
|
+
type: ClientMsgCode.UPDATE_FEED,
|
|
32819
|
+
requestId,
|
|
32820
|
+
feedId,
|
|
32821
|
+
metadata
|
|
32822
|
+
};
|
|
32823
|
+
context.buffer.messages.push(message);
|
|
32824
|
+
flushNowOrSoon();
|
|
32825
|
+
return promise;
|
|
32826
|
+
}
|
|
32827
|
+
function deleteFeed(feedId) {
|
|
32828
|
+
const requestId = nanoid();
|
|
32829
|
+
const promise = registerFeedMutation(requestId, "delete-feed", feedId);
|
|
32830
|
+
const message = {
|
|
32831
|
+
type: ClientMsgCode.DELETE_FEED,
|
|
32832
|
+
requestId,
|
|
32833
|
+
feedId
|
|
32834
|
+
};
|
|
32835
|
+
context.buffer.messages.push(message);
|
|
32836
|
+
flushNowOrSoon();
|
|
32837
|
+
return promise;
|
|
32838
|
+
}
|
|
32839
|
+
function addFeedMessage(feedId, data, options2) {
|
|
32840
|
+
const requestId = nanoid();
|
|
32841
|
+
const promise = registerFeedMutation(requestId, "add-message", feedId, {
|
|
32842
|
+
expectedClientMessageId: options2?.id
|
|
32843
|
+
});
|
|
32844
|
+
const message = {
|
|
32845
|
+
type: ClientMsgCode.ADD_FEED_MESSAGE,
|
|
32846
|
+
requestId,
|
|
32847
|
+
feedId,
|
|
32848
|
+
data,
|
|
32849
|
+
id: options2?.id,
|
|
32850
|
+
createdAt: options2?.createdAt
|
|
32851
|
+
};
|
|
32852
|
+
context.buffer.messages.push(message);
|
|
32853
|
+
flushNowOrSoon();
|
|
32854
|
+
return promise;
|
|
32855
|
+
}
|
|
32856
|
+
function updateFeedMessage(feedId, messageId, data, options2) {
|
|
32857
|
+
const requestId = nanoid();
|
|
32858
|
+
const promise = registerFeedMutation(requestId, "update-message", feedId, {
|
|
32859
|
+
messageId
|
|
32860
|
+
});
|
|
32861
|
+
const message = {
|
|
32862
|
+
type: ClientMsgCode.UPDATE_FEED_MESSAGE,
|
|
32863
|
+
requestId,
|
|
32864
|
+
feedId,
|
|
32865
|
+
messageId,
|
|
32866
|
+
data,
|
|
32867
|
+
updatedAt: options2?.updatedAt
|
|
32868
|
+
};
|
|
32869
|
+
context.buffer.messages.push(message);
|
|
32870
|
+
flushNowOrSoon();
|
|
32871
|
+
return promise;
|
|
32872
|
+
}
|
|
32873
|
+
function deleteFeedMessage(feedId, messageId) {
|
|
32874
|
+
const requestId = nanoid();
|
|
32875
|
+
const promise = registerFeedMutation(requestId, "delete-message", feedId, {
|
|
32876
|
+
messageId
|
|
32877
|
+
});
|
|
32878
|
+
const message = {
|
|
32879
|
+
type: ClientMsgCode.DELETE_FEED_MESSAGE,
|
|
32880
|
+
requestId,
|
|
32881
|
+
feedId,
|
|
32882
|
+
messageId
|
|
32883
|
+
};
|
|
32884
|
+
context.buffer.messages.push(message);
|
|
32885
|
+
flushNowOrSoon();
|
|
32886
|
+
return promise;
|
|
32887
|
+
}
|
|
32426
32888
|
function undo() {
|
|
32427
32889
|
if (context.activeBatch) {
|
|
32428
32890
|
throw new Error("undo is not allowed during a batch");
|
|
@@ -32475,7 +32937,8 @@ function createRoom(options, config) {
|
|
|
32475
32937
|
presence: false,
|
|
32476
32938
|
others: []
|
|
32477
32939
|
},
|
|
32478
|
-
reverseOps: new Deque
|
|
32940
|
+
reverseOps: new Deque,
|
|
32941
|
+
scheduleHistoryResume: false
|
|
32479
32942
|
};
|
|
32480
32943
|
try {
|
|
32481
32944
|
returnValue = callback();
|
|
@@ -32485,6 +32948,9 @@ function createRoom(options, config) {
|
|
|
32485
32948
|
if (currentBatch.reverseOps.length > 0) {
|
|
32486
32949
|
addToUndoStack(Array.from(currentBatch.reverseOps));
|
|
32487
32950
|
}
|
|
32951
|
+
if (currentBatch.scheduleHistoryResume) {
|
|
32952
|
+
commitPausedHistoryToUndoStack();
|
|
32953
|
+
}
|
|
32488
32954
|
if (currentBatch.ops.length > 0) {
|
|
32489
32955
|
context.redoStack.length = 0;
|
|
32490
32956
|
}
|
|
@@ -32501,13 +32967,30 @@ function createRoom(options, config) {
|
|
|
32501
32967
|
context.pausedHistory = new Deque;
|
|
32502
32968
|
}
|
|
32503
32969
|
}
|
|
32504
|
-
function
|
|
32970
|
+
function commitPausedHistoryToUndoStack() {
|
|
32505
32971
|
const frames = context.pausedHistory;
|
|
32506
32972
|
context.pausedHistory = null;
|
|
32507
32973
|
if (frames !== null && frames.length > 0) {
|
|
32508
32974
|
_addToRealUndoStack(Array.from(frames));
|
|
32509
32975
|
}
|
|
32510
32976
|
}
|
|
32977
|
+
function resumeHistory() {
|
|
32978
|
+
if (context.activeBatch !== null) {
|
|
32979
|
+
context.activeBatch.scheduleHistoryResume = true;
|
|
32980
|
+
return;
|
|
32981
|
+
}
|
|
32982
|
+
commitPausedHistoryToUndoStack();
|
|
32983
|
+
}
|
|
32984
|
+
function withoutHistory(fn) {
|
|
32985
|
+
const undoBefore = context.undoStack.length;
|
|
32986
|
+
const redoBefore = context.redoStack.length;
|
|
32987
|
+
try {
|
|
32988
|
+
return fn();
|
|
32989
|
+
} finally {
|
|
32990
|
+
context.undoStack.length = undoBefore;
|
|
32991
|
+
context.redoStack.length = redoBefore;
|
|
32992
|
+
}
|
|
32993
|
+
}
|
|
32511
32994
|
const syncSourceForStorage = config.createSyncSource();
|
|
32512
32995
|
function getStorageStatus() {
|
|
32513
32996
|
if (context.root === undefined) {
|
|
@@ -32560,6 +33043,7 @@ function createRoom(options, config) {
|
|
|
32560
33043
|
storageStatus: eventHub.storageStatus.observable,
|
|
32561
33044
|
ydoc: eventHub.ydoc.observable,
|
|
32562
33045
|
comments: eventHub.comments.observable,
|
|
33046
|
+
feeds: eventHub.feeds.observable,
|
|
32563
33047
|
roomWillDestroy: eventHub.roomWillDestroy.observable
|
|
32564
33048
|
};
|
|
32565
33049
|
async function getThreadsSince(options2) {
|
|
@@ -32750,11 +33234,13 @@ function createRoom(options, config) {
|
|
|
32750
33234
|
attachmentUrlsStore: httpClient.getOrCreateAttachmentUrlsStore(roomId)
|
|
32751
33235
|
},
|
|
32752
33236
|
id: roomId,
|
|
32753
|
-
subscribe: makeClassicSubscribeFn(roomId,
|
|
33237
|
+
subscribe: makeClassicSubscribeFn(roomId, eventHub, config.errorEventSource),
|
|
32754
33238
|
connect: () => managedSocket.connect(),
|
|
32755
33239
|
reconnect: () => managedSocket.reconnect(),
|
|
32756
33240
|
disconnect: () => managedSocket.disconnect(),
|
|
32757
33241
|
destroy: () => {
|
|
33242
|
+
pendingFeedsRequests.forEach((request) => request.reject(new Error("Room destroyed")));
|
|
33243
|
+
pendingFeedMessagesRequests.forEach((request) => request.reject(new Error("Room destroyed")));
|
|
32758
33244
|
const { roomWillDestroy, ...eventsExceptDestroy } = eventHub;
|
|
32759
33245
|
for (const source of Object.values(eventsExceptDestroy)) {
|
|
32760
33246
|
source.dispose();
|
|
@@ -32778,9 +33264,20 @@ function createRoom(options, config) {
|
|
|
32778
33264
|
canRedo,
|
|
32779
33265
|
clear,
|
|
32780
33266
|
pause: pauseHistory,
|
|
32781
|
-
resume: resumeHistory
|
|
33267
|
+
resume: resumeHistory,
|
|
33268
|
+
[kInternal]: {
|
|
33269
|
+
withoutHistory
|
|
33270
|
+
}
|
|
32782
33271
|
},
|
|
32783
33272
|
fetchYDoc,
|
|
33273
|
+
fetchFeeds,
|
|
33274
|
+
fetchFeedMessages,
|
|
33275
|
+
addFeed,
|
|
33276
|
+
updateFeed,
|
|
33277
|
+
deleteFeed,
|
|
33278
|
+
addFeedMessage,
|
|
33279
|
+
updateFeedMessage,
|
|
33280
|
+
deleteFeedMessage,
|
|
32784
33281
|
getStorage,
|
|
32785
33282
|
getStorageSnapshot,
|
|
32786
33283
|
getStorageStatus,
|
|
@@ -33253,7 +33750,7 @@ function escapeMarkdown(value) {
|
|
|
33253
33750
|
var __defProp2, __export2 = (target, all2) => {
|
|
33254
33751
|
for (var name in all2)
|
|
33255
33752
|
__defProp2(target, name, { get: all2[name], enumerable: true });
|
|
33256
|
-
}, PKG_NAME = "@liveblocks/core", PKG_VERSION = "3.
|
|
33753
|
+
}, 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
33754
|
#byId;
|
|
33258
33755
|
#chats;
|
|
33259
33756
|
signal;
|
|
@@ -34365,6 +34862,9 @@ var __defProp2, __export2 = (target, all2) => {
|
|
|
34365
34862
|
}
|
|
34366
34863
|
return this.#cachedTreeNode;
|
|
34367
34864
|
}
|
|
34865
|
+
immutableIs(value) {
|
|
34866
|
+
return this.#cachedImmutable !== undefined && this.#cachedImmutable === value;
|
|
34867
|
+
}
|
|
34368
34868
|
toImmutable() {
|
|
34369
34869
|
if (this.#cachedImmutable === undefined) {
|
|
34370
34870
|
this.#cachedImmutable = this._toImmutable();
|
|
@@ -34464,7 +34964,7 @@ var __defProp2, __export2 = (target, all2) => {
|
|
|
34464
34964
|
return this.#invalidateUser(connectionId);
|
|
34465
34965
|
});
|
|
34466
34966
|
}
|
|
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 {
|
|
34967
|
+
}, 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
34968
|
#strings;
|
|
34469
34969
|
#values;
|
|
34470
34970
|
constructor(strings, values2) {
|
|
@@ -34953,6 +35453,15 @@ var init_dist = __esm(() => {
|
|
|
34953
35453
|
COMMENT_REACTION_ADDED: 405,
|
|
34954
35454
|
COMMENT_REACTION_REMOVED: 406,
|
|
34955
35455
|
COMMENT_METADATA_UPDATED: 409,
|
|
35456
|
+
FEEDS_LIST: 500,
|
|
35457
|
+
FEEDS_ADDED: 501,
|
|
35458
|
+
FEEDS_UPDATED: 502,
|
|
35459
|
+
FEED_DELETED: 503,
|
|
35460
|
+
FEED_MESSAGES_LIST: 504,
|
|
35461
|
+
FEED_MESSAGES_ADDED: 505,
|
|
35462
|
+
FEED_MESSAGES_UPDATED: 506,
|
|
35463
|
+
FEED_MESSAGES_DELETED: 507,
|
|
35464
|
+
FEED_REQUEST_FAILED: 508,
|
|
34956
35465
|
REJECT_STORAGE_OP: 299
|
|
34957
35466
|
});
|
|
34958
35467
|
BACKOFF_DELAYS = [250, 500, 1000, 2000, 4000, 8000, 1e4];
|
|
@@ -35411,7 +35920,8 @@ var init_dist = __esm(() => {
|
|
|
35411
35920
|
};
|
|
35412
35921
|
} else {
|
|
35413
35922
|
if (indexOfItemWithSamePosition !== -1) {
|
|
35414
|
-
nn(this.#items.removeAt(indexOfItemWithSamePosition));
|
|
35923
|
+
const displaced = nn(this.#items.removeAt(indexOfItemWithSamePosition));
|
|
35924
|
+
this.#implicitlyDeletedItems.add(displaced);
|
|
35415
35925
|
}
|
|
35416
35926
|
const { newItem, newIndex } = this.#createAttachItemAndSort(op, op.parentKey);
|
|
35417
35927
|
return {
|
|
@@ -36292,7 +36802,8 @@ var init_dist = __esm(() => {
|
|
|
36292
36802
|
};
|
|
36293
36803
|
MAX_LIVE_OBJECT_SIZE = 128 * 1024;
|
|
36294
36804
|
LiveObject = class _LiveObject extends AbstractCrdt {
|
|
36295
|
-
#
|
|
36805
|
+
#synced;
|
|
36806
|
+
#local = /* @__PURE__ */ new Map;
|
|
36296
36807
|
#unackedOpsByKey;
|
|
36297
36808
|
static detectLargeObjects = false;
|
|
36298
36809
|
static #buildRootAndParentToChildren(nodes) {
|
|
@@ -36330,7 +36841,7 @@ var init_dist = __esm(() => {
|
|
|
36330
36841
|
value._setParentLink(this, key);
|
|
36331
36842
|
}
|
|
36332
36843
|
}
|
|
36333
|
-
this.#
|
|
36844
|
+
this.#synced = new Map(Object.entries(o));
|
|
36334
36845
|
}
|
|
36335
36846
|
_toOps(parentId, parentKey) {
|
|
36336
36847
|
if (this._id === undefined) {
|
|
@@ -36345,7 +36856,7 @@ var init_dist = __esm(() => {
|
|
|
36345
36856
|
data: {}
|
|
36346
36857
|
};
|
|
36347
36858
|
ops.push(op);
|
|
36348
|
-
for (const [key, value] of this.#
|
|
36859
|
+
for (const [key, value] of this.#synced) {
|
|
36349
36860
|
if (isLiveNode(value)) {
|
|
36350
36861
|
for (const childOp of value._toOps(this._id, key)) {
|
|
36351
36862
|
ops.push(childOp);
|
|
@@ -36372,14 +36883,14 @@ var init_dist = __esm(() => {
|
|
|
36372
36883
|
if (isLiveStructure(child)) {
|
|
36373
36884
|
child._setParentLink(liveObj, crdt.parentKey);
|
|
36374
36885
|
}
|
|
36375
|
-
liveObj.#
|
|
36886
|
+
liveObj.#synced.set(crdt.parentKey, child);
|
|
36376
36887
|
liveObj.invalidate();
|
|
36377
36888
|
}
|
|
36378
36889
|
return liveObj;
|
|
36379
36890
|
}
|
|
36380
36891
|
_attach(id2, pool) {
|
|
36381
36892
|
super._attach(id2, pool);
|
|
36382
|
-
for (const [_key, value] of this.#
|
|
36893
|
+
for (const [_key, value] of this.#synced) {
|
|
36383
36894
|
if (isLiveNode(value)) {
|
|
36384
36895
|
value._attach(pool.generateId(), pool);
|
|
36385
36896
|
}
|
|
@@ -36406,7 +36917,7 @@ var init_dist = __esm(() => {
|
|
|
36406
36917
|
return { modified: false };
|
|
36407
36918
|
}
|
|
36408
36919
|
const thisId = nn(this._id);
|
|
36409
|
-
const previousValue = this.#
|
|
36920
|
+
const previousValue = this.#synced.get(key);
|
|
36410
36921
|
let reverse;
|
|
36411
36922
|
if (isLiveNode(previousValue)) {
|
|
36412
36923
|
reverse = previousValue._toOps(thisId, key);
|
|
@@ -36422,7 +36933,8 @@ var init_dist = __esm(() => {
|
|
|
36422
36933
|
}
|
|
36423
36934
|
];
|
|
36424
36935
|
}
|
|
36425
|
-
this.#
|
|
36936
|
+
this.#local.delete(key);
|
|
36937
|
+
this.#synced.set(key, child);
|
|
36426
36938
|
this.invalidate();
|
|
36427
36939
|
if (isLiveStructure(child)) {
|
|
36428
36940
|
child._setParentLink(this, key);
|
|
@@ -36442,9 +36954,9 @@ var init_dist = __esm(() => {
|
|
|
36442
36954
|
const id2 = nn(this._id);
|
|
36443
36955
|
const parentKey = nn(child._parentKey);
|
|
36444
36956
|
const reverse = child._toOps(id2, parentKey);
|
|
36445
|
-
for (const [key, value] of this.#
|
|
36957
|
+
for (const [key, value] of this.#synced) {
|
|
36446
36958
|
if (value === child) {
|
|
36447
|
-
this.#
|
|
36959
|
+
this.#synced.delete(key);
|
|
36448
36960
|
this.invalidate();
|
|
36449
36961
|
}
|
|
36450
36962
|
}
|
|
@@ -36462,7 +36974,7 @@ var init_dist = __esm(() => {
|
|
|
36462
36974
|
}
|
|
36463
36975
|
_detach() {
|
|
36464
36976
|
super._detach();
|
|
36465
|
-
for (const value of this.#
|
|
36977
|
+
for (const value of this.#synced.values()) {
|
|
36466
36978
|
if (isLiveNode(value)) {
|
|
36467
36979
|
value._detach();
|
|
36468
36980
|
}
|
|
@@ -36478,7 +36990,7 @@ var init_dist = __esm(() => {
|
|
|
36478
36990
|
}
|
|
36479
36991
|
_serialize() {
|
|
36480
36992
|
const data = {};
|
|
36481
|
-
for (const [key, value] of this.#
|
|
36993
|
+
for (const [key, value] of this.#synced) {
|
|
36482
36994
|
if (!isLiveNode(value)) {
|
|
36483
36995
|
data[key] = value;
|
|
36484
36996
|
}
|
|
@@ -36507,7 +37019,7 @@ var init_dist = __esm(() => {
|
|
|
36507
37019
|
data: {}
|
|
36508
37020
|
};
|
|
36509
37021
|
for (const key in op.data) {
|
|
36510
|
-
const oldValue = this.#
|
|
37022
|
+
const oldValue = this.#synced.get(key);
|
|
36511
37023
|
if (isLiveNode(oldValue)) {
|
|
36512
37024
|
for (const childOp of oldValue._toOps(id2, key)) {
|
|
36513
37025
|
reverse.push(childOp);
|
|
@@ -36535,13 +37047,14 @@ var init_dist = __esm(() => {
|
|
|
36535
37047
|
} else {
|
|
36536
37048
|
continue;
|
|
36537
37049
|
}
|
|
36538
|
-
const oldValue = this.#
|
|
37050
|
+
const oldValue = this.#synced.get(key);
|
|
36539
37051
|
if (isLiveNode(oldValue)) {
|
|
36540
37052
|
oldValue._detach();
|
|
36541
37053
|
}
|
|
36542
37054
|
isModified = true;
|
|
36543
37055
|
updateDelta[key] = { type: "update" };
|
|
36544
|
-
this.#
|
|
37056
|
+
this.#local.delete(key);
|
|
37057
|
+
this.#synced.set(key, value);
|
|
36545
37058
|
this.invalidate();
|
|
36546
37059
|
}
|
|
36547
37060
|
if (Object.keys(reverseUpdate.data).length !== 0) {
|
|
@@ -36558,7 +37071,7 @@ var init_dist = __esm(() => {
|
|
|
36558
37071
|
}
|
|
36559
37072
|
#applyDeleteObjectKey(op, isLocal) {
|
|
36560
37073
|
const key = op.key;
|
|
36561
|
-
const oldValue = this.#
|
|
37074
|
+
const oldValue = this.#synced.get(key);
|
|
36562
37075
|
if (oldValue === undefined) {
|
|
36563
37076
|
return { modified: false };
|
|
36564
37077
|
}
|
|
@@ -36579,7 +37092,8 @@ var init_dist = __esm(() => {
|
|
|
36579
37092
|
}
|
|
36580
37093
|
];
|
|
36581
37094
|
}
|
|
36582
|
-
this.#
|
|
37095
|
+
this.#local.delete(key);
|
|
37096
|
+
this.#synced.delete(key);
|
|
36583
37097
|
this.invalidate();
|
|
36584
37098
|
return {
|
|
36585
37099
|
modified: {
|
|
@@ -36592,45 +37106,105 @@ var init_dist = __esm(() => {
|
|
|
36592
37106
|
reverse
|
|
36593
37107
|
};
|
|
36594
37108
|
}
|
|
37109
|
+
keys() {
|
|
37110
|
+
const result = new Set(this.#synced.keys());
|
|
37111
|
+
for (const key of this.#local.keys()) {
|
|
37112
|
+
result.add(key);
|
|
37113
|
+
}
|
|
37114
|
+
return result;
|
|
37115
|
+
}
|
|
36595
37116
|
toObject() {
|
|
36596
|
-
|
|
37117
|
+
const result = Object.fromEntries(this.#synced);
|
|
37118
|
+
for (const [key, value] of this.#local) {
|
|
37119
|
+
result[key] = value;
|
|
37120
|
+
}
|
|
37121
|
+
return result;
|
|
36597
37122
|
}
|
|
36598
37123
|
set(key, value) {
|
|
36599
|
-
this._pool?.assertStorageIsWritable();
|
|
36600
37124
|
this.update({ [key]: value });
|
|
36601
37125
|
}
|
|
37126
|
+
setLocal(key, value) {
|
|
37127
|
+
this._pool?.assertStorageIsWritable();
|
|
37128
|
+
const deleteResult = this.#prepareDelete(key);
|
|
37129
|
+
this.#local.set(key, value);
|
|
37130
|
+
this.invalidate();
|
|
37131
|
+
if (this._pool !== undefined && this._id !== undefined) {
|
|
37132
|
+
const ops = deleteResult?.[0] ?? [];
|
|
37133
|
+
const reverse = deleteResult?.[1] ?? [];
|
|
37134
|
+
const storageUpdates = deleteResult?.[2] ?? /* @__PURE__ */ new Map;
|
|
37135
|
+
const existing = storageUpdates.get(this._id);
|
|
37136
|
+
storageUpdates.set(this._id, {
|
|
37137
|
+
node: this,
|
|
37138
|
+
type: "LiveObject",
|
|
37139
|
+
updates: {
|
|
37140
|
+
...existing?.updates,
|
|
37141
|
+
[key]: { type: "update" }
|
|
37142
|
+
}
|
|
37143
|
+
});
|
|
37144
|
+
this._pool.dispatch(ops, reverse, storageUpdates);
|
|
37145
|
+
}
|
|
37146
|
+
}
|
|
36602
37147
|
get(key) {
|
|
36603
|
-
return this.#
|
|
37148
|
+
return this.#local.has(key) ? this.#local.get(key) : this.#synced.get(key);
|
|
36604
37149
|
}
|
|
36605
|
-
|
|
37150
|
+
#prepareDelete(key) {
|
|
36606
37151
|
this._pool?.assertStorageIsWritable();
|
|
36607
|
-
const
|
|
36608
|
-
|
|
37152
|
+
const k = key;
|
|
37153
|
+
if (this.#local.has(k) && !this.#synced.has(k)) {
|
|
37154
|
+
const oldValue2 = this.#local.get(k);
|
|
37155
|
+
this.#local.delete(k);
|
|
37156
|
+
this.invalidate();
|
|
37157
|
+
if (this._pool !== undefined && this._id !== undefined) {
|
|
37158
|
+
const storageUpdates2 = /* @__PURE__ */ new Map;
|
|
37159
|
+
storageUpdates2.set(this._id, {
|
|
37160
|
+
node: this,
|
|
37161
|
+
type: "LiveObject",
|
|
37162
|
+
updates: {
|
|
37163
|
+
[k]: {
|
|
37164
|
+
type: "delete",
|
|
37165
|
+
deletedItem: oldValue2
|
|
37166
|
+
}
|
|
37167
|
+
}
|
|
37168
|
+
});
|
|
37169
|
+
return [[], [], storageUpdates2];
|
|
37170
|
+
}
|
|
37171
|
+
return null;
|
|
37172
|
+
}
|
|
37173
|
+
this.#local.delete(k);
|
|
37174
|
+
const oldValue = this.#synced.get(k);
|
|
36609
37175
|
if (oldValue === undefined) {
|
|
36610
|
-
return;
|
|
37176
|
+
return null;
|
|
36611
37177
|
}
|
|
36612
37178
|
if (this._pool === undefined || this._id === undefined) {
|
|
36613
37179
|
if (isLiveNode(oldValue)) {
|
|
36614
37180
|
oldValue._detach();
|
|
36615
37181
|
}
|
|
36616
|
-
this.#
|
|
37182
|
+
this.#synced.delete(k);
|
|
36617
37183
|
this.invalidate();
|
|
36618
|
-
return;
|
|
37184
|
+
return null;
|
|
36619
37185
|
}
|
|
37186
|
+
const ops = [
|
|
37187
|
+
{
|
|
37188
|
+
type: OpCode.DELETE_OBJECT_KEY,
|
|
37189
|
+
key: k,
|
|
37190
|
+
id: this._id,
|
|
37191
|
+
opId: this._pool.generateOpId()
|
|
37192
|
+
}
|
|
37193
|
+
];
|
|
36620
37194
|
let reverse;
|
|
36621
37195
|
if (isLiveNode(oldValue)) {
|
|
36622
37196
|
oldValue._detach();
|
|
36623
|
-
reverse = oldValue._toOps(this._id,
|
|
37197
|
+
reverse = oldValue._toOps(this._id, k);
|
|
36624
37198
|
} else {
|
|
36625
37199
|
reverse = [
|
|
36626
37200
|
{
|
|
36627
37201
|
type: OpCode.UPDATE_OBJECT,
|
|
36628
|
-
data: { [
|
|
37202
|
+
data: { [k]: oldValue },
|
|
36629
37203
|
id: this._id
|
|
36630
37204
|
}
|
|
36631
37205
|
];
|
|
36632
37206
|
}
|
|
36633
|
-
this.#
|
|
37207
|
+
this.#synced.delete(k);
|
|
36634
37208
|
this.invalidate();
|
|
36635
37209
|
const storageUpdates = /* @__PURE__ */ new Map;
|
|
36636
37210
|
storageUpdates.set(this._id, {
|
|
@@ -36640,20 +37214,20 @@ var init_dist = __esm(() => {
|
|
|
36640
37214
|
[key]: { type: "delete", deletedItem: oldValue }
|
|
36641
37215
|
}
|
|
36642
37216
|
});
|
|
36643
|
-
|
|
36644
|
-
|
|
36645
|
-
|
|
36646
|
-
|
|
36647
|
-
|
|
36648
|
-
|
|
36649
|
-
|
|
36650
|
-
|
|
37217
|
+
return [ops, reverse, storageUpdates];
|
|
37218
|
+
}
|
|
37219
|
+
delete(key) {
|
|
37220
|
+
const result = this.#prepareDelete(key);
|
|
37221
|
+
if (result) {
|
|
37222
|
+
const [ops, reverse, storageUpdates] = result;
|
|
37223
|
+
this._pool?.dispatch(ops, reverse, storageUpdates);
|
|
37224
|
+
}
|
|
36651
37225
|
}
|
|
36652
37226
|
update(patch) {
|
|
36653
37227
|
this._pool?.assertStorageIsWritable();
|
|
36654
37228
|
if (_LiveObject.detectLargeObjects) {
|
|
36655
37229
|
const data = {};
|
|
36656
|
-
for (const [key, value] of this.#
|
|
37230
|
+
for (const [key, value] of this.#synced) {
|
|
36657
37231
|
if (!isLiveNode(value)) {
|
|
36658
37232
|
data[key] = value;
|
|
36659
37233
|
}
|
|
@@ -36681,14 +37255,15 @@ var init_dist = __esm(() => {
|
|
|
36681
37255
|
if (newValue === undefined) {
|
|
36682
37256
|
continue;
|
|
36683
37257
|
}
|
|
36684
|
-
const oldValue = this.#
|
|
37258
|
+
const oldValue = this.#synced.get(key);
|
|
36685
37259
|
if (isLiveNode(oldValue)) {
|
|
36686
37260
|
oldValue._detach();
|
|
36687
37261
|
}
|
|
36688
37262
|
if (isLiveNode(newValue)) {
|
|
36689
37263
|
newValue._setParentLink(this, key);
|
|
36690
37264
|
}
|
|
36691
|
-
this.#
|
|
37265
|
+
this.#local.delete(key);
|
|
37266
|
+
this.#synced.set(key, newValue);
|
|
36692
37267
|
this.invalidate();
|
|
36693
37268
|
}
|
|
36694
37269
|
return;
|
|
@@ -36708,7 +37283,10 @@ var init_dist = __esm(() => {
|
|
|
36708
37283
|
if (newValue === undefined) {
|
|
36709
37284
|
continue;
|
|
36710
37285
|
}
|
|
36711
|
-
const oldValue = this.#
|
|
37286
|
+
const oldValue = this.#synced.get(key);
|
|
37287
|
+
if (oldValue === newValue) {
|
|
37288
|
+
continue;
|
|
37289
|
+
}
|
|
36712
37290
|
if (isLiveNode(oldValue)) {
|
|
36713
37291
|
for (const childOp of oldValue._toOps(this._id, key)) {
|
|
36714
37292
|
reverseOps.push(childOp);
|
|
@@ -36734,7 +37312,8 @@ var init_dist = __esm(() => {
|
|
|
36734
37312
|
updatedProps[key] = newValue;
|
|
36735
37313
|
this.#unackedOpsByKey.set(key, opId);
|
|
36736
37314
|
}
|
|
36737
|
-
this.#
|
|
37315
|
+
this.#local.delete(key);
|
|
37316
|
+
this.#synced.set(key, newValue);
|
|
36738
37317
|
this.invalidate();
|
|
36739
37318
|
updateDelta[key] = { type: "update" };
|
|
36740
37319
|
}
|
|
@@ -36749,6 +37328,9 @@ var init_dist = __esm(() => {
|
|
|
36749
37328
|
data: updatedProps
|
|
36750
37329
|
});
|
|
36751
37330
|
}
|
|
37331
|
+
if (ops.length === 0 && reverseOps.length === 0 && Object.keys(updateDelta).length === 0) {
|
|
37332
|
+
return;
|
|
37333
|
+
}
|
|
36752
37334
|
const storageUpdates = /* @__PURE__ */ new Map;
|
|
36753
37335
|
storageUpdates.set(this._id, {
|
|
36754
37336
|
node: this,
|
|
@@ -36757,6 +37339,20 @@ var init_dist = __esm(() => {
|
|
|
36757
37339
|
});
|
|
36758
37340
|
this._pool.dispatch(ops, reverseOps, storageUpdates);
|
|
36759
37341
|
}
|
|
37342
|
+
static from(obj, config) {
|
|
37343
|
+
if (!isPlainObject(obj))
|
|
37344
|
+
throw new Error("Expected a JSON object");
|
|
37345
|
+
const liveObj = new _LiveObject({});
|
|
37346
|
+
liveObj.reconcile(obj, config);
|
|
37347
|
+
return liveObj;
|
|
37348
|
+
}
|
|
37349
|
+
reconcile(jsonObj, config) {
|
|
37350
|
+
if (this.immutableIs(jsonObj))
|
|
37351
|
+
return;
|
|
37352
|
+
if (!isPlainObject(jsonObj))
|
|
37353
|
+
throw new Error("Reconciling the document root expects a plain object value");
|
|
37354
|
+
reconcileLiveObject(this, jsonObj, config);
|
|
37355
|
+
}
|
|
36760
37356
|
toImmutable() {
|
|
36761
37357
|
return super.toImmutable();
|
|
36762
37358
|
}
|
|
@@ -36769,21 +37365,28 @@ var init_dist = __esm(() => {
|
|
|
36769
37365
|
type: "LiveObject",
|
|
36770
37366
|
id: nodeId,
|
|
36771
37367
|
key,
|
|
36772
|
-
payload: Array.from(this.#
|
|
37368
|
+
payload: Array.from(this.#synced.entries()).map(([key2, value]) => isLiveNode(value) ? value.toTreeNode(key2) : { type: "Json", id: `${nodeId}:${key2}`, key: key2, payload: value })
|
|
36773
37369
|
};
|
|
36774
37370
|
}
|
|
36775
37371
|
_toImmutable() {
|
|
36776
37372
|
const result = {};
|
|
36777
|
-
for (const [key, val] of this.#
|
|
37373
|
+
for (const [key, val] of this.#synced) {
|
|
36778
37374
|
result[key] = isLiveStructure(val) ? val.toImmutable() : val;
|
|
36779
37375
|
}
|
|
37376
|
+
for (const [key, val] of this.#local) {
|
|
37377
|
+
result[key] = val;
|
|
37378
|
+
}
|
|
36780
37379
|
return Object.freeze(result);
|
|
36781
37380
|
}
|
|
36782
37381
|
clone() {
|
|
36783
|
-
|
|
37382
|
+
const cloned = new _LiveObject(Object.fromEntries(Array.from(this.#synced).map(([key, value]) => [
|
|
36784
37383
|
key,
|
|
36785
37384
|
isLiveStructure(value) ? value.clone() : deepClone(value)
|
|
36786
37385
|
])));
|
|
37386
|
+
for (const [key, value] of this.#local) {
|
|
37387
|
+
cloned.#local.set(key, deepClone(value));
|
|
37388
|
+
}
|
|
37389
|
+
return cloned;
|
|
36787
37390
|
}
|
|
36788
37391
|
};
|
|
36789
37392
|
Deque = class {
|
|
@@ -36850,7 +37453,15 @@ var init_dist = __esm(() => {
|
|
|
36850
37453
|
FETCH_STORAGE: 200,
|
|
36851
37454
|
UPDATE_STORAGE: 201,
|
|
36852
37455
|
FETCH_YDOC: 300,
|
|
36853
|
-
UPDATE_YDOC: 301
|
|
37456
|
+
UPDATE_YDOC: 301,
|
|
37457
|
+
FETCH_FEEDS: 510,
|
|
37458
|
+
FETCH_FEED_MESSAGES: 511,
|
|
37459
|
+
ADD_FEED: 512,
|
|
37460
|
+
UPDATE_FEED: 513,
|
|
37461
|
+
DELETE_FEED: 514,
|
|
37462
|
+
ADD_FEED_MESSAGE: 515,
|
|
37463
|
+
UPDATE_FEED_MESSAGE: 516,
|
|
37464
|
+
DELETE_FEED_MESSAGE: 517
|
|
36854
37465
|
});
|
|
36855
37466
|
LiveblocksError = class _LiveblocksError extends Error {
|
|
36856
37467
|
context;
|
|
@@ -36896,8 +37507,8 @@ var init_dist = __esm(() => {
|
|
|
36896
37507
|
detectDupes(PKG_NAME, PKG_VERSION, PKG_FORMAT);
|
|
36897
37508
|
});
|
|
36898
37509
|
|
|
36899
|
-
// ../../node_modules/.pnpm/@liveblocks+client@3.
|
|
36900
|
-
var PKG_NAME2 = "@liveblocks/client", PKG_VERSION2 = "3.
|
|
37510
|
+
// ../../node_modules/.pnpm/@liveblocks+client@3.17.0_@types+json-schema@7.0.15/node_modules/@liveblocks/client/dist/index.js
|
|
37511
|
+
var PKG_NAME2 = "@liveblocks/client", PKG_VERSION2 = "3.17.0", PKG_FORMAT2 = "esm";
|
|
36901
37512
|
var init_dist2 = __esm(() => {
|
|
36902
37513
|
init_dist();
|
|
36903
37514
|
init_dist();
|
|
@@ -37526,8 +38137,8 @@ var init_sha2 = __esm(() => {
|
|
|
37526
38137
|
sha256 = /* @__PURE__ */ createHasher(() => new SHA256);
|
|
37527
38138
|
});
|
|
37528
38139
|
|
|
37529
|
-
// ../../node_modules/.pnpm/@liveblocks+yjs@3.
|
|
37530
|
-
var PKG_NAME3 = "@liveblocks/yjs", PKG_VERSION3 = "3.
|
|
38140
|
+
// ../../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
|
|
38141
|
+
var PKG_NAME3 = "@liveblocks/yjs", PKG_VERSION3 = "3.17.0", PKG_FORMAT3 = "esm", create9 = () => /* @__PURE__ */ new Map, setIfUndefined3 = (map3, key, createT) => {
|
|
37531
38142
|
let set = map3.get(key);
|
|
37532
38143
|
if (set === undefined) {
|
|
37533
38144
|
map3.set(key, set = createT());
|
|
@@ -38033,7 +38644,7 @@ var init_dist3 = __esm(() => {
|
|
|
38033
38644
|
detectDupes(PKG_NAME3, PKG_VERSION3, PKG_FORMAT3);
|
|
38034
38645
|
});
|
|
38035
38646
|
|
|
38036
|
-
// ../../node_modules/.pnpm/ws@8.
|
|
38647
|
+
// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/constants.js
|
|
38037
38648
|
var require_constants = __commonJS((exports, module) => {
|
|
38038
38649
|
var BINARY_TYPES = ["nodebuffer", "arraybuffer", "fragments"];
|
|
38039
38650
|
var hasBlob = typeof Blob !== "undefined";
|
|
@@ -38053,7 +38664,7 @@ var require_constants = __commonJS((exports, module) => {
|
|
|
38053
38664
|
};
|
|
38054
38665
|
});
|
|
38055
38666
|
|
|
38056
|
-
// ../../node_modules/.pnpm/ws@8.
|
|
38667
|
+
// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/buffer-util.js
|
|
38057
38668
|
var require_buffer_util = __commonJS((exports, module) => {
|
|
38058
38669
|
var { EMPTY_BUFFER } = require_constants();
|
|
38059
38670
|
var FastBuffer = Buffer[Symbol.species];
|
|
@@ -38131,7 +38742,7 @@ var require_buffer_util = __commonJS((exports, module) => {
|
|
|
38131
38742
|
}
|
|
38132
38743
|
});
|
|
38133
38744
|
|
|
38134
|
-
// ../../node_modules/.pnpm/ws@8.
|
|
38745
|
+
// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/limiter.js
|
|
38135
38746
|
var require_limiter = __commonJS((exports, module) => {
|
|
38136
38747
|
var kDone = Symbol("kDone");
|
|
38137
38748
|
var kRun = Symbol("kRun");
|
|
@@ -38163,7 +38774,7 @@ var require_limiter = __commonJS((exports, module) => {
|
|
|
38163
38774
|
module.exports = Limiter;
|
|
38164
38775
|
});
|
|
38165
38776
|
|
|
38166
|
-
// ../../node_modules/.pnpm/ws@8.
|
|
38777
|
+
// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/permessage-deflate.js
|
|
38167
38778
|
var require_permessage_deflate = __commonJS((exports, module) => {
|
|
38168
38779
|
var zlib = __require("zlib");
|
|
38169
38780
|
var bufferUtil = require_buffer_util();
|
|
@@ -38179,11 +38790,11 @@ var require_permessage_deflate = __commonJS((exports, module) => {
|
|
|
38179
38790
|
var zlibLimiter;
|
|
38180
38791
|
|
|
38181
38792
|
class PerMessageDeflate {
|
|
38182
|
-
constructor(options) {
|
|
38793
|
+
constructor(options, isServer, maxPayload) {
|
|
38794
|
+
this._maxPayload = maxPayload | 0;
|
|
38183
38795
|
this._options = options || {};
|
|
38184
38796
|
this._threshold = this._options.threshold !== undefined ? this._options.threshold : 1024;
|
|
38185
|
-
this.
|
|
38186
|
-
this._isServer = !!this._options.isServer;
|
|
38797
|
+
this._isServer = !!isServer;
|
|
38187
38798
|
this._deflate = null;
|
|
38188
38799
|
this._inflate = null;
|
|
38189
38800
|
this.params = null;
|
|
@@ -38427,7 +39038,7 @@ var require_permessage_deflate = __commonJS((exports, module) => {
|
|
|
38427
39038
|
}
|
|
38428
39039
|
});
|
|
38429
39040
|
|
|
38430
|
-
// ../../node_modules/.pnpm/ws@8.
|
|
39041
|
+
// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/validation.js
|
|
38431
39042
|
var require_validation = __commonJS((exports, module) => {
|
|
38432
39043
|
var { isUtf8 } = __require("buffer");
|
|
38433
39044
|
var { hasBlob } = require_constants();
|
|
@@ -38614,7 +39225,7 @@ var require_validation = __commonJS((exports, module) => {
|
|
|
38614
39225
|
}
|
|
38615
39226
|
});
|
|
38616
39227
|
|
|
38617
|
-
// ../../node_modules/.pnpm/ws@8.
|
|
39228
|
+
// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/receiver.js
|
|
38618
39229
|
var require_receiver = __commonJS((exports, module) => {
|
|
38619
39230
|
var { Writable } = __require("stream");
|
|
38620
39231
|
var PerMessageDeflate = require_permessage_deflate();
|
|
@@ -38995,7 +39606,7 @@ var require_receiver = __commonJS((exports, module) => {
|
|
|
38995
39606
|
module.exports = Receiver;
|
|
38996
39607
|
});
|
|
38997
39608
|
|
|
38998
|
-
// ../../node_modules/.pnpm/ws@8.
|
|
39609
|
+
// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/sender.js
|
|
38999
39610
|
var require_sender = __commonJS((exports, module) => {
|
|
39000
39611
|
var { Duplex } = __require("stream");
|
|
39001
39612
|
var { randomFillSync } = __require("crypto");
|
|
@@ -39349,7 +39960,7 @@ var require_sender = __commonJS((exports, module) => {
|
|
|
39349
39960
|
}
|
|
39350
39961
|
});
|
|
39351
39962
|
|
|
39352
|
-
// ../../node_modules/.pnpm/ws@8.
|
|
39963
|
+
// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/event-target.js
|
|
39353
39964
|
var require_event_target = __commonJS((exports, module) => {
|
|
39354
39965
|
var { kForOnEventAttribute, kListener } = require_constants();
|
|
39355
39966
|
var kCode = Symbol("kCode");
|
|
@@ -39500,7 +40111,7 @@ var require_event_target = __commonJS((exports, module) => {
|
|
|
39500
40111
|
}
|
|
39501
40112
|
});
|
|
39502
40113
|
|
|
39503
|
-
// ../../node_modules/.pnpm/ws@8.
|
|
40114
|
+
// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/extension.js
|
|
39504
40115
|
var require_extension = __commonJS((exports, module) => {
|
|
39505
40116
|
var { tokenChars } = require_validation();
|
|
39506
40117
|
function push(dest, name, elem) {
|
|
@@ -39665,7 +40276,7 @@ var require_extension = __commonJS((exports, module) => {
|
|
|
39665
40276
|
module.exports = { format, parse };
|
|
39666
40277
|
});
|
|
39667
40278
|
|
|
39668
|
-
// ../../node_modules/.pnpm/ws@8.
|
|
40279
|
+
// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket.js
|
|
39669
40280
|
var require_websocket = __commonJS((exports, module) => {
|
|
39670
40281
|
var EventEmitter2 = __require("events");
|
|
39671
40282
|
var https = __require("https");
|
|
@@ -40054,7 +40665,7 @@ var require_websocket = __commonJS((exports, module) => {
|
|
|
40054
40665
|
} else {
|
|
40055
40666
|
try {
|
|
40056
40667
|
parsedUrl = new URL2(address2);
|
|
40057
|
-
} catch {
|
|
40668
|
+
} catch (e) {
|
|
40058
40669
|
throw new SyntaxError(`Invalid URL: ${address2}`);
|
|
40059
40670
|
}
|
|
40060
40671
|
}
|
|
@@ -40102,11 +40713,7 @@ var require_websocket = __commonJS((exports, module) => {
|
|
|
40102
40713
|
opts.path = parsedUrl.pathname + parsedUrl.search;
|
|
40103
40714
|
opts.timeout = opts.handshakeTimeout;
|
|
40104
40715
|
if (opts.perMessageDeflate) {
|
|
40105
|
-
perMessageDeflate = new PerMessageDeflate({
|
|
40106
|
-
...opts.perMessageDeflate,
|
|
40107
|
-
isServer: false,
|
|
40108
|
-
maxPayload: opts.maxPayload
|
|
40109
|
-
});
|
|
40716
|
+
perMessageDeflate = new PerMessageDeflate(opts.perMessageDeflate !== true ? opts.perMessageDeflate : {}, false, opts.maxPayload);
|
|
40110
40717
|
opts.headers["Sec-WebSocket-Extensions"] = format({
|
|
40111
40718
|
[PerMessageDeflate.extensionName]: perMessageDeflate.offer()
|
|
40112
40719
|
});
|
|
@@ -40431,7 +41038,7 @@ var require_websocket = __commonJS((exports, module) => {
|
|
|
40431
41038
|
}
|
|
40432
41039
|
});
|
|
40433
41040
|
|
|
40434
|
-
// ../../node_modules/.pnpm/ws@8.
|
|
41041
|
+
// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/stream.js
|
|
40435
41042
|
var require_stream = __commonJS((exports, module) => {
|
|
40436
41043
|
var WebSocket2 = require_websocket();
|
|
40437
41044
|
var { Duplex } = __require("stream");
|
|
@@ -40534,7 +41141,7 @@ var require_stream = __commonJS((exports, module) => {
|
|
|
40534
41141
|
module.exports = createWebSocketStream;
|
|
40535
41142
|
});
|
|
40536
41143
|
|
|
40537
|
-
// ../../node_modules/.pnpm/ws@8.
|
|
41144
|
+
// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/subprotocol.js
|
|
40538
41145
|
var require_subprotocol = __commonJS((exports, module) => {
|
|
40539
41146
|
var { tokenChars } = require_validation();
|
|
40540
41147
|
function parse(header) {
|
|
@@ -40579,7 +41186,7 @@ var require_subprotocol = __commonJS((exports, module) => {
|
|
|
40579
41186
|
module.exports = { parse };
|
|
40580
41187
|
});
|
|
40581
41188
|
|
|
40582
|
-
// ../../node_modules/.pnpm/ws@8.
|
|
41189
|
+
// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket-server.js
|
|
40583
41190
|
var require_websocket_server = __commonJS((exports, module) => {
|
|
40584
41191
|
var EventEmitter2 = __require("events");
|
|
40585
41192
|
var http = __require("http");
|
|
@@ -40752,11 +41359,7 @@ var require_websocket_server = __commonJS((exports, module) => {
|
|
|
40752
41359
|
const secWebSocketExtensions = req.headers["sec-websocket-extensions"];
|
|
40753
41360
|
const extensions = {};
|
|
40754
41361
|
if (this.options.perMessageDeflate && secWebSocketExtensions !== undefined) {
|
|
40755
|
-
const perMessageDeflate = new PerMessageDeflate(
|
|
40756
|
-
...this.options.perMessageDeflate,
|
|
40757
|
-
isServer: true,
|
|
40758
|
-
maxPayload: this.options.maxPayload
|
|
40759
|
-
});
|
|
41362
|
+
const perMessageDeflate = new PerMessageDeflate(this.options.perMessageDeflate, true, this.options.maxPayload);
|
|
40760
41363
|
try {
|
|
40761
41364
|
const offers = extension.parse(secWebSocketExtensions);
|
|
40762
41365
|
if (offers[PerMessageDeflate.extensionName]) {
|
|
@@ -40885,15 +41488,12 @@ var require_websocket_server = __commonJS((exports, module) => {
|
|
|
40885
41488
|
}
|
|
40886
41489
|
});
|
|
40887
41490
|
|
|
40888
|
-
// ../../node_modules/.pnpm/ws@8.
|
|
40889
|
-
var import_stream,
|
|
41491
|
+
// ../../node_modules/.pnpm/ws@8.19.0/node_modules/ws/wrapper.mjs
|
|
41492
|
+
var import_stream, import_receiver, import_sender, import_websocket, import_websocket_server, wrapper_default;
|
|
40890
41493
|
var init_wrapper = __esm(() => {
|
|
40891
41494
|
import_stream = __toESM(require_stream(), 1);
|
|
40892
|
-
import_extension = __toESM(require_extension(), 1);
|
|
40893
|
-
import_permessage_deflate = __toESM(require_permessage_deflate(), 1);
|
|
40894
41495
|
import_receiver = __toESM(require_receiver(), 1);
|
|
40895
41496
|
import_sender = __toESM(require_sender(), 1);
|
|
40896
|
-
import_subprotocol = __toESM(require_subprotocol(), 1);
|
|
40897
41497
|
import_websocket = __toESM(require_websocket(), 1);
|
|
40898
41498
|
import_websocket_server = __toESM(require_websocket_server(), 1);
|
|
40899
41499
|
wrapper_default = import_websocket.default;
|
|
@@ -63099,11 +63699,11 @@ function combineExtensions(extensions) {
|
|
|
63099
63699
|
syntaxExtension(all3, extensions[index2]);
|
|
63100
63700
|
return all3;
|
|
63101
63701
|
}
|
|
63102
|
-
function syntaxExtension(all3,
|
|
63702
|
+
function syntaxExtension(all3, extension) {
|
|
63103
63703
|
let hook;
|
|
63104
|
-
for (hook in
|
|
63704
|
+
for (hook in extension) {
|
|
63105
63705
|
const left = (hasOwnProperty2.call(all3, hook) ? all3[hook] : undefined) || (all3[hook] = {});
|
|
63106
|
-
const right =
|
|
63706
|
+
const right = extension[hook];
|
|
63107
63707
|
let code$1;
|
|
63108
63708
|
if (right)
|
|
63109
63709
|
for (code$1 in right) {
|
|
@@ -65262,7 +65862,7 @@ var init_remark_gfm_BhnWr3yf_es = __esm(() => {
|
|
|
65262
65862
|
emptyOptions2 = {};
|
|
65263
65863
|
});
|
|
65264
65864
|
|
|
65265
|
-
// ../../packages/superdoc/dist/chunks/SuperConverter-
|
|
65865
|
+
// ../../packages/superdoc/dist/chunks/SuperConverter-D0RwvY4d.es.js
|
|
65266
65866
|
function getExtensionConfigField(extension$1, field, context = { name: "" }) {
|
|
65267
65867
|
const fieldValue = extension$1.config[field];
|
|
65268
65868
|
if (typeof fieldValue === "function")
|
|
@@ -89683,7 +90283,7 @@ function preprocess() {
|
|
|
89683
90283
|
}
|
|
89684
90284
|
}
|
|
89685
90285
|
function fromMarkdown(value, encoding, options) {
|
|
89686
|
-
if (
|
|
90286
|
+
if (typeof encoding !== "string") {
|
|
89687
90287
|
options = encoding;
|
|
89688
90288
|
encoding = undefined;
|
|
89689
90289
|
}
|
|
@@ -90317,10 +90917,10 @@ function configure(combined, extensions) {
|
|
|
90317
90917
|
if (Array.isArray(value))
|
|
90318
90918
|
configure(combined, value);
|
|
90319
90919
|
else
|
|
90320
|
-
|
|
90920
|
+
extension(combined, value);
|
|
90321
90921
|
}
|
|
90322
90922
|
}
|
|
90323
|
-
function
|
|
90923
|
+
function extension(combined, extension$1) {
|
|
90324
90924
|
let key;
|
|
90325
90925
|
for (key in extension$1)
|
|
90326
90926
|
if (own3.call(extension$1, key))
|
|
@@ -110201,19 +110801,7 @@ var isRegExp = (value) => {
|
|
|
110201
110801
|
typeOver = true;
|
|
110202
110802
|
}
|
|
110203
110803
|
}
|
|
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) {
|
|
110804
|
+
if (gecko && added.length) {
|
|
110217
110805
|
let brs = added.filter((n) => n.nodeName == "BR");
|
|
110218
110806
|
if (brs.length == 2) {
|
|
110219
110807
|
let [a, b] = brs;
|
|
@@ -110229,6 +110817,13 @@ var isRegExp = (value) => {
|
|
|
110229
110817
|
br.remove();
|
|
110230
110818
|
}
|
|
110231
110819
|
}
|
|
110820
|
+
} else if ((chrome || safari) && added.some((n) => n.nodeName == "BR") && (view.input.lastKeyCode == 8 || view.input.lastKeyCode == 46)) {
|
|
110821
|
+
for (let node3 of added)
|
|
110822
|
+
if (node3.nodeName == "BR" && node3.parentNode) {
|
|
110823
|
+
let after2 = node3.nextSibling;
|
|
110824
|
+
if (after2 && after2.nodeType == 1 && after2.contentEditable == "false")
|
|
110825
|
+
node3.parentNode.removeChild(node3);
|
|
110826
|
+
}
|
|
110232
110827
|
}
|
|
110233
110828
|
let readSel = null;
|
|
110234
110829
|
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 +111072,11 @@ var isRegExp = (value) => {
|
|
|
110477
111072
|
}
|
|
110478
111073
|
updateDraggedNode(dragging, prev) {
|
|
110479
111074
|
let sel = dragging.node, found$1 = -1;
|
|
110480
|
-
if (
|
|
111075
|
+
if (this.state.doc.nodeAt(sel.from) == sel.node)
|
|
110481
111076
|
found$1 = sel.from;
|
|
110482
111077
|
else {
|
|
110483
111078
|
let movedPos = sel.from + (this.state.doc.content.size - prev.doc.content.size);
|
|
110484
|
-
if ((movedPos > 0 &&
|
|
111079
|
+
if ((movedPos > 0 && this.state.doc.nodeAt(movedPos)) == sel.node)
|
|
110485
111080
|
found$1 = movedPos;
|
|
110486
111081
|
}
|
|
110487
111082
|
this.dragging = new Dragging(dragging.slice, dragging.move, found$1 < 0 ? undefined : NodeSelection.create(this.state.doc, found$1));
|
|
@@ -116857,7 +117452,7 @@ var isRegExp = (value) => {
|
|
|
116857
117452
|
state.kern = kernNode.attributes["w:val"];
|
|
116858
117453
|
}
|
|
116859
117454
|
}, SuperConverter;
|
|
116860
|
-
var
|
|
117455
|
+
var init_SuperConverter_D0RwvY4d_es = __esm(() => {
|
|
116861
117456
|
init_rolldown_runtime_Bg48TavK_es();
|
|
116862
117457
|
init_jszip_C49i9kUs_es();
|
|
116863
117458
|
init_xml_js_CqGKpaft_es();
|
|
@@ -153930,7 +154525,7 @@ var init_SuperConverter_CE_qGNRx_es = __esm(() => {
|
|
|
153930
154525
|
};
|
|
153931
154526
|
});
|
|
153932
154527
|
|
|
153933
|
-
// ../../packages/superdoc/dist/chunks/create-headless-toolbar-
|
|
154528
|
+
// ../../packages/superdoc/dist/chunks/create-headless-toolbar-C1v2RG6S.es.js
|
|
153934
154529
|
function parseSizeUnit(val = "0") {
|
|
153935
154530
|
const length3 = val.toString() || "0";
|
|
153936
154531
|
const value = Number.parseFloat(length3);
|
|
@@ -155466,8 +156061,8 @@ var CSS_DIMENSION_REGEX, DOM_SIZE_UNITS, Extension = class Extension2 {
|
|
|
155466
156061
|
return false;
|
|
155467
156062
|
return Boolean(checker(attrs));
|
|
155468
156063
|
};
|
|
155469
|
-
var
|
|
155470
|
-
|
|
156064
|
+
var init_create_headless_toolbar_C1v2RG6S_es = __esm(() => {
|
|
156065
|
+
init_SuperConverter_D0RwvY4d_es();
|
|
155471
156066
|
init_constants_5yyN6FZg_es();
|
|
155472
156067
|
init_dist_B8HfvhaK_es();
|
|
155473
156068
|
CSS_DIMENSION_REGEX = /[\d-.]+(\w+)$/;
|
|
@@ -155621,28 +156216,28 @@ function zwitch(key2, options) {
|
|
|
155621
156216
|
one2.unknown = settings.unknown;
|
|
155622
156217
|
return one2;
|
|
155623
156218
|
}
|
|
155624
|
-
function configure2(base3,
|
|
156219
|
+
function configure2(base3, extension2) {
|
|
155625
156220
|
let index2 = -1;
|
|
155626
156221
|
let key2;
|
|
155627
|
-
if (
|
|
155628
|
-
while (++index2 <
|
|
155629
|
-
configure2(base3,
|
|
155630
|
-
for (key2 in
|
|
155631
|
-
if (own4.call(
|
|
156222
|
+
if (extension2.extensions)
|
|
156223
|
+
while (++index2 < extension2.extensions.length)
|
|
156224
|
+
configure2(base3, extension2.extensions[index2]);
|
|
156225
|
+
for (key2 in extension2)
|
|
156226
|
+
if (own4.call(extension2, key2))
|
|
155632
156227
|
switch (key2) {
|
|
155633
156228
|
case "extensions":
|
|
155634
156229
|
break;
|
|
155635
156230
|
case "unsafe":
|
|
155636
|
-
list3(base3[key2],
|
|
156231
|
+
list3(base3[key2], extension2[key2]);
|
|
155637
156232
|
break;
|
|
155638
156233
|
case "join":
|
|
155639
|
-
list3(base3[key2],
|
|
156234
|
+
list3(base3[key2], extension2[key2]);
|
|
155640
156235
|
break;
|
|
155641
156236
|
case "handlers":
|
|
155642
|
-
map5(base3[key2],
|
|
156237
|
+
map5(base3[key2], extension2[key2]);
|
|
155643
156238
|
break;
|
|
155644
156239
|
default:
|
|
155645
|
-
base3.options[key2] =
|
|
156240
|
+
base3.options[key2] = extension2[key2];
|
|
155646
156241
|
}
|
|
155647
156242
|
return base3;
|
|
155648
156243
|
}
|
|
@@ -157246,15 +157841,15 @@ var DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.docum
|
|
|
157246
157841
|
this.mediaFiles[name] = fileBase64;
|
|
157247
157842
|
} else {
|
|
157248
157843
|
const fileBase64 = await zipEntry.async("base64");
|
|
157249
|
-
let
|
|
157844
|
+
let extension2 = this.getFileExtension(name)?.toLowerCase();
|
|
157250
157845
|
let detectedType = null;
|
|
157251
|
-
if (!IMAGE_EXTS.has(
|
|
157846
|
+
if (!IMAGE_EXTS.has(extension2) || extension2 === "tmp") {
|
|
157252
157847
|
detectedType = detectImageType(fileBase64);
|
|
157253
157848
|
if (detectedType)
|
|
157254
|
-
|
|
157849
|
+
extension2 = detectedType;
|
|
157255
157850
|
}
|
|
157256
|
-
if (IMAGE_EXTS.has(
|
|
157257
|
-
const mimeSubtype = MIME_TYPE_FOR_EXT[
|
|
157851
|
+
if (IMAGE_EXTS.has(extension2)) {
|
|
157852
|
+
const mimeSubtype = MIME_TYPE_FOR_EXT[extension2] || extension2;
|
|
157258
157853
|
this.mediaFiles[name] = `data:image/${mimeSubtype};base64,${fileBase64}`;
|
|
157259
157854
|
const blob = await zipEntry.async("blob");
|
|
157260
157855
|
const fileObj = new File([blob], name, { type: blob.type });
|
|
@@ -158791,7 +159386,7 @@ var require_decode = __commonJS((exports) => {
|
|
|
158791
159386
|
exports.decodeXML = decodeXML;
|
|
158792
159387
|
});
|
|
158793
159388
|
|
|
158794
|
-
// ../../node_modules/.pnpm/@babel+parser@7.29.
|
|
159389
|
+
// ../../node_modules/.pnpm/@babel+parser@7.29.0/node_modules/@babel/parser/lib/index.js
|
|
158795
159390
|
var require_lib2 = __commonJS((exports) => {
|
|
158796
159391
|
Object.defineProperty(exports, "__esModule", {
|
|
158797
159392
|
value: true
|
|
@@ -170393,7 +170988,7 @@ var require_lib2 = __commonJS((exports) => {
|
|
|
170393
170988
|
this.next();
|
|
170394
170989
|
return this.parseAsyncFunctionExpression(this.startNodeAtNode(id2));
|
|
170395
170990
|
} else if (tokenIsIdentifier(type2)) {
|
|
170396
|
-
if (
|
|
170991
|
+
if (this.lookaheadCharCode() === 61) {
|
|
170397
170992
|
return this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(id2));
|
|
170398
170993
|
} else {
|
|
170399
170994
|
return id2;
|
|
@@ -203905,7 +204500,7 @@ var init_remark_gfm_eZN6yzWQ_es = __esm(() => {
|
|
|
203905
204500
|
init_remark_gfm_BhnWr3yf_es();
|
|
203906
204501
|
});
|
|
203907
204502
|
|
|
203908
|
-
// ../../packages/superdoc/dist/chunks/src-
|
|
204503
|
+
// ../../packages/superdoc/dist/chunks/src-CsmBi_VA.es.js
|
|
203909
204504
|
function deleteProps(obj, propOrProps) {
|
|
203910
204505
|
const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
|
|
203911
204506
|
const removeNested = (target, pathParts, index2 = 0) => {
|
|
@@ -208650,6 +209245,76 @@ function getFirstTableCellTextPos(tablePos, tableNode) {
|
|
|
208650
209245
|
const map$12 = TableMap.get(tableNode);
|
|
208651
209246
|
return tablePos + 1 + map$12.map[0] + 2;
|
|
208652
209247
|
}
|
|
209248
|
+
function resolveCommandTargetTable(selection) {
|
|
209249
|
+
if (selection?.node?.type?.name === "structuredContentBlock") {
|
|
209250
|
+
let found2 = null;
|
|
209251
|
+
let count2 = 0;
|
|
209252
|
+
selection.node.descendants((node3, pos) => {
|
|
209253
|
+
if (node3.type?.name !== "table")
|
|
209254
|
+
return true;
|
|
209255
|
+
count2 += 1;
|
|
209256
|
+
found2 = {
|
|
209257
|
+
node: node3,
|
|
209258
|
+
pos: selection.from + 1 + pos
|
|
209259
|
+
};
|
|
209260
|
+
return false;
|
|
209261
|
+
});
|
|
209262
|
+
if (count2 === 1 && found2)
|
|
209263
|
+
return found2;
|
|
209264
|
+
}
|
|
209265
|
+
return findParentNode((node3) => node3.type.name === "table")(selection);
|
|
209266
|
+
}
|
|
209267
|
+
function resolveStructuredContentBlockTableInsertion(selection) {
|
|
209268
|
+
if (selection instanceof NodeSelection && selection.node?.type?.name === "structuredContentBlock") {
|
|
209269
|
+
const contentStart = selection.from + 1;
|
|
209270
|
+
const firstChild = selection.node.firstChild;
|
|
209271
|
+
if (selection.node.childCount === 1 && firstChild?.type?.name === "paragraph" && firstChild.textContent === "")
|
|
209272
|
+
return {
|
|
209273
|
+
from: contentStart,
|
|
209274
|
+
to: contentStart + firstChild.nodeSize,
|
|
209275
|
+
tablePos: contentStart
|
|
209276
|
+
};
|
|
209277
|
+
const contentEnd = contentStart + selection.node.content.size;
|
|
209278
|
+
return {
|
|
209279
|
+
from: contentEnd,
|
|
209280
|
+
to: contentEnd,
|
|
209281
|
+
tablePos: contentEnd
|
|
209282
|
+
};
|
|
209283
|
+
}
|
|
209284
|
+
const $from = selection.$from;
|
|
209285
|
+
let structuredContentDepth = -1;
|
|
209286
|
+
for (let depth = $from.depth;depth > 0; depth--)
|
|
209287
|
+
if ($from.node(depth).type?.name === "structuredContentBlock") {
|
|
209288
|
+
structuredContentDepth = depth;
|
|
209289
|
+
break;
|
|
209290
|
+
}
|
|
209291
|
+
if (structuredContentDepth === -1)
|
|
209292
|
+
return null;
|
|
209293
|
+
const paragraphDepth = $from.parent?.type?.name === "run" ? $from.depth - 1 : $from.depth;
|
|
209294
|
+
if (paragraphDepth <= structuredContentDepth) {
|
|
209295
|
+
const contentEnd = $from.end(structuredContentDepth);
|
|
209296
|
+
return {
|
|
209297
|
+
from: contentEnd,
|
|
209298
|
+
to: contentEnd,
|
|
209299
|
+
tablePos: contentEnd
|
|
209300
|
+
};
|
|
209301
|
+
}
|
|
209302
|
+
const paragraph2 = $from.node(paragraphDepth);
|
|
209303
|
+
if (paragraph2.type.name === "paragraph" && paragraph2.textContent === "") {
|
|
209304
|
+
const from$2 = $from.before(paragraphDepth);
|
|
209305
|
+
return {
|
|
209306
|
+
from: from$2,
|
|
209307
|
+
to: $from.after(paragraphDepth),
|
|
209308
|
+
tablePos: from$2
|
|
209309
|
+
};
|
|
209310
|
+
}
|
|
209311
|
+
const from$1 = $from.after(paragraphDepth);
|
|
209312
|
+
return {
|
|
209313
|
+
from: from$1,
|
|
209314
|
+
to: from$1,
|
|
209315
|
+
tablePos: from$1
|
|
209316
|
+
};
|
|
209317
|
+
}
|
|
208653
209318
|
function getCellType({ node: node3, state }) {
|
|
208654
209319
|
return tableNodeTypes(state.schema)[node3.type.spec.tableRole];
|
|
208655
209320
|
}
|
|
@@ -215594,10 +216259,10 @@ function Item$1(fun, array) {
|
|
|
215594
216259
|
this.array = array;
|
|
215595
216260
|
}
|
|
215596
216261
|
function noop2() {}
|
|
215597
|
-
function isExtensionRulesEnabled(
|
|
216262
|
+
function isExtensionRulesEnabled(extension2, enabled) {
|
|
215598
216263
|
if (Array.isArray(enabled))
|
|
215599
216264
|
return enabled.some((enabledExtension) => {
|
|
215600
|
-
return (typeof enabledExtension === "string" ? enabledExtension : enabledExtension.name) ===
|
|
216265
|
+
return (typeof enabledExtension === "string" ? enabledExtension : enabledExtension.name) === extension2.name;
|
|
215601
216266
|
});
|
|
215602
216267
|
return enabled;
|
|
215603
216268
|
}
|
|
@@ -253035,7 +253700,7 @@ function hydrateImageBlocks(blocks2, mediaFiles) {
|
|
|
253035
253700
|
});
|
|
253036
253701
|
if (normalizedMedia.size === 0)
|
|
253037
253702
|
return blocks2;
|
|
253038
|
-
const resolveImageSrc = (src, relId, attrSrc,
|
|
253703
|
+
const resolveImageSrc = (src, relId, attrSrc, extension2) => {
|
|
253039
253704
|
if (!src || src.startsWith("data:"))
|
|
253040
253705
|
return;
|
|
253041
253706
|
const candidates = /* @__PURE__ */ new Set;
|
|
@@ -253043,7 +253708,7 @@ function hydrateImageBlocks(blocks2, mediaFiles) {
|
|
|
253043
253708
|
if (attrSrc)
|
|
253044
253709
|
candidates.add(attrSrc);
|
|
253045
253710
|
if (relId) {
|
|
253046
|
-
const inferredExt =
|
|
253711
|
+
const inferredExt = extension2 ?? inferExtensionFromPath(src) ?? "jpeg";
|
|
253047
253712
|
candidates.add(`word/media/${relId}.${inferredExt}`);
|
|
253048
253713
|
candidates.add(`media/${relId}.${inferredExt}`);
|
|
253049
253714
|
}
|
|
@@ -253054,7 +253719,7 @@ function hydrateImageBlocks(blocks2, mediaFiles) {
|
|
|
253054
253719
|
const base64 = normalizedMedia.get(normalized);
|
|
253055
253720
|
if (!base64)
|
|
253056
253721
|
continue;
|
|
253057
|
-
const finalExt =
|
|
253722
|
+
const finalExt = extension2 ?? inferExtensionFromPath(normalized) ?? "jpeg";
|
|
253058
253723
|
return base64.startsWith("data:") ? base64 : `data:image/${finalExt};base64,${base64}`;
|
|
253059
253724
|
}
|
|
253060
253725
|
};
|
|
@@ -253086,8 +253751,8 @@ function hydrateImageBlocks(blocks2, mediaFiles) {
|
|
|
253086
253751
|
const attrs = blk.attrs ?? {};
|
|
253087
253752
|
const relId = typeof attrs.rId === "string" ? attrs.rId : undefined;
|
|
253088
253753
|
const attrSrc = typeof attrs.src === "string" ? attrs.src : undefined;
|
|
253089
|
-
const
|
|
253090
|
-
const resolvedSrc = resolveImageSrc(blk.src, relId, attrSrc,
|
|
253754
|
+
const extension2 = typeof attrs.extension === "string" ? attrs.extension.toLowerCase() : undefined;
|
|
253755
|
+
const resolvedSrc = resolveImageSrc(blk.src, relId, attrSrc, extension2);
|
|
253091
253756
|
if (resolvedSrc)
|
|
253092
253757
|
return {
|
|
253093
253758
|
...blk,
|
|
@@ -261747,7 +262412,7 @@ var Node$13 = class Node$14 {
|
|
|
261747
262412
|
seededAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
261748
262413
|
source: "browser"
|
|
261749
262414
|
});
|
|
261750
|
-
}, initSyncListener = (ydoc, editor,
|
|
262415
|
+
}, initSyncListener = (ydoc, editor, extension2) => {
|
|
261751
262416
|
const provider = editor.options.collaborationProvider;
|
|
261752
262417
|
if (!provider)
|
|
261753
262418
|
return () => {};
|
|
@@ -261757,7 +262422,7 @@ var Node$13 = class Node$14 {
|
|
|
261757
262422
|
return;
|
|
261758
262423
|
if (synced === false)
|
|
261759
262424
|
return;
|
|
261760
|
-
|
|
262425
|
+
extension2.options.isReady = true;
|
|
261761
262426
|
editor.emit("collaborationReady", {
|
|
261762
262427
|
editor,
|
|
261763
262428
|
ydoc
|
|
@@ -261910,11 +262575,11 @@ var Node$13 = class Node$14 {
|
|
|
261910
262575
|
});
|
|
261911
262576
|
}
|
|
261912
262577
|
};
|
|
261913
|
-
for (const
|
|
261914
|
-
const addGlobalAttributes = getExtensionConfigField(
|
|
261915
|
-
name:
|
|
261916
|
-
options:
|
|
261917
|
-
storage:
|
|
262578
|
+
for (const extension2 of extensions) {
|
|
262579
|
+
const addGlobalAttributes = getExtensionConfigField(extension2, "addGlobalAttributes", {
|
|
262580
|
+
name: extension2.name,
|
|
262581
|
+
options: extension2.options,
|
|
262582
|
+
storage: extension2.storage
|
|
261918
262583
|
});
|
|
261919
262584
|
if (!addGlobalAttributes)
|
|
261920
262585
|
continue;
|
|
@@ -261929,11 +262594,11 @@ var Node$13 = class Node$14 {
|
|
|
261929
262594
|
const nodeAndMarkExtensions = extensions.filter((e) => {
|
|
261930
262595
|
return e.type === "node" || e.type === "mark";
|
|
261931
262596
|
});
|
|
261932
|
-
for (const
|
|
261933
|
-
const addAttributes = getExtensionConfigField(
|
|
261934
|
-
name:
|
|
261935
|
-
options:
|
|
261936
|
-
storage:
|
|
262597
|
+
for (const extension2 of nodeAndMarkExtensions) {
|
|
262598
|
+
const addAttributes = getExtensionConfigField(extension2, "addAttributes", {
|
|
262599
|
+
name: extension2.name,
|
|
262600
|
+
options: extension2.options,
|
|
262601
|
+
storage: extension2.storage
|
|
261937
262602
|
});
|
|
261938
262603
|
if (!addAttributes)
|
|
261939
262604
|
continue;
|
|
@@ -261946,7 +262611,7 @@ var Node$13 = class Node$14 {
|
|
|
261946
262611
|
if (typeof merged.default === "function")
|
|
261947
262612
|
merged.default = merged.default();
|
|
261948
262613
|
extensionAttributes.push({
|
|
261949
|
-
type:
|
|
262614
|
+
type: extension2.name,
|
|
261950
262615
|
name,
|
|
261951
262616
|
attribute: merged
|
|
261952
262617
|
});
|
|
@@ -271641,12 +272306,12 @@ var Node$13 = class Node$14 {
|
|
|
271641
272306
|
});
|
|
271642
272307
|
}
|
|
271643
272308
|
static #createNodesSchema(nodeExtensions, attributes, editor) {
|
|
271644
|
-
const nodeEntries = nodeExtensions.map((
|
|
271645
|
-
const extensionAttributes = attributes.filter((a2) => a2.type ===
|
|
272309
|
+
const nodeEntries = nodeExtensions.map((extension2) => {
|
|
272310
|
+
const extensionAttributes = attributes.filter((a2) => a2.type === extension2.name);
|
|
271646
272311
|
const context = {
|
|
271647
|
-
name:
|
|
271648
|
-
options:
|
|
271649
|
-
storage:
|
|
272312
|
+
name: extension2.name,
|
|
272313
|
+
options: extension2.options,
|
|
272314
|
+
storage: extension2.storage,
|
|
271650
272315
|
editor
|
|
271651
272316
|
};
|
|
271652
272317
|
const attrs = Object.fromEntries(extensionAttributes.map((attr) => {
|
|
@@ -271656,80 +272321,80 @@ var Node$13 = class Node$14 {
|
|
|
271656
272321
|
const extendNodeSchema = getExtensionConfigField(e, "extendNodeSchema", context);
|
|
271657
272322
|
return {
|
|
271658
272323
|
...fields,
|
|
271659
|
-
...extendNodeSchema ? extendNodeSchema(
|
|
272324
|
+
...extendNodeSchema ? extendNodeSchema(extension2) : {}
|
|
271660
272325
|
};
|
|
271661
272326
|
}, {});
|
|
271662
272327
|
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(
|
|
272328
|
+
content: callOrGet(getExtensionConfigField(extension2, "content", context)),
|
|
272329
|
+
group: callOrGet(getExtensionConfigField(extension2, "group", context)),
|
|
272330
|
+
marks: callOrGet(getExtensionConfigField(extension2, "marks", context)),
|
|
272331
|
+
inline: callOrGet(getExtensionConfigField(extension2, "inline", context)),
|
|
272332
|
+
atom: callOrGet(getExtensionConfigField(extension2, "atom", context)),
|
|
272333
|
+
selectable: callOrGet(getExtensionConfigField(extension2, "selectable", context)),
|
|
272334
|
+
draggable: callOrGet(getExtensionConfigField(extension2, "draggable", context)),
|
|
272335
|
+
code: callOrGet(getExtensionConfigField(extension2, "code", context)),
|
|
272336
|
+
defining: callOrGet(getExtensionConfigField(extension2, "defining", context)),
|
|
272337
|
+
isolating: callOrGet(getExtensionConfigField(extension2, "isolating", context)),
|
|
272338
|
+
summary: getExtensionConfigField(extension2, "summary", context),
|
|
271674
272339
|
attrs,
|
|
271675
272340
|
...additionalNodeFields
|
|
271676
272341
|
});
|
|
271677
|
-
if (typeof
|
|
272342
|
+
if (typeof extension2.validChildren === "function" || Array.isArray(extension2.validChildren))
|
|
271678
272343
|
Object.defineProperty(schema, "validChildren", {
|
|
271679
272344
|
enumerable: false,
|
|
271680
272345
|
configurable: false,
|
|
271681
|
-
get: () =>
|
|
272346
|
+
get: () => extension2.validChildren
|
|
271682
272347
|
});
|
|
271683
|
-
const parseDOM = callOrGet(getExtensionConfigField(
|
|
272348
|
+
const parseDOM = callOrGet(getExtensionConfigField(extension2, "parseDOM", context));
|
|
271684
272349
|
if (parseDOM)
|
|
271685
272350
|
schema.parseDOM = parseDOM.map((parseRule) => {
|
|
271686
272351
|
return Attribute2.insertExtensionAttrsToParseRule(parseRule, extensionAttributes);
|
|
271687
272352
|
});
|
|
271688
|
-
const renderDOM = getExtensionConfigField(
|
|
272353
|
+
const renderDOM = getExtensionConfigField(extension2, "renderDOM", context);
|
|
271689
272354
|
if (renderDOM)
|
|
271690
272355
|
schema.toDOM = (node3) => renderDOM({
|
|
271691
272356
|
node: node3,
|
|
271692
272357
|
htmlAttributes: Attribute2.getAttributesToRender(node3, extensionAttributes)
|
|
271693
272358
|
});
|
|
271694
|
-
const renderText = getExtensionConfigField(
|
|
272359
|
+
const renderText = getExtensionConfigField(extension2, "renderText", context);
|
|
271695
272360
|
if (renderText)
|
|
271696
272361
|
schema.toText = renderText;
|
|
271697
|
-
return [
|
|
272362
|
+
return [extension2.name, schema];
|
|
271698
272363
|
});
|
|
271699
272364
|
return Object.fromEntries(nodeEntries);
|
|
271700
272365
|
}
|
|
271701
272366
|
static #createMarksSchema(markExtensions, attributes, editor) {
|
|
271702
|
-
const markEntries = markExtensions.map((
|
|
271703
|
-
const extensionAttributes = attributes.filter((a2) => a2.type ===
|
|
272367
|
+
const markEntries = markExtensions.map((extension2) => {
|
|
272368
|
+
const extensionAttributes = attributes.filter((a2) => a2.type === extension2.name);
|
|
271704
272369
|
const context = {
|
|
271705
|
-
name:
|
|
271706
|
-
options:
|
|
271707
|
-
storage:
|
|
272370
|
+
name: extension2.name,
|
|
272371
|
+
options: extension2.options,
|
|
272372
|
+
storage: extension2.storage,
|
|
271708
272373
|
editor
|
|
271709
272374
|
};
|
|
271710
272375
|
const attrs = Object.fromEntries(extensionAttributes.map((attr) => {
|
|
271711
272376
|
return [attr.name, { default: attr?.attribute?.default }];
|
|
271712
272377
|
}));
|
|
271713
272378
|
const schema = cleanSchemaItem({
|
|
271714
|
-
group: callOrGet(getExtensionConfigField(
|
|
271715
|
-
inclusive: callOrGet(getExtensionConfigField(
|
|
271716
|
-
excludes: callOrGet(getExtensionConfigField(
|
|
271717
|
-
spanning: callOrGet(getExtensionConfigField(
|
|
271718
|
-
code: callOrGet(getExtensionConfigField(
|
|
272379
|
+
group: callOrGet(getExtensionConfigField(extension2, "group", context)),
|
|
272380
|
+
inclusive: callOrGet(getExtensionConfigField(extension2, "inclusive", context)),
|
|
272381
|
+
excludes: callOrGet(getExtensionConfigField(extension2, "excludes", context)),
|
|
272382
|
+
spanning: callOrGet(getExtensionConfigField(extension2, "spanning", context)),
|
|
272383
|
+
code: callOrGet(getExtensionConfigField(extension2, "code", context)),
|
|
271719
272384
|
attrs
|
|
271720
272385
|
});
|
|
271721
|
-
const parseDOM = callOrGet(getExtensionConfigField(
|
|
272386
|
+
const parseDOM = callOrGet(getExtensionConfigField(extension2, "parseDOM", context));
|
|
271722
272387
|
if (parseDOM)
|
|
271723
272388
|
schema.parseDOM = parseDOM.map((parseRule) => {
|
|
271724
272389
|
return Attribute2.insertExtensionAttrsToParseRule(parseRule, extensionAttributes);
|
|
271725
272390
|
});
|
|
271726
|
-
const renderDOM = getExtensionConfigField(
|
|
272391
|
+
const renderDOM = getExtensionConfigField(extension2, "renderDOM", context);
|
|
271727
272392
|
if (renderDOM)
|
|
271728
272393
|
schema.toDOM = (mark2) => renderDOM({
|
|
271729
272394
|
mark: mark2,
|
|
271730
272395
|
htmlAttributes: Attribute2.getAttributesToRender(mark2, extensionAttributes)
|
|
271731
272396
|
});
|
|
271732
|
-
return [
|
|
272397
|
+
return [extension2.name, schema];
|
|
271733
272398
|
});
|
|
271734
272399
|
return Object.fromEntries(markEntries);
|
|
271735
272400
|
}
|
|
@@ -271854,9 +272519,9 @@ var Node$13 = class Node$14 {
|
|
|
271854
272519
|
constructor(extensions, userExtensions, editor) {
|
|
271855
272520
|
this.editor = editor;
|
|
271856
272521
|
this.externalExtensions = userExtensions || [];
|
|
271857
|
-
this.externalExtensions = this.externalExtensions.map((
|
|
272522
|
+
this.externalExtensions = this.externalExtensions.map((extension2) => {
|
|
271858
272523
|
return {
|
|
271859
|
-
...
|
|
272524
|
+
...extension2,
|
|
271860
272525
|
isExternal: true
|
|
271861
272526
|
};
|
|
271862
272527
|
});
|
|
@@ -271887,13 +272552,13 @@ var Node$13 = class Node$14 {
|
|
|
271887
272552
|
}
|
|
271888
272553
|
get commands() {
|
|
271889
272554
|
let commandsObject = {};
|
|
271890
|
-
for (const
|
|
271891
|
-
const addCommands = getExtensionConfigField(
|
|
271892
|
-
name:
|
|
271893
|
-
options:
|
|
271894
|
-
storage:
|
|
272555
|
+
for (const extension2 of this.extensions) {
|
|
272556
|
+
const addCommands = getExtensionConfigField(extension2, "addCommands", {
|
|
272557
|
+
name: extension2.name,
|
|
272558
|
+
options: extension2.options,
|
|
272559
|
+
storage: extension2.storage,
|
|
271895
272560
|
editor: this.editor,
|
|
271896
|
-
type: getSchemaTypeByName(
|
|
272561
|
+
type: getSchemaTypeByName(extension2.name, this.schema)
|
|
271897
272562
|
});
|
|
271898
272563
|
if (addCommands)
|
|
271899
272564
|
commandsObject = {
|
|
@@ -271905,16 +272570,16 @@ var Node$13 = class Node$14 {
|
|
|
271905
272570
|
}
|
|
271906
272571
|
get helpers() {
|
|
271907
272572
|
const helpersObject = {};
|
|
271908
|
-
for (const
|
|
271909
|
-
const name =
|
|
272573
|
+
for (const extension2 of this.extensions) {
|
|
272574
|
+
const name = extension2.name;
|
|
271910
272575
|
if (!name)
|
|
271911
272576
|
continue;
|
|
271912
|
-
const addHelpers = getExtensionConfigField(
|
|
271913
|
-
name:
|
|
271914
|
-
options:
|
|
271915
|
-
storage:
|
|
272577
|
+
const addHelpers = getExtensionConfigField(extension2, "addHelpers", {
|
|
272578
|
+
name: extension2.name,
|
|
272579
|
+
options: extension2.options,
|
|
272580
|
+
storage: extension2.storage,
|
|
271916
272581
|
editor: this.editor,
|
|
271917
|
-
type: getSchemaTypeByName(
|
|
272582
|
+
type: getSchemaTypeByName(extension2.name, this.schema)
|
|
271918
272583
|
});
|
|
271919
272584
|
if (addHelpers)
|
|
271920
272585
|
helpersObject[name] = addHelpers();
|
|
@@ -271925,16 +272590,16 @@ var Node$13 = class Node$14 {
|
|
|
271925
272590
|
const editor = this.editor;
|
|
271926
272591
|
const extensions = ExtensionService2.sortByPriority([...this.extensions].reverse());
|
|
271927
272592
|
const inputRules = [];
|
|
271928
|
-
const allPlugins = extensions.map((
|
|
272593
|
+
const allPlugins = extensions.map((extension2) => {
|
|
271929
272594
|
const context = {
|
|
271930
|
-
name:
|
|
271931
|
-
options:
|
|
271932
|
-
storage:
|
|
272595
|
+
name: extension2.name,
|
|
272596
|
+
options: extension2.options,
|
|
272597
|
+
storage: extension2.storage,
|
|
271933
272598
|
editor,
|
|
271934
|
-
type: getSchemaTypeByName(
|
|
272599
|
+
type: getSchemaTypeByName(extension2.name, this.schema)
|
|
271935
272600
|
};
|
|
271936
272601
|
const plugins = [];
|
|
271937
|
-
const addShortcuts = getExtensionConfigField(
|
|
272602
|
+
const addShortcuts = getExtensionConfigField(extension2, "addShortcuts", context);
|
|
271938
272603
|
let bindingsObject = {};
|
|
271939
272604
|
if (addShortcuts) {
|
|
271940
272605
|
const entries2 = Object.entries(addShortcuts()).map(([shortcut, method]) => {
|
|
@@ -271946,10 +272611,10 @@ var Node$13 = class Node$14 {
|
|
|
271946
272611
|
bindingsObject = { ...Object.fromEntries(entries2) };
|
|
271947
272612
|
}
|
|
271948
272613
|
plugins.push(keymap(bindingsObject));
|
|
271949
|
-
const addInputRules = getExtensionConfigField(
|
|
271950
|
-
if (isExtensionRulesEnabled(
|
|
272614
|
+
const addInputRules = getExtensionConfigField(extension2, "addInputRules", context);
|
|
272615
|
+
if (isExtensionRulesEnabled(extension2, editor.options.enableInputRules) && addInputRules)
|
|
271951
272616
|
inputRules.push(...addInputRules());
|
|
271952
|
-
const addPmPlugins = getExtensionConfigField(
|
|
272617
|
+
const addPmPlugins = getExtensionConfigField(extension2, "addPmPlugins", context);
|
|
271953
272618
|
if (addPmPlugins)
|
|
271954
272619
|
plugins.push(...addPmPlugins());
|
|
271955
272620
|
return plugins;
|
|
@@ -271961,14 +272626,14 @@ var Node$13 = class Node$14 {
|
|
|
271961
272626
|
}
|
|
271962
272627
|
get nodeViews() {
|
|
271963
272628
|
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:
|
|
272629
|
+
const entries2 = this.extensions.filter((e) => e.type === "node").filter((extension2) => !!getExtensionConfigField(extension2, "addNodeView")).map((extension2) => {
|
|
272630
|
+
const extensionAttrs = this.attributes.filter((a2) => a2.type === extension2.name);
|
|
272631
|
+
const addNodeView = getExtensionConfigField(extension2, "addNodeView", {
|
|
272632
|
+
name: extension2.name,
|
|
272633
|
+
options: extension2.options,
|
|
272634
|
+
storage: extension2.storage,
|
|
271970
272635
|
editor,
|
|
271971
|
-
type: getNodeType(
|
|
272636
|
+
type: getNodeType(extension2.name, this.schema)
|
|
271972
272637
|
});
|
|
271973
272638
|
if (!addNodeView)
|
|
271974
272639
|
return null;
|
|
@@ -271982,47 +272647,47 @@ var Node$13 = class Node$14 {
|
|
|
271982
272647
|
getPos,
|
|
271983
272648
|
decorations,
|
|
271984
272649
|
htmlAttributes: Attribute2.getAttributesToRender(node3, extensionAttrs),
|
|
271985
|
-
extension:
|
|
272650
|
+
extension: extension2,
|
|
271986
272651
|
extensionAttrs
|
|
271987
272652
|
});
|
|
271988
272653
|
};
|
|
271989
|
-
return [
|
|
272654
|
+
return [extension2.name, nodeview];
|
|
271990
272655
|
}).filter(Boolean);
|
|
271991
272656
|
return Object.fromEntries(entries2);
|
|
271992
272657
|
}
|
|
271993
272658
|
#setupExtensions() {
|
|
271994
|
-
for (const
|
|
271995
|
-
this.editor.extensionStorage[
|
|
272659
|
+
for (const extension2 of this.extensions) {
|
|
272660
|
+
this.editor.extensionStorage[extension2.name] = extension2.storage;
|
|
271996
272661
|
const context = {
|
|
271997
|
-
name:
|
|
271998
|
-
options:
|
|
271999
|
-
storage:
|
|
272662
|
+
name: extension2.name,
|
|
272663
|
+
options: extension2.options,
|
|
272664
|
+
storage: extension2.storage,
|
|
272000
272665
|
editor: this.editor,
|
|
272001
|
-
type: getSchemaTypeByName(
|
|
272666
|
+
type: getSchemaTypeByName(extension2.name, this.schema)
|
|
272002
272667
|
};
|
|
272003
|
-
if (
|
|
272004
|
-
if (callOrGet(getExtensionConfigField(
|
|
272005
|
-
this.splittableMarks.push(
|
|
272668
|
+
if (extension2.type === "mark") {
|
|
272669
|
+
if (callOrGet(getExtensionConfigField(extension2, "keepOnSplit", context)) ?? true)
|
|
272670
|
+
this.splittableMarks.push(extension2.name);
|
|
272006
272671
|
}
|
|
272007
|
-
this.#attachEditorEvents(
|
|
272672
|
+
this.#attachEditorEvents(extension2);
|
|
272008
272673
|
}
|
|
272009
272674
|
}
|
|
272010
|
-
#attachEditorEvents(
|
|
272675
|
+
#attachEditorEvents(extension2) {
|
|
272011
272676
|
const context = {
|
|
272012
|
-
name:
|
|
272013
|
-
options:
|
|
272014
|
-
storage:
|
|
272677
|
+
name: extension2.name,
|
|
272678
|
+
options: extension2.options,
|
|
272679
|
+
storage: extension2.storage,
|
|
272015
272680
|
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(
|
|
272681
|
+
type: getSchemaTypeByName(extension2.name, this.schema)
|
|
272682
|
+
};
|
|
272683
|
+
const onBeforeCreate = getExtensionConfigField(extension2, "onBeforeCreate", context);
|
|
272684
|
+
const onCreate2 = getExtensionConfigField(extension2, "onCreate", context);
|
|
272685
|
+
const onUpdate = getExtensionConfigField(extension2, "onUpdate", context);
|
|
272686
|
+
const onSelectionUpdate = getExtensionConfigField(extension2, "onSelectionUpdate", context);
|
|
272687
|
+
const onTransaction = getExtensionConfigField(extension2, "onTransaction", context);
|
|
272688
|
+
const onFocus = getExtensionConfigField(extension2, "onFocus", context);
|
|
272689
|
+
const onBlur = getExtensionConfigField(extension2, "onBlur", context);
|
|
272690
|
+
const onDestroy2 = getExtensionConfigField(extension2, "onDestroy", context);
|
|
272026
272691
|
if (onBeforeCreate)
|
|
272027
272692
|
this.editor.on("beforeCreate", onBeforeCreate);
|
|
272028
272693
|
if (onCreate2)
|
|
@@ -272705,16 +273370,16 @@ var Node$13 = class Node$14 {
|
|
|
272705
273370
|
console.warn("Failed to initialize developer tools:", error3);
|
|
272706
273371
|
}
|
|
272707
273372
|
}
|
|
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 =
|
|
273373
|
+
}, 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) => {
|
|
273374
|
+
const extensionLike = extension2;
|
|
272710
273375
|
const config2 = extensionLike?.config;
|
|
272711
273376
|
const ExtensionCtor = extensionLike?.constructor;
|
|
272712
273377
|
if (!config2 || typeof config2 !== "object" || typeof ExtensionCtor !== "function")
|
|
272713
|
-
return
|
|
273378
|
+
return extension2;
|
|
272714
273379
|
try {
|
|
272715
273380
|
return new ExtensionCtor(config2);
|
|
272716
273381
|
} catch {
|
|
272717
|
-
return
|
|
273382
|
+
return extension2;
|
|
272718
273383
|
}
|
|
272719
273384
|
}, Editor, token = (varName, fallback) => ({
|
|
272720
273385
|
css: `var(${varName}, ${fallback})`,
|
|
@@ -286216,12 +286881,12 @@ var Node$13 = class Node$14 {
|
|
|
286216
286881
|
return;
|
|
286217
286882
|
console.log(...args$1);
|
|
286218
286883
|
}, 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
|
|
286884
|
+
var init_src_CsmBi_VA_es = __esm(() => {
|
|
286220
286885
|
init_rolldown_runtime_Bg48TavK_es();
|
|
286221
|
-
|
|
286886
|
+
init_SuperConverter_D0RwvY4d_es();
|
|
286222
286887
|
init_jszip_C49i9kUs_es();
|
|
286223
286888
|
init_uuid_qzgm05fK_es();
|
|
286224
|
-
|
|
286889
|
+
init_create_headless_toolbar_C1v2RG6S_es();
|
|
286225
286890
|
init_constants_5yyN6FZg_es();
|
|
286226
286891
|
init_dist_B8HfvhaK_es();
|
|
286227
286892
|
init_unified_Dsuw2be5_es();
|
|
@@ -287317,7 +287982,7 @@ ${err.toString()}`);
|
|
|
287317
287982
|
}
|
|
287318
287983
|
static valid($pos) {
|
|
287319
287984
|
let parent = $pos.parent;
|
|
287320
|
-
if (parent.
|
|
287985
|
+
if (parent.isTextblock || !closedBefore($pos) || !closedAfter($pos))
|
|
287321
287986
|
return false;
|
|
287322
287987
|
let override = parent.type.spec.allowGapCursor;
|
|
287323
287988
|
if (override != null)
|
|
@@ -287380,11 +288045,11 @@ ${err.toString()}`);
|
|
|
287380
288045
|
addPmPlugins() {
|
|
287381
288046
|
return [gapCursor()];
|
|
287382
288047
|
},
|
|
287383
|
-
extendNodeSchema(
|
|
287384
|
-
return { allowGapCursor: callOrGet(getExtensionConfigField(
|
|
287385
|
-
name:
|
|
287386
|
-
options:
|
|
287387
|
-
storage:
|
|
288048
|
+
extendNodeSchema(extension2) {
|
|
288049
|
+
return { allowGapCursor: callOrGet(getExtensionConfigField(extension2, "allowGapCursor", {
|
|
288050
|
+
name: extension2.name,
|
|
288051
|
+
options: extension2.options,
|
|
288052
|
+
storage: extension2.storage
|
|
287388
288053
|
})) ?? null };
|
|
287389
288054
|
}
|
|
287390
288055
|
});
|
|
@@ -290342,6 +291007,14 @@ ${err.toString()}`);
|
|
|
290342
291007
|
};
|
|
290343
291008
|
const node3 = createTable(editor.schema, rows, cols, withHeaderRow, null, widths, tableAttrs);
|
|
290344
291009
|
if (dispatch) {
|
|
291010
|
+
const structuredContentInsertion = resolveStructuredContentBlockTableInsertion(tr.selection);
|
|
291011
|
+
if (structuredContentInsertion) {
|
|
291012
|
+
const { from: from$1, to, tablePos } = structuredContentInsertion;
|
|
291013
|
+
tr.replaceWith(from$1, to, node3);
|
|
291014
|
+
const selectionPos$1 = getFirstTableCellTextPos(tablePos, node3);
|
|
291015
|
+
tr.scrollIntoView().setSelection(TextSelection2.near(tr.doc.resolve(selectionPos$1)));
|
|
291016
|
+
return true;
|
|
291017
|
+
}
|
|
290345
291018
|
let offset$1;
|
|
290346
291019
|
let replaceRange2 = undefined;
|
|
290347
291020
|
if (tr.selection.$from.depth === 0) {
|
|
@@ -290668,18 +291341,16 @@ ${err.toString()}`);
|
|
|
290668
291341
|
deleteCellAndTableBorders: () => ({ state, tr }) => {
|
|
290669
291342
|
if (!isInTable(state))
|
|
290670
291343
|
return false;
|
|
290671
|
-
const table2 =
|
|
291344
|
+
const table2 = resolveCommandTargetTable(state.selection);
|
|
290672
291345
|
if (!table2)
|
|
290673
291346
|
return false;
|
|
290674
|
-
const from$1 = table2.pos;
|
|
290675
|
-
const to = table2.pos + table2.node.nodeSize;
|
|
290676
291347
|
const nilBorder = {
|
|
290677
291348
|
val: "nil",
|
|
290678
291349
|
size: 0,
|
|
290679
291350
|
space: 0,
|
|
290680
291351
|
color: "auto"
|
|
290681
291352
|
};
|
|
290682
|
-
|
|
291353
|
+
table2.node.descendants((node3, pos) => {
|
|
290683
291354
|
if (["tableCell", "tableHeader"].includes(node3.type.name)) {
|
|
290684
291355
|
const nextTableCellProperties = {
|
|
290685
291356
|
...node3.attrs.tableCellProperties ?? {},
|
|
@@ -290691,13 +291362,14 @@ ${err.toString()}`);
|
|
|
290691
291362
|
}
|
|
290692
291363
|
};
|
|
290693
291364
|
const nextInlineKeys = [...new Set([...node3.attrs.tableCellPropertiesInlineKeys || [], "borders"])];
|
|
290694
|
-
tr.setNodeMarkup(pos, undefined, {
|
|
291365
|
+
tr.setNodeMarkup(table2.pos + 1 + pos, undefined, {
|
|
290695
291366
|
...node3.attrs,
|
|
290696
291367
|
borders: null,
|
|
290697
291368
|
tableCellProperties: nextTableCellProperties,
|
|
290698
291369
|
tableCellPropertiesInlineKeys: nextInlineKeys
|
|
290699
291370
|
});
|
|
290700
291371
|
}
|
|
291372
|
+
return true;
|
|
290701
291373
|
});
|
|
290702
291374
|
tr.setNodeMarkup(table2.pos, undefined, {
|
|
290703
291375
|
...table2.node.attrs,
|
|
@@ -290828,11 +291500,11 @@ ${err.toString()}`);
|
|
|
290828
291500
|
})()
|
|
290829
291501
|
];
|
|
290830
291502
|
},
|
|
290831
|
-
extendNodeSchema(
|
|
290832
|
-
return { tableRole: callOrGet(getExtensionConfigField(
|
|
290833
|
-
name:
|
|
290834
|
-
options:
|
|
290835
|
-
storage:
|
|
291503
|
+
extendNodeSchema(extension2) {
|
|
291504
|
+
return { tableRole: callOrGet(getExtensionConfigField(extension2, "tableRole", {
|
|
291505
|
+
name: extension2.name,
|
|
291506
|
+
options: extension2.options,
|
|
291507
|
+
storage: extension2.storage
|
|
290836
291508
|
})) };
|
|
290837
291509
|
}
|
|
290838
291510
|
});
|
|
@@ -310524,11 +311196,11 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
310524
311196
|
SelectionHandleExtension
|
|
310525
311197
|
];
|
|
310526
311198
|
const externalExtensions = this.options.externalExtensions || [];
|
|
310527
|
-
const allExtensions = [...coreExtensions, ...this.options.extensions].filter((
|
|
310528
|
-
const extensionType = typeof
|
|
311199
|
+
const allExtensions = [...coreExtensions, ...this.options.extensions].filter((extension2) => {
|
|
311200
|
+
const extensionType = typeof extension2?.type === "string" ? extension2.type : undefined;
|
|
310529
311201
|
return extensionType ? allowedExtensions.includes(extensionType) : false;
|
|
310530
|
-
}).map((
|
|
310531
|
-
const isolatedExternalExtensions = externalExtensions.map((
|
|
311202
|
+
}).map((extension2) => cloneExtensionInstance(extension2));
|
|
311203
|
+
const isolatedExternalExtensions = externalExtensions.map((extension2) => cloneExtensionInstance(extension2));
|
|
310532
311204
|
this.extensionService = ExtensionService.create(allExtensions, isolatedExternalExtensions, this);
|
|
310533
311205
|
}
|
|
310534
311206
|
#createCommandService() {
|
|
@@ -320687,11 +321359,11 @@ var init_zipper_DbkgrypV_es = __esm(() => {
|
|
|
320687
321359
|
|
|
320688
321360
|
// ../../packages/superdoc/dist/super-editor.es.js
|
|
320689
321361
|
var init_super_editor_es = __esm(() => {
|
|
320690
|
-
|
|
320691
|
-
|
|
321362
|
+
init_src_CsmBi_VA_es();
|
|
321363
|
+
init_SuperConverter_D0RwvY4d_es();
|
|
320692
321364
|
init_jszip_C49i9kUs_es();
|
|
320693
321365
|
init_xml_js_CqGKpaft_es();
|
|
320694
|
-
|
|
321366
|
+
init_create_headless_toolbar_C1v2RG6S_es();
|
|
320695
321367
|
init_constants_5yyN6FZg_es();
|
|
320696
321368
|
init_dist_B8HfvhaK_es();
|
|
320697
321369
|
init_unified_Dsuw2be5_es();
|
|
@@ -376498,12 +377170,11 @@ var require_braces = __commonJS((exports, module) => {
|
|
|
376498
377170
|
module.exports = braces;
|
|
376499
377171
|
});
|
|
376500
377172
|
|
|
376501
|
-
// ../../node_modules/.pnpm/picomatch@2.3.
|
|
377173
|
+
// ../../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/constants.js
|
|
376502
377174
|
var require_constants4 = __commonJS((exports, module) => {
|
|
376503
377175
|
var path2 = __require("path");
|
|
376504
377176
|
var WIN_SLASH = "\\\\/";
|
|
376505
377177
|
var WIN_NO_SLASH = `[^${WIN_SLASH}]`;
|
|
376506
|
-
var DEFAULT_MAX_EXTGLOB_RECURSION = 0;
|
|
376507
377178
|
var DOT_LITERAL = "\\.";
|
|
376508
377179
|
var PLUS_LITERAL = "\\+";
|
|
376509
377180
|
var QMARK_LITERAL = "\\?";
|
|
@@ -376551,7 +377222,6 @@ var require_constants4 = __commonJS((exports, module) => {
|
|
|
376551
377222
|
END_ANCHOR: `(?:[${WIN_SLASH}]|$)`
|
|
376552
377223
|
};
|
|
376553
377224
|
var POSIX_REGEX_SOURCE = {
|
|
376554
|
-
__proto__: null,
|
|
376555
377225
|
alnum: "a-zA-Z0-9",
|
|
376556
377226
|
alpha: "a-zA-Z",
|
|
376557
377227
|
ascii: "\\x00-\\x7F",
|
|
@@ -376568,7 +377238,6 @@ var require_constants4 = __commonJS((exports, module) => {
|
|
|
376568
377238
|
xdigit: "A-Fa-f0-9"
|
|
376569
377239
|
};
|
|
376570
377240
|
module.exports = {
|
|
376571
|
-
DEFAULT_MAX_EXTGLOB_RECURSION,
|
|
376572
377241
|
MAX_LENGTH: 1024 * 64,
|
|
376573
377242
|
POSIX_REGEX_SOURCE,
|
|
376574
377243
|
REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g,
|
|
@@ -376578,7 +377247,6 @@ var require_constants4 = __commonJS((exports, module) => {
|
|
|
376578
377247
|
REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g,
|
|
376579
377248
|
REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g,
|
|
376580
377249
|
REPLACEMENTS: {
|
|
376581
|
-
__proto__: null,
|
|
376582
377250
|
"***": "*",
|
|
376583
377251
|
"**/**": "**",
|
|
376584
377252
|
"**/**/**": "**"
|
|
@@ -376642,7 +377310,7 @@ var require_constants4 = __commonJS((exports, module) => {
|
|
|
376642
377310
|
};
|
|
376643
377311
|
});
|
|
376644
377312
|
|
|
376645
|
-
// ../../node_modules/.pnpm/picomatch@2.3.
|
|
377313
|
+
// ../../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/utils.js
|
|
376646
377314
|
var require_utils3 = __commonJS((exports) => {
|
|
376647
377315
|
var path2 = __require("path");
|
|
376648
377316
|
var win32 = process.platform === "win32";
|
|
@@ -376702,7 +377370,7 @@ var require_utils3 = __commonJS((exports) => {
|
|
|
376702
377370
|
};
|
|
376703
377371
|
});
|
|
376704
377372
|
|
|
376705
|
-
// ../../node_modules/.pnpm/picomatch@2.3.
|
|
377373
|
+
// ../../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/scan.js
|
|
376706
377374
|
var require_scan = __commonJS((exports, module) => {
|
|
376707
377375
|
var utils = require_utils3();
|
|
376708
377376
|
var {
|
|
@@ -377017,7 +377685,7 @@ var require_scan = __commonJS((exports, module) => {
|
|
|
377017
377685
|
module.exports = scan;
|
|
377018
377686
|
});
|
|
377019
377687
|
|
|
377020
|
-
// ../../node_modules/.pnpm/picomatch@2.3.
|
|
377688
|
+
// ../../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/parse.js
|
|
377021
377689
|
var require_parse2 = __commonJS((exports, module) => {
|
|
377022
377690
|
var constants2 = require_constants4();
|
|
377023
377691
|
var utils = require_utils3();
|
|
@@ -377044,213 +377712,6 @@ var require_parse2 = __commonJS((exports, module) => {
|
|
|
377044
377712
|
var syntaxError = (type2, char) => {
|
|
377045
377713
|
return `Missing ${type2}: "${char}" - use "\\\\${char}" to match literal characters`;
|
|
377046
377714
|
};
|
|
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
377715
|
var parse4 = (input2, options2) => {
|
|
377255
377716
|
if (typeof input2 !== "string") {
|
|
377256
377717
|
throw new TypeError("Expected a string");
|
|
@@ -377383,8 +377844,6 @@ var require_parse2 = __commonJS((exports, module) => {
|
|
|
377383
377844
|
token2.prev = prev;
|
|
377384
377845
|
token2.parens = state2.parens;
|
|
377385
377846
|
token2.output = state2.output;
|
|
377386
|
-
token2.startIndex = state2.index;
|
|
377387
|
-
token2.tokensIndex = tokens.length;
|
|
377388
377847
|
const output = (opts.capture ? "(" : "") + token2.open;
|
|
377389
377848
|
increment2("parens");
|
|
377390
377849
|
push2({ type: type2, value: value3, output: state2.output ? "" : ONE_CHAR });
|
|
@@ -377392,26 +377851,6 @@ var require_parse2 = __commonJS((exports, module) => {
|
|
|
377392
377851
|
extglobs.push(token2);
|
|
377393
377852
|
};
|
|
377394
377853
|
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
377854
|
let output = token2.close + (opts.capture ? ")" : "");
|
|
377416
377855
|
let rest;
|
|
377417
377856
|
if (token2.type === "negate") {
|
|
@@ -378024,7 +378463,7 @@ var require_parse2 = __commonJS((exports, module) => {
|
|
|
378024
378463
|
module.exports = parse4;
|
|
378025
378464
|
});
|
|
378026
378465
|
|
|
378027
|
-
// ../../node_modules/.pnpm/picomatch@2.3.
|
|
378466
|
+
// ../../node_modules/.pnpm/picomatch@2.3.1/node_modules/picomatch/lib/picomatch.js
|
|
378028
378467
|
var require_picomatch = __commonJS((exports, module) => {
|
|
378029
378468
|
var path2 = __require("path");
|
|
378030
378469
|
var scan = require_scan();
|