@superdoc-dev/cli 0.2.0-next.6 → 0.2.0-next.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +451 -27
- package/package.json +8 -8
package/dist/index.js
CHANGED
|
@@ -408,7 +408,7 @@ var init_args = __esm(() => {
|
|
|
408
408
|
});
|
|
409
409
|
|
|
410
410
|
// ../../packages/document-api/src/types/base.ts
|
|
411
|
-
var NODE_KINDS, NODE_TYPES, BLOCK_NODE_TYPES, INLINE_NODE_TYPES;
|
|
411
|
+
var NODE_KINDS, NODE_TYPES, BLOCK_NODE_TYPES, DELETABLE_BLOCK_NODE_TYPES, INLINE_NODE_TYPES;
|
|
412
412
|
var init_base = __esm(() => {
|
|
413
413
|
NODE_KINDS = ["block", "inline"];
|
|
414
414
|
NODE_TYPES = [
|
|
@@ -438,6 +438,13 @@ var init_base = __esm(() => {
|
|
|
438
438
|
"image",
|
|
439
439
|
"sdt"
|
|
440
440
|
];
|
|
441
|
+
DELETABLE_BLOCK_NODE_TYPES = [
|
|
442
|
+
"paragraph",
|
|
443
|
+
"heading",
|
|
444
|
+
"listItem",
|
|
445
|
+
"table",
|
|
446
|
+
"sdt"
|
|
447
|
+
];
|
|
441
448
|
INLINE_NODE_TYPES = [
|
|
442
449
|
"run",
|
|
443
450
|
"bookmark",
|
|
@@ -480,7 +487,6 @@ function buildDiscoveryResult(params) {
|
|
|
480
487
|
page: params.page
|
|
481
488
|
};
|
|
482
489
|
}
|
|
483
|
-
|
|
484
490
|
// ../../packages/document-api/src/types/index.ts
|
|
485
491
|
var init_types = __esm(() => {
|
|
486
492
|
init_base();
|
|
@@ -638,6 +644,27 @@ var init_operation_definitions = __esm(() => {
|
|
|
638
644
|
referenceDocPath: "delete.mdx",
|
|
639
645
|
referenceGroup: "core"
|
|
640
646
|
},
|
|
647
|
+
"blocks.delete": {
|
|
648
|
+
memberPath: "blocks.delete",
|
|
649
|
+
description: "Delete an entire block node (paragraph, heading, list item, table, image, or sdt) deterministically.",
|
|
650
|
+
requiresDocumentContext: true,
|
|
651
|
+
metadata: mutationOperation({
|
|
652
|
+
idempotency: "conditional",
|
|
653
|
+
supportsDryRun: true,
|
|
654
|
+
supportsTrackedMode: false,
|
|
655
|
+
possibleFailureCodes: NONE_FAILURES,
|
|
656
|
+
throws: [
|
|
657
|
+
"TARGET_NOT_FOUND",
|
|
658
|
+
"AMBIGUOUS_TARGET",
|
|
659
|
+
"CAPABILITY_UNAVAILABLE",
|
|
660
|
+
"INVALID_TARGET",
|
|
661
|
+
"INVALID_INPUT",
|
|
662
|
+
"INTERNAL_ERROR"
|
|
663
|
+
]
|
|
664
|
+
}),
|
|
665
|
+
referenceDocPath: "blocks/delete.mdx",
|
|
666
|
+
referenceGroup: "blocks"
|
|
667
|
+
},
|
|
641
668
|
"format.apply": {
|
|
642
669
|
memberPath: "format.apply",
|
|
643
670
|
description: "Apply explicit inline style changes (bold, italic, underline, strike) to the target range using boolean patch semantics.",
|
|
@@ -1400,7 +1427,7 @@ function buildInternalContractSchemas() {
|
|
|
1400
1427
|
operations
|
|
1401
1428
|
};
|
|
1402
1429
|
}
|
|
1403
|
-
var nodeTypeValues, blockNodeTypeValues, inlineNodeTypeValues, knownTargetKindValues, SHARED_DEFS, rangeSchema, positionSchema, inlineAnchorSchema, targetKindSchema, textAddressSchema, textTargetSchema, blockNodeAddressSchema, paragraphAddressSchema, headingAddressSchema, listItemAddressSchema, inlineNodeAddressSchema, nodeAddressSchema, commentAddressSchema, trackedChangeAddressSchema, entityAddressSchema, resolvedHandleSchema, pageInfoSchema, receiptSuccessSchema, textMutationRangeSchema, textMutationResolutionSchema, textMutationSuccessSchema, matchRunSchema, matchBlockSchema, trackChangeRefSchema, createParagraphSuccessSchema, createHeadingSuccessSchema, headingLevelSchema, listsInsertSuccessSchema, listsMutateItemSuccessSchema, listsExitSuccessSchema, nodeSummarySchema, nodeInfoSchema, matchContextSchema, unknownNodeDiagnosticSchema, textSelectorSchema, nodeSelectorSchema, selectorShorthandSchema, selectSchema, findInputSchema, findItemDomainSchema, findOutputSchema, documentInfoCountsSchema, documentInfoOutlineItemSchema, documentInfoCapabilitiesSchema, documentInfoSchema, listKindSchema, listInsertPositionSchema, listItemInfoSchema, listItemDomainItemSchema, listsListResultSchema, commentInfoSchema, commentDomainItemSchema, commentsListResultSchema, trackChangeInfoSchema, trackChangeDomainItemSchema, trackChangesListResultSchema, capabilityReasonCodeSchema, capabilityReasonsSchema, capabilityFlagSchema, operationRuntimeCapabilitySchema, operationCapabilitiesSchema, formatCapabilitiesSchema, capabilitiesOutputSchema, strictEmptyObjectSchema, insertInputSchema, operationSchemas;
|
|
1430
|
+
var nodeTypeValues, blockNodeTypeValues, deletableBlockNodeTypeValues, inlineNodeTypeValues, knownTargetKindValues, SHARED_DEFS, rangeSchema, positionSchema, inlineAnchorSchema, targetKindSchema, textAddressSchema, textTargetSchema, blockNodeAddressSchema, deletableBlockNodeAddressSchema, paragraphAddressSchema, headingAddressSchema, listItemAddressSchema, inlineNodeAddressSchema, nodeAddressSchema, commentAddressSchema, trackedChangeAddressSchema, entityAddressSchema, resolvedHandleSchema, pageInfoSchema, receiptSuccessSchema, textMutationRangeSchema, textMutationResolutionSchema, textMutationSuccessSchema, matchRunSchema, matchBlockSchema, trackChangeRefSchema, createParagraphSuccessSchema, createHeadingSuccessSchema, headingLevelSchema, listsInsertSuccessSchema, listsMutateItemSuccessSchema, listsExitSuccessSchema, nodeSummarySchema, nodeInfoSchema, matchContextSchema, unknownNodeDiagnosticSchema, textSelectorSchema, nodeSelectorSchema, selectorShorthandSchema, selectSchema, findInputSchema, findItemDomainSchema, findOutputSchema, documentInfoCountsSchema, documentInfoOutlineItemSchema, documentInfoCapabilitiesSchema, documentInfoSchema, listKindSchema, listInsertPositionSchema, listItemInfoSchema, listItemDomainItemSchema, listsListResultSchema, commentInfoSchema, commentDomainItemSchema, commentsListResultSchema, trackChangeInfoSchema, trackChangeDomainItemSchema, trackChangesListResultSchema, capabilityReasonCodeSchema, capabilityReasonsSchema, capabilityFlagSchema, operationRuntimeCapabilitySchema, operationCapabilitiesSchema, formatCapabilitiesSchema, capabilitiesOutputSchema, strictEmptyObjectSchema, insertInputSchema, operationSchemas;
|
|
1404
1431
|
var init_schemas = __esm(() => {
|
|
1405
1432
|
init_command_catalog();
|
|
1406
1433
|
init_types2();
|
|
@@ -1409,6 +1436,7 @@ var init_schemas = __esm(() => {
|
|
|
1409
1436
|
init_format();
|
|
1410
1437
|
nodeTypeValues = NODE_TYPES;
|
|
1411
1438
|
blockNodeTypeValues = BLOCK_NODE_TYPES;
|
|
1439
|
+
deletableBlockNodeTypeValues = DELETABLE_BLOCK_NODE_TYPES;
|
|
1412
1440
|
inlineNodeTypeValues = INLINE_NODE_TYPES;
|
|
1413
1441
|
knownTargetKindValues = [
|
|
1414
1442
|
"text",
|
|
@@ -1456,6 +1484,11 @@ var init_schemas = __esm(() => {
|
|
|
1456
1484
|
nodeType: { enum: [...blockNodeTypeValues] },
|
|
1457
1485
|
nodeId: { type: "string" }
|
|
1458
1486
|
}, ["kind", "nodeType", "nodeId"]),
|
|
1487
|
+
DeletableBlockNodeAddress: objectSchema({
|
|
1488
|
+
kind: { const: "block" },
|
|
1489
|
+
nodeType: { enum: [...deletableBlockNodeTypeValues] },
|
|
1490
|
+
nodeId: { type: "string" }
|
|
1491
|
+
}, ["kind", "nodeType", "nodeId"]),
|
|
1459
1492
|
ParagraphAddress: objectSchema({
|
|
1460
1493
|
kind: { const: "block" },
|
|
1461
1494
|
nodeType: { const: "paragraph" },
|
|
@@ -1562,6 +1595,7 @@ var init_schemas = __esm(() => {
|
|
|
1562
1595
|
textAddressSchema = ref("TextAddress");
|
|
1563
1596
|
textTargetSchema = ref("TextTarget");
|
|
1564
1597
|
blockNodeAddressSchema = ref("BlockNodeAddress");
|
|
1598
|
+
deletableBlockNodeAddressSchema = ref("DeletableBlockNodeAddress");
|
|
1565
1599
|
paragraphAddressSchema = ref("ParagraphAddress");
|
|
1566
1600
|
headingAddressSchema = ref("HeadingAddress");
|
|
1567
1601
|
listItemAddressSchema = ref("ListItemAddress");
|
|
@@ -1770,6 +1804,7 @@ var init_schemas = __esm(() => {
|
|
|
1770
1804
|
capabilityReasonCodeSchema = {
|
|
1771
1805
|
enum: [
|
|
1772
1806
|
"COMMAND_UNAVAILABLE",
|
|
1807
|
+
"HELPER_UNAVAILABLE",
|
|
1773
1808
|
"OPERATION_UNAVAILABLE",
|
|
1774
1809
|
"TRACKED_MODE_UNAVAILABLE",
|
|
1775
1810
|
"DRY_RUN_UNAVAILABLE",
|
|
@@ -1906,6 +1941,20 @@ var init_schemas = __esm(() => {
|
|
|
1906
1941
|
success: textMutationSuccessSchema,
|
|
1907
1942
|
failure: textMutationFailureSchemaFor("format.align")
|
|
1908
1943
|
},
|
|
1944
|
+
"blocks.delete": {
|
|
1945
|
+
input: objectSchema({
|
|
1946
|
+
target: deletableBlockNodeAddressSchema
|
|
1947
|
+
}, ["target"]),
|
|
1948
|
+
output: objectSchema({
|
|
1949
|
+
success: { const: true },
|
|
1950
|
+
deleted: deletableBlockNodeAddressSchema
|
|
1951
|
+
}, ["success", "deleted"]),
|
|
1952
|
+
success: objectSchema({
|
|
1953
|
+
success: { const: true },
|
|
1954
|
+
deleted: deletableBlockNodeAddressSchema
|
|
1955
|
+
}, ["success", "deleted"]),
|
|
1956
|
+
failure: preApplyFailureResultSchemaFor("blocks.delete")
|
|
1957
|
+
},
|
|
1909
1958
|
"create.paragraph": {
|
|
1910
1959
|
input: objectSchema({
|
|
1911
1960
|
at: {
|
|
@@ -2178,6 +2227,11 @@ var init_reference_doc_map = __esm(() => {
|
|
|
2178
2227
|
description: "Primary read and write operations.",
|
|
2179
2228
|
pagePath: "core/index.mdx"
|
|
2180
2229
|
},
|
|
2230
|
+
blocks: {
|
|
2231
|
+
title: "Blocks",
|
|
2232
|
+
description: "Block-level structural operations.",
|
|
2233
|
+
pagePath: "blocks/index.mdx"
|
|
2234
|
+
},
|
|
2181
2235
|
capabilities: {
|
|
2182
2236
|
title: "Capabilities",
|
|
2183
2237
|
description: "Runtime support discovery for capability-aware branching.",
|
|
@@ -2246,6 +2300,7 @@ var CAPABILITY_REASON_CODES;
|
|
|
2246
2300
|
var init_capabilities = __esm(() => {
|
|
2247
2301
|
CAPABILITY_REASON_CODES = [
|
|
2248
2302
|
"COMMAND_UNAVAILABLE",
|
|
2303
|
+
"HELPER_UNAVAILABLE",
|
|
2249
2304
|
"OPERATION_UNAVAILABLE",
|
|
2250
2305
|
"TRACKED_MODE_UNAVAILABLE",
|
|
2251
2306
|
"DRY_RUN_UNAVAILABLE",
|
|
@@ -2605,6 +2660,51 @@ var init_create = __esm(() => {
|
|
|
2605
2660
|
init_errors2();
|
|
2606
2661
|
});
|
|
2607
2662
|
|
|
2663
|
+
// ../../packages/document-api/src/blocks/blocks.ts
|
|
2664
|
+
function validateBlocksDeleteInput(input) {
|
|
2665
|
+
if (!input || typeof input !== "object") {
|
|
2666
|
+
throw new DocumentApiValidationError("INVALID_INPUT", "blocks.delete requires an input object.", {
|
|
2667
|
+
fields: ["input"]
|
|
2668
|
+
});
|
|
2669
|
+
}
|
|
2670
|
+
if (!input.target) {
|
|
2671
|
+
throw new DocumentApiValidationError("INVALID_INPUT", "blocks.delete requires a target.", {
|
|
2672
|
+
fields: ["target"]
|
|
2673
|
+
});
|
|
2674
|
+
}
|
|
2675
|
+
if (input.target.kind !== "block") {
|
|
2676
|
+
throw new DocumentApiValidationError("INVALID_INPUT", 'blocks.delete target must have kind "block".', {
|
|
2677
|
+
fields: ["target.kind"]
|
|
2678
|
+
});
|
|
2679
|
+
}
|
|
2680
|
+
if (!input.target.nodeId || typeof input.target.nodeId !== "string") {
|
|
2681
|
+
throw new DocumentApiValidationError("INVALID_INPUT", "blocks.delete target requires a nodeId string.", {
|
|
2682
|
+
fields: ["target.nodeId"]
|
|
2683
|
+
});
|
|
2684
|
+
}
|
|
2685
|
+
const { nodeType } = input.target;
|
|
2686
|
+
if (REJECTED_DELETE_NODE_TYPES.has(nodeType)) {
|
|
2687
|
+
throw new DocumentApiValidationError("INVALID_TARGET", `blocks.delete does not support "${nodeType}" targets. Table row/column operations are out of scope.`, { fields: ["target.nodeType"], nodeType });
|
|
2688
|
+
}
|
|
2689
|
+
if (!SUPPORTED_DELETE_NODE_TYPES.has(nodeType)) {
|
|
2690
|
+
throw new DocumentApiValidationError("INVALID_TARGET", `blocks.delete does not support "${nodeType}" targets.`, {
|
|
2691
|
+
fields: ["target.nodeType"],
|
|
2692
|
+
nodeType
|
|
2693
|
+
});
|
|
2694
|
+
}
|
|
2695
|
+
}
|
|
2696
|
+
function executeBlocksDelete(adapter, input, options) {
|
|
2697
|
+
validateBlocksDeleteInput(input);
|
|
2698
|
+
return adapter.delete(input, normalizeMutationOptions(options));
|
|
2699
|
+
}
|
|
2700
|
+
var SUPPORTED_DELETE_NODE_TYPES, REJECTED_DELETE_NODE_TYPES;
|
|
2701
|
+
var init_blocks = __esm(() => {
|
|
2702
|
+
init_base();
|
|
2703
|
+
init_errors2();
|
|
2704
|
+
SUPPORTED_DELETE_NODE_TYPES = new Set(DELETABLE_BLOCK_NODE_TYPES);
|
|
2705
|
+
REJECTED_DELETE_NODE_TYPES = new Set(["tableRow", "tableCell"]);
|
|
2706
|
+
});
|
|
2707
|
+
|
|
2608
2708
|
// ../../packages/document-api/src/track-changes/track-changes.ts
|
|
2609
2709
|
function executeTrackChangesList(adapter, input) {
|
|
2610
2710
|
return adapter.list(input);
|
|
@@ -2657,6 +2757,7 @@ function buildDispatchTable(api) {
|
|
|
2657
2757
|
insert: (input, options) => api.insert(input, options),
|
|
2658
2758
|
replace: (input, options) => api.replace(input, options),
|
|
2659
2759
|
delete: (input, options) => api.delete(input, options),
|
|
2760
|
+
"blocks.delete": (input, options) => api.blocks.delete(input, options),
|
|
2660
2761
|
"format.apply": (input, options) => api.format.apply(input, options),
|
|
2661
2762
|
"format.fontSize": (input, options) => api.format.fontSize(input, options),
|
|
2662
2763
|
"format.fontFamily": (input, options) => api.format.fontFamily(input, options),
|
|
@@ -2780,6 +2881,11 @@ function createDocumentApi(adapters) {
|
|
|
2780
2881
|
return executeTrackChangesDecide(adapters.trackChanges, input, options);
|
|
2781
2882
|
}
|
|
2782
2883
|
},
|
|
2884
|
+
blocks: {
|
|
2885
|
+
delete(input, options) {
|
|
2886
|
+
return executeBlocksDelete(adapters.blocks, input, options);
|
|
2887
|
+
}
|
|
2888
|
+
},
|
|
2783
2889
|
create: {
|
|
2784
2890
|
paragraph(input, options) {
|
|
2785
2891
|
return executeCreateParagraph(adapters.create, input, options);
|
|
@@ -2847,6 +2953,7 @@ var init_src = __esm(() => {
|
|
|
2847
2953
|
init_lists();
|
|
2848
2954
|
init_replace();
|
|
2849
2955
|
init_create();
|
|
2956
|
+
init_blocks();
|
|
2850
2957
|
init_track_changes();
|
|
2851
2958
|
init_capabilities();
|
|
2852
2959
|
init_format();
|
|
@@ -3481,6 +3588,7 @@ var init_operation_hints = __esm(() => {
|
|
|
3481
3588
|
insert: "inserted text",
|
|
3482
3589
|
replace: "replaced text",
|
|
3483
3590
|
delete: "deleted text",
|
|
3591
|
+
"blocks.delete": "deleted block",
|
|
3484
3592
|
"format.apply": "applied style",
|
|
3485
3593
|
"format.fontSize": "set font size",
|
|
3486
3594
|
"format.fontFamily": "set font family",
|
|
@@ -3518,6 +3626,7 @@ var init_operation_hints = __esm(() => {
|
|
|
3518
3626
|
insert: "mutationReceipt",
|
|
3519
3627
|
replace: "mutationReceipt",
|
|
3520
3628
|
delete: "mutationReceipt",
|
|
3629
|
+
"blocks.delete": "plain",
|
|
3521
3630
|
"format.apply": "mutationReceipt",
|
|
3522
3631
|
"format.fontSize": "mutationReceipt",
|
|
3523
3632
|
"format.fontFamily": "mutationReceipt",
|
|
@@ -3555,6 +3664,7 @@ var init_operation_hints = __esm(() => {
|
|
|
3555
3664
|
insert: null,
|
|
3556
3665
|
replace: null,
|
|
3557
3666
|
delete: null,
|
|
3667
|
+
"blocks.delete": "result",
|
|
3558
3668
|
"format.apply": null,
|
|
3559
3669
|
"format.fontSize": null,
|
|
3560
3670
|
"format.fontFamily": null,
|
|
@@ -3602,6 +3712,7 @@ var init_operation_hints = __esm(() => {
|
|
|
3602
3712
|
insert: "textMutation",
|
|
3603
3713
|
replace: "textMutation",
|
|
3604
3714
|
delete: "textMutation",
|
|
3715
|
+
"blocks.delete": "blocks",
|
|
3605
3716
|
"format.apply": "textMutation",
|
|
3606
3717
|
"format.fontSize": "textMutation",
|
|
3607
3718
|
"format.fontFamily": "textMutation",
|
|
@@ -87393,9 +87504,9 @@ var init_remark_gfm_RDxetNVS_es = __esm(() => {
|
|
|
87393
87504
|
emptyOptions4 = {};
|
|
87394
87505
|
});
|
|
87395
87506
|
|
|
87396
|
-
// ../../packages/superdoc/dist/chunks/src-
|
|
87397
|
-
var
|
|
87398
|
-
__export(
|
|
87507
|
+
// ../../packages/superdoc/dist/chunks/src-B6O9kkNF.es.js
|
|
87508
|
+
var exports_src_B6O9kkNF_es = {};
|
|
87509
|
+
__export(exports_src_B6O9kkNF_es, {
|
|
87399
87510
|
zt: () => defineMark,
|
|
87400
87511
|
z: () => cM,
|
|
87401
87512
|
yt: () => removeAwarenessStates,
|
|
@@ -94586,6 +94697,31 @@ function executeCreateHeading2(adapter, input2, options) {
|
|
|
94586
94697
|
validateCreateLocation2(normalized.at, "create.heading");
|
|
94587
94698
|
return adapter.heading(normalized, normalizeMutationOptions2(options));
|
|
94588
94699
|
}
|
|
94700
|
+
function validateBlocksDeleteInput2(input2) {
|
|
94701
|
+
if (!input2 || typeof input2 !== "object")
|
|
94702
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", "blocks.delete requires an input object.", { fields: ["input"] });
|
|
94703
|
+
if (!input2.target)
|
|
94704
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", "blocks.delete requires a target.", { fields: ["target"] });
|
|
94705
|
+
if (input2.target.kind !== "block")
|
|
94706
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", 'blocks.delete target must have kind "block".', { fields: ["target.kind"] });
|
|
94707
|
+
if (!input2.target.nodeId || typeof input2.target.nodeId !== "string")
|
|
94708
|
+
throw new DocumentApiValidationError2("INVALID_INPUT", "blocks.delete target requires a nodeId string.", { fields: ["target.nodeId"] });
|
|
94709
|
+
const { nodeType } = input2.target;
|
|
94710
|
+
if (REJECTED_DELETE_NODE_TYPES2.has(nodeType))
|
|
94711
|
+
throw new DocumentApiValidationError2("INVALID_TARGET", `blocks.delete does not support "${nodeType}" targets. Table row/column operations are out of scope.`, {
|
|
94712
|
+
fields: ["target.nodeType"],
|
|
94713
|
+
nodeType
|
|
94714
|
+
});
|
|
94715
|
+
if (!SUPPORTED_DELETE_NODE_TYPES2.has(nodeType))
|
|
94716
|
+
throw new DocumentApiValidationError2("INVALID_TARGET", `blocks.delete does not support "${nodeType}" targets.`, {
|
|
94717
|
+
fields: ["target.nodeType"],
|
|
94718
|
+
nodeType
|
|
94719
|
+
});
|
|
94720
|
+
}
|
|
94721
|
+
function executeBlocksDelete2(adapter, input2, options) {
|
|
94722
|
+
validateBlocksDeleteInput2(input2);
|
|
94723
|
+
return adapter.delete(input2, normalizeMutationOptions2(options));
|
|
94724
|
+
}
|
|
94589
94725
|
function executeTrackChangesList2(adapter, input2) {
|
|
94590
94726
|
return adapter.list(input2);
|
|
94591
94727
|
}
|
|
@@ -94635,6 +94771,7 @@ function buildDispatchTable2(api) {
|
|
|
94635
94771
|
insert: (input2, options) => api.insert(input2, options),
|
|
94636
94772
|
replace: (input2, options) => api.replace(input2, options),
|
|
94637
94773
|
delete: (input2, options) => api.delete(input2, options),
|
|
94774
|
+
"blocks.delete": (input2, options) => api.blocks.delete(input2, options),
|
|
94638
94775
|
"format.apply": (input2, options) => api.format.apply(input2, options),
|
|
94639
94776
|
"format.fontSize": (input2, options) => api.format.fontSize(input2, options),
|
|
94640
94777
|
"format.fontFamily": (input2, options) => api.format.fontFamily(input2, options),
|
|
@@ -94760,6 +94897,9 @@ function createDocumentApi2(adapters) {
|
|
|
94760
94897
|
return executeTrackChangesDecide2(adapters.trackChanges, input2, options);
|
|
94761
94898
|
}
|
|
94762
94899
|
},
|
|
94900
|
+
blocks: { delete(input2, options) {
|
|
94901
|
+
return executeBlocksDelete2(adapters.blocks, input2, options);
|
|
94902
|
+
} },
|
|
94763
94903
|
create: {
|
|
94764
94904
|
paragraph(input2, options) {
|
|
94765
94905
|
return executeCreateParagraph2(adapters.create, input2, options);
|
|
@@ -94825,6 +94965,12 @@ function hasAllCommands(editor, operationId) {
|
|
|
94825
94965
|
return true;
|
|
94826
94966
|
return required.every((command$1) => hasCommand(editor, command$1));
|
|
94827
94967
|
}
|
|
94968
|
+
function hasRequiredHelpers(editor, operationId) {
|
|
94969
|
+
const check = REQUIRED_HELPERS[operationId];
|
|
94970
|
+
if (!check)
|
|
94971
|
+
return true;
|
|
94972
|
+
return check(editor);
|
|
94973
|
+
}
|
|
94828
94974
|
function hasMarkCapability(editor, markName) {
|
|
94829
94975
|
return Boolean(editor.schema?.marks?.[markName]);
|
|
94830
94976
|
}
|
|
@@ -94866,7 +95012,7 @@ function isOperationAvailable(editor, operationId) {
|
|
|
94866
95012
|
return MARK_KEYS2.some((key$1) => hasMarkCapability(editor, STYLE_MARK_SCHEMA_NAMES[key$1] ?? key$1));
|
|
94867
95013
|
if (INLINE_FORMAT_OPERATIONS.has(operationId))
|
|
94868
95014
|
return hasAllCommands(editor, operationId) && hasMarkCapability(editor, "textStyle");
|
|
94869
|
-
return hasAllCommands(editor, operationId);
|
|
95015
|
+
return hasAllCommands(editor, operationId) && hasRequiredHelpers(editor, operationId);
|
|
94870
95016
|
}
|
|
94871
95017
|
function isCommandBackedAvailability(operationId) {
|
|
94872
95018
|
return !isMarkBackedOperation(operationId) && !INLINE_FORMAT_OPERATIONS.has(operationId);
|
|
@@ -94880,8 +95026,12 @@ function buildOperationCapabilities(editor) {
|
|
|
94880
95026
|
const dryRun = metadata.supportsDryRun && available;
|
|
94881
95027
|
const reasons = [];
|
|
94882
95028
|
if (!available) {
|
|
94883
|
-
if (isCommandBackedAvailability(operationId))
|
|
94884
|
-
|
|
95029
|
+
if (isCommandBackedAvailability(operationId)) {
|
|
95030
|
+
if (!hasAllCommands(editor, operationId))
|
|
95031
|
+
pushReason(reasons, "COMMAND_UNAVAILABLE");
|
|
95032
|
+
if (!hasRequiredHelpers(editor, operationId))
|
|
95033
|
+
pushReason(reasons, "HELPER_UNAVAILABLE");
|
|
95034
|
+
}
|
|
94885
95035
|
pushReason(reasons, "OPERATION_UNAVAILABLE");
|
|
94886
95036
|
}
|
|
94887
95037
|
if (metadata.supportsTrackedMode && !tracked)
|
|
@@ -95391,7 +95541,8 @@ function buildBlockIndex(editor) {
|
|
|
95391
95541
|
});
|
|
95392
95542
|
return {
|
|
95393
95543
|
candidates,
|
|
95394
|
-
byId
|
|
95544
|
+
byId,
|
|
95545
|
+
ambiguous
|
|
95395
95546
|
};
|
|
95396
95547
|
}
|
|
95397
95548
|
function findBlockById(index2, address2) {
|
|
@@ -95399,6 +95550,15 @@ function findBlockById(index2, address2) {
|
|
|
95399
95550
|
return;
|
|
95400
95551
|
return index2.byId.get(`${address2.nodeType}:${address2.nodeId}`);
|
|
95401
95552
|
}
|
|
95553
|
+
function findBlockByIdStrict(index2, address2) {
|
|
95554
|
+
const key$1 = `${address2.nodeType}:${address2.nodeId}`;
|
|
95555
|
+
if (index2.ambiguous.has(key$1))
|
|
95556
|
+
throw new DocumentApiAdapterError("AMBIGUOUS_TARGET", `Multiple blocks share key "${key$1}".`, { target: address2 });
|
|
95557
|
+
const candidate = index2.byId.get(key$1);
|
|
95558
|
+
if (!candidate)
|
|
95559
|
+
throw new DocumentApiAdapterError("TARGET_NOT_FOUND", `Block "${key$1}" was not found.`, { target: address2 });
|
|
95560
|
+
return candidate;
|
|
95561
|
+
}
|
|
95402
95562
|
function isTextBlockCandidate(candidate) {
|
|
95403
95563
|
const node3 = candidate.node;
|
|
95404
95564
|
return Boolean(node3?.inlineContent || node3?.isTextblock);
|
|
@@ -96984,7 +97144,8 @@ function buildAssertIndex(doc$2) {
|
|
|
96984
97144
|
});
|
|
96985
97145
|
return {
|
|
96986
97146
|
candidates,
|
|
96987
|
-
byId
|
|
97147
|
+
byId,
|
|
97148
|
+
ambiguous
|
|
96988
97149
|
};
|
|
96989
97150
|
}
|
|
96990
97151
|
function resolveAssertScope(index2, select2, within$1) {
|
|
@@ -98358,6 +98519,58 @@ function createCommentsWrapper(editor) {
|
|
|
98358
98519
|
list: (query2) => listCommentsHandler(editor, query2)
|
|
98359
98520
|
};
|
|
98360
98521
|
}
|
|
98522
|
+
function validateTargetNodeType(nodeType) {
|
|
98523
|
+
if (REJECTED_NODE_TYPES.has(nodeType))
|
|
98524
|
+
throw new DocumentApiAdapterError("INVALID_TARGET", `blocks.delete does not support "${nodeType}" targets. Table row/column operations are out of scope.`, { nodeType });
|
|
98525
|
+
if (!SUPPORTED_NODE_TYPES.has(nodeType))
|
|
98526
|
+
throw new DocumentApiAdapterError("INVALID_TARGET", `blocks.delete does not support "${nodeType}" targets.`, { nodeType });
|
|
98527
|
+
}
|
|
98528
|
+
function resolveSdBlockId(candidate) {
|
|
98529
|
+
const sdBlockId = candidate.node.attrs?.sdBlockId;
|
|
98530
|
+
if (typeof sdBlockId === "string" && sdBlockId.length > 0)
|
|
98531
|
+
return sdBlockId;
|
|
98532
|
+
throw new DocumentApiAdapterError("INTERNAL_ERROR", "Resolved block candidate is missing sdBlockId attribute. This indicates a schema/extension invariant violation.", { attrs: candidate.node.attrs });
|
|
98533
|
+
}
|
|
98534
|
+
function validateCommandLayerUniqueness(editor, sdBlockId) {
|
|
98535
|
+
const getBlockNodeById = editor.helpers?.blockNode?.getBlockNodeById;
|
|
98536
|
+
if (typeof getBlockNodeById !== "function")
|
|
98537
|
+
throw new DocumentApiAdapterError("CAPABILITY_UNAVAILABLE", "blocks.delete requires the blockNode helper to be registered.", { reason: "missing_helper" });
|
|
98538
|
+
const matches2 = getBlockNodeById(sdBlockId);
|
|
98539
|
+
if (!matches2 || Array.isArray(matches2) && matches2.length === 0)
|
|
98540
|
+
throw new DocumentApiAdapterError("TARGET_NOT_FOUND", `Block with sdBlockId "${sdBlockId}" was not found at the command layer.`, { sdBlockId });
|
|
98541
|
+
if (Array.isArray(matches2) && matches2.length > 1)
|
|
98542
|
+
throw new DocumentApiAdapterError("AMBIGUOUS_TARGET", `Multiple blocks share sdBlockId "${sdBlockId}" at the command layer.`, {
|
|
98543
|
+
sdBlockId,
|
|
98544
|
+
count: matches2.length
|
|
98545
|
+
});
|
|
98546
|
+
}
|
|
98547
|
+
function blocksDeleteWrapper(editor, input2, options) {
|
|
98548
|
+
rejectTrackedMode("blocks.delete", options);
|
|
98549
|
+
const candidate = findBlockByIdStrict(getBlockIndex(editor), input2.target);
|
|
98550
|
+
validateTargetNodeType(candidate.nodeType);
|
|
98551
|
+
const sdBlockId = resolveSdBlockId(candidate);
|
|
98552
|
+
const deleteBlockNodeById = requireEditorCommand(editor.commands?.deleteBlockNodeById, "blocks.delete");
|
|
98553
|
+
validateCommandLayerUniqueness(editor, sdBlockId);
|
|
98554
|
+
if (options?.dryRun)
|
|
98555
|
+
return {
|
|
98556
|
+
success: true,
|
|
98557
|
+
deleted: input2.target
|
|
98558
|
+
};
|
|
98559
|
+
if (executeDomainCommand(editor, () => {
|
|
98560
|
+
const didApply = deleteBlockNodeById(sdBlockId);
|
|
98561
|
+
if (didApply)
|
|
98562
|
+
clearIndexCache(editor);
|
|
98563
|
+
return didApply;
|
|
98564
|
+
}, { expectedRevision: options?.expectedRevision }).steps[0]?.effect !== "changed")
|
|
98565
|
+
throw new DocumentApiAdapterError("INTERNAL_ERROR", "blocks.delete command returned false despite passing all pre-apply checks. This is an internal invariant violation.", {
|
|
98566
|
+
sdBlockId,
|
|
98567
|
+
target: input2.target
|
|
98568
|
+
});
|
|
98569
|
+
return {
|
|
98570
|
+
success: true,
|
|
98571
|
+
deleted: input2.target
|
|
98572
|
+
};
|
|
98573
|
+
}
|
|
98361
98574
|
function getRawTrackedMarks(editor) {
|
|
98362
98575
|
try {
|
|
98363
98576
|
const marks = getTrackChanges(editor.state);
|
|
@@ -100681,6 +100894,7 @@ function getDocumentApiAdapters(editor) {
|
|
|
100681
100894
|
acceptAll: (input2, options) => trackChangesAcceptAllWrapper(editor, input2, options),
|
|
100682
100895
|
rejectAll: (input2, options) => trackChangesRejectAllWrapper(editor, input2, options)
|
|
100683
100896
|
},
|
|
100897
|
+
blocks: { delete: (input2, options) => blocksDeleteWrapper(editor, input2, options) },
|
|
100684
100898
|
create: {
|
|
100685
100899
|
paragraph: (input2, options) => createParagraphWrapper(editor, input2, options),
|
|
100686
100900
|
heading: (input2, options) => createHeadingWrapper(editor, input2, options)
|
|
@@ -134736,7 +134950,7 @@ var Node$13 = class Node$14 {
|
|
|
134736
134950
|
console.warn("Failed to initialize developer tools:", error);
|
|
134737
134951
|
}
|
|
134738
134952
|
}
|
|
134739
|
-
}, BLANK_DOCX_DATA_URI = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,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`, NODE_TYPES2, BLOCK_NODE_TYPES2, INLINE_NODE_TYPES2, MARK_KEYS2, MARK_KEY_SET2, NONE_FAILURES2, NONE_THROWS2, T_NOT_FOUND2, T_NOT_FOUND_CAPABLE2, T_PLAN_ENGINE2, T_QUERY_MATCH2, OPERATION_DEFINITIONS2, OPERATION_IDS2, COMMAND_CATALOG2, DocumentApiValidationError2, ALIGNMENTS2, ALIGNMENT_SET2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, FONT_SIZE_ALLOWED_KEYS2, FONT_FAMILY_ALLOWED_KEYS2, COLOR_ALLOWED_KEYS2, ALIGN_ALLOWED_KEYS2, nodeTypeValues2, blockNodeTypeValues2, inlineNodeTypeValues2, rangeSchema2, textAddressSchema2, textTargetSchema2, blockNodeAddressSchema2, paragraphAddressSchema2, headingAddressSchema2, listItemAddressSchema2, nodeAddressSchema2, commentAddressSchema2, trackedChangeAddressSchema2, resolvedHandleSchema2, pageInfoSchema2, receiptSuccessSchema2, textMutationResolutionSchema2, textMutationSuccessSchema2, matchBlockSchema2, trackChangeRefSchema2, createParagraphSuccessSchema2, createHeadingSuccessSchema2, headingLevelSchema2, listsInsertSuccessSchema2, listsMutateItemSuccessSchema2, listsExitSuccessSchema2, nodeSummarySchema2, nodeInfoSchema2, matchContextSchema2, unknownNodeDiagnosticSchema2, textSelectorSchema2, nodeSelectorSchema2, findItemDomainSchema2, documentInfoCountsSchema2, documentInfoOutlineItemSchema2, documentInfoCapabilitiesSchema2, listKindSchema2, listInsertPositionSchema2, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, formatCapabilitiesSchema2, GROUP_METADATA2, CAPABILITY_REASON_CODES2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, DELETE_INPUT_ALLOWED_KEYS2, INSERT_INPUT_ALLOWED_KEYS2, REPLACE_INPUT_ALLOWED_KEYS2, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, STYLE_MARK_SCHEMA_NAMES, INLINE_FORMAT_OPERATIONS, SUPPORTED_STEP_OPS, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, DocumentApiAdapterError, LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, ALIAS_ELIGIBLE_TYPES, cacheByEditor, PlanError, revisionMap, subscribedEditors, registry, CORE_MARK_NAMES, METADATA_MARK_NAMES, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, REF_HANDLERS, DEFAULT_INLINE_POLICY, OBJECT_REPLACEMENT_CHAR = "", STUB_WHERE, MARK_KEY_TO_SCHEMA_NAME, FALLBACK_STORE_KEY = "__documentApiComments", DERIVED_ID_LENGTH = 24, groupedCache, CSS_NAMED_COLORS, registered = false, empty_exports, init_empty, PIXELS_PER_INCH$1 = 96, MAX_HEIGHT_BUFFER_PX = 50, MAX_WIDTH_BUFFER_PX = 20, Editor, ContextMenuPluginKey, MENU_OFFSET_X = 0, MENU_OFFSET_Y = 28, CONTEXT_MENU_OFFSET_X = 10, CONTEXT_MENU_OFFSET_Y = 10, SLASH_COOLDOWN_MS = 5000, ContextMenu, SearchQuery = class {
|
|
134953
|
+
}, BLANK_DOCX_DATA_URI = `data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,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`, NODE_TYPES2, BLOCK_NODE_TYPES2, DELETABLE_BLOCK_NODE_TYPES2, INLINE_NODE_TYPES2, MARK_KEYS2, MARK_KEY_SET2, NONE_FAILURES2, NONE_THROWS2, T_NOT_FOUND2, T_NOT_FOUND_CAPABLE2, T_PLAN_ENGINE2, T_QUERY_MATCH2, OPERATION_DEFINITIONS2, OPERATION_IDS2, COMMAND_CATALOG2, DocumentApiValidationError2, ALIGNMENTS2, ALIGNMENT_SET2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, FONT_SIZE_ALLOWED_KEYS2, FONT_FAMILY_ALLOWED_KEYS2, COLOR_ALLOWED_KEYS2, ALIGN_ALLOWED_KEYS2, nodeTypeValues2, blockNodeTypeValues2, deletableBlockNodeTypeValues2, inlineNodeTypeValues2, rangeSchema2, textAddressSchema2, textTargetSchema2, blockNodeAddressSchema2, deletableBlockNodeAddressSchema2, paragraphAddressSchema2, headingAddressSchema2, listItemAddressSchema2, nodeAddressSchema2, commentAddressSchema2, trackedChangeAddressSchema2, resolvedHandleSchema2, pageInfoSchema2, receiptSuccessSchema2, textMutationResolutionSchema2, textMutationSuccessSchema2, matchBlockSchema2, trackChangeRefSchema2, createParagraphSuccessSchema2, createHeadingSuccessSchema2, headingLevelSchema2, listsInsertSuccessSchema2, listsMutateItemSuccessSchema2, listsExitSuccessSchema2, nodeSummarySchema2, nodeInfoSchema2, matchContextSchema2, unknownNodeDiagnosticSchema2, textSelectorSchema2, nodeSelectorSchema2, findItemDomainSchema2, documentInfoCountsSchema2, documentInfoOutlineItemSchema2, documentInfoCapabilitiesSchema2, listKindSchema2, listInsertPositionSchema2, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, formatCapabilitiesSchema2, GROUP_METADATA2, CAPABILITY_REASON_CODES2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, DELETE_INPUT_ALLOWED_KEYS2, INSERT_INPUT_ALLOWED_KEYS2, REPLACE_INPUT_ALLOWED_KEYS2, SUPPORTED_DELETE_NODE_TYPES2, REJECTED_DELETE_NODE_TYPES2, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, REQUIRED_HELPERS, STYLE_MARK_SCHEMA_NAMES, INLINE_FORMAT_OPERATIONS, SUPPORTED_STEP_OPS, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, DocumentApiAdapterError, LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, ALIAS_ELIGIBLE_TYPES, cacheByEditor, PlanError, revisionMap, subscribedEditors, registry, CORE_MARK_NAMES, METADATA_MARK_NAMES, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, REF_HANDLERS, DEFAULT_INLINE_POLICY, OBJECT_REPLACEMENT_CHAR = "", STUB_WHERE, MARK_KEY_TO_SCHEMA_NAME, FALLBACK_STORE_KEY = "__documentApiComments", SUPPORTED_NODE_TYPES, REJECTED_NODE_TYPES, DERIVED_ID_LENGTH = 24, groupedCache, CSS_NAMED_COLORS, registered = false, empty_exports, init_empty, PIXELS_PER_INCH$1 = 96, MAX_HEIGHT_BUFFER_PX = 50, MAX_WIDTH_BUFFER_PX = 20, Editor, ContextMenuPluginKey, MENU_OFFSET_X = 0, MENU_OFFSET_Y = 28, CONTEXT_MENU_OFFSET_X = 10, CONTEXT_MENU_OFFSET_Y = 10, SLASH_COOLDOWN_MS = 5000, ContextMenu, SearchQuery = class {
|
|
134740
134954
|
constructor(config2) {
|
|
134741
134955
|
this.search = config2.search;
|
|
134742
134956
|
this.caseSensitive = !!config2.caseSensitive;
|
|
@@ -152807,7 +153021,7 @@ var Node$13 = class Node$14 {
|
|
|
152807
153021
|
trackedChanges: context.trackedChanges ?? []
|
|
152808
153022
|
});
|
|
152809
153023
|
}, _hoisted_1$6, _hoisted_2$1, _hoisted_3, _hoisted_4, ContextMenu_default, _hoisted_1$5, BasicUpload_default, _hoisted_1$4, MIN_WIDTH = 200, PPI = 96, alignment = "flex-end", Ruler_default, GenericPopover_default, _hoisted_1$3, RESIZE_HANDLE_WIDTH_PX = 9, RESIZE_HANDLE_OFFSET_PX = 4, DRAG_OVERLAY_EXTENSION_PX = 1000, MIN_DRAG_OVERLAY_WIDTH_PX = 2000, THROTTLE_INTERVAL_MS = 16, MIN_RESIZE_DELTA_PX = 1, TableResizeOverlay_default, _hoisted_1$2, OVERLAY_EXPANSION_PX = 2000, RESIZE_HANDLE_SIZE_PX = 12, MOUSE_MOVE_THROTTLE_MS = 16, DIMENSION_CHANGE_THRESHOLD_PX = 1, Z_INDEX_OVERLAY = 10, Z_INDEX_HANDLE = 15, Z_INDEX_GUIDELINE = 20, ImageResizeOverlay_default, LINK_CLICK_DEBOUNCE_MS = 300, CURSOR_UPDATE_TIMEOUT_MS = 10, LinkClickHandler_default, _hoisted_1$1, _hoisted_2, DOCX2 = "application/vnd.openxmlformats-officedocument.wordprocessingml.document", TABLE_RESIZE_HOVER_THRESHOLD = 8, TABLE_RESIZE_THROTTLE_MS = 16, SuperEditor_default, _hoisted_1, SuperInput_default, SlashMenu, Extensions;
|
|
152810
|
-
var
|
|
153024
|
+
var init_src_B6O9kkNF_es = __esm(() => {
|
|
152811
153025
|
init_rolldown_runtime_B2q5OVn9_es();
|
|
152812
153026
|
init_SuperConverter_BxBclpFg_es();
|
|
152813
153027
|
init_jszip_ChlR43oI_es();
|
|
@@ -160886,6 +161100,13 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
160886
161100
|
"image",
|
|
160887
161101
|
"sdt"
|
|
160888
161102
|
];
|
|
161103
|
+
DELETABLE_BLOCK_NODE_TYPES2 = [
|
|
161104
|
+
"paragraph",
|
|
161105
|
+
"heading",
|
|
161106
|
+
"listItem",
|
|
161107
|
+
"table",
|
|
161108
|
+
"sdt"
|
|
161109
|
+
];
|
|
160889
161110
|
INLINE_NODE_TYPES2 = [
|
|
160890
161111
|
"run",
|
|
160891
161112
|
"bookmark",
|
|
@@ -161021,6 +161242,27 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161021
161242
|
referenceDocPath: "delete.mdx",
|
|
161022
161243
|
referenceGroup: "core"
|
|
161023
161244
|
},
|
|
161245
|
+
"blocks.delete": {
|
|
161246
|
+
memberPath: "blocks.delete",
|
|
161247
|
+
description: "Delete an entire block node (paragraph, heading, list item, table, image, or sdt) deterministically.",
|
|
161248
|
+
requiresDocumentContext: true,
|
|
161249
|
+
metadata: mutationOperation2({
|
|
161250
|
+
idempotency: "conditional",
|
|
161251
|
+
supportsDryRun: true,
|
|
161252
|
+
supportsTrackedMode: false,
|
|
161253
|
+
possibleFailureCodes: NONE_FAILURES2,
|
|
161254
|
+
throws: [
|
|
161255
|
+
"TARGET_NOT_FOUND",
|
|
161256
|
+
"AMBIGUOUS_TARGET",
|
|
161257
|
+
"CAPABILITY_UNAVAILABLE",
|
|
161258
|
+
"INVALID_TARGET",
|
|
161259
|
+
"INVALID_INPUT",
|
|
161260
|
+
"INTERNAL_ERROR"
|
|
161261
|
+
]
|
|
161262
|
+
}),
|
|
161263
|
+
referenceDocPath: "blocks/delete.mdx",
|
|
161264
|
+
referenceGroup: "blocks"
|
|
161265
|
+
},
|
|
161024
161266
|
"format.apply": {
|
|
161025
161267
|
memberPath: "format.apply",
|
|
161026
161268
|
description: "Apply explicit inline style changes (bold, italic, underline, strike) to the target range using boolean patch semantics.",
|
|
@@ -161446,6 +161688,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161446
161688
|
ALIGN_ALLOWED_KEYS2 = new Set(["target", "alignment"]);
|
|
161447
161689
|
nodeTypeValues2 = NODE_TYPES2;
|
|
161448
161690
|
blockNodeTypeValues2 = BLOCK_NODE_TYPES2;
|
|
161691
|
+
deletableBlockNodeTypeValues2 = DELETABLE_BLOCK_NODE_TYPES2;
|
|
161449
161692
|
inlineNodeTypeValues2 = INLINE_NODE_TYPES2;
|
|
161450
161693
|
objectSchema2({
|
|
161451
161694
|
start: { type: "integer" },
|
|
@@ -161482,6 +161725,14 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161482
161725
|
"kind",
|
|
161483
161726
|
"nodeType",
|
|
161484
161727
|
"nodeId"
|
|
161728
|
+
]), objectSchema2({
|
|
161729
|
+
kind: { const: "block" },
|
|
161730
|
+
nodeType: { enum: [...deletableBlockNodeTypeValues2] },
|
|
161731
|
+
nodeId: { type: "string" }
|
|
161732
|
+
}, [
|
|
161733
|
+
"kind",
|
|
161734
|
+
"nodeType",
|
|
161735
|
+
"nodeId"
|
|
161485
161736
|
]), objectSchema2({
|
|
161486
161737
|
kind: { const: "block" },
|
|
161487
161738
|
nodeType: { const: "paragraph" },
|
|
@@ -161633,6 +161884,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161633
161884
|
textAddressSchema2 = ref$1("TextAddress");
|
|
161634
161885
|
textTargetSchema2 = ref$1("TextTarget");
|
|
161635
161886
|
blockNodeAddressSchema2 = ref$1("BlockNodeAddress");
|
|
161887
|
+
deletableBlockNodeAddressSchema2 = ref$1("DeletableBlockNodeAddress");
|
|
161636
161888
|
paragraphAddressSchema2 = ref$1("ParagraphAddress");
|
|
161637
161889
|
headingAddressSchema2 = ref$1("HeadingAddress");
|
|
161638
161890
|
listItemAddressSchema2 = ref$1("ListItemAddress");
|
|
@@ -161890,6 +162142,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161890
162142
|
}, ["address", "type"]));
|
|
161891
162143
|
capabilityReasonsSchema2 = arraySchema2({ enum: [
|
|
161892
162144
|
"COMMAND_UNAVAILABLE",
|
|
162145
|
+
"HELPER_UNAVAILABLE",
|
|
161893
162146
|
"OPERATION_UNAVAILABLE",
|
|
161894
162147
|
"TRACKED_MODE_UNAVAILABLE",
|
|
161895
162148
|
"DRY_RUN_UNAVAILABLE",
|
|
@@ -161979,7 +162232,13 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
161979
162232
|
}, ["target", "value"]), textMutationResultSchemaFor2("format.color"), textMutationFailureSchemaFor2("format.color"), objectSchema2({
|
|
161980
162233
|
target: textAddressSchema2,
|
|
161981
162234
|
alignment: { oneOf: [{ enum: [...ALIGNMENTS2] }, { type: "null" }] }
|
|
161982
|
-
}, ["target", "alignment"]), textMutationResultSchemaFor2("format.align"), textMutationFailureSchemaFor2("format.align"), objectSchema2({
|
|
162235
|
+
}, ["target", "alignment"]), textMutationResultSchemaFor2("format.align"), textMutationFailureSchemaFor2("format.align"), objectSchema2({ target: deletableBlockNodeAddressSchema2 }, ["target"]), objectSchema2({
|
|
162236
|
+
success: { const: true },
|
|
162237
|
+
deleted: deletableBlockNodeAddressSchema2
|
|
162238
|
+
}, ["success", "deleted"]), objectSchema2({
|
|
162239
|
+
success: { const: true },
|
|
162240
|
+
deleted: deletableBlockNodeAddressSchema2
|
|
162241
|
+
}, ["success", "deleted"]), preApplyFailureResultSchemaFor2("blocks.delete"), objectSchema2({
|
|
161983
162242
|
at: { oneOf: [
|
|
161984
162243
|
objectSchema2({ kind: { const: "documentStart" } }, ["kind"]),
|
|
161985
162244
|
objectSchema2({ kind: { const: "documentEnd" } }, ["kind"]),
|
|
@@ -162157,6 +162416,11 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
162157
162416
|
description: "Primary read and write operations.",
|
|
162158
162417
|
pagePath: "core/index.mdx"
|
|
162159
162418
|
},
|
|
162419
|
+
blocks: {
|
|
162420
|
+
title: "Blocks",
|
|
162421
|
+
description: "Block-level structural operations.",
|
|
162422
|
+
pagePath: "blocks/index.mdx"
|
|
162423
|
+
},
|
|
162160
162424
|
capabilities: {
|
|
162161
162425
|
title: "Capabilities",
|
|
162162
162426
|
description: "Runtime support discovery for capability-aware branching.",
|
|
@@ -162205,6 +162469,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
162205
162469
|
}));
|
|
162206
162470
|
CAPABILITY_REASON_CODES2 = [
|
|
162207
162471
|
"COMMAND_UNAVAILABLE",
|
|
162472
|
+
"HELPER_UNAVAILABLE",
|
|
162208
162473
|
"OPERATION_UNAVAILABLE",
|
|
162209
162474
|
"TRACKED_MODE_UNAVAILABLE",
|
|
162210
162475
|
"DRY_RUN_UNAVAILABLE",
|
|
@@ -162225,6 +162490,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
162225
162490
|
DELETE_INPUT_ALLOWED_KEYS2 = new Set(["target"]);
|
|
162226
162491
|
INSERT_INPUT_ALLOWED_KEYS2 = new Set(["text", "target"]);
|
|
162227
162492
|
REPLACE_INPUT_ALLOWED_KEYS2 = new Set(["text", "target"]);
|
|
162493
|
+
SUPPORTED_DELETE_NODE_TYPES2 = new Set(DELETABLE_BLOCK_NODE_TYPES2);
|
|
162494
|
+
REJECTED_DELETE_NODE_TYPES2 = new Set(["tableRow", "tableCell"]);
|
|
162228
162495
|
REQUIRED_COMMANDS = {
|
|
162229
162496
|
"format.fontSize": [
|
|
162230
162497
|
"setTextSelection",
|
|
@@ -162254,6 +162521,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
162254
162521
|
"lists.outdent": ["setTextSelection", "decreaseListIndent"],
|
|
162255
162522
|
"lists.restart": ["setTextSelection", "restartNumbering"],
|
|
162256
162523
|
"lists.exit": ["exitListItemAt"],
|
|
162524
|
+
"blocks.delete": ["deleteBlockNodeById"],
|
|
162257
162525
|
"comments.create": [
|
|
162258
162526
|
"addComment",
|
|
162259
162527
|
"setTextSelection",
|
|
@@ -162274,6 +162542,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
162274
162542
|
]
|
|
162275
162543
|
};
|
|
162276
162544
|
VALID_CAPABILITY_REASON_CODES = new Set(CAPABILITY_REASON_CODES2);
|
|
162545
|
+
REQUIRED_HELPERS = { "blocks.delete": (editor) => typeof editor.helpers?.blockNode?.getBlockNodeById === "function" };
|
|
162277
162546
|
STYLE_MARK_SCHEMA_NAMES = {
|
|
162278
162547
|
bold: "bold",
|
|
162279
162548
|
italic: "italic",
|
|
@@ -162426,6 +162695,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
162426
162695
|
underline: "underline",
|
|
162427
162696
|
strike: "strike"
|
|
162428
162697
|
};
|
|
162698
|
+
SUPPORTED_NODE_TYPES = new Set(DELETABLE_BLOCK_NODE_TYPES2);
|
|
162699
|
+
REJECTED_NODE_TYPES = new Set(["tableRow", "tableCell"]);
|
|
162429
162700
|
groupedCache = /* @__PURE__ */ new WeakMap;
|
|
162430
162701
|
CSS_NAMED_COLORS = {
|
|
162431
162702
|
aliceblue: "#f0f8ff",
|
|
@@ -184421,8 +184692,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
184421
184692
|
return isObjectLike_default(value) && hasOwnProperty$8.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
|
|
184422
184693
|
};
|
|
184423
184694
|
stubFalse_default = stubFalse;
|
|
184424
|
-
freeExports$2 = typeof
|
|
184425
|
-
freeModule$2 = freeExports$2 && typeof
|
|
184695
|
+
freeExports$2 = typeof exports_src_B6O9kkNF_es == "object" && exports_src_B6O9kkNF_es && !exports_src_B6O9kkNF_es.nodeType && exports_src_B6O9kkNF_es;
|
|
184696
|
+
freeModule$2 = freeExports$2 && typeof module_src_B6O9kkNF_es == "object" && module_src_B6O9kkNF_es && !module_src_B6O9kkNF_es.nodeType && module_src_B6O9kkNF_es;
|
|
184426
184697
|
Buffer$1 = freeModule$2 && freeModule$2.exports === freeExports$2 ? _root_default.Buffer : undefined;
|
|
184427
184698
|
isBuffer_default = (Buffer$1 ? Buffer$1.isBuffer : undefined) || stubFalse_default;
|
|
184428
184699
|
typedArrayTags = {};
|
|
@@ -184430,8 +184701,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
184430
184701
|
typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$1] = typedArrayTags[dataViewTag$2] = typedArrayTags[dateTag$1] = typedArrayTags[errorTag$1] = typedArrayTags[funcTag] = typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] = typedArrayTags[objectTag$3] = typedArrayTags[regexpTag$1] = typedArrayTags[setTag$2] = typedArrayTags[stringTag$1] = typedArrayTags[weakMapTag$1] = false;
|
|
184431
184702
|
_baseIsTypedArray_default = baseIsTypedArray;
|
|
184432
184703
|
_baseUnary_default = baseUnary;
|
|
184433
|
-
freeExports$1 = typeof
|
|
184434
|
-
freeModule$1 = freeExports$1 && typeof
|
|
184704
|
+
freeExports$1 = typeof exports_src_B6O9kkNF_es == "object" && exports_src_B6O9kkNF_es && !exports_src_B6O9kkNF_es.nodeType && exports_src_B6O9kkNF_es;
|
|
184705
|
+
freeModule$1 = freeExports$1 && typeof module_src_B6O9kkNF_es == "object" && module_src_B6O9kkNF_es && !module_src_B6O9kkNF_es.nodeType && module_src_B6O9kkNF_es;
|
|
184435
184706
|
freeProcess = freeModule$1 && freeModule$1.exports === freeExports$1 && _freeGlobal_default.process;
|
|
184436
184707
|
_nodeUtil_default = function() {
|
|
184437
184708
|
try {
|
|
@@ -184536,8 +184807,8 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
184536
184807
|
Stack.prototype.has = _stackHas_default;
|
|
184537
184808
|
Stack.prototype.set = _stackSet_default;
|
|
184538
184809
|
_Stack_default = Stack;
|
|
184539
|
-
freeExports = typeof
|
|
184540
|
-
freeModule = freeExports && typeof
|
|
184810
|
+
freeExports = typeof exports_src_B6O9kkNF_es == "object" && exports_src_B6O9kkNF_es && !exports_src_B6O9kkNF_es.nodeType && exports_src_B6O9kkNF_es;
|
|
184811
|
+
freeModule = freeExports && typeof module_src_B6O9kkNF_es == "object" && module_src_B6O9kkNF_es && !module_src_B6O9kkNF_es.nodeType && module_src_B6O9kkNF_es;
|
|
184541
184812
|
Buffer4 = freeModule && freeModule.exports === freeExports ? _root_default.Buffer : undefined;
|
|
184542
184813
|
allocUnsafe = Buffer4 ? Buffer4.allocUnsafe : undefined;
|
|
184543
184814
|
_cloneBuffer_default = cloneBuffer;
|
|
@@ -192156,7 +192427,7 @@ var init_zipper_BJHqrQMq_es = __esm(() => {
|
|
|
192156
192427
|
|
|
192157
192428
|
// ../../packages/superdoc/dist/super-editor.es.js
|
|
192158
192429
|
var init_super_editor_es = __esm(() => {
|
|
192159
|
-
|
|
192430
|
+
init_src_B6O9kkNF_es();
|
|
192160
192431
|
init_SuperConverter_BxBclpFg_es();
|
|
192161
192432
|
init_jszip_ChlR43oI_es();
|
|
192162
192433
|
init_xml_js_DLE8mr0n_es();
|
|
@@ -192186,6 +192457,12 @@ function hasAllCommands2(editor, operationId) {
|
|
|
192186
192457
|
return true;
|
|
192187
192458
|
return required.every((command2) => hasCommand2(editor, command2));
|
|
192188
192459
|
}
|
|
192460
|
+
function hasRequiredHelpers2(editor, operationId) {
|
|
192461
|
+
const check = REQUIRED_HELPERS2[operationId];
|
|
192462
|
+
if (!check)
|
|
192463
|
+
return true;
|
|
192464
|
+
return check(editor);
|
|
192465
|
+
}
|
|
192189
192466
|
function hasMarkCapability2(editor, markName) {
|
|
192190
192467
|
return Boolean(editor.schema?.marks?.[markName]);
|
|
192191
192468
|
}
|
|
@@ -192230,7 +192507,7 @@ function isOperationAvailable2(editor, operationId) {
|
|
|
192230
192507
|
if (INLINE_FORMAT_OPERATIONS2.has(operationId)) {
|
|
192231
192508
|
return hasAllCommands2(editor, operationId) && hasMarkCapability2(editor, "textStyle");
|
|
192232
192509
|
}
|
|
192233
|
-
return hasAllCommands2(editor, operationId);
|
|
192510
|
+
return hasAllCommands2(editor, operationId) && hasRequiredHelpers2(editor, operationId);
|
|
192234
192511
|
}
|
|
192235
192512
|
function isCommandBackedAvailability2(operationId) {
|
|
192236
192513
|
return !isMarkBackedOperation2(operationId) && !INLINE_FORMAT_OPERATIONS2.has(operationId);
|
|
@@ -192245,7 +192522,12 @@ function buildOperationCapabilities2(editor) {
|
|
|
192245
192522
|
const reasons = [];
|
|
192246
192523
|
if (!available) {
|
|
192247
192524
|
if (isCommandBackedAvailability2(operationId)) {
|
|
192248
|
-
|
|
192525
|
+
if (!hasAllCommands2(editor, operationId)) {
|
|
192526
|
+
pushReason2(reasons, "COMMAND_UNAVAILABLE");
|
|
192527
|
+
}
|
|
192528
|
+
if (!hasRequiredHelpers2(editor, operationId)) {
|
|
192529
|
+
pushReason2(reasons, "HELPER_UNAVAILABLE");
|
|
192530
|
+
}
|
|
192249
192531
|
}
|
|
192250
192532
|
pushReason2(reasons, "OPERATION_UNAVAILABLE");
|
|
192251
192533
|
}
|
|
@@ -192308,7 +192590,7 @@ function getDocumentApiCapabilities2(editor) {
|
|
|
192308
192590
|
planEngine: buildPlanEngineCapabilities2()
|
|
192309
192591
|
};
|
|
192310
192592
|
}
|
|
192311
|
-
var REQUIRED_COMMANDS2, VALID_CAPABILITY_REASON_CODES2, STYLE_MARK_SCHEMA_NAMES2, INLINE_FORMAT_OPERATIONS2, SUPPORTED_STEP_OPS2, SUPPORTED_NON_UNIFORM_STRATEGIES2, SUPPORTED_SET_MARKS2, REGEX_MAX_PATTERN_LENGTH2 = 1024;
|
|
192593
|
+
var REQUIRED_COMMANDS2, VALID_CAPABILITY_REASON_CODES2, REQUIRED_HELPERS2, STYLE_MARK_SCHEMA_NAMES2, INLINE_FORMAT_OPERATIONS2, SUPPORTED_STEP_OPS2, SUPPORTED_NON_UNIFORM_STRATEGIES2, SUPPORTED_SET_MARKS2, REGEX_MAX_PATTERN_LENGTH2 = 1024;
|
|
192312
192594
|
var init_capabilities_adapter = __esm(() => {
|
|
192313
192595
|
init_src();
|
|
192314
192596
|
REQUIRED_COMMANDS2 = {
|
|
@@ -192324,6 +192606,7 @@ var init_capabilities_adapter = __esm(() => {
|
|
|
192324
192606
|
"lists.outdent": ["setTextSelection", "decreaseListIndent"],
|
|
192325
192607
|
"lists.restart": ["setTextSelection", "restartNumbering"],
|
|
192326
192608
|
"lists.exit": ["exitListItemAt"],
|
|
192609
|
+
"blocks.delete": ["deleteBlockNodeById"],
|
|
192327
192610
|
"comments.create": ["addComment", "setTextSelection", "addCommentReply"],
|
|
192328
192611
|
"comments.patch": ["editComment", "moveComment", "resolveComment", "setCommentInternal"],
|
|
192329
192612
|
"comments.delete": ["removeComment"],
|
|
@@ -192335,6 +192618,9 @@ var init_capabilities_adapter = __esm(() => {
|
|
|
192335
192618
|
]
|
|
192336
192619
|
};
|
|
192337
192620
|
VALID_CAPABILITY_REASON_CODES2 = new Set(CAPABILITY_REASON_CODES);
|
|
192621
|
+
REQUIRED_HELPERS2 = {
|
|
192622
|
+
"blocks.delete": (editor) => typeof editor.helpers?.blockNode?.getBlockNodeById === "function"
|
|
192623
|
+
};
|
|
192338
192624
|
STYLE_MARK_SCHEMA_NAMES2 = {
|
|
192339
192625
|
bold: "bold",
|
|
192340
192626
|
italic: "italic",
|
|
@@ -197394,13 +197680,28 @@ function buildBlockIndex2(editor) {
|
|
|
197394
197680
|
registerKey(`${nodeType}:${aliasId}`, candidate);
|
|
197395
197681
|
}
|
|
197396
197682
|
});
|
|
197397
|
-
return { candidates, byId };
|
|
197683
|
+
return { candidates, byId, ambiguous };
|
|
197398
197684
|
}
|
|
197399
197685
|
function findBlockById2(index2, address2) {
|
|
197400
197686
|
if (address2.kind !== "block")
|
|
197401
197687
|
return;
|
|
197402
197688
|
return index2.byId.get(`${address2.nodeType}:${address2.nodeId}`);
|
|
197403
197689
|
}
|
|
197690
|
+
function findBlockByIdStrict2(index2, address2) {
|
|
197691
|
+
const key2 = `${address2.nodeType}:${address2.nodeId}`;
|
|
197692
|
+
if (index2.ambiguous.has(key2)) {
|
|
197693
|
+
throw new DocumentApiAdapterError3("AMBIGUOUS_TARGET", `Multiple blocks share key "${key2}".`, {
|
|
197694
|
+
target: address2
|
|
197695
|
+
});
|
|
197696
|
+
}
|
|
197697
|
+
const candidate = index2.byId.get(key2);
|
|
197698
|
+
if (!candidate) {
|
|
197699
|
+
throw new DocumentApiAdapterError3("TARGET_NOT_FOUND", `Block "${key2}" was not found.`, {
|
|
197700
|
+
target: address2
|
|
197701
|
+
});
|
|
197702
|
+
}
|
|
197703
|
+
return candidate;
|
|
197704
|
+
}
|
|
197404
197705
|
function isTextBlockCandidate2(candidate) {
|
|
197405
197706
|
const node3 = candidate.node;
|
|
197406
197707
|
return Boolean(node3?.inlineContent || node3?.isTextblock);
|
|
@@ -199146,7 +199447,7 @@ function buildAssertIndex2(doc4) {
|
|
|
199146
199447
|
}
|
|
199147
199448
|
return true;
|
|
199148
199449
|
});
|
|
199149
|
-
return { candidates, byId };
|
|
199450
|
+
return { candidates, byId, ambiguous };
|
|
199150
199451
|
}
|
|
199151
199452
|
function resolveAssertScope2(index2, select2, within2) {
|
|
199152
199453
|
if (!within2)
|
|
@@ -200505,6 +200806,71 @@ var init_comments_wrappers = __esm(() => {
|
|
|
200505
200806
|
init_comment_target_resolver();
|
|
200506
200807
|
});
|
|
200507
200808
|
|
|
200809
|
+
// ../../packages/super-editor/src/document-api-adapters/plan-engine/blocks-wrappers.ts
|
|
200810
|
+
function validateTargetNodeType2(nodeType) {
|
|
200811
|
+
if (REJECTED_NODE_TYPES2.has(nodeType)) {
|
|
200812
|
+
throw new DocumentApiAdapterError3("INVALID_TARGET", `blocks.delete does not support "${nodeType}" targets. Table row/column operations are out of scope.`, { nodeType });
|
|
200813
|
+
}
|
|
200814
|
+
if (!SUPPORTED_NODE_TYPES2.has(nodeType)) {
|
|
200815
|
+
throw new DocumentApiAdapterError3("INVALID_TARGET", `blocks.delete does not support "${nodeType}" targets.`, {
|
|
200816
|
+
nodeType
|
|
200817
|
+
});
|
|
200818
|
+
}
|
|
200819
|
+
}
|
|
200820
|
+
function resolveSdBlockId2(candidate) {
|
|
200821
|
+
const sdBlockId = candidate.node.attrs?.sdBlockId;
|
|
200822
|
+
if (typeof sdBlockId === "string" && sdBlockId.length > 0)
|
|
200823
|
+
return sdBlockId;
|
|
200824
|
+
throw new DocumentApiAdapterError3("INTERNAL_ERROR", "Resolved block candidate is missing sdBlockId attribute. This indicates a schema/extension invariant violation.", { attrs: candidate.node.attrs });
|
|
200825
|
+
}
|
|
200826
|
+
function validateCommandLayerUniqueness2(editor, sdBlockId) {
|
|
200827
|
+
const getBlockNodeById = editor.helpers?.blockNode?.getBlockNodeById;
|
|
200828
|
+
if (typeof getBlockNodeById !== "function") {
|
|
200829
|
+
throw new DocumentApiAdapterError3("CAPABILITY_UNAVAILABLE", "blocks.delete requires the blockNode helper to be registered.", { reason: "missing_helper" });
|
|
200830
|
+
}
|
|
200831
|
+
const matches3 = getBlockNodeById(sdBlockId);
|
|
200832
|
+
if (!matches3 || Array.isArray(matches3) && matches3.length === 0) {
|
|
200833
|
+
throw new DocumentApiAdapterError3("TARGET_NOT_FOUND", `Block with sdBlockId "${sdBlockId}" was not found at the command layer.`, { sdBlockId });
|
|
200834
|
+
}
|
|
200835
|
+
if (Array.isArray(matches3) && matches3.length > 1) {
|
|
200836
|
+
throw new DocumentApiAdapterError3("AMBIGUOUS_TARGET", `Multiple blocks share sdBlockId "${sdBlockId}" at the command layer.`, { sdBlockId, count: matches3.length });
|
|
200837
|
+
}
|
|
200838
|
+
}
|
|
200839
|
+
function blocksDeleteWrapper2(editor, input2, options) {
|
|
200840
|
+
rejectTrackedMode2("blocks.delete", options);
|
|
200841
|
+
const index2 = getBlockIndex2(editor);
|
|
200842
|
+
const candidate = findBlockByIdStrict2(index2, input2.target);
|
|
200843
|
+
validateTargetNodeType2(candidate.nodeType);
|
|
200844
|
+
const sdBlockId = resolveSdBlockId2(candidate);
|
|
200845
|
+
const deleteBlockNodeById = requireEditorCommand2(editor.commands?.deleteBlockNodeById, "blocks.delete");
|
|
200846
|
+
validateCommandLayerUniqueness2(editor, sdBlockId);
|
|
200847
|
+
if (options?.dryRun) {
|
|
200848
|
+
return { success: true, deleted: input2.target };
|
|
200849
|
+
}
|
|
200850
|
+
const receipt2 = executeDomainCommand2(editor, () => {
|
|
200851
|
+
const didApply = deleteBlockNodeById(sdBlockId);
|
|
200852
|
+
if (didApply) {
|
|
200853
|
+
clearIndexCache2(editor);
|
|
200854
|
+
}
|
|
200855
|
+
return didApply;
|
|
200856
|
+
}, { expectedRevision: options?.expectedRevision });
|
|
200857
|
+
if (receipt2.steps[0]?.effect !== "changed") {
|
|
200858
|
+
throw new DocumentApiAdapterError3("INTERNAL_ERROR", "blocks.delete command returned false despite passing all pre-apply checks. This is an internal invariant violation.", { sdBlockId, target: input2.target });
|
|
200859
|
+
}
|
|
200860
|
+
return { success: true, deleted: input2.target };
|
|
200861
|
+
}
|
|
200862
|
+
var SUPPORTED_NODE_TYPES2, REJECTED_NODE_TYPES2;
|
|
200863
|
+
var init_blocks_wrappers = __esm(() => {
|
|
200864
|
+
init_src();
|
|
200865
|
+
init_index_cache();
|
|
200866
|
+
init_node_address_resolver();
|
|
200867
|
+
init_errors3();
|
|
200868
|
+
init_mutation_helpers();
|
|
200869
|
+
init_plan_wrappers();
|
|
200870
|
+
SUPPORTED_NODE_TYPES2 = new Set(DELETABLE_BLOCK_NODE_TYPES);
|
|
200871
|
+
REJECTED_NODE_TYPES2 = new Set(["tableRow", "tableCell"]);
|
|
200872
|
+
});
|
|
200873
|
+
|
|
200508
200874
|
// ../../packages/super-editor/src/extensions/track-changes/trackChangesHelpers/documentHelpers.js
|
|
200509
200875
|
var flatten3 = (node3, descend = true) => {
|
|
200510
200876
|
if (!node3) {
|
|
@@ -236151,6 +236517,9 @@ function getDocumentApiAdapters2(editor) {
|
|
|
236151
236517
|
acceptAll: (input2, options) => trackChangesAcceptAllWrapper2(editor, input2, options),
|
|
236152
236518
|
rejectAll: (input2, options) => trackChangesRejectAllWrapper2(editor, input2, options)
|
|
236153
236519
|
},
|
|
236520
|
+
blocks: {
|
|
236521
|
+
delete: (input2, options) => blocksDeleteWrapper2(editor, input2, options)
|
|
236522
|
+
},
|
|
236154
236523
|
create: {
|
|
236155
236524
|
paragraph: (input2, options) => createParagraphWrapper2(editor, input2, options),
|
|
236156
236525
|
heading: (input2, options) => createHeadingWrapper2(editor, input2, options)
|
|
@@ -236177,6 +236546,7 @@ function getDocumentApiAdapters2(editor) {
|
|
|
236177
236546
|
var init_document_api_adapters = __esm(() => {
|
|
236178
236547
|
init_capabilities_adapter();
|
|
236179
236548
|
init_comments_wrappers();
|
|
236549
|
+
init_blocks_wrappers();
|
|
236180
236550
|
init_create_wrappers();
|
|
236181
236551
|
init_find_adapter();
|
|
236182
236552
|
init_plan_wrappers();
|
|
@@ -239151,9 +239521,39 @@ function mapCreateError(operationId, error, code7) {
|
|
|
239151
239521
|
if (code7 === "AMBIGUOUS_TARGET" || code7 === "INVALID_TARGET") {
|
|
239152
239522
|
return new CliError("INVALID_ARGUMENT", message, { operationId, details });
|
|
239153
239523
|
}
|
|
239154
|
-
if (code7 === "TRACK_CHANGE_COMMAND_UNAVAILABLE"
|
|
239524
|
+
if (code7 === "TRACK_CHANGE_COMMAND_UNAVAILABLE") {
|
|
239155
239525
|
return new CliError("TRACK_CHANGE_COMMAND_UNAVAILABLE", message, { operationId, details });
|
|
239156
239526
|
}
|
|
239527
|
+
if (code7 === "CAPABILITY_UNAVAILABLE") {
|
|
239528
|
+
const reason = details?.reason;
|
|
239529
|
+
if (reason === "tracked_mode_unsupported") {
|
|
239530
|
+
return new CliError("TRACK_CHANGE_COMMAND_UNAVAILABLE", message, { operationId, details });
|
|
239531
|
+
}
|
|
239532
|
+
return new CliError("COMMAND_FAILED", message, { operationId, details });
|
|
239533
|
+
}
|
|
239534
|
+
if (code7 === "COMMAND_UNAVAILABLE") {
|
|
239535
|
+
return new CliError("COMMAND_FAILED", message, { operationId, details });
|
|
239536
|
+
}
|
|
239537
|
+
if (error instanceof CliError)
|
|
239538
|
+
return error;
|
|
239539
|
+
return new CliError("COMMAND_FAILED", message, { operationId, details });
|
|
239540
|
+
}
|
|
239541
|
+
function mapBlocksError(operationId, error, code7) {
|
|
239542
|
+
const message = extractErrorMessage(error);
|
|
239543
|
+
const details = extractErrorDetails(error);
|
|
239544
|
+
if (code7 === "TARGET_NOT_FOUND") {
|
|
239545
|
+
return new CliError("TARGET_NOT_FOUND", message, { operationId, details });
|
|
239546
|
+
}
|
|
239547
|
+
if (code7 === "AMBIGUOUS_TARGET" || code7 === "INVALID_TARGET" || code7 === "INVALID_INPUT") {
|
|
239548
|
+
return new CliError("INVALID_ARGUMENT", message, { operationId, details });
|
|
239549
|
+
}
|
|
239550
|
+
if (code7 === "CAPABILITY_UNAVAILABLE") {
|
|
239551
|
+
const reason = details?.reason;
|
|
239552
|
+
if (reason === "tracked_mode_unsupported") {
|
|
239553
|
+
return new CliError("TRACK_CHANGE_COMMAND_UNAVAILABLE", message, { operationId, details });
|
|
239554
|
+
}
|
|
239555
|
+
return new CliError("COMMAND_FAILED", message, { operationId, details });
|
|
239556
|
+
}
|
|
239157
239557
|
if (code7 === "COMMAND_UNAVAILABLE") {
|
|
239158
239558
|
return new CliError("COMMAND_FAILED", message, { operationId, details });
|
|
239159
239559
|
}
|
|
@@ -239231,6 +239631,12 @@ function mapFailedReceipt(operationId, result) {
|
|
|
239231
239631
|
}
|
|
239232
239632
|
return new CliError("COMMAND_FAILED", failureMessage, { operationId, failure });
|
|
239233
239633
|
}
|
|
239634
|
+
if (family === "blocks") {
|
|
239635
|
+
if (failureCode === "INVALID_TARGET") {
|
|
239636
|
+
return new CliError("INVALID_ARGUMENT", failureMessage, { operationId, failure });
|
|
239637
|
+
}
|
|
239638
|
+
return new CliError("COMMAND_FAILED", failureMessage, { operationId, failure });
|
|
239639
|
+
}
|
|
239234
239640
|
if (family === "create") {
|
|
239235
239641
|
if (failureCode === "TRACK_CHANGE_COMMAND_UNAVAILABLE") {
|
|
239236
239642
|
return new CliError("TRACK_CHANGE_COMMAND_UNAVAILABLE", failureMessage, { operationId, failure });
|
|
@@ -239252,6 +239658,7 @@ var init_error_mapping = __esm(() => {
|
|
|
239252
239658
|
lists: mapListsError,
|
|
239253
239659
|
textMutation: mapTextMutationError,
|
|
239254
239660
|
create: mapCreateError,
|
|
239661
|
+
blocks: mapBlocksError,
|
|
239255
239662
|
query: mapQueryError,
|
|
239256
239663
|
general: (operationId, error) => {
|
|
239257
239664
|
if (error instanceof CliError)
|
|
@@ -240140,6 +240547,18 @@ function normalizeFlatTargetFlags(operationId, apiInput) {
|
|
|
240140
240547
|
}
|
|
240141
240548
|
return apiInput;
|
|
240142
240549
|
}
|
|
240550
|
+
if (operationId === "blocks.delete") {
|
|
240551
|
+
const nodeType = apiInput.nodeType;
|
|
240552
|
+
const nodeId = apiInput.nodeId;
|
|
240553
|
+
if (typeof nodeType === "string" && typeof nodeId === "string") {
|
|
240554
|
+
const { nodeType: _4, nodeId: _n, ...rest } = apiInput;
|
|
240555
|
+
return {
|
|
240556
|
+
...rest,
|
|
240557
|
+
target: { kind: "block", nodeType, nodeId }
|
|
240558
|
+
};
|
|
240559
|
+
}
|
|
240560
|
+
return apiInput;
|
|
240561
|
+
}
|
|
240143
240562
|
if (LIST_TARGET_OPERATIONS.has(operationId)) {
|
|
240144
240563
|
const nodeId = apiInput.nodeId;
|
|
240145
240564
|
if (typeof nodeId === "string") {
|
|
@@ -240927,6 +241346,7 @@ function buildHelpText() {
|
|
|
240927
241346
|
"mutation",
|
|
240928
241347
|
"format",
|
|
240929
241348
|
"create",
|
|
241349
|
+
"blocks",
|
|
240930
241350
|
"lists",
|
|
240931
241351
|
"comments",
|
|
240932
241352
|
"trackChanges",
|
|
@@ -241368,6 +241788,10 @@ var init_operation_params = __esm(() => {
|
|
|
241368
241788
|
...LIST_TARGET_FLAT_PARAMS
|
|
241369
241789
|
],
|
|
241370
241790
|
"doc.lists.exit": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }, ...LIST_TARGET_FLAT_PARAMS],
|
|
241791
|
+
"doc.blocks.delete": [
|
|
241792
|
+
{ name: "nodeType", kind: "flag", flag: "node-type", type: "string" },
|
|
241793
|
+
{ name: "nodeId", kind: "flag", flag: "node-id", type: "string" }
|
|
241794
|
+
],
|
|
241371
241795
|
"doc.create.paragraph": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }],
|
|
241372
241796
|
"doc.create.heading": [{ name: "input", kind: "jsonFlag", flag: "input-json", type: "json" }]
|
|
241373
241797
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superdoc-dev/cli",
|
|
3
|
-
"version": "0.2.0-next.
|
|
3
|
+
"version": "0.2.0-next.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"superdoc": "./dist/index.js"
|
|
@@ -19,20 +19,20 @@
|
|
|
19
19
|
"@types/bun": "^1.3.8",
|
|
20
20
|
"@types/node": "22.19.2",
|
|
21
21
|
"typescript": "^5.9.2",
|
|
22
|
-
"@superdoc/
|
|
22
|
+
"@superdoc/super-editor": "0.0.1",
|
|
23
23
|
"superdoc": "1.16.0",
|
|
24
|
-
"@superdoc/
|
|
24
|
+
"@superdoc/document-api": "0.0.1"
|
|
25
25
|
},
|
|
26
26
|
"module": "src/index.ts",
|
|
27
27
|
"publishConfig": {
|
|
28
28
|
"access": "public"
|
|
29
29
|
},
|
|
30
30
|
"optionalDependencies": {
|
|
31
|
-
"@superdoc-dev/cli-darwin-arm64": "0.2.0-next.
|
|
32
|
-
"@superdoc-dev/cli-darwin-x64": "0.2.0-next.
|
|
33
|
-
"@superdoc-dev/cli-linux-
|
|
34
|
-
"@superdoc-dev/cli-
|
|
35
|
-
"@superdoc-dev/cli-
|
|
31
|
+
"@superdoc-dev/cli-darwin-arm64": "0.2.0-next.7",
|
|
32
|
+
"@superdoc-dev/cli-darwin-x64": "0.2.0-next.7",
|
|
33
|
+
"@superdoc-dev/cli-linux-x64": "0.2.0-next.7",
|
|
34
|
+
"@superdoc-dev/cli-windows-x64": "0.2.0-next.7",
|
|
35
|
+
"@superdoc-dev/cli-linux-arm64": "0.2.0-next.7"
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
38
38
|
"dev": "bun run src/index.ts",
|