@superdoc-dev/cli 0.3.0-next.55 → 0.3.0-next.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +785 -398
  2. package/package.json +8 -8
package/dist/index.js CHANGED
@@ -1433,8 +1433,8 @@ var init_operation_definitions = __esm(() => {
1433
1433
  },
1434
1434
  insert: {
1435
1435
  memberPath: "insert",
1436
- description: "Insert content into the document. Two input shapes: " + "legacy string-based (value + type) inserts inline content at a text position within an existing block; " + "structural SDFragment (content) inserts one or more blocks as siblings relative to a BlockNodeAddress target. " + "When target is omitted, content appends at the end of the document. " + "Legacy mode supports text (default), markdown, and html content types via the `type` field. " + "Structural mode uses `placement` (before/after/insideStart/insideEnd) to position relative to the target block.",
1437
- expectedResult: "Returns an SDMutationReceipt with applied status; resolution reports a TextAddress for legacy text insertion or a BlockNodeAddress for structural insertion. Receipt reports NO_OP if the insertion point is invalid or content is empty.",
1436
+ description: "Insert content into the document. Two input shapes: " + "text-based (value + type) inserts inline content at a SelectionTarget or ref position within an existing block; " + "structural SDFragment (content) inserts one or more blocks as siblings relative to a BlockNodeAddress target. " + "When target/ref is omitted, content appends at the end of the document. " + "Text mode supports text (default), markdown, and html content types via the `type` field. " + "Structural mode uses `placement` (before/after/insideStart/insideEnd) to position relative to the target block.",
1437
+ expectedResult: "Returns an SDMutationReceipt with applied status; resolution reports the inserted TextAddress for text insertion or a BlockNodeAddress for structural insertion. Receipt reports NO_OP if the insertion point is invalid or content is empty.",
1438
1438
  requiresDocumentContext: true,
1439
1439
  metadata: mutationOperation({
1440
1440
  idempotency: "non-idempotent",
@@ -5292,7 +5292,7 @@ var init_operation_definitions = __esm(() => {
5292
5292
  requiresDocumentContext: true,
5293
5293
  metadata: mutationOperation({
5294
5294
  idempotency: "non-idempotent",
5295
- supportsDryRun: false,
5295
+ supportsDryRun: true,
5296
5296
  supportsTrackedMode: false,
5297
5297
  possibleFailureCodes: NONE_FAILURES,
5298
5298
  throws: T_REF_INSERT
@@ -5307,7 +5307,7 @@ var init_operation_definitions = __esm(() => {
5307
5307
  requiresDocumentContext: true,
5308
5308
  metadata: mutationOperation({
5309
5309
  idempotency: "idempotent",
5310
- supportsDryRun: false,
5310
+ supportsDryRun: true,
5311
5311
  supportsTrackedMode: false,
5312
5312
  possibleFailureCodes: NONE_FAILURES,
5313
5313
  throws: T_REF_MUTATION
@@ -5322,7 +5322,7 @@ var init_operation_definitions = __esm(() => {
5322
5322
  requiresDocumentContext: true,
5323
5323
  metadata: mutationOperation({
5324
5324
  idempotency: "non-idempotent",
5325
- supportsDryRun: false,
5325
+ supportsDryRun: true,
5326
5326
  supportsTrackedMode: false,
5327
5327
  possibleFailureCodes: NONE_FAILURES,
5328
5328
  throws: T_REF_MUTATION_REMOVE
@@ -5360,7 +5360,7 @@ var init_operation_definitions = __esm(() => {
5360
5360
  requiresDocumentContext: true,
5361
5361
  metadata: mutationOperation({
5362
5362
  idempotency: "non-idempotent",
5363
- supportsDryRun: false,
5363
+ supportsDryRun: true,
5364
5364
  supportsTrackedMode: false,
5365
5365
  possibleFailureCodes: NONE_FAILURES,
5366
5366
  throws: T_REF_INSERT
@@ -5375,7 +5375,7 @@ var init_operation_definitions = __esm(() => {
5375
5375
  requiresDocumentContext: true,
5376
5376
  metadata: mutationOperation({
5377
5377
  idempotency: "idempotent",
5378
- supportsDryRun: false,
5378
+ supportsDryRun: true,
5379
5379
  supportsTrackedMode: false,
5380
5380
  possibleFailureCodes: NONE_FAILURES,
5381
5381
  throws: T_REF_MUTATION
@@ -5390,7 +5390,7 @@ var init_operation_definitions = __esm(() => {
5390
5390
  requiresDocumentContext: true,
5391
5391
  metadata: mutationOperation({
5392
5392
  idempotency: "non-idempotent",
5393
- supportsDryRun: false,
5393
+ supportsDryRun: true,
5394
5394
  supportsTrackedMode: false,
5395
5395
  possibleFailureCodes: NONE_FAILURES,
5396
5396
  throws: T_REF_MUTATION_REMOVE
@@ -5405,7 +5405,7 @@ var init_operation_definitions = __esm(() => {
5405
5405
  requiresDocumentContext: true,
5406
5406
  metadata: mutationOperation({
5407
5407
  idempotency: "idempotent",
5408
- supportsDryRun: false,
5408
+ supportsDryRun: true,
5409
5409
  supportsTrackedMode: false,
5410
5410
  possibleFailureCodes: NONE_FAILURES,
5411
5411
  throws: T_REF_MUTATION
@@ -5443,7 +5443,7 @@ var init_operation_definitions = __esm(() => {
5443
5443
  requiresDocumentContext: true,
5444
5444
  metadata: mutationOperation({
5445
5445
  idempotency: "non-idempotent",
5446
- supportsDryRun: false,
5446
+ supportsDryRun: true,
5447
5447
  supportsTrackedMode: false,
5448
5448
  possibleFailureCodes: NONE_FAILURES,
5449
5449
  throws: T_REF_INSERT
@@ -5458,7 +5458,7 @@ var init_operation_definitions = __esm(() => {
5458
5458
  requiresDocumentContext: true,
5459
5459
  metadata: mutationOperation({
5460
5460
  idempotency: "idempotent",
5461
- supportsDryRun: false,
5461
+ supportsDryRun: true,
5462
5462
  supportsTrackedMode: false,
5463
5463
  possibleFailureCodes: NONE_FAILURES,
5464
5464
  throws: T_REF_MUTATION
@@ -5473,7 +5473,7 @@ var init_operation_definitions = __esm(() => {
5473
5473
  requiresDocumentContext: true,
5474
5474
  metadata: mutationOperation({
5475
5475
  idempotency: "non-idempotent",
5476
- supportsDryRun: false,
5476
+ supportsDryRun: true,
5477
5477
  supportsTrackedMode: false,
5478
5478
  possibleFailureCodes: NONE_FAILURES,
5479
5479
  throws: T_REF_MUTATION_REMOVE
@@ -5511,7 +5511,7 @@ var init_operation_definitions = __esm(() => {
5511
5511
  requiresDocumentContext: true,
5512
5512
  metadata: mutationOperation({
5513
5513
  idempotency: "non-idempotent",
5514
- supportsDryRun: false,
5514
+ supportsDryRun: true,
5515
5515
  supportsTrackedMode: false,
5516
5516
  possibleFailureCodes: NONE_FAILURES,
5517
5517
  throws: T_REF_INSERT
@@ -5526,7 +5526,7 @@ var init_operation_definitions = __esm(() => {
5526
5526
  requiresDocumentContext: true,
5527
5527
  metadata: mutationOperation({
5528
5528
  idempotency: "idempotent",
5529
- supportsDryRun: false,
5529
+ supportsDryRun: true,
5530
5530
  supportsTrackedMode: false,
5531
5531
  possibleFailureCodes: NONE_FAILURES,
5532
5532
  throws: T_REF_MUTATION
@@ -5541,7 +5541,7 @@ var init_operation_definitions = __esm(() => {
5541
5541
  requiresDocumentContext: true,
5542
5542
  metadata: mutationOperation({
5543
5543
  idempotency: "idempotent",
5544
- supportsDryRun: false,
5544
+ supportsDryRun: true,
5545
5545
  supportsTrackedMode: false,
5546
5546
  possibleFailureCodes: NONE_FAILURES,
5547
5547
  throws: T_REF_MUTATION
@@ -5556,7 +5556,7 @@ var init_operation_definitions = __esm(() => {
5556
5556
  requiresDocumentContext: true,
5557
5557
  metadata: mutationOperation({
5558
5558
  idempotency: "non-idempotent",
5559
- supportsDryRun: false,
5559
+ supportsDryRun: true,
5560
5560
  supportsTrackedMode: false,
5561
5561
  possibleFailureCodes: NONE_FAILURES,
5562
5562
  throws: T_REF_MUTATION_REMOVE
@@ -5594,7 +5594,7 @@ var init_operation_definitions = __esm(() => {
5594
5594
  requiresDocumentContext: true,
5595
5595
  metadata: mutationOperation({
5596
5596
  idempotency: "non-idempotent",
5597
- supportsDryRun: false,
5597
+ supportsDryRun: true,
5598
5598
  supportsTrackedMode: false,
5599
5599
  possibleFailureCodes: NONE_FAILURES,
5600
5600
  throws: T_REF_INSERT
@@ -5609,7 +5609,7 @@ var init_operation_definitions = __esm(() => {
5609
5609
  requiresDocumentContext: true,
5610
5610
  metadata: mutationOperation({
5611
5611
  idempotency: "idempotent",
5612
- supportsDryRun: false,
5612
+ supportsDryRun: true,
5613
5613
  supportsTrackedMode: false,
5614
5614
  possibleFailureCodes: NONE_FAILURES,
5615
5615
  throws: T_REF_MUTATION
@@ -5624,7 +5624,7 @@ var init_operation_definitions = __esm(() => {
5624
5624
  requiresDocumentContext: true,
5625
5625
  metadata: mutationOperation({
5626
5626
  idempotency: "non-idempotent",
5627
- supportsDryRun: false,
5627
+ supportsDryRun: true,
5628
5628
  supportsTrackedMode: false,
5629
5629
  possibleFailureCodes: NONE_FAILURES,
5630
5630
  throws: T_REF_MUTATION_REMOVE
@@ -5662,7 +5662,7 @@ var init_operation_definitions = __esm(() => {
5662
5662
  requiresDocumentContext: true,
5663
5663
  metadata: mutationOperation({
5664
5664
  idempotency: "non-idempotent",
5665
- supportsDryRun: false,
5665
+ supportsDryRun: true,
5666
5666
  supportsTrackedMode: false,
5667
5667
  possibleFailureCodes: NONE_FAILURES,
5668
5668
  throws: T_REF_INSERT
@@ -5677,7 +5677,7 @@ var init_operation_definitions = __esm(() => {
5677
5677
  requiresDocumentContext: true,
5678
5678
  metadata: mutationOperation({
5679
5679
  idempotency: "idempotent",
5680
- supportsDryRun: false,
5680
+ supportsDryRun: true,
5681
5681
  supportsTrackedMode: false,
5682
5682
  possibleFailureCodes: NONE_FAILURES,
5683
5683
  throws: T_REF_MUTATION
@@ -5692,7 +5692,7 @@ var init_operation_definitions = __esm(() => {
5692
5692
  requiresDocumentContext: true,
5693
5693
  metadata: mutationOperation({
5694
5694
  idempotency: "non-idempotent",
5695
- supportsDryRun: false,
5695
+ supportsDryRun: true,
5696
5696
  supportsTrackedMode: false,
5697
5697
  possibleFailureCodes: NONE_FAILURES,
5698
5698
  throws: T_REF_MUTATION_REMOVE
@@ -5707,7 +5707,7 @@ var init_operation_definitions = __esm(() => {
5707
5707
  requiresDocumentContext: true,
5708
5708
  metadata: mutationOperation({
5709
5709
  idempotency: "idempotent",
5710
- supportsDryRun: false,
5710
+ supportsDryRun: true,
5711
5711
  supportsTrackedMode: false,
5712
5712
  possibleFailureCodes: NONE_FAILURES,
5713
5713
  throws: T_REF_MUTATION
@@ -5745,7 +5745,7 @@ var init_operation_definitions = __esm(() => {
5745
5745
  requiresDocumentContext: true,
5746
5746
  metadata: mutationOperation({
5747
5747
  idempotency: "non-idempotent",
5748
- supportsDryRun: false,
5748
+ supportsDryRun: true,
5749
5749
  supportsTrackedMode: false,
5750
5750
  possibleFailureCodes: NONE_FAILURES,
5751
5751
  throws: T_REF_INSERT
@@ -5760,7 +5760,7 @@ var init_operation_definitions = __esm(() => {
5760
5760
  requiresDocumentContext: true,
5761
5761
  metadata: mutationOperation({
5762
5762
  idempotency: "idempotent",
5763
- supportsDryRun: false,
5763
+ supportsDryRun: true,
5764
5764
  supportsTrackedMode: false,
5765
5765
  possibleFailureCodes: NONE_FAILURES,
5766
5766
  throws: T_REF_MUTATION
@@ -5775,7 +5775,7 @@ var init_operation_definitions = __esm(() => {
5775
5775
  requiresDocumentContext: true,
5776
5776
  metadata: mutationOperation({
5777
5777
  idempotency: "non-idempotent",
5778
- supportsDryRun: false,
5778
+ supportsDryRun: true,
5779
5779
  supportsTrackedMode: false,
5780
5780
  possibleFailureCodes: NONE_FAILURES,
5781
5781
  throws: T_REF_MUTATION_REMOVE
@@ -5813,7 +5813,7 @@ var init_operation_definitions = __esm(() => {
5813
5813
  requiresDocumentContext: true,
5814
5814
  metadata: mutationOperation({
5815
5815
  idempotency: "non-idempotent",
5816
- supportsDryRun: false,
5816
+ supportsDryRun: true,
5817
5817
  supportsTrackedMode: false,
5818
5818
  possibleFailureCodes: NONE_FAILURES,
5819
5819
  throws: T_REF_INSERT
@@ -5828,7 +5828,7 @@ var init_operation_definitions = __esm(() => {
5828
5828
  requiresDocumentContext: true,
5829
5829
  metadata: mutationOperation({
5830
5830
  idempotency: "idempotent",
5831
- supportsDryRun: false,
5831
+ supportsDryRun: true,
5832
5832
  supportsTrackedMode: false,
5833
5833
  possibleFailureCodes: NONE_FAILURES,
5834
5834
  throws: T_REF_MUTATION
@@ -5843,7 +5843,7 @@ var init_operation_definitions = __esm(() => {
5843
5843
  requiresDocumentContext: true,
5844
5844
  metadata: mutationOperation({
5845
5845
  idempotency: "non-idempotent",
5846
- supportsDryRun: false,
5846
+ supportsDryRun: true,
5847
5847
  supportsTrackedMode: false,
5848
5848
  possibleFailureCodes: NONE_FAILURES,
5849
5849
  throws: T_REF_MUTATION_REMOVE
@@ -5881,7 +5881,7 @@ var init_operation_definitions = __esm(() => {
5881
5881
  requiresDocumentContext: true,
5882
5882
  metadata: mutationOperation({
5883
5883
  idempotency: "non-idempotent",
5884
- supportsDryRun: false,
5884
+ supportsDryRun: true,
5885
5885
  supportsTrackedMode: false,
5886
5886
  possibleFailureCodes: NONE_FAILURES,
5887
5887
  throws: T_REF_INSERT
@@ -5896,7 +5896,7 @@ var init_operation_definitions = __esm(() => {
5896
5896
  requiresDocumentContext: true,
5897
5897
  metadata: mutationOperation({
5898
5898
  idempotency: "idempotent",
5899
- supportsDryRun: false,
5899
+ supportsDryRun: true,
5900
5900
  supportsTrackedMode: false,
5901
5901
  possibleFailureCodes: NONE_FAILURES,
5902
5902
  throws: T_REF_MUTATION
@@ -5911,7 +5911,7 @@ var init_operation_definitions = __esm(() => {
5911
5911
  requiresDocumentContext: true,
5912
5912
  metadata: mutationOperation({
5913
5913
  idempotency: "non-idempotent",
5914
- supportsDryRun: false,
5914
+ supportsDryRun: true,
5915
5915
  supportsTrackedMode: false,
5916
5916
  possibleFailureCodes: NONE_FAILURES,
5917
5917
  throws: T_REF_MUTATION_REMOVE
@@ -5937,7 +5937,7 @@ var init_operation_definitions = __esm(() => {
5937
5937
  requiresDocumentContext: true,
5938
5938
  metadata: mutationOperation({
5939
5939
  idempotency: "non-idempotent",
5940
- supportsDryRun: false,
5940
+ supportsDryRun: true,
5941
5941
  supportsTrackedMode: false,
5942
5942
  possibleFailureCodes: NONE_FAILURES,
5943
5943
  throws: T_REF_INSERT
@@ -5952,7 +5952,7 @@ var init_operation_definitions = __esm(() => {
5952
5952
  requiresDocumentContext: true,
5953
5953
  metadata: mutationOperation({
5954
5954
  idempotency: "idempotent",
5955
- supportsDryRun: false,
5955
+ supportsDryRun: true,
5956
5956
  supportsTrackedMode: false,
5957
5957
  possibleFailureCodes: NONE_FAILURES,
5958
5958
  throws: T_REF_MUTATION
@@ -5967,7 +5967,7 @@ var init_operation_definitions = __esm(() => {
5967
5967
  requiresDocumentContext: true,
5968
5968
  metadata: mutationOperation({
5969
5969
  idempotency: "idempotent",
5970
- supportsDryRun: false,
5970
+ supportsDryRun: true,
5971
5971
  supportsTrackedMode: false,
5972
5972
  possibleFailureCodes: NONE_FAILURES,
5973
5973
  throws: T_REF_MUTATION
@@ -5982,7 +5982,7 @@ var init_operation_definitions = __esm(() => {
5982
5982
  requiresDocumentContext: true,
5983
5983
  metadata: mutationOperation({
5984
5984
  idempotency: "non-idempotent",
5985
- supportsDryRun: false,
5985
+ supportsDryRun: true,
5986
5986
  supportsTrackedMode: false,
5987
5987
  possibleFailureCodes: NONE_FAILURES,
5988
5988
  throws: T_REF_MUTATION_REMOVE
@@ -6020,7 +6020,7 @@ var init_operation_definitions = __esm(() => {
6020
6020
  requiresDocumentContext: true,
6021
6021
  metadata: mutationOperation({
6022
6022
  idempotency: "non-idempotent",
6023
- supportsDryRun: false,
6023
+ supportsDryRun: true,
6024
6024
  supportsTrackedMode: false,
6025
6025
  possibleFailureCodes: NONE_FAILURES,
6026
6026
  throws: T_REF_INSERT
@@ -6035,7 +6035,7 @@ var init_operation_definitions = __esm(() => {
6035
6035
  requiresDocumentContext: true,
6036
6036
  metadata: mutationOperation({
6037
6037
  idempotency: "idempotent",
6038
- supportsDryRun: false,
6038
+ supportsDryRun: true,
6039
6039
  supportsTrackedMode: false,
6040
6040
  possibleFailureCodes: NONE_FAILURES,
6041
6041
  throws: T_REF_MUTATION
@@ -6050,7 +6050,7 @@ var init_operation_definitions = __esm(() => {
6050
6050
  requiresDocumentContext: true,
6051
6051
  metadata: mutationOperation({
6052
6052
  idempotency: "idempotent",
6053
- supportsDryRun: false,
6053
+ supportsDryRun: true,
6054
6054
  supportsTrackedMode: false,
6055
6055
  possibleFailureCodes: NONE_FAILURES,
6056
6056
  throws: T_REF_MUTATION
@@ -6065,7 +6065,7 @@ var init_operation_definitions = __esm(() => {
6065
6065
  requiresDocumentContext: true,
6066
6066
  metadata: mutationOperation({
6067
6067
  idempotency: "non-idempotent",
6068
- supportsDryRun: false,
6068
+ supportsDryRun: true,
6069
6069
  supportsTrackedMode: false,
6070
6070
  possibleFailureCodes: NONE_FAILURES,
6071
6071
  throws: T_REF_MUTATION_REMOVE
@@ -6103,7 +6103,7 @@ var init_operation_definitions = __esm(() => {
6103
6103
  requiresDocumentContext: true,
6104
6104
  metadata: mutationOperation({
6105
6105
  idempotency: "non-idempotent",
6106
- supportsDryRun: false,
6106
+ supportsDryRun: true,
6107
6107
  supportsTrackedMode: false,
6108
6108
  possibleFailureCodes: NONE_FAILURES,
6109
6109
  throws: T_REF_INSERT
@@ -6118,7 +6118,7 @@ var init_operation_definitions = __esm(() => {
6118
6118
  requiresDocumentContext: true,
6119
6119
  metadata: mutationOperation({
6120
6120
  idempotency: "idempotent",
6121
- supportsDryRun: false,
6121
+ supportsDryRun: true,
6122
6122
  supportsTrackedMode: false,
6123
6123
  possibleFailureCodes: NONE_FAILURES,
6124
6124
  throws: T_REF_MUTATION
@@ -6133,7 +6133,7 @@ var init_operation_definitions = __esm(() => {
6133
6133
  requiresDocumentContext: true,
6134
6134
  metadata: mutationOperation({
6135
6135
  idempotency: "non-idempotent",
6136
- supportsDryRun: false,
6136
+ supportsDryRun: true,
6137
6137
  supportsTrackedMode: false,
6138
6138
  possibleFailureCodes: NONE_FAILURES,
6139
6139
  throws: T_REF_MUTATION_REMOVE
@@ -7329,6 +7329,27 @@ function targetLocatorWithPayload(payloadProperties, payloadRequired = []) {
7329
7329
  ]
7330
7330
  };
7331
7331
  }
7332
+ function optionalTargetLocatorWithPayload(payloadProperties, payloadRequired = []) {
7333
+ return {
7334
+ oneOf: [
7335
+ objectSchema({
7336
+ target: {
7337
+ ...ref("SelectionTarget"),
7338
+ description: "Selection target: {kind:'selection', start:{kind:'text', blockId, offset}, end:{kind:'text', blockId, offset}}."
7339
+ },
7340
+ ...payloadProperties
7341
+ }, ["target", ...payloadRequired]),
7342
+ objectSchema({
7343
+ ref: {
7344
+ type: "string",
7345
+ description: "Handle ref string returned by a prior search/query result."
7346
+ },
7347
+ ...payloadProperties
7348
+ }, ["ref", ...payloadRequired]),
7349
+ objectSchema({ ...payloadProperties }, [...payloadRequired])
7350
+ ]
7351
+ };
7352
+ }
7332
7353
  function imagesMutationSchemaSet(inputSchema) {
7333
7354
  return {
7334
7355
  input: inputSchema,
@@ -8693,12 +8714,8 @@ var init_schemas = __esm(() => {
8693
8714
  };
8694
8715
  insertInputSchema = {
8695
8716
  oneOf: [
8696
- objectSchema({
8717
+ optionalTargetLocatorWithPayload({
8697
8718
  in: storyLocatorSchema,
8698
- target: {
8699
- ...textAddressSchema,
8700
- description: "Insertion point: {kind:'text', blockId:'...', range:{start, end}}."
8701
- },
8702
8719
  value: { type: "string", description: "Text content to insert." },
8703
8720
  type: {
8704
8721
  type: "string",
@@ -12359,7 +12376,7 @@ var init_schemas = __esm(() => {
12359
12376
  ...bibliographyMutation
12360
12377
  },
12361
12378
  "citations.bibliography.configure": {
12362
- input: objectSchema({ style: { type: "string" } }, ["style"]),
12379
+ input: objectSchema({ target: bibliographyAddressSchema, style: { type: "string" } }, ["target", "style"]),
12363
12380
  ...bibliographyMutation
12364
12381
  },
12365
12382
  "citations.bibliography.remove": {
@@ -13082,8 +13099,8 @@ function validateTargetLocator(input, operation) {
13082
13099
  value: input.target
13083
13100
  });
13084
13101
  }
13085
- if (hasRef && typeof input.ref !== "string") {
13086
- throw new DocumentApiValidationError("INVALID_TARGET", "ref must be a string.", {
13102
+ if (hasRef && (typeof input.ref !== "string" || input.ref === "")) {
13103
+ throw new DocumentApiValidationError("INVALID_TARGET", "ref must be a non-empty string.", {
13087
13104
  field: "ref",
13088
13105
  value: input.ref
13089
13106
  });
@@ -13103,13 +13120,8 @@ function validateStyleApplyInput(input) {
13103
13120
  }
13104
13121
  function executeStyleApply(adapter, input, options) {
13105
13122
  validateStyleApplyInput(input);
13106
- return adapter.execute({
13107
- kind: "format",
13108
- target: input.target,
13109
- ref: input.ref,
13110
- inline: input.inline,
13111
- in: input.in
13112
- }, normalizeMutationOptions(options));
13123
+ const request = input.target ? { kind: "format", target: input.target, inline: input.inline, in: input.in } : { kind: "format", ref: input.ref, inline: input.inline, in: input.in };
13124
+ return adapter.execute(request, normalizeMutationOptions(options));
13113
13125
  }
13114
13126
  function acceptsImplicitTrue(key) {
13115
13127
  return INLINE_PROPERTY_BY_KEY[key].type === "boolean" || key === "underline";
@@ -13134,13 +13146,8 @@ function executeInlineAlias(adapter, key, input, options) {
13134
13146
  const value = normalizeInlineAliasValue(key, input.value);
13135
13147
  const inline = { [key]: value };
13136
13148
  validateInlineRunPatch(inline);
13137
- return adapter.execute({
13138
- kind: "format",
13139
- target: input.target,
13140
- ref: input.ref,
13141
- inline,
13142
- in: input.in
13143
- }, normalizeMutationOptions(options));
13149
+ const request = input.target ? { kind: "format", target: input.target, inline, in: input.in } : { kind: "format", ref: input.ref, inline, in: input.in };
13150
+ return adapter.execute(request, normalizeMutationOptions(options));
13144
13151
  }
13145
13152
  var STYLE_APPLY_INPUT_ALLOWED_KEYS, INLINE_ALIAS_INPUT_ALLOWED_KEYS;
13146
13153
  var init_format = __esm(() => {
@@ -13215,8 +13222,8 @@ function validateDeleteInput(input) {
13215
13222
  value: target
13216
13223
  });
13217
13224
  }
13218
- if (hasRef && typeof ref2 !== "string") {
13219
- throw new DocumentApiValidationError("INVALID_TARGET", "ref must be a string.", {
13225
+ if (hasRef && (typeof ref2 !== "string" || ref2 === "")) {
13226
+ throw new DocumentApiValidationError("INVALID_TARGET", "ref must be a non-empty string.", {
13220
13227
  field: "ref",
13221
13228
  value: ref2
13222
13229
  });
@@ -13227,13 +13234,8 @@ function validateDeleteInput(input) {
13227
13234
  }
13228
13235
  function executeDelete(adapter, input, options) {
13229
13236
  validateDeleteInput(input);
13230
- return adapter.execute({
13231
- kind: "delete",
13232
- target: input.target,
13233
- ref: input.ref,
13234
- behavior: input.behavior ?? "selection",
13235
- in: input.in
13236
- }, normalizeMutationOptions(options));
13237
+ const request = input.target ? { kind: "delete", target: input.target, behavior: input.behavior ?? "selection", in: input.in } : { kind: "delete", ref: input.ref, behavior: input.behavior ?? "selection", in: input.in };
13238
+ return adapter.execute(request, normalizeMutationOptions(options));
13237
13239
  }
13238
13240
  var DELETE_INPUT_ALLOWED_KEYS, VALID_BEHAVIORS;
13239
13241
  var init_delete = __esm(() => {
@@ -13811,33 +13813,42 @@ function validateInsertInput(input) {
13811
13813
  const hasValue = "value" in input && input.value !== undefined;
13812
13814
  const hasContent = "content" in input && input.content !== undefined;
13813
13815
  if (hasValue && hasContent) {
13814
- throw new DocumentApiValidationError("INVALID_INPUT", 'Insert input must provide either "value" (legacy) or "content" (structural), not both.', { fields: ["value", "content"] });
13816
+ throw new DocumentApiValidationError("INVALID_INPUT", 'Insert input must provide either "value" (text) or "content" (structural), not both.', { fields: ["value", "content"] });
13815
13817
  }
13816
13818
  if (!hasValue && !hasContent) {
13817
- throw new DocumentApiValidationError("INVALID_INPUT", 'Insert input must provide either "value" (legacy string) or "content" (SDFragment).', { fields: ["value", "content"] });
13819
+ throw new DocumentApiValidationError("INVALID_INPUT", 'Insert input must provide either "value" (text string) or "content" (SDFragment).', { fields: ["value", "content"] });
13818
13820
  }
13819
13821
  validateStoryLocator(input.in, "in");
13820
13822
  if (hasContent) {
13821
13823
  validateStructuralInsertInput(input);
13822
13824
  } else {
13823
- validateLegacyInsertInput(input);
13825
+ validateTextInsertInput(input);
13824
13826
  }
13825
13827
  }
13826
- function validateLegacyInsertInput(input) {
13828
+ function validateTextInsertInput(input) {
13827
13829
  if ("placement" in input && input.placement !== undefined) {
13828
13830
  throw new DocumentApiValidationError("INVALID_INPUT", '"placement" is only valid with structural content input, not with "value".', { field: "placement" });
13829
13831
  }
13830
13832
  if ("nestingPolicy" in input && input.nestingPolicy !== undefined) {
13831
13833
  throw new DocumentApiValidationError("INVALID_INPUT", '"nestingPolicy" is only valid with structural content input, not with "value".', { field: "nestingPolicy" });
13832
13834
  }
13833
- assertNoUnknownFields(input, LEGACY_INSERT_ALLOWED_KEYS, "insert");
13834
- const { target, value, type } = input;
13835
- if (target !== undefined && !isTextAddress(target)) {
13836
- throw new DocumentApiValidationError("INVALID_TARGET", "target must be a text address object.", {
13835
+ assertNoUnknownFields(input, TEXT_INSERT_ALLOWED_KEYS, "insert");
13836
+ const { target, ref: ref2, value, type } = input;
13837
+ if (target !== undefined && ref2 !== undefined) {
13838
+ throw new DocumentApiValidationError("INVALID_INPUT", 'Insert input must provide either "target" or "ref", not both.', { fields: ["target", "ref"] });
13839
+ }
13840
+ if (target !== undefined && !isSelectionTarget(target)) {
13841
+ throw new DocumentApiValidationError("INVALID_TARGET", "target must be a SelectionTarget object.", {
13837
13842
  field: "target",
13838
13843
  value: target
13839
13844
  });
13840
13845
  }
13846
+ if (ref2 !== undefined && (typeof ref2 !== "string" || ref2 === "")) {
13847
+ throw new DocumentApiValidationError("INVALID_TARGET", "ref must be a non-empty string.", {
13848
+ field: "ref",
13849
+ value: ref2
13850
+ });
13851
+ }
13841
13852
  if (typeof value !== "string") {
13842
13853
  throw new DocumentApiValidationError("INVALID_TARGET", `value must be a string, got ${typeof value}.`, {
13843
13854
  field: "value",
@@ -13866,29 +13877,35 @@ function validateStructuralInsertInput(input) {
13866
13877
  validateNestingPolicyValue(nestingPolicy);
13867
13878
  validateDocumentFragment(content);
13868
13879
  }
13869
- function executeInsert(adapter, input, options) {
13880
+ function executeInsert(selectionAdapter, writeAdapter, input, options) {
13870
13881
  validateInsertInput(input);
13871
13882
  if (isStructuralInsertInput(input)) {
13872
- return adapter.insertStructured(input, normalizeMutationOptions(options));
13883
+ return writeAdapter.insertStructured(input, normalizeMutationOptions(options));
13873
13884
  }
13874
- const { target, value } = input;
13885
+ const { target, ref: ref2, value } = input;
13875
13886
  const contentType = input.type ?? "text";
13876
13887
  if (contentType !== "text") {
13877
- return adapter.insertStructured(input, normalizeMutationOptions(options));
13888
+ return writeAdapter.insertStructured(input, normalizeMutationOptions(options));
13878
13889
  }
13879
13890
  const storyIn = input.in;
13880
- const request = target ? { kind: "insert", target, text: value, ...storyIn ? { in: storyIn } : undefined } : { kind: "insert", text: value, ...storyIn ? { in: storyIn } : undefined };
13881
- const textReceipt = executeWrite(adapter, request, options);
13891
+ if (target || ref2) {
13892
+ const request2 = target ? { kind: "insert", target, text: value, ...storyIn ? { in: storyIn } : {} } : { kind: "insert", ref: ref2, text: value, ...storyIn ? { in: storyIn } : {} };
13893
+ const textReceipt2 = selectionAdapter.execute(request2, normalizeMutationOptions(options));
13894
+ return textReceiptToSDReceipt(textReceipt2);
13895
+ }
13896
+ const request = { kind: "insert", text: value, ...storyIn ? { in: storyIn } : {} };
13897
+ const textReceipt = executeWrite(writeAdapter, request, options);
13882
13898
  return textReceiptToSDReceipt(textReceipt);
13883
13899
  }
13884
- var LEGACY_INSERT_ALLOWED_KEYS, STRUCTURAL_INSERT_ALLOWED_KEYS, VALID_INSERT_TYPES;
13900
+ var TEXT_INSERT_ALLOWED_KEYS, STRUCTURAL_INSERT_ALLOWED_KEYS, VALID_INSERT_TYPES;
13885
13901
  var init_insert = __esm(() => {
13886
13902
  init_placement();
13887
13903
  init_errors2();
13888
13904
  init_validation_primitives();
13905
+ init_selection_target_validator();
13889
13906
  init_fragment_validator();
13890
13907
  init_story_validator();
13891
- LEGACY_INSERT_ALLOWED_KEYS = new Set(["value", "type", "target", "in"]);
13908
+ TEXT_INSERT_ALLOWED_KEYS = new Set(["value", "type", "target", "ref", "in"]);
13892
13909
  STRUCTURAL_INSERT_ALLOWED_KEYS = new Set(["content", "target", "placement", "nestingPolicy", "in"]);
13893
13910
  VALID_INSERT_TYPES = new Set(["text", "markdown", "html"]);
13894
13911
  });
@@ -14065,8 +14082,8 @@ function validateTargetLocator2(input, operation) {
14065
14082
  value: input.target
14066
14083
  });
14067
14084
  }
14068
- if (hasRef && typeof input.ref !== "string") {
14069
- throw new DocumentApiValidationError("INVALID_TARGET", "ref must be a string.", {
14085
+ if (hasRef && (typeof input.ref !== "string" || input.ref === "")) {
14086
+ throw new DocumentApiValidationError("INVALID_TARGET", "ref must be a non-empty string.", {
14070
14087
  field: "ref",
14071
14088
  value: input.ref
14072
14089
  });
@@ -14140,13 +14157,8 @@ function executeReplace(selectionAdapter, writeAdapter, input, options) {
14140
14157
  return writeAdapter.replaceStructured(input, normalizeMutationOptions(options));
14141
14158
  }
14142
14159
  const textInput = input;
14143
- const textReceipt = selectionAdapter.execute({
14144
- kind: "replace",
14145
- target: textInput.target,
14146
- ref: textInput.ref,
14147
- text: textInput.text,
14148
- in: textInput.in
14149
- }, normalizeMutationOptions(options));
14160
+ const request = textInput.target ? { kind: "replace", target: textInput.target, text: textInput.text, in: textInput.in } : { kind: "replace", ref: textInput.ref, text: textInput.text, in: textInput.in };
14161
+ const textReceipt = selectionAdapter.execute(request, normalizeMutationOptions(options));
14150
14162
  return textReceiptToSDReceipt(textReceipt);
14151
14163
  }
14152
14164
  var TEXT_REPLACE_ALLOWED_KEYS, STRUCTURAL_REPLACE_ALLOWED_KEYS;
@@ -16264,6 +16276,31 @@ var init_cross_refs = __esm(() => {
16264
16276
  init_validation_primitives();
16265
16277
  });
16266
16278
 
16279
+ // ../../packages/document-api/src/validation/create-location-validator.ts
16280
+ function validateTargetOnlyTocCreateLocation(at, operationName) {
16281
+ if (!at || typeof at !== "object" || !("kind" in at)) {
16282
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} requires an 'at' create-location with a valid 'kind' property.`, { field: "at", value: at });
16283
+ }
16284
+ if (!VALID_CREATE_LOCATION_KINDS.has(at.kind)) {
16285
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} received an unsupported at.kind "${at.kind}". ` + `Valid values are: ${[...VALID_CREATE_LOCATION_KINDS].join(", ")}.`, { field: "at.kind", value: at.kind });
16286
+ }
16287
+ if (at.kind !== "before" && at.kind !== "after")
16288
+ return;
16289
+ const loc = at;
16290
+ if (loc.nodeId !== undefined) {
16291
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} requires at.target for before/after positioning. The nodeId form is not supported.`, { field: "at.nodeId" });
16292
+ }
16293
+ const target = loc.target;
16294
+ if (!target || target.kind !== "block" || typeof target.nodeType !== "string" || typeof target.nodeId !== "string") {
16295
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} with at.kind="${at.kind}" requires at.target to be a BlockNodeAddress.`, { field: "at.target", value: loc.target });
16296
+ }
16297
+ }
16298
+ var VALID_CREATE_LOCATION_KINDS;
16299
+ var init_create_location_validator = __esm(() => {
16300
+ init_errors2();
16301
+ VALID_CREATE_LOCATION_KINDS = new Set(["documentStart", "documentEnd", "before", "after"]);
16302
+ });
16303
+
16267
16304
  // ../../packages/document-api/src/index/index.ts
16268
16305
  function validateIndexTarget(target, operationName) {
16269
16306
  assertTargetPresent(target, operationName);
@@ -16291,6 +16328,7 @@ function executeIndexGet(adapter, input) {
16291
16328
  return adapter.get(input);
16292
16329
  }
16293
16330
  function executeIndexInsert(adapter, input, options) {
16331
+ validateTargetOnlyTocCreateLocation(input.at, "index.insert");
16294
16332
  return adapter.insert(input, normalizeMutationOptions(options));
16295
16333
  }
16296
16334
  function executeIndexConfigure(adapter, input, options) {
@@ -16329,6 +16367,7 @@ function executeIndexEntryRemove(adapter, input, options) {
16329
16367
  var init_index = __esm(() => {
16330
16368
  init_errors2();
16331
16369
  init_validation_primitives();
16370
+ init_create_location_validator();
16332
16371
  });
16333
16372
 
16334
16373
  // ../../packages/document-api/src/captions/captions.ts
@@ -16480,6 +16519,10 @@ function executeBibliographyGet(adapter, input) {
16480
16519
  return adapter.bibliography.get(input);
16481
16520
  }
16482
16521
  function executeBibliographyInsert(adapter, input, options) {
16522
+ validateTargetOnlyTocCreateLocation(input.at, "citations.bibliography.insert");
16523
+ if (input.style !== undefined && typeof input.style !== "string") {
16524
+ throw new DocumentApiValidationError("INVALID_INPUT", "citations.bibliography.insert style must be a string when provided.");
16525
+ }
16483
16526
  return adapter.bibliography.insert(input, normalizeMutationOptions(options));
16484
16527
  }
16485
16528
  function executeBibliographyRebuild(adapter, input, options) {
@@ -16487,6 +16530,7 @@ function executeBibliographyRebuild(adapter, input, options) {
16487
16530
  return adapter.bibliography.rebuild(input, normalizeMutationOptions(options));
16488
16531
  }
16489
16532
  function executeBibliographyConfigure(adapter, input, options) {
16533
+ validateBibliographyTarget(input.target, "citations.bibliography.configure");
16490
16534
  if (!input.style || typeof input.style !== "string") {
16491
16535
  throw new DocumentApiValidationError("INVALID_INPUT", "citations.bibliography.configure requires a non-empty style string.");
16492
16536
  }
@@ -16499,6 +16543,7 @@ function executeBibliographyRemove(adapter, input, options) {
16499
16543
  var init_citations = __esm(() => {
16500
16544
  init_errors2();
16501
16545
  init_validation_primitives();
16546
+ init_create_location_validator();
16502
16547
  });
16503
16548
 
16504
16549
  // ../../packages/document-api/src/authorities/authorities.ts
@@ -16524,6 +16569,7 @@ function executeAuthoritiesGet(adapter, input) {
16524
16569
  return adapter.get(input);
16525
16570
  }
16526
16571
  function executeAuthoritiesInsert(adapter, input, options) {
16572
+ validateTargetOnlyTocCreateLocation(input.at, "authorities.insert");
16527
16573
  return adapter.insert(input, normalizeMutationOptions(options));
16528
16574
  }
16529
16575
  function executeAuthoritiesConfigure(adapter, input, options) {
@@ -16562,6 +16608,7 @@ function executeAuthorityEntriesRemove(adapter, input, options) {
16562
16608
  var init_authorities = __esm(() => {
16563
16609
  init_errors2();
16564
16610
  init_validation_primitives();
16611
+ init_create_location_validator();
16565
16612
  });
16566
16613
 
16567
16614
  // ../../packages/document-api/src/content-controls/content-controls.types.ts
@@ -16579,7 +16626,36 @@ function executeQueryMatch(adapter, input) {
16579
16626
  if (!input || typeof input !== "object") {
16580
16627
  throw new DocumentApiValidationError("INVALID_INPUT", "query.match requires a QueryMatchInput or selector object.", { value: input });
16581
16628
  }
16582
- const normalized = "select" in input ? input : { select: input };
16629
+ const rawInput = input;
16630
+ const isFlatNodeShorthand = rawInput.type === "node" || rawInput.type === undefined && (rawInput.nodeType !== undefined || rawInput.kind !== undefined);
16631
+ const normalized = "select" in input ? input : rawInput.type === "text" ? {
16632
+ select: {
16633
+ type: "text",
16634
+ pattern: rawInput.pattern,
16635
+ ...rawInput.mode !== undefined ? { mode: rawInput.mode } : {},
16636
+ ...rawInput.caseSensitive !== undefined ? { caseSensitive: rawInput.caseSensitive } : {}
16637
+ },
16638
+ ...rawInput.within !== undefined ? { within: rawInput.within } : {},
16639
+ ...rawInput.in !== undefined ? { in: rawInput.in } : {},
16640
+ ...rawInput.require !== undefined ? { require: rawInput.require } : {},
16641
+ ...rawInput.includeNodes !== undefined ? { includeNodes: rawInput.includeNodes } : {},
16642
+ ...rawInput.limit !== undefined ? { limit: rawInput.limit } : {},
16643
+ ...rawInput.offset !== undefined ? { offset: rawInput.offset } : {}
16644
+ } : isFlatNodeShorthand ? {
16645
+ select: {
16646
+ type: "node",
16647
+ ...rawInput.nodeType !== undefined ? { nodeType: rawInput.nodeType } : {},
16648
+ ...rawInput.kind !== undefined ? { kind: rawInput.kind } : {}
16649
+ },
16650
+ ...rawInput.within !== undefined ? { within: rawInput.within } : {},
16651
+ ...rawInput.in !== undefined ? { in: rawInput.in } : {},
16652
+ ...rawInput.require !== undefined ? { require: rawInput.require } : {},
16653
+ ...rawInput.mode !== undefined ? { mode: rawInput.mode } : {},
16654
+ ...rawInput.includeNodes !== undefined ? { includeNodes: rawInput.includeNodes } : {},
16655
+ ...rawInput.limit !== undefined ? { limit: rawInput.limit } : {},
16656
+ ...rawInput.offset !== undefined ? { offset: rawInput.offset } : {}
16657
+ } : { select: input };
16658
+ validateStoryLocator(normalized.in, "in");
16583
16659
  return adapter.match(normalized);
16584
16660
  }
16585
16661
  function requireAdapter(adapter, namespace) {
@@ -16664,7 +16740,7 @@ function createDocumentApi(adapters) {
16664
16740
  }
16665
16741
  },
16666
16742
  insert(input, options) {
16667
- return executeInsert(adapters.write, input, options);
16743
+ return executeInsert(adapters.selectionMutation, adapters.write, input, options);
16668
16744
  },
16669
16745
  replace(input, options) {
16670
16746
  return executeReplace(adapters.selectionMutation, adapters.write, input, options);
@@ -17723,6 +17799,7 @@ var init_src = __esm(() => {
17723
17799
  init_format();
17724
17800
  init_inline_run_patch();
17725
17801
  init_styles();
17802
+ init_story_validator();
17726
17803
  init_delete();
17727
17804
  init_resolve();
17728
17805
  init_insert();
@@ -18285,11 +18362,20 @@ async function ensureSessionExistsForProject(sessionId) {
18285
18362
  async function clearContext(paths) {
18286
18363
  await rm(paths.contextDir, { recursive: true, force: true });
18287
18364
  }
18288
- async function withActiveContext(io, command, action, contextId) {
18289
- const resolvedContextId = contextId ?? await getActiveSessionId();
18290
- if (!resolvedContextId) {
18365
+ async function resolveSessionId(sessionId, executionMode) {
18366
+ if (sessionId)
18367
+ return sessionId;
18368
+ if (executionMode === "host") {
18369
+ throw new CliError("SESSION_REQUIRED", "Host-mode operations require an explicit session id. Use the SDK document handle or pass --session.");
18370
+ }
18371
+ const activeSessionId = await getActiveSessionId();
18372
+ if (!activeSessionId) {
18291
18373
  throw new CliError("NO_ACTIVE_DOCUMENT", 'No active document. Run "superdoc open <doc>" first.');
18292
18374
  }
18375
+ return activeSessionId;
18376
+ }
18377
+ async function withActiveContext(io, command, action, contextId, executionMode) {
18378
+ const resolvedContextId = await resolveSessionId(contextId, executionMode);
18293
18379
  return withContextLock(io, command, async (paths) => {
18294
18380
  const metadata = await readContextMetadata(paths);
18295
18381
  if (!metadata) {
@@ -40060,7 +40146,7 @@ var init_remark_gfm_z_sDF4ss_es = __esm(() => {
40060
40146
  emptyOptions2 = {};
40061
40147
  });
40062
40148
 
40063
- // ../../packages/superdoc/dist/chunks/SuperConverter-Cukh7tk8.es.js
40149
+ // ../../packages/superdoc/dist/chunks/SuperConverter-pK0uKHZW.es.js
40064
40150
  function getExtensionConfigField(extension$1, field, context = { name: "" }) {
40065
40151
  const fieldValue = extension$1.config[field];
40066
40152
  if (typeof fieldValue === "function")
@@ -41859,6 +41945,25 @@ function targetLocatorWithPayload2(payloadProperties, payloadRequired = []) {
41859
41945
  ...payloadProperties
41860
41946
  }, ["ref", ...payloadRequired])] };
41861
41947
  }
41948
+ function optionalTargetLocatorWithPayload2(payloadProperties, payloadRequired = []) {
41949
+ return { oneOf: [
41950
+ objectSchema2({
41951
+ target: {
41952
+ ...ref2("SelectionTarget"),
41953
+ description: "Selection target: {kind:'selection', start:{kind:'text', blockId, offset}, end:{kind:'text', blockId, offset}}."
41954
+ },
41955
+ ...payloadProperties
41956
+ }, ["target", ...payloadRequired]),
41957
+ objectSchema2({
41958
+ ref: {
41959
+ type: "string",
41960
+ description: "Handle ref string returned by a prior search/query result."
41961
+ },
41962
+ ...payloadProperties
41963
+ }, ["ref", ...payloadRequired]),
41964
+ objectSchema2({ ...payloadProperties }, [...payloadRequired])
41965
+ ] };
41966
+ }
41862
41967
  function imagesMutationSchemaSet2(inputSchema) {
41863
41968
  return {
41864
41969
  input: inputSchema,
@@ -42810,8 +42915,8 @@ function validateTargetLocator$1(input, operation) {
42810
42915
  field: "target",
42811
42916
  value: input.target
42812
42917
  });
42813
- if (hasRef && typeof input.ref !== "string")
42814
- throw new DocumentApiValidationError2("INVALID_TARGET", "ref must be a string.", {
42918
+ if (hasRef && (typeof input.ref !== "string" || input.ref === ""))
42919
+ throw new DocumentApiValidationError2("INVALID_TARGET", "ref must be a non-empty string.", {
42815
42920
  field: "ref",
42816
42921
  value: input.ref
42817
42922
  });
@@ -42828,13 +42933,18 @@ function validateStyleApplyInput2(input) {
42828
42933
  }
42829
42934
  function executeStyleApply2(adapter, input, options) {
42830
42935
  validateStyleApplyInput2(input);
42831
- return adapter.execute({
42936
+ const request = input.target ? {
42832
42937
  kind: "format",
42833
42938
  target: input.target,
42939
+ inline: input.inline,
42940
+ in: input.in
42941
+ } : {
42942
+ kind: "format",
42834
42943
  ref: input.ref,
42835
42944
  inline: input.inline,
42836
42945
  in: input.in
42837
- }, normalizeMutationOptions2(options));
42946
+ };
42947
+ return adapter.execute(request, normalizeMutationOptions2(options));
42838
42948
  }
42839
42949
  function acceptsImplicitTrue2(key) {
42840
42950
  return INLINE_PROPERTY_BY_KEY2[key].type === "boolean" || key === "underline";
@@ -42858,13 +42968,18 @@ function executeInlineAlias2(adapter, key, input, options) {
42858
42968
  const value = normalizeInlineAliasValue2(key, input.value);
42859
42969
  const inline = { [key]: value };
42860
42970
  validateInlineRunPatch2(inline);
42861
- return adapter.execute({
42971
+ const request = input.target ? {
42862
42972
  kind: "format",
42863
42973
  target: input.target,
42974
+ inline,
42975
+ in: input.in
42976
+ } : {
42977
+ kind: "format",
42864
42978
  ref: input.ref,
42865
42979
  inline,
42866
42980
  in: input.in
42867
- }, normalizeMutationOptions2(options));
42981
+ };
42982
+ return adapter.execute(request, normalizeMutationOptions2(options));
42868
42983
  }
42869
42984
  function executeGetNode2(adapter, address2) {
42870
42985
  return adapter.getNode(address2);
@@ -42907,8 +43022,8 @@ function validateDeleteInput2(input) {
42907
43022
  field: "target",
42908
43023
  value: target
42909
43024
  });
42910
- if (hasRef && typeof ref$1 !== "string")
42911
- throw new DocumentApiValidationError2("INVALID_TARGET", "ref must be a string.", {
43025
+ if (hasRef && (typeof ref$1 !== "string" || ref$1 === ""))
43026
+ throw new DocumentApiValidationError2("INVALID_TARGET", "ref must be a non-empty string.", {
42912
43027
  field: "ref",
42913
43028
  value: ref$1
42914
43029
  });
@@ -42920,13 +43035,18 @@ function validateDeleteInput2(input) {
42920
43035
  }
42921
43036
  function executeDelete$1(adapter, input, options) {
42922
43037
  validateDeleteInput2(input);
42923
- return adapter.execute({
43038
+ const request = input.target ? {
42924
43039
  kind: "delete",
42925
43040
  target: input.target,
43041
+ behavior: input.behavior ?? "selection",
43042
+ in: input.in
43043
+ } : {
43044
+ kind: "delete",
42926
43045
  ref: input.ref,
42927
43046
  behavior: input.behavior ?? "selection",
42928
43047
  in: input.in
42929
- }, normalizeMutationOptions2(options));
43048
+ };
43049
+ return adapter.execute(request, normalizeMutationOptions2(options));
42930
43050
  }
42931
43051
  function validateSDFragment2(fragment2) {
42932
43052
  const nodes = normalizeToNodeArray2(fragment2, "INVALID_PAYLOAD");
@@ -43405,27 +43525,34 @@ function validateInsertInput2(input) {
43405
43525
  const hasValue = "value" in input && input.value !== undefined;
43406
43526
  const hasContent = "content" in input && input.content !== undefined;
43407
43527
  if (hasValue && hasContent)
43408
- throw new DocumentApiValidationError2("INVALID_INPUT", 'Insert input must provide either "value" (legacy) or "content" (structural), not both.', { fields: ["value", "content"] });
43528
+ throw new DocumentApiValidationError2("INVALID_INPUT", 'Insert input must provide either "value" (text) or "content" (structural), not both.', { fields: ["value", "content"] });
43409
43529
  if (!hasValue && !hasContent)
43410
- throw new DocumentApiValidationError2("INVALID_INPUT", 'Insert input must provide either "value" (legacy string) or "content" (SDFragment).', { fields: ["value", "content"] });
43530
+ throw new DocumentApiValidationError2("INVALID_INPUT", 'Insert input must provide either "value" (text string) or "content" (SDFragment).', { fields: ["value", "content"] });
43411
43531
  validateStoryLocator2(input.in, "in");
43412
43532
  if (hasContent)
43413
43533
  validateStructuralInsertInput2(input);
43414
43534
  else
43415
- validateLegacyInsertInput2(input);
43535
+ validateTextInsertInput2(input);
43416
43536
  }
43417
- function validateLegacyInsertInput2(input) {
43537
+ function validateTextInsertInput2(input) {
43418
43538
  if ("placement" in input && input.placement !== undefined)
43419
43539
  throw new DocumentApiValidationError2("INVALID_INPUT", '"placement" is only valid with structural content input, not with "value".', { field: "placement" });
43420
43540
  if ("nestingPolicy" in input && input.nestingPolicy !== undefined)
43421
43541
  throw new DocumentApiValidationError2("INVALID_INPUT", '"nestingPolicy" is only valid with structural content input, not with "value".', { field: "nestingPolicy" });
43422
- assertNoUnknownFields3(input, LEGACY_INSERT_ALLOWED_KEYS2, "insert");
43423
- const { target, value, type } = input;
43424
- if (target !== undefined && !isTextAddress2(target))
43425
- throw new DocumentApiValidationError2("INVALID_TARGET", "target must be a text address object.", {
43542
+ assertNoUnknownFields3(input, TEXT_INSERT_ALLOWED_KEYS2, "insert");
43543
+ const { target, ref: ref$1, value, type } = input;
43544
+ if (target !== undefined && ref$1 !== undefined)
43545
+ throw new DocumentApiValidationError2("INVALID_INPUT", 'Insert input must provide either "target" or "ref", not both.', { fields: ["target", "ref"] });
43546
+ if (target !== undefined && !isSelectionTarget2(target))
43547
+ throw new DocumentApiValidationError2("INVALID_TARGET", "target must be a SelectionTarget object.", {
43426
43548
  field: "target",
43427
43549
  value: target
43428
43550
  });
43551
+ if (ref$1 !== undefined && (typeof ref$1 !== "string" || ref$1 === ""))
43552
+ throw new DocumentApiValidationError2("INVALID_TARGET", "ref must be a non-empty string.", {
43553
+ field: "ref",
43554
+ value: ref$1
43555
+ });
43429
43556
  if (typeof value !== "string")
43430
43557
  throw new DocumentApiValidationError2("INVALID_TARGET", `value must be a string, got ${typeof value}.`, {
43431
43558
  field: "value",
@@ -43455,23 +43582,32 @@ function validateStructuralInsertInput2(input) {
43455
43582
  validateNestingPolicyValue2(nestingPolicy);
43456
43583
  validateDocumentFragment2(content$2);
43457
43584
  }
43458
- function executeInsert2(adapter, input, options) {
43585
+ function executeInsert2(selectionAdapter, writeAdapter, input, options) {
43459
43586
  validateInsertInput2(input);
43460
43587
  if (isStructuralInsertInput2(input))
43461
- return adapter.insertStructured(input, normalizeMutationOptions2(options));
43462
- const { target, value } = input;
43588
+ return writeAdapter.insertStructured(input, normalizeMutationOptions2(options));
43589
+ const { target, ref: ref$1, value } = input;
43463
43590
  if ((input.type ?? "text") !== "text")
43464
- return adapter.insertStructured(input, normalizeMutationOptions2(options));
43591
+ return writeAdapter.insertStructured(input, normalizeMutationOptions2(options));
43465
43592
  const storyIn = input.in;
43466
- return textReceiptToSDReceipt2(executeWrite2(adapter, target ? {
43467
- kind: "insert",
43468
- target,
43469
- text: value,
43470
- ...storyIn ? { in: storyIn } : undefined
43471
- } : {
43593
+ if (target || ref$1) {
43594
+ const request = target ? {
43595
+ kind: "insert",
43596
+ target,
43597
+ text: value,
43598
+ ...storyIn ? { in: storyIn } : {}
43599
+ } : {
43600
+ kind: "insert",
43601
+ ref: ref$1,
43602
+ text: value,
43603
+ ...storyIn ? { in: storyIn } : {}
43604
+ };
43605
+ return textReceiptToSDReceipt2(selectionAdapter.execute(request, normalizeMutationOptions2(options)));
43606
+ }
43607
+ return textReceiptToSDReceipt2(executeWrite2(writeAdapter, {
43472
43608
  kind: "insert",
43473
43609
  text: value,
43474
- ...storyIn ? { in: storyIn } : undefined
43610
+ ...storyIn ? { in: storyIn } : {}
43475
43611
  }, options));
43476
43612
  }
43477
43613
  function validateListTarget2(input, operationName) {
@@ -43634,8 +43770,8 @@ function validateTargetLocator3(input, operation) {
43634
43770
  field: "target",
43635
43771
  value: input.target
43636
43772
  });
43637
- if (hasRef && typeof input.ref !== "string")
43638
- throw new DocumentApiValidationError2("INVALID_TARGET", "ref must be a string.", {
43773
+ if (hasRef && (typeof input.ref !== "string" || input.ref === ""))
43774
+ throw new DocumentApiValidationError2("INVALID_TARGET", "ref must be a non-empty string.", {
43639
43775
  field: "ref",
43640
43776
  value: input.ref
43641
43777
  });
@@ -43693,13 +43829,18 @@ function executeReplace2(selectionAdapter, writeAdapter, input, options) {
43693
43829
  if (isStructuralReplaceInput2(input))
43694
43830
  return writeAdapter.replaceStructured(input, normalizeMutationOptions2(options));
43695
43831
  const textInput = input;
43696
- return textReceiptToSDReceipt2(selectionAdapter.execute({
43832
+ const request = textInput.target ? {
43697
43833
  kind: "replace",
43698
43834
  target: textInput.target,
43835
+ text: textInput.text,
43836
+ in: textInput.in
43837
+ } : {
43838
+ kind: "replace",
43699
43839
  ref: textInput.ref,
43700
43840
  text: textInput.text,
43701
43841
  in: textInput.in
43702
- }, normalizeMutationOptions2(options)));
43842
+ };
43843
+ return textReceiptToSDReceipt2(selectionAdapter.execute(request, normalizeMutationOptions2(options)));
43703
43844
  }
43704
43845
  function validateTargetOnlyCreateLocation2(at, operationName) {
43705
43846
  if (at.kind !== "before" && at.kind !== "after")
@@ -45496,6 +45637,29 @@ function executeCrossRefsRemove2(adapter, input, options) {
45496
45637
  validateCrossRefTarget2(input.target, "crossRefs.remove");
45497
45638
  return adapter.remove(input, normalizeMutationOptions2(options));
45498
45639
  }
45640
+ function validateTargetOnlyTocCreateLocation2(at, operationName) {
45641
+ if (!at || typeof at !== "object" || !("kind" in at))
45642
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} requires an 'at' create-location with a valid 'kind' property.`, {
45643
+ field: "at",
45644
+ value: at
45645
+ });
45646
+ if (!VALID_CREATE_LOCATION_KINDS2.has(at.kind))
45647
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} received an unsupported at.kind "${at.kind}". Valid values are: ${[...VALID_CREATE_LOCATION_KINDS2].join(", ")}.`, {
45648
+ field: "at.kind",
45649
+ value: at.kind
45650
+ });
45651
+ if (at.kind !== "before" && at.kind !== "after")
45652
+ return;
45653
+ const loc = at;
45654
+ if (loc.nodeId !== undefined)
45655
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} requires at.target for before/after positioning. The nodeId form is not supported.`, { field: "at.nodeId" });
45656
+ const target = loc.target;
45657
+ if (!target || target.kind !== "block" || typeof target.nodeType !== "string" || typeof target.nodeId !== "string")
45658
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} with at.kind="${at.kind}" requires at.target to be a BlockNodeAddress.`, {
45659
+ field: "at.target",
45660
+ value: loc.target
45661
+ });
45662
+ }
45499
45663
  function validateIndexTarget2(target, operationName) {
45500
45664
  assertTargetPresent2(target, operationName);
45501
45665
  const t = target;
@@ -45519,6 +45683,7 @@ function executeIndexGet2(adapter, input) {
45519
45683
  return adapter.get(input);
45520
45684
  }
45521
45685
  function executeIndexInsert2(adapter, input, options) {
45686
+ validateTargetOnlyTocCreateLocation2(input.at, "index.insert");
45522
45687
  return adapter.insert(input, normalizeMutationOptions2(options));
45523
45688
  }
45524
45689
  function executeIndexConfigure2(adapter, input, options) {
@@ -45677,6 +45842,9 @@ function executeBibliographyGet2(adapter, input) {
45677
45842
  return adapter.bibliography.get(input);
45678
45843
  }
45679
45844
  function executeBibliographyInsert2(adapter, input, options) {
45845
+ validateTargetOnlyTocCreateLocation2(input.at, "citations.bibliography.insert");
45846
+ if (input.style !== undefined && typeof input.style !== "string")
45847
+ throw new DocumentApiValidationError2("INVALID_INPUT", "citations.bibliography.insert style must be a string when provided.");
45680
45848
  return adapter.bibliography.insert(input, normalizeMutationOptions2(options));
45681
45849
  }
45682
45850
  function executeBibliographyRebuild2(adapter, input, options) {
@@ -45684,6 +45852,7 @@ function executeBibliographyRebuild2(adapter, input, options) {
45684
45852
  return adapter.bibliography.rebuild(input, normalizeMutationOptions2(options));
45685
45853
  }
45686
45854
  function executeBibliographyConfigure2(adapter, input, options) {
45855
+ validateBibliographyTarget2(input.target, "citations.bibliography.configure");
45687
45856
  if (!input.style || typeof input.style !== "string")
45688
45857
  throw new DocumentApiValidationError2("INVALID_INPUT", "citations.bibliography.configure requires a non-empty style string.");
45689
45858
  return adapter.bibliography.configure(input, normalizeMutationOptions2(options));
@@ -45712,6 +45881,7 @@ function executeAuthoritiesGet2(adapter, input) {
45712
45881
  return adapter.get(input);
45713
45882
  }
45714
45883
  function executeAuthoritiesInsert2(adapter, input, options) {
45884
+ validateTargetOnlyTocCreateLocation2(input.at, "authorities.insert");
45715
45885
  return adapter.insert(input, normalizeMutationOptions2(options));
45716
45886
  }
45717
45887
  function executeAuthoritiesConfigure2(adapter, input, options) {
@@ -45749,7 +45919,36 @@ function executeAuthorityEntriesRemove2(adapter, input, options) {
45749
45919
  function executeQueryMatch2(adapter, input) {
45750
45920
  if (!input || typeof input !== "object")
45751
45921
  throw new DocumentApiValidationError2("INVALID_INPUT", "query.match requires a QueryMatchInput or selector object.", { value: input });
45752
- const normalized = "select" in input ? input : { select: input };
45922
+ const rawInput = input;
45923
+ const isFlatNodeShorthand = rawInput.type === "node" || rawInput.type === undefined && (rawInput.nodeType !== undefined || rawInput.kind !== undefined);
45924
+ const normalized = "select" in input ? input : rawInput.type === "text" ? {
45925
+ select: {
45926
+ type: "text",
45927
+ pattern: rawInput.pattern,
45928
+ ...rawInput.mode !== undefined ? { mode: rawInput.mode } : {},
45929
+ ...rawInput.caseSensitive !== undefined ? { caseSensitive: rawInput.caseSensitive } : {}
45930
+ },
45931
+ ...rawInput.within !== undefined ? { within: rawInput.within } : {},
45932
+ ...rawInput.in !== undefined ? { in: rawInput.in } : {},
45933
+ ...rawInput.require !== undefined ? { require: rawInput.require } : {},
45934
+ ...rawInput.includeNodes !== undefined ? { includeNodes: rawInput.includeNodes } : {},
45935
+ ...rawInput.limit !== undefined ? { limit: rawInput.limit } : {},
45936
+ ...rawInput.offset !== undefined ? { offset: rawInput.offset } : {}
45937
+ } : isFlatNodeShorthand ? {
45938
+ select: {
45939
+ type: "node",
45940
+ ...rawInput.nodeType !== undefined ? { nodeType: rawInput.nodeType } : {},
45941
+ ...rawInput.kind !== undefined ? { kind: rawInput.kind } : {}
45942
+ },
45943
+ ...rawInput.within !== undefined ? { within: rawInput.within } : {},
45944
+ ...rawInput.in !== undefined ? { in: rawInput.in } : {},
45945
+ ...rawInput.require !== undefined ? { require: rawInput.require } : {},
45946
+ ...rawInput.mode !== undefined ? { mode: rawInput.mode } : {},
45947
+ ...rawInput.includeNodes !== undefined ? { includeNodes: rawInput.includeNodes } : {},
45948
+ ...rawInput.limit !== undefined ? { limit: rawInput.limit } : {},
45949
+ ...rawInput.offset !== undefined ? { offset: rawInput.offset } : {}
45950
+ } : { select: input };
45951
+ validateStoryLocator2(normalized.in, "in");
45753
45952
  return adapter.match(normalized);
45754
45953
  }
45755
45954
  function requireAdapter2(adapter, namespace) {
@@ -45832,7 +46031,7 @@ function createDocumentApi2(adapters) {
45832
46031
  }
45833
46032
  },
45834
46033
  insert(input, options) {
45835
- return executeInsert2(adapters.write, input, options);
46034
+ return executeInsert2(adapters.selectionMutation, adapters.write, input, options);
45836
46035
  },
45837
46036
  replace(input, options) {
45838
46037
  return executeReplace2(adapters.selectionMutation, adapters.write, input, options);
@@ -68715,11 +68914,17 @@ function stableHash(input) {
68715
68914
  }
68716
68915
  return (hash >>> 0).toString(16).padStart(8, "0");
68717
68916
  }
68718
- function toTableLikeBlockNodeType(nodeType) {
68917
+ function toFallbackEligibleBlockNodeType(nodeType) {
68719
68918
  if (nodeType === "table")
68720
68919
  return "table";
68721
68920
  if (nodeType === "tableCell")
68722
68921
  return "tableCell";
68922
+ if (nodeType === "paragraph")
68923
+ return "paragraph";
68924
+ if (nodeType === "heading")
68925
+ return "heading";
68926
+ if (nodeType === "listItem")
68927
+ return "listItem";
68723
68928
  }
68724
68929
  function serializeTraversalPath(path2, pos) {
68725
68930
  if (Array.isArray(path2) && path2.length > 0)
@@ -68729,11 +68934,11 @@ function serializeTraversalPath(path2, pos) {
68729
68934
  function isVolatileRuntimeBlockId(id) {
68730
68935
  return typeof id === "string" && UUID_LIKE_PATTERN.test(id);
68731
68936
  }
68732
- function buildFallbackTableNodeId(nodeType, pos, path2) {
68733
- const tableLikeType = toTableLikeBlockNodeType(nodeType);
68734
- if (!tableLikeType)
68937
+ function buildFallbackBlockNodeId(nodeType, pos, path2) {
68938
+ const eligibleType = toFallbackEligibleBlockNodeType(nodeType);
68939
+ if (!eligibleType)
68735
68940
  return;
68736
- return `${TABLE_LIKE_PREFIX[tableLikeType]}-${stableHash(`${tableLikeType}:${serializeTraversalPath(path2, pos)}`)}`;
68941
+ return `${FALLBACK_PREFIX[eligibleType]}-${stableHash(`${eligibleType}:${serializeTraversalPath(path2, pos)}`)}`;
68737
68942
  }
68738
68943
  function isListItem(attrs) {
68739
68944
  const numbering = attrs?.paragraphProperties?.numberingProperties;
@@ -68787,16 +68992,19 @@ function mapBlockNodeType(node3) {
68787
68992
  function resolveLegacyTableIdentity(attrs) {
68788
68993
  return toId(attrs.paraId) ?? toId(attrs.blockId) ?? toId(attrs.id) ?? toId(attrs.uuid);
68789
68994
  }
68790
- function resolveRuntimeTableIdentity(nodeType, attrs, pos, path2) {
68995
+ function resolveTableRuntimeIdentity(nodeType, attrs, pos, path2) {
68791
68996
  const sdBlockId = toId(attrs.sdBlockId);
68792
68997
  if (sdBlockId && !isVolatileRuntimeBlockId(sdBlockId))
68793
68998
  return sdBlockId;
68794
- return buildFallbackTableNodeId(nodeType, pos, path2);
68999
+ return buildFallbackBlockNodeId(nodeType, pos, path2);
69000
+ }
69001
+ function resolveParagraphRuntimeIdentity(nodeType, attrs, pos, path2) {
69002
+ return toId(attrs.sdBlockId) ?? buildFallbackBlockNodeId(nodeType, pos, path2);
68795
69003
  }
68796
69004
  function resolveBlockNodeId(node3, pos, nodeType, path2) {
68797
69005
  if (node3.type.name === "paragraph") {
68798
69006
  const attrs$1 = node3.attrs;
68799
- return toId(attrs$1?.paraId) ?? toId(attrs$1?.sdBlockId);
69007
+ return toId(attrs$1?.paraId) ?? resolveParagraphRuntimeIdentity(nodeType, attrs$1 ?? {}, pos, path2);
68800
69008
  }
68801
69009
  if (nodeType === "tableOfContents")
68802
69010
  return resolvePublicTocNodeId(node3, pos);
@@ -68805,7 +69013,7 @@ function resolveBlockNodeId(node3, pos, nodeType, path2) {
68805
69013
  if (typeName === "tableRow")
68806
69014
  return toId(attrs.paraId) ?? toId(attrs.sdBlockId) ?? toId(attrs.blockId) ?? toId(attrs.id) ?? toId(attrs.uuid);
68807
69015
  if (typeName === "table" || typeName === "tableCell" || typeName === "tableHeader")
68808
- return resolveLegacyTableIdentity(attrs) ?? resolveRuntimeTableIdentity(nodeType, attrs, pos, path2);
69016
+ return resolveLegacyTableIdentity(attrs) ?? resolveTableRuntimeIdentity(nodeType, attrs, pos, path2);
68809
69017
  return toId(attrs.blockId) ?? toId(attrs.id) ?? toId(attrs.paraId) ?? toId(attrs.uuid) ?? toId(attrs.sdBlockId);
68810
69018
  }
68811
69019
  function toBlockAddress(candidate) {
@@ -68879,23 +69087,15 @@ function findBlockByIdStrict(index2, address2) {
68879
69087
  throw new DocumentApiAdapterError("TARGET_NOT_FOUND", `Block "${key}" was not found.`, { target: address2 });
68880
69088
  return candidate;
68881
69089
  }
68882
- function findBlockByNodeIdOnly(index2, nodeId) {
68883
- const matches$1 = index2.candidates.filter((candidate) => candidate.nodeId === nodeId);
68884
- if (matches$1.length === 1)
68885
- return matches$1[0];
68886
- if (matches$1.length > 1)
68887
- throw new DocumentApiAdapterError("AMBIGUOUS_TARGET", `Multiple blocks share nodeId "${nodeId}".`, {
68888
- nodeId,
68889
- count: matches$1.length
68890
- });
69090
+ function resolveBlockAlias(index2, nodeId) {
69091
+ if (!index2.byId)
69092
+ return;
68891
69093
  const aliasMatches = /* @__PURE__ */ new Map;
68892
69094
  for (const [key, candidate] of index2.byId) {
68893
69095
  if (!key.endsWith(`:${nodeId}`))
68894
69096
  continue;
68895
69097
  aliasMatches.set(`${candidate.nodeType}:${candidate.nodeId}`, candidate);
68896
69098
  }
68897
- if (aliasMatches.size === 1)
68898
- return Array.from(aliasMatches.values())[0];
68899
69099
  if (aliasMatches.size > 1)
68900
69100
  throw new DocumentApiAdapterError("AMBIGUOUS_TARGET", `Multiple blocks share nodeId "${nodeId}" via aliases.`, {
68901
69101
  nodeId,
@@ -68905,6 +69105,20 @@ function findBlockByNodeIdOnly(index2, nodeId) {
68905
69105
  nodeId: candidate.nodeId
68906
69106
  }))
68907
69107
  });
69108
+ return aliasMatches.size === 1 ? Array.from(aliasMatches.values())[0] : undefined;
69109
+ }
69110
+ function findBlockByNodeIdOnly(index2, nodeId) {
69111
+ const matches$1 = index2.candidates.filter((candidate) => candidate.nodeId === nodeId);
69112
+ if (matches$1.length === 1)
69113
+ return matches$1[0];
69114
+ if (matches$1.length > 1)
69115
+ throw new DocumentApiAdapterError("AMBIGUOUS_TARGET", `Multiple blocks share nodeId "${nodeId}".`, {
69116
+ nodeId,
69117
+ count: matches$1.length
69118
+ });
69119
+ const alias = resolveBlockAlias(index2, nodeId);
69120
+ if (alias)
69121
+ return alias;
68908
69122
  throw new DocumentApiAdapterError("TARGET_NOT_FOUND", `Block with nodeId "${nodeId}" was not found.`, { nodeId });
68909
69123
  }
68910
69124
  function isTextBlockCandidate(candidate) {
@@ -69170,66 +69384,46 @@ function insertParagraphAtEnd(editor, pos, text$2, applyMeta) {
69170
69384
  editor.dispatch(tr);
69171
69385
  }
69172
69386
  function resolveWriteTarget(editor, request) {
69173
- const requestedTarget = request.target;
69174
- if (request.kind === "insert" && !request.target) {
69175
- const fallback = resolveDefaultInsertTarget(editor);
69176
- if (!fallback)
69177
- return null;
69178
- if (fallback.kind === "structural-end") {
69179
- const pos = fallback.insertPos;
69180
- const syntheticRange = {
69181
- from: pos,
69182
- to: pos
69183
- };
69184
- const syntheticTarget = {
69185
- kind: "text",
69186
- blockId: "",
69187
- range: {
69188
- start: 0,
69189
- end: 0
69190
- }
69191
- };
69192
- return {
69193
- requestedTarget,
69194
- effectiveTarget: syntheticTarget,
69195
- range: syntheticRange,
69196
- resolution: buildTextMutationResolution({
69197
- requestedTarget,
69198
- target: syntheticTarget,
69199
- range: syntheticRange,
69200
- text: ""
69201
- }),
69202
- structuralEnd: true
69203
- };
69204
- }
69205
- const text$2 = readTextAtResolvedRange(editor, fallback.range);
69387
+ const fallback = resolveDefaultInsertTarget(editor);
69388
+ if (!fallback)
69389
+ return null;
69390
+ if (fallback.kind === "structural-end") {
69391
+ const pos = fallback.insertPos;
69392
+ const syntheticRange = {
69393
+ from: pos,
69394
+ to: pos
69395
+ };
69396
+ const syntheticTarget = {
69397
+ kind: "text",
69398
+ blockId: "",
69399
+ range: {
69400
+ start: 0,
69401
+ end: 0
69402
+ }
69403
+ };
69206
69404
  return {
69207
- requestedTarget,
69208
- effectiveTarget: fallback.target,
69209
- range: fallback.range,
69405
+ requestedTarget: undefined,
69406
+ effectiveTarget: syntheticTarget,
69407
+ range: syntheticRange,
69210
69408
  resolution: buildTextMutationResolution({
69211
- requestedTarget,
69212
- target: fallback.target,
69213
- range: fallback.range,
69214
- text: text$2
69215
- })
69409
+ requestedTarget: undefined,
69410
+ target: syntheticTarget,
69411
+ range: syntheticRange,
69412
+ text: ""
69413
+ }),
69414
+ structuralEnd: true
69216
69415
  };
69217
69416
  }
69218
- const target = request.target;
69219
- if (!target)
69220
- return null;
69221
- const range = resolveTextTarget(editor, target);
69222
- if (!range)
69223
- return null;
69417
+ const text$2 = readTextAtResolvedRange(editor, fallback.range);
69224
69418
  return {
69225
- requestedTarget,
69226
- effectiveTarget: target,
69227
- range,
69419
+ requestedTarget: undefined,
69420
+ effectiveTarget: fallback.target,
69421
+ range: fallback.range,
69228
69422
  resolution: buildTextMutationResolution({
69229
- requestedTarget,
69230
- target,
69231
- range,
69232
- text: readTextAtResolvedRange(editor, range)
69423
+ requestedTarget: undefined,
69424
+ target: fallback.target,
69425
+ range: fallback.range,
69426
+ text: text$2
69233
69427
  })
69234
69428
  };
69235
69429
  }
@@ -75030,7 +75224,7 @@ var isRegExp = (value) => {
75030
75224
  tracked: false,
75031
75225
  carrier: runAttributeCarrier2(runPropertyKey ?? key),
75032
75226
  schema
75033
- }), INLINE_PROPERTY_REGISTRY2, INLINE_PROPERTY_KEY_SET2, INLINE_PROPERTY_BY_KEY2, UNDERLINE_OBJECT_ALLOWED_KEYS2, SHADING_ALLOWED_KEYS2, BORDER_ALLOWED_KEYS2, FIT_TEXT_ALLOWED_KEYS2, LANG_ALLOWED_KEYS2, RFONTS_ALLOWED_KEYS2, EAST_ASIAN_LAYOUT_ALLOWED_KEYS2, STYLISTIC_SET_ALLOWED_KEYS2, VERT_ALIGN_VALUES2, PROPERTY_VALIDATOR_MAP2, NONE_FAILURES2, NONE_THROWS2, T_NOT_FOUND2, T_NOT_FOUND_CAPABLE2, T_PLAN_ENGINE2, T_NOT_FOUND_COMMAND2, T_IMAGE_COMMAND2, T_CC_READ2, T_CC_MUTATION2, T_CC_TYPED2, T_CC_TYPED_READ2, T_CC_RAW2, T_QUERY_MATCH2, T_SECTION_CREATE2, T_SECTION_READ2, T_PARAGRAPH_MUTATION2, T_SECTION_MUTATION2, T_SECTION_SETTINGS_MUTATION2, T_HEADER_FOOTER_MUTATION2, T_STORY2, T_REF_READ_LIST2, T_REF_MUTATION2, T_REF_MUTATION_REMOVE2, T_REF_INSERT2, FORMAT_INLINE_ALIAS_OPERATION_DEFINITIONS2, OPERATION_DEFINITIONS2, OPERATION_IDS2, COMMAND_CATALOG3, PARAGRAPH_ALIGNMENTS2, TAB_STOP_ALIGNMENTS2, TAB_STOP_LEADERS2, BORDER_SIDES2, CLEAR_BORDER_SIDES2, LINE_RULES2, PARAGRAPH_DIRECTIONS2, ALIGNMENT_POLICIES2, PARAGRAPH_BLOCK_TYPES2, SET_STYLE_KEYS2, CLEAR_STYLE_KEYS2, RESET_DIRECT_FORMATTING_KEYS2, SET_ALIGNMENT_KEYS2, CLEAR_ALIGNMENT_KEYS2, SET_INDENTATION_KEYS2, CLEAR_INDENTATION_KEYS2, SET_SPACING_KEYS2, CLEAR_SPACING_KEYS2, SET_KEEP_OPTIONS_KEYS2, SET_OUTLINE_LEVEL_KEYS2, SET_FLOW_OPTIONS_KEYS2, SET_TAB_STOP_KEYS2, CLEAR_TAB_STOP_KEYS2, CLEAR_ALL_TAB_STOPS_KEYS2, SET_BORDER_KEYS2, CLEAR_BORDER_KEYS2, SET_SHADING_KEYS2, CLEAR_SHADING_KEYS2, SET_DIRECTION_KEYS2, CLEAR_DIRECTION_KEYS2, ST_ON_OFF_ON_VALUES2, ST_ON_OFF_OFF_VALUES2, ST_UNDERLINE_VALUES2, ST_UNDERLINE_VALUE_SET2, ST_VERTICAL_ALIGN_RUN2, ST_EM2, ST_TEXT_ALIGNMENT2, ST_TEXT_DIRECTION2, ST_TEXTBOX_TIGHT_WRAP2, ST_TEXT_TRANSFORM2, ST_JUSTIFICATION2, FONT_FAMILY_SCHEMA2, COLOR_SCHEMA2, SPACING_SCHEMA2, INDENT_SCHEMA2, UNDERLINE_SCHEMA2, BORDER_PROPERTIES_SCHEMA2, SHADING_SCHEMA2, LANG_SCHEMA2, EAST_ASIAN_LAYOUT_SCHEMA2, FIT_TEXT_SCHEMA2, NUMBERING_PROPERTIES_SCHEMA2, FRAME_PR_SCHEMA2, PARAGRAPH_BORDERS_SCHEMA2, TAB_STOP_SCHEMA2, PROPERTY_REGISTRY2, ALLOWED_KEYS_BY_CHANNEL2, PROPERTY_INDEX2, EXCLUDED_KEYS2, INPUT_ALLOWED_KEYS2, TARGET_ALLOWED_KEYS2, OPTIONS_ALLOWED_KEYS2, VALID_CHANNELS2, Z_ORDER_RELATIVE_HEIGHT_MAX2 = 4294967295, nodeTypeValues2, blockNodeTypeValues2, deletableBlockNodeTypeValues2, inlineNodeTypeValues2, rangeSchema2, textAddressSchema2, textTargetSchema2, blockNodeAddressSchema2, deletableBlockNodeAddressSchema2, tableAddressSchema2, tableRowAddressSchema2, tableCellAddressSchema2, tableOrCellAddressSchema2, paragraphAddressSchema2, headingAddressSchema2, listItemAddressSchema2, paragraphTargetSchema2, sectionAddressSchema2, nodeAddressSchema2, commentAddressSchema2, trackedChangeAddressSchema2, entityAddressSchema2, selectionTargetSchema2, deleteBehaviorSchema2, resolvedHandleSchema2, pageInfoSchema2, receiptSuccessSchema2, textMutationRangeSchema2, textMutationResolutionSchema2, textMutationSuccessSchema2, matchBlockSchema2, storyLocatorSchema2, trackChangeRefSchema2, createParagraphSuccessSchema2, createHeadingSuccessSchema2, headingLevelSchema2, listsInsertSuccessSchema2, listsMutateItemSuccessSchema2, textSelectorSchema2, nodeSelectorSchema2, sdMutationResolutionSchema2, sdMutationSuccessSchema2, documentInfoCountsSchema2, documentInfoOutlineItemSchema2, documentInfoCapabilitiesSchema2, listKindSchema2, listInsertPositionSchema2, sectionBreakTypeSchema2, sectionOrientationSchema2, sectionVerticalAlignSchema2, sectionDirectionSchema2, sectionHeaderFooterKindSchema2, sectionHeaderFooterVariantSchema2, sectionLineNumberRestartSchema2, sectionPageNumberFormatSchema2, sectionRangeDomainSchema2, sectionPageMarginsSchema2, sectionHeaderFooterMarginsSchema2, sectionPageSetupSchema2, sectionColumnsSchema2, sectionLineNumberingSchema2, sectionPageNumberingSchema2, sectionHeaderFooterRefsSchema2, sectionBorderSpecSchema2, sectionPageBordersSchema2, sectionMutationSuccessSchema2, documentMutationSuccessSchema2, paragraphMutationTargetSchema2, paragraphMutationSuccessSchema2, createSectionBreakSuccessSchema2, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, inlinePropertyCapabilitySchema2, formatCapabilitiesSchema2, planEngineCapabilitiesSchema2, nullableTableBorderSpecSchema2, sdFragmentSchema2, placementSchema2, nestingPolicySchema2, tableCreateLocationSchema2, formatInlineAliasOperationSchemas2, tocMutationFailureSchema2, tocMutationSuccessSchema2, tocEntryMutationFailureSchema2, tocEntryMutationSuccessSchema2, hyperlinkTargetSchema2, hyperlinkReadPropertiesSchema2, hyperlinkSpecSchema2, hyperlinkPatchSchema2, hyperlinkDomainSchema2, hyperlinkMutationSuccessSchema2, hyperlinkMutationFailureSchema2, contentControlTargetSchema2, contentControlMutationSuccessSchema2, contentControlMutationFailureSchema2, ccListResultSchema2, ccInfoSchema2, refFailureSchema2, bookmarkAddressSchema2, bookmarkMutation2, footnoteAddressSchema2, footnoteConfigScopeSchema2, footnoteNumberingSchema2, footnoteMutation2, footnoteConfig2, crossRefAddressSchema2, crossRefTargetSchema2, crossRefDisplaySchema2, crossRefMutation2, indexAddressSchema2, indexEntryAddressSchema2, indexConfigSchema2, indexEntryDataSchema2, indexEntryPatchSchema2, indexMutation2, indexEntryMutation2, captionAddressSchema2, captionMutation2, captionConfig2, fieldAddressSchema2, fieldMutation2, citationAddressSchema2, citationSourceAddressSchema2, bibliographyAddressSchema2, citationMutation2, citationSourceMutation2, bibliographyMutation2, citationPersonSchema2, citationSourceFieldsSchema2, tocCreateLocationSchema2, authoritiesAddressSchema2, authorityEntryAddressSchema2, authoritiesConfigSchema2, authorityEntryDataSchema2, authorityEntryPatchSchema2, authoritiesMutation2, authorityEntryMutation2, diffCoverageSchema2, diffSummarySchema2, diffSnapshotSchema2, diffPayloadSchema2, GROUP_METADATA2, STEP_OP_CATALOG_UNFROZEN2, PUBLIC_STEP_OP_CATALOG_UNFROZEN2, PUBLIC_MUTATION_STEP_OP_IDS2, PUBLIC_MUTATION_STEP_OP_SET2, CAPABILITY_REASON_CODES, VALID_EDGE_VALUES2, VALID_EDGE_NODE_TYPES2, VALID_DOCUMENT_EDGES2, VALID_REF_BOUNDARIES2, VALID_ANCHOR_KINDS2, RESOLVE_RANGE_ALLOWED_KEYS2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, INLINE_ALIAS_INPUT_ALLOWED_KEYS2, DELETE_INPUT_ALLOWED_KEYS2, VALID_BEHAVIORS2, CONTENT_KIND_SET2, INLINE_KIND_SET2, LEGACY_TOP_LEVEL_TYPES2, LEGACY_INSERT_ALLOWED_KEYS2, STRUCTURAL_INSERT_ALLOWED_KEYS2, VALID_INSERT_TYPES2, TEXT_REPLACE_ALLOWED_KEYS2, STRUCTURAL_REPLACE_ALLOWED_KEYS2, SECTION_BREAK_TYPES$1, SUPPORTED_DELETE_NODE_TYPES2, REJECTED_DELETE_NODE_TYPES2, VALID_BLOCK_NODE_TYPES2, SNAPSHOT_VERSION2 = "sd-diff-snapshot/v1", PAYLOAD_VERSION2 = "sd-diff-payload/v1", VALID_STYLE_OPTION_FLAGS2, TABLE_BORDER_COLOR_PATTERN2, VALID_APPLY_TO_VALUES2, VALID_BORDER_EDGE_KEYS2, HEADER_FOOTER_KINDS$1, HEADER_FOOTER_VARIANTS$1, DEFAULT_SECTIONS_LIST_LIMIT2 = 250, SECTION_BREAK_TYPES3, SECTION_ORIENTATIONS2, SECTION_VERTICAL_ALIGNS2, SECTION_DIRECTIONS2, HEADER_FOOTER_KINDS3, HEADER_FOOTER_VARIANTS3, LINE_NUMBER_RESTARTS2, PAGE_NUMBER_FORMATS2, PAGE_BORDER_DISPLAYS2, PAGE_BORDER_OFFSET_FROM_VALUES2, PAGE_BORDER_Z_ORDER_VALUES2, VALID_WRAP_TYPES2, VALID_WRAP_SIDES2, VALID_IMAGE_SIZE_UNITS2, PATCH_FIELDS2, ADAPTER_GATED_PREFIXES2, _buffers, _defaultCollectionId = null, _nextCollectionId = 1, generateV2HandlerEntity = (handlerName, translator$216) => ({
75227
+ }), INLINE_PROPERTY_REGISTRY2, INLINE_PROPERTY_KEY_SET2, INLINE_PROPERTY_BY_KEY2, UNDERLINE_OBJECT_ALLOWED_KEYS2, SHADING_ALLOWED_KEYS2, BORDER_ALLOWED_KEYS2, FIT_TEXT_ALLOWED_KEYS2, LANG_ALLOWED_KEYS2, RFONTS_ALLOWED_KEYS2, EAST_ASIAN_LAYOUT_ALLOWED_KEYS2, STYLISTIC_SET_ALLOWED_KEYS2, VERT_ALIGN_VALUES2, PROPERTY_VALIDATOR_MAP2, NONE_FAILURES2, NONE_THROWS2, T_NOT_FOUND2, T_NOT_FOUND_CAPABLE2, T_PLAN_ENGINE2, T_NOT_FOUND_COMMAND2, T_IMAGE_COMMAND2, T_CC_READ2, T_CC_MUTATION2, T_CC_TYPED2, T_CC_TYPED_READ2, T_CC_RAW2, T_QUERY_MATCH2, T_SECTION_CREATE2, T_SECTION_READ2, T_PARAGRAPH_MUTATION2, T_SECTION_MUTATION2, T_SECTION_SETTINGS_MUTATION2, T_HEADER_FOOTER_MUTATION2, T_STORY2, T_REF_READ_LIST2, T_REF_MUTATION2, T_REF_MUTATION_REMOVE2, T_REF_INSERT2, FORMAT_INLINE_ALIAS_OPERATION_DEFINITIONS2, OPERATION_DEFINITIONS2, OPERATION_IDS2, COMMAND_CATALOG3, PARAGRAPH_ALIGNMENTS2, TAB_STOP_ALIGNMENTS2, TAB_STOP_LEADERS2, BORDER_SIDES2, CLEAR_BORDER_SIDES2, LINE_RULES2, PARAGRAPH_DIRECTIONS2, ALIGNMENT_POLICIES2, PARAGRAPH_BLOCK_TYPES2, SET_STYLE_KEYS2, CLEAR_STYLE_KEYS2, RESET_DIRECT_FORMATTING_KEYS2, SET_ALIGNMENT_KEYS2, CLEAR_ALIGNMENT_KEYS2, SET_INDENTATION_KEYS2, CLEAR_INDENTATION_KEYS2, SET_SPACING_KEYS2, CLEAR_SPACING_KEYS2, SET_KEEP_OPTIONS_KEYS2, SET_OUTLINE_LEVEL_KEYS2, SET_FLOW_OPTIONS_KEYS2, SET_TAB_STOP_KEYS2, CLEAR_TAB_STOP_KEYS2, CLEAR_ALL_TAB_STOPS_KEYS2, SET_BORDER_KEYS2, CLEAR_BORDER_KEYS2, SET_SHADING_KEYS2, CLEAR_SHADING_KEYS2, SET_DIRECTION_KEYS2, CLEAR_DIRECTION_KEYS2, ST_ON_OFF_ON_VALUES2, ST_ON_OFF_OFF_VALUES2, ST_UNDERLINE_VALUES2, ST_UNDERLINE_VALUE_SET2, ST_VERTICAL_ALIGN_RUN2, ST_EM2, ST_TEXT_ALIGNMENT2, ST_TEXT_DIRECTION2, ST_TEXTBOX_TIGHT_WRAP2, ST_TEXT_TRANSFORM2, ST_JUSTIFICATION2, FONT_FAMILY_SCHEMA2, COLOR_SCHEMA2, SPACING_SCHEMA2, INDENT_SCHEMA2, UNDERLINE_SCHEMA2, BORDER_PROPERTIES_SCHEMA2, SHADING_SCHEMA2, LANG_SCHEMA2, EAST_ASIAN_LAYOUT_SCHEMA2, FIT_TEXT_SCHEMA2, NUMBERING_PROPERTIES_SCHEMA2, FRAME_PR_SCHEMA2, PARAGRAPH_BORDERS_SCHEMA2, TAB_STOP_SCHEMA2, PROPERTY_REGISTRY2, ALLOWED_KEYS_BY_CHANNEL2, PROPERTY_INDEX2, EXCLUDED_KEYS2, INPUT_ALLOWED_KEYS2, TARGET_ALLOWED_KEYS2, OPTIONS_ALLOWED_KEYS2, VALID_CHANNELS2, Z_ORDER_RELATIVE_HEIGHT_MAX2 = 4294967295, nodeTypeValues2, blockNodeTypeValues2, deletableBlockNodeTypeValues2, inlineNodeTypeValues2, rangeSchema2, textAddressSchema2, textTargetSchema2, blockNodeAddressSchema2, deletableBlockNodeAddressSchema2, tableAddressSchema2, tableRowAddressSchema2, tableCellAddressSchema2, tableOrCellAddressSchema2, paragraphAddressSchema2, headingAddressSchema2, listItemAddressSchema2, paragraphTargetSchema2, sectionAddressSchema2, nodeAddressSchema2, commentAddressSchema2, trackedChangeAddressSchema2, entityAddressSchema2, selectionTargetSchema2, deleteBehaviorSchema2, resolvedHandleSchema2, pageInfoSchema2, receiptSuccessSchema2, textMutationRangeSchema2, textMutationResolutionSchema2, textMutationSuccessSchema2, matchBlockSchema2, storyLocatorSchema2, trackChangeRefSchema2, createParagraphSuccessSchema2, createHeadingSuccessSchema2, headingLevelSchema2, listsInsertSuccessSchema2, listsMutateItemSuccessSchema2, textSelectorSchema2, nodeSelectorSchema2, sdMutationResolutionSchema2, sdMutationSuccessSchema2, documentInfoCountsSchema2, documentInfoOutlineItemSchema2, documentInfoCapabilitiesSchema2, listKindSchema2, listInsertPositionSchema2, sectionBreakTypeSchema2, sectionOrientationSchema2, sectionVerticalAlignSchema2, sectionDirectionSchema2, sectionHeaderFooterKindSchema2, sectionHeaderFooterVariantSchema2, sectionLineNumberRestartSchema2, sectionPageNumberFormatSchema2, sectionRangeDomainSchema2, sectionPageMarginsSchema2, sectionHeaderFooterMarginsSchema2, sectionPageSetupSchema2, sectionColumnsSchema2, sectionLineNumberingSchema2, sectionPageNumberingSchema2, sectionHeaderFooterRefsSchema2, sectionBorderSpecSchema2, sectionPageBordersSchema2, sectionMutationSuccessSchema2, documentMutationSuccessSchema2, paragraphMutationTargetSchema2, paragraphMutationSuccessSchema2, createSectionBreakSuccessSchema2, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, inlinePropertyCapabilitySchema2, formatCapabilitiesSchema2, planEngineCapabilitiesSchema2, nullableTableBorderSpecSchema2, sdFragmentSchema2, placementSchema2, nestingPolicySchema2, tableCreateLocationSchema2, formatInlineAliasOperationSchemas2, tocMutationFailureSchema2, tocMutationSuccessSchema2, tocEntryMutationFailureSchema2, tocEntryMutationSuccessSchema2, hyperlinkTargetSchema2, hyperlinkReadPropertiesSchema2, hyperlinkSpecSchema2, hyperlinkPatchSchema2, hyperlinkDomainSchema2, hyperlinkMutationSuccessSchema2, hyperlinkMutationFailureSchema2, contentControlTargetSchema2, contentControlMutationSuccessSchema2, contentControlMutationFailureSchema2, ccListResultSchema2, ccInfoSchema2, refFailureSchema2, bookmarkAddressSchema2, bookmarkMutation2, footnoteAddressSchema2, footnoteConfigScopeSchema2, footnoteNumberingSchema2, footnoteMutation2, footnoteConfig2, crossRefAddressSchema2, crossRefTargetSchema2, crossRefDisplaySchema2, crossRefMutation2, indexAddressSchema2, indexEntryAddressSchema2, indexConfigSchema2, indexEntryDataSchema2, indexEntryPatchSchema2, indexMutation2, indexEntryMutation2, captionAddressSchema2, captionMutation2, captionConfig2, fieldAddressSchema2, fieldMutation2, citationAddressSchema2, citationSourceAddressSchema2, bibliographyAddressSchema2, citationMutation2, citationSourceMutation2, bibliographyMutation2, citationPersonSchema2, citationSourceFieldsSchema2, tocCreateLocationSchema2, authoritiesAddressSchema2, authorityEntryAddressSchema2, authoritiesConfigSchema2, authorityEntryDataSchema2, authorityEntryPatchSchema2, authoritiesMutation2, authorityEntryMutation2, diffCoverageSchema2, diffSummarySchema2, diffSnapshotSchema2, diffPayloadSchema2, GROUP_METADATA2, STEP_OP_CATALOG_UNFROZEN2, PUBLIC_STEP_OP_CATALOG_UNFROZEN2, PUBLIC_MUTATION_STEP_OP_IDS2, PUBLIC_MUTATION_STEP_OP_SET2, CAPABILITY_REASON_CODES, VALID_EDGE_VALUES2, VALID_EDGE_NODE_TYPES2, VALID_DOCUMENT_EDGES2, VALID_REF_BOUNDARIES2, VALID_ANCHOR_KINDS2, RESOLVE_RANGE_ALLOWED_KEYS2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, INLINE_ALIAS_INPUT_ALLOWED_KEYS2, DELETE_INPUT_ALLOWED_KEYS2, VALID_BEHAVIORS2, CONTENT_KIND_SET2, INLINE_KIND_SET2, LEGACY_TOP_LEVEL_TYPES2, TEXT_INSERT_ALLOWED_KEYS2, STRUCTURAL_INSERT_ALLOWED_KEYS2, VALID_INSERT_TYPES2, TEXT_REPLACE_ALLOWED_KEYS2, STRUCTURAL_REPLACE_ALLOWED_KEYS2, SECTION_BREAK_TYPES$1, SUPPORTED_DELETE_NODE_TYPES2, REJECTED_DELETE_NODE_TYPES2, VALID_BLOCK_NODE_TYPES2, SNAPSHOT_VERSION2 = "sd-diff-snapshot/v1", PAYLOAD_VERSION2 = "sd-diff-payload/v1", VALID_STYLE_OPTION_FLAGS2, TABLE_BORDER_COLOR_PATTERN2, VALID_APPLY_TO_VALUES2, VALID_BORDER_EDGE_KEYS2, HEADER_FOOTER_KINDS$1, HEADER_FOOTER_VARIANTS$1, DEFAULT_SECTIONS_LIST_LIMIT2 = 250, SECTION_BREAK_TYPES3, SECTION_ORIENTATIONS2, SECTION_VERTICAL_ALIGNS2, SECTION_DIRECTIONS2, HEADER_FOOTER_KINDS3, HEADER_FOOTER_VARIANTS3, LINE_NUMBER_RESTARTS2, PAGE_NUMBER_FORMATS2, PAGE_BORDER_DISPLAYS2, PAGE_BORDER_OFFSET_FROM_VALUES2, PAGE_BORDER_Z_ORDER_VALUES2, VALID_WRAP_TYPES2, VALID_WRAP_SIDES2, VALID_IMAGE_SIZE_UNITS2, PATCH_FIELDS2, VALID_CREATE_LOCATION_KINDS2, ADAPTER_GATED_PREFIXES2, _buffers, _defaultCollectionId = null, _nextCollectionId = 1, generateV2HandlerEntity = (handlerName, translator$216) => ({
75034
75228
  handlerName,
75035
75229
  handler: (params) => {
75036
75230
  const { nodes } = params;
@@ -89102,7 +89296,7 @@ var isRegExp = (value) => {
89102
89296
  candidate = candidate.prev;
89103
89297
  }
89104
89298
  }
89105
- }, DocumentApiAdapterError, SectionType, DEFAULT_PARAGRAPH_SECTION_TYPE, DEFAULT_BODY_SECTION_TYPE, TWIPS_PER_INCH = 1440, PX_PER_INCH = 96, DEFAULT_COLUMN_GAP_INCHES = 0.5, DEFAULT_HEADER_FOOTER_MARGIN_PX = 0, CommentMarkName = "commentMark", LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, TABLE_LIKE_PREFIX, UUID_LIKE_PATTERN, ALIAS_ELIGIBLE_TYPES, cacheByEditor, OBJECT_REPLACEMENT_CHAR = "", LINE_NUMBER_RESTART_VALUES, PAGE_NUMBER_FORMAT_VALUES, SECTION_ORIENTATION_VALUES, SECTION_VERTICAL_ALIGN_VALUES, readSectPrHeaderFooterRefs, PIXELS_PER_INCH = 96, DOCUMENT_RELS_PATH = "word/_rels/document.xml.rels", RELS_XMLNS = "http://schemas.openxmlformats.org/package/2006/relationships", HEADER_RELATIONSHIP_TYPE2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", WORDPROCESSINGML_XMLNS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", OFFICE_DOCUMENT_RELS_XMLNS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", RELATIONSHIP_ID_PATTERN, HEADER_FILE_PATTERN, FOOTER_FILE_PATTERN, SOURCE_HEADER_FOOTER_LOCAL = "header-footer-sync:local", HEADER_PATTERN, FOOTER_PATTERN, DEFAULT_HDR_FTR_ATTRS, HEADER_REL_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_REL_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", VALID_VARIANTS, FOOTNOTES_PART_ID = "word/footnotes.xml", ENDNOTES_PART_ID = "word/endnotes.xml", FOOTNOTES_CONFIG, ENDNOTES_CONFIG, NOTES_XMLNS, footnotesPartDescriptor, endnotesPartDescriptor, storeByEditor, cacheByHost, hostStoreSyncedKeys, BODY_LOCATOR, findMarkPosition = (doc$2, pos, markName) => {
89299
+ }, DocumentApiAdapterError, SectionType, DEFAULT_PARAGRAPH_SECTION_TYPE, DEFAULT_BODY_SECTION_TYPE, TWIPS_PER_INCH = 1440, PX_PER_INCH = 96, DEFAULT_COLUMN_GAP_INCHES = 0.5, DEFAULT_HEADER_FOOTER_MARGIN_PX = 0, CommentMarkName = "commentMark", LINK_MARK_NAME = "link", COMMENT_MARK_NAME, SUPPORTED_INLINE_TYPES, FALLBACK_PREFIX, UUID_LIKE_PATTERN, ALIAS_ELIGIBLE_TYPES, cacheByEditor, OBJECT_REPLACEMENT_CHAR = "", LINE_NUMBER_RESTART_VALUES, PAGE_NUMBER_FORMAT_VALUES, SECTION_ORIENTATION_VALUES, SECTION_VERTICAL_ALIGN_VALUES, readSectPrHeaderFooterRefs, PIXELS_PER_INCH = 96, DOCUMENT_RELS_PATH = "word/_rels/document.xml.rels", RELS_XMLNS = "http://schemas.openxmlformats.org/package/2006/relationships", HEADER_RELATIONSHIP_TYPE2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_RELATIONSHIP_TYPE2 = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", WORDPROCESSINGML_XMLNS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main", OFFICE_DOCUMENT_RELS_XMLNS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", RELATIONSHIP_ID_PATTERN, HEADER_FILE_PATTERN, FOOTER_FILE_PATTERN, SOURCE_HEADER_FOOTER_LOCAL = "header-footer-sync:local", HEADER_PATTERN, FOOTER_PATTERN, DEFAULT_HDR_FTR_ATTRS, HEADER_REL_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/header", FOOTER_REL_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer", VALID_VARIANTS, FOOTNOTES_PART_ID = "word/footnotes.xml", ENDNOTES_PART_ID = "word/endnotes.xml", FOOTNOTES_CONFIG, ENDNOTES_CONFIG, NOTES_XMLNS, footnotesPartDescriptor, endnotesPartDescriptor, storeByEditor, cacheByHost, hostStoreSyncedKeys, BODY_LOCATOR, findMarkPosition = (doc$2, pos, markName) => {
89106
89300
  const $pos = doc$2.resolve(pos);
89107
89301
  const parent = $pos.parent;
89108
89302
  const start = parent.childAfter($pos.parentOffset);
@@ -89204,7 +89398,7 @@ var isRegExp = (value) => {
89204
89398
  state.kern = kernNode.attributes["w:val"];
89205
89399
  }
89206
89400
  }, SuperConverter;
89207
- var init_SuperConverter_Cukh7tk8_es = __esm(() => {
89401
+ var init_SuperConverter_pK0uKHZW_es = __esm(() => {
89208
89402
  init_rolldown_runtime_B2q5OVn9_es();
89209
89403
  init_jszip_ChlR43oI_es();
89210
89404
  init_xml_js_BtmJ6bNs_es();
@@ -92352,8 +92546,8 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
92352
92546
  },
92353
92547
  insert: {
92354
92548
  memberPath: "insert",
92355
- description: "Insert content into the document. Two input shapes: legacy string-based (value + type) inserts inline content at a text position within an existing block; structural SDFragment (content) inserts one or more blocks as siblings relative to a BlockNodeAddress target. When target is omitted, content appends at the end of the document. Legacy mode supports text (default), markdown, and html content types via the `type` field. Structural mode uses `placement` (before/after/insideStart/insideEnd) to position relative to the target block.",
92356
- expectedResult: "Returns an SDMutationReceipt with applied status; resolution reports a TextAddress for legacy text insertion or a BlockNodeAddress for structural insertion. Receipt reports NO_OP if the insertion point is invalid or content is empty.",
92549
+ description: "Insert content into the document. Two input shapes: text-based (value + type) inserts inline content at a SelectionTarget or ref position within an existing block; structural SDFragment (content) inserts one or more blocks as siblings relative to a BlockNodeAddress target. When target/ref is omitted, content appends at the end of the document. Text mode supports text (default), markdown, and html content types via the `type` field. Structural mode uses `placement` (before/after/insideStart/insideEnd) to position relative to the target block.",
92550
+ expectedResult: "Returns an SDMutationReceipt with applied status; resolution reports the inserted TextAddress for text insertion or a BlockNodeAddress for structural insertion. Receipt reports NO_OP if the insertion point is invalid or content is empty.",
92357
92551
  requiresDocumentContext: true,
92358
92552
  metadata: mutationOperation2({
92359
92553
  idempotency: "non-idempotent",
@@ -96563,7 +96757,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96563
96757
  requiresDocumentContext: true,
96564
96758
  metadata: mutationOperation2({
96565
96759
  idempotency: "non-idempotent",
96566
- supportsDryRun: false,
96760
+ supportsDryRun: true,
96567
96761
  supportsTrackedMode: false,
96568
96762
  possibleFailureCodes: NONE_FAILURES2,
96569
96763
  throws: T_REF_INSERT2
@@ -96578,7 +96772,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96578
96772
  requiresDocumentContext: true,
96579
96773
  metadata: mutationOperation2({
96580
96774
  idempotency: "idempotent",
96581
- supportsDryRun: false,
96775
+ supportsDryRun: true,
96582
96776
  supportsTrackedMode: false,
96583
96777
  possibleFailureCodes: NONE_FAILURES2,
96584
96778
  throws: T_REF_MUTATION2
@@ -96593,7 +96787,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96593
96787
  requiresDocumentContext: true,
96594
96788
  metadata: mutationOperation2({
96595
96789
  idempotency: "non-idempotent",
96596
- supportsDryRun: false,
96790
+ supportsDryRun: true,
96597
96791
  supportsTrackedMode: false,
96598
96792
  possibleFailureCodes: NONE_FAILURES2,
96599
96793
  throws: T_REF_MUTATION_REMOVE2
@@ -96629,7 +96823,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96629
96823
  requiresDocumentContext: true,
96630
96824
  metadata: mutationOperation2({
96631
96825
  idempotency: "non-idempotent",
96632
- supportsDryRun: false,
96826
+ supportsDryRun: true,
96633
96827
  supportsTrackedMode: false,
96634
96828
  possibleFailureCodes: NONE_FAILURES2,
96635
96829
  throws: T_REF_INSERT2
@@ -96644,7 +96838,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96644
96838
  requiresDocumentContext: true,
96645
96839
  metadata: mutationOperation2({
96646
96840
  idempotency: "idempotent",
96647
- supportsDryRun: false,
96841
+ supportsDryRun: true,
96648
96842
  supportsTrackedMode: false,
96649
96843
  possibleFailureCodes: NONE_FAILURES2,
96650
96844
  throws: T_REF_MUTATION2
@@ -96659,7 +96853,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96659
96853
  requiresDocumentContext: true,
96660
96854
  metadata: mutationOperation2({
96661
96855
  idempotency: "non-idempotent",
96662
- supportsDryRun: false,
96856
+ supportsDryRun: true,
96663
96857
  supportsTrackedMode: false,
96664
96858
  possibleFailureCodes: NONE_FAILURES2,
96665
96859
  throws: T_REF_MUTATION_REMOVE2
@@ -96674,7 +96868,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96674
96868
  requiresDocumentContext: true,
96675
96869
  metadata: mutationOperation2({
96676
96870
  idempotency: "idempotent",
96677
- supportsDryRun: false,
96871
+ supportsDryRun: true,
96678
96872
  supportsTrackedMode: false,
96679
96873
  possibleFailureCodes: NONE_FAILURES2,
96680
96874
  throws: T_REF_MUTATION2
@@ -96710,7 +96904,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96710
96904
  requiresDocumentContext: true,
96711
96905
  metadata: mutationOperation2({
96712
96906
  idempotency: "non-idempotent",
96713
- supportsDryRun: false,
96907
+ supportsDryRun: true,
96714
96908
  supportsTrackedMode: false,
96715
96909
  possibleFailureCodes: NONE_FAILURES2,
96716
96910
  throws: T_REF_INSERT2
@@ -96725,7 +96919,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96725
96919
  requiresDocumentContext: true,
96726
96920
  metadata: mutationOperation2({
96727
96921
  idempotency: "idempotent",
96728
- supportsDryRun: false,
96922
+ supportsDryRun: true,
96729
96923
  supportsTrackedMode: false,
96730
96924
  possibleFailureCodes: NONE_FAILURES2,
96731
96925
  throws: T_REF_MUTATION2
@@ -96740,7 +96934,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96740
96934
  requiresDocumentContext: true,
96741
96935
  metadata: mutationOperation2({
96742
96936
  idempotency: "non-idempotent",
96743
- supportsDryRun: false,
96937
+ supportsDryRun: true,
96744
96938
  supportsTrackedMode: false,
96745
96939
  possibleFailureCodes: NONE_FAILURES2,
96746
96940
  throws: T_REF_MUTATION_REMOVE2
@@ -96776,7 +96970,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96776
96970
  requiresDocumentContext: true,
96777
96971
  metadata: mutationOperation2({
96778
96972
  idempotency: "non-idempotent",
96779
- supportsDryRun: false,
96973
+ supportsDryRun: true,
96780
96974
  supportsTrackedMode: false,
96781
96975
  possibleFailureCodes: NONE_FAILURES2,
96782
96976
  throws: T_REF_INSERT2
@@ -96791,7 +96985,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96791
96985
  requiresDocumentContext: true,
96792
96986
  metadata: mutationOperation2({
96793
96987
  idempotency: "idempotent",
96794
- supportsDryRun: false,
96988
+ supportsDryRun: true,
96795
96989
  supportsTrackedMode: false,
96796
96990
  possibleFailureCodes: NONE_FAILURES2,
96797
96991
  throws: T_REF_MUTATION2
@@ -96806,7 +97000,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96806
97000
  requiresDocumentContext: true,
96807
97001
  metadata: mutationOperation2({
96808
97002
  idempotency: "idempotent",
96809
- supportsDryRun: false,
97003
+ supportsDryRun: true,
96810
97004
  supportsTrackedMode: false,
96811
97005
  possibleFailureCodes: NONE_FAILURES2,
96812
97006
  throws: T_REF_MUTATION2
@@ -96821,7 +97015,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96821
97015
  requiresDocumentContext: true,
96822
97016
  metadata: mutationOperation2({
96823
97017
  idempotency: "non-idempotent",
96824
- supportsDryRun: false,
97018
+ supportsDryRun: true,
96825
97019
  supportsTrackedMode: false,
96826
97020
  possibleFailureCodes: NONE_FAILURES2,
96827
97021
  throws: T_REF_MUTATION_REMOVE2
@@ -96857,7 +97051,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96857
97051
  requiresDocumentContext: true,
96858
97052
  metadata: mutationOperation2({
96859
97053
  idempotency: "non-idempotent",
96860
- supportsDryRun: false,
97054
+ supportsDryRun: true,
96861
97055
  supportsTrackedMode: false,
96862
97056
  possibleFailureCodes: NONE_FAILURES2,
96863
97057
  throws: T_REF_INSERT2
@@ -96872,7 +97066,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96872
97066
  requiresDocumentContext: true,
96873
97067
  metadata: mutationOperation2({
96874
97068
  idempotency: "idempotent",
96875
- supportsDryRun: false,
97069
+ supportsDryRun: true,
96876
97070
  supportsTrackedMode: false,
96877
97071
  possibleFailureCodes: NONE_FAILURES2,
96878
97072
  throws: T_REF_MUTATION2
@@ -96887,7 +97081,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96887
97081
  requiresDocumentContext: true,
96888
97082
  metadata: mutationOperation2({
96889
97083
  idempotency: "non-idempotent",
96890
- supportsDryRun: false,
97084
+ supportsDryRun: true,
96891
97085
  supportsTrackedMode: false,
96892
97086
  possibleFailureCodes: NONE_FAILURES2,
96893
97087
  throws: T_REF_MUTATION_REMOVE2
@@ -96923,7 +97117,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96923
97117
  requiresDocumentContext: true,
96924
97118
  metadata: mutationOperation2({
96925
97119
  idempotency: "non-idempotent",
96926
- supportsDryRun: false,
97120
+ supportsDryRun: true,
96927
97121
  supportsTrackedMode: false,
96928
97122
  possibleFailureCodes: NONE_FAILURES2,
96929
97123
  throws: T_REF_INSERT2
@@ -96938,7 +97132,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96938
97132
  requiresDocumentContext: true,
96939
97133
  metadata: mutationOperation2({
96940
97134
  idempotency: "idempotent",
96941
- supportsDryRun: false,
97135
+ supportsDryRun: true,
96942
97136
  supportsTrackedMode: false,
96943
97137
  possibleFailureCodes: NONE_FAILURES2,
96944
97138
  throws: T_REF_MUTATION2
@@ -96953,7 +97147,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96953
97147
  requiresDocumentContext: true,
96954
97148
  metadata: mutationOperation2({
96955
97149
  idempotency: "non-idempotent",
96956
- supportsDryRun: false,
97150
+ supportsDryRun: true,
96957
97151
  supportsTrackedMode: false,
96958
97152
  possibleFailureCodes: NONE_FAILURES2,
96959
97153
  throws: T_REF_MUTATION_REMOVE2
@@ -96968,7 +97162,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
96968
97162
  requiresDocumentContext: true,
96969
97163
  metadata: mutationOperation2({
96970
97164
  idempotency: "idempotent",
96971
- supportsDryRun: false,
97165
+ supportsDryRun: true,
96972
97166
  supportsTrackedMode: false,
96973
97167
  possibleFailureCodes: NONE_FAILURES2,
96974
97168
  throws: T_REF_MUTATION2
@@ -97004,7 +97198,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97004
97198
  requiresDocumentContext: true,
97005
97199
  metadata: mutationOperation2({
97006
97200
  idempotency: "non-idempotent",
97007
- supportsDryRun: false,
97201
+ supportsDryRun: true,
97008
97202
  supportsTrackedMode: false,
97009
97203
  possibleFailureCodes: NONE_FAILURES2,
97010
97204
  throws: T_REF_INSERT2
@@ -97019,7 +97213,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97019
97213
  requiresDocumentContext: true,
97020
97214
  metadata: mutationOperation2({
97021
97215
  idempotency: "idempotent",
97022
- supportsDryRun: false,
97216
+ supportsDryRun: true,
97023
97217
  supportsTrackedMode: false,
97024
97218
  possibleFailureCodes: NONE_FAILURES2,
97025
97219
  throws: T_REF_MUTATION2
@@ -97034,7 +97228,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97034
97228
  requiresDocumentContext: true,
97035
97229
  metadata: mutationOperation2({
97036
97230
  idempotency: "non-idempotent",
97037
- supportsDryRun: false,
97231
+ supportsDryRun: true,
97038
97232
  supportsTrackedMode: false,
97039
97233
  possibleFailureCodes: NONE_FAILURES2,
97040
97234
  throws: T_REF_MUTATION_REMOVE2
@@ -97070,7 +97264,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97070
97264
  requiresDocumentContext: true,
97071
97265
  metadata: mutationOperation2({
97072
97266
  idempotency: "non-idempotent",
97073
- supportsDryRun: false,
97267
+ supportsDryRun: true,
97074
97268
  supportsTrackedMode: false,
97075
97269
  possibleFailureCodes: NONE_FAILURES2,
97076
97270
  throws: T_REF_INSERT2
@@ -97085,7 +97279,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97085
97279
  requiresDocumentContext: true,
97086
97280
  metadata: mutationOperation2({
97087
97281
  idempotency: "idempotent",
97088
- supportsDryRun: false,
97282
+ supportsDryRun: true,
97089
97283
  supportsTrackedMode: false,
97090
97284
  possibleFailureCodes: NONE_FAILURES2,
97091
97285
  throws: T_REF_MUTATION2
@@ -97100,7 +97294,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97100
97294
  requiresDocumentContext: true,
97101
97295
  metadata: mutationOperation2({
97102
97296
  idempotency: "non-idempotent",
97103
- supportsDryRun: false,
97297
+ supportsDryRun: true,
97104
97298
  supportsTrackedMode: false,
97105
97299
  possibleFailureCodes: NONE_FAILURES2,
97106
97300
  throws: T_REF_MUTATION_REMOVE2
@@ -97136,7 +97330,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97136
97330
  requiresDocumentContext: true,
97137
97331
  metadata: mutationOperation2({
97138
97332
  idempotency: "non-idempotent",
97139
- supportsDryRun: false,
97333
+ supportsDryRun: true,
97140
97334
  supportsTrackedMode: false,
97141
97335
  possibleFailureCodes: NONE_FAILURES2,
97142
97336
  throws: T_REF_INSERT2
@@ -97151,7 +97345,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97151
97345
  requiresDocumentContext: true,
97152
97346
  metadata: mutationOperation2({
97153
97347
  idempotency: "idempotent",
97154
- supportsDryRun: false,
97348
+ supportsDryRun: true,
97155
97349
  supportsTrackedMode: false,
97156
97350
  possibleFailureCodes: NONE_FAILURES2,
97157
97351
  throws: T_REF_MUTATION2
@@ -97166,7 +97360,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97166
97360
  requiresDocumentContext: true,
97167
97361
  metadata: mutationOperation2({
97168
97362
  idempotency: "non-idempotent",
97169
- supportsDryRun: false,
97363
+ supportsDryRun: true,
97170
97364
  supportsTrackedMode: false,
97171
97365
  possibleFailureCodes: NONE_FAILURES2,
97172
97366
  throws: T_REF_MUTATION_REMOVE2
@@ -97190,7 +97384,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97190
97384
  requiresDocumentContext: true,
97191
97385
  metadata: mutationOperation2({
97192
97386
  idempotency: "non-idempotent",
97193
- supportsDryRun: false,
97387
+ supportsDryRun: true,
97194
97388
  supportsTrackedMode: false,
97195
97389
  possibleFailureCodes: NONE_FAILURES2,
97196
97390
  throws: T_REF_INSERT2
@@ -97205,7 +97399,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97205
97399
  requiresDocumentContext: true,
97206
97400
  metadata: mutationOperation2({
97207
97401
  idempotency: "idempotent",
97208
- supportsDryRun: false,
97402
+ supportsDryRun: true,
97209
97403
  supportsTrackedMode: false,
97210
97404
  possibleFailureCodes: NONE_FAILURES2,
97211
97405
  throws: T_REF_MUTATION2
@@ -97220,7 +97414,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97220
97414
  requiresDocumentContext: true,
97221
97415
  metadata: mutationOperation2({
97222
97416
  idempotency: "idempotent",
97223
- supportsDryRun: false,
97417
+ supportsDryRun: true,
97224
97418
  supportsTrackedMode: false,
97225
97419
  possibleFailureCodes: NONE_FAILURES2,
97226
97420
  throws: T_REF_MUTATION2
@@ -97235,7 +97429,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97235
97429
  requiresDocumentContext: true,
97236
97430
  metadata: mutationOperation2({
97237
97431
  idempotency: "non-idempotent",
97238
- supportsDryRun: false,
97432
+ supportsDryRun: true,
97239
97433
  supportsTrackedMode: false,
97240
97434
  possibleFailureCodes: NONE_FAILURES2,
97241
97435
  throws: T_REF_MUTATION_REMOVE2
@@ -97271,7 +97465,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97271
97465
  requiresDocumentContext: true,
97272
97466
  metadata: mutationOperation2({
97273
97467
  idempotency: "non-idempotent",
97274
- supportsDryRun: false,
97468
+ supportsDryRun: true,
97275
97469
  supportsTrackedMode: false,
97276
97470
  possibleFailureCodes: NONE_FAILURES2,
97277
97471
  throws: T_REF_INSERT2
@@ -97286,7 +97480,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97286
97480
  requiresDocumentContext: true,
97287
97481
  metadata: mutationOperation2({
97288
97482
  idempotency: "idempotent",
97289
- supportsDryRun: false,
97483
+ supportsDryRun: true,
97290
97484
  supportsTrackedMode: false,
97291
97485
  possibleFailureCodes: NONE_FAILURES2,
97292
97486
  throws: T_REF_MUTATION2
@@ -97301,7 +97495,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97301
97495
  requiresDocumentContext: true,
97302
97496
  metadata: mutationOperation2({
97303
97497
  idempotency: "idempotent",
97304
- supportsDryRun: false,
97498
+ supportsDryRun: true,
97305
97499
  supportsTrackedMode: false,
97306
97500
  possibleFailureCodes: NONE_FAILURES2,
97307
97501
  throws: T_REF_MUTATION2
@@ -97316,7 +97510,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97316
97510
  requiresDocumentContext: true,
97317
97511
  metadata: mutationOperation2({
97318
97512
  idempotency: "non-idempotent",
97319
- supportsDryRun: false,
97513
+ supportsDryRun: true,
97320
97514
  supportsTrackedMode: false,
97321
97515
  possibleFailureCodes: NONE_FAILURES2,
97322
97516
  throws: T_REF_MUTATION_REMOVE2
@@ -97352,7 +97546,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97352
97546
  requiresDocumentContext: true,
97353
97547
  metadata: mutationOperation2({
97354
97548
  idempotency: "non-idempotent",
97355
- supportsDryRun: false,
97549
+ supportsDryRun: true,
97356
97550
  supportsTrackedMode: false,
97357
97551
  possibleFailureCodes: NONE_FAILURES2,
97358
97552
  throws: T_REF_INSERT2
@@ -97367,7 +97561,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97367
97561
  requiresDocumentContext: true,
97368
97562
  metadata: mutationOperation2({
97369
97563
  idempotency: "idempotent",
97370
- supportsDryRun: false,
97564
+ supportsDryRun: true,
97371
97565
  supportsTrackedMode: false,
97372
97566
  possibleFailureCodes: NONE_FAILURES2,
97373
97567
  throws: T_REF_MUTATION2
@@ -97382,7 +97576,7 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
97382
97576
  requiresDocumentContext: true,
97383
97577
  metadata: mutationOperation2({
97384
97578
  idempotency: "non-idempotent",
97385
- supportsDryRun: false,
97579
+ supportsDryRun: true,
97386
97580
  supportsTrackedMode: false,
97387
97581
  possibleFailureCodes: NONE_FAILURES2,
97388
97582
  throws: T_REF_MUTATION_REMOVE2
@@ -99293,12 +99487,8 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
99293
99487
  ...objectSchema2({ tables: { enum: ["forbid", "allow"] } }),
99294
99488
  description: "Controls nesting behavior. tables: 'allow' permits inserting tables inside other tables."
99295
99489
  };
99296
- objectSchema2({
99490
+ optionalTargetLocatorWithPayload2({
99297
99491
  in: storyLocatorSchema2,
99298
- target: {
99299
- ...textAddressSchema2,
99300
- description: "Insertion point: {kind:'text', blockId:'...', range:{start, end}}."
99301
- },
99302
99492
  value: {
99303
99493
  type: "string",
99304
99494
  description: "Text content to insert."
@@ -102993,7 +103183,10 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
102993
103183
  }, ["target", "patch"]), { ...citationSourceMutation2 }, objectSchema2({ target: citationSourceAddressSchema2 }, ["target"]), { ...citationSourceMutation2 }, objectSchema2({ target: bibliographyAddressSchema2 }, ["target"]), objectSchema2({
102994
103184
  at: tocCreateLocationSchema2,
102995
103185
  style: { type: "string" }
102996
- }, ["at"]), { ...bibliographyMutation2 }, objectSchema2({ target: bibliographyAddressSchema2 }, ["target"]), { ...bibliographyMutation2 }, objectSchema2({ style: { type: "string" } }, ["style"]), { ...bibliographyMutation2 }, objectSchema2({ target: bibliographyAddressSchema2 }, ["target"]), { ...bibliographyMutation2 }, objectSchema2({ target: authoritiesAddressSchema2 }, ["target"]), objectSchema2({
103186
+ }, ["at"]), { ...bibliographyMutation2 }, objectSchema2({ target: bibliographyAddressSchema2 }, ["target"]), { ...bibliographyMutation2 }, objectSchema2({
103187
+ target: bibliographyAddressSchema2,
103188
+ style: { type: "string" }
103189
+ }, ["target", "style"]), { ...bibliographyMutation2 }, objectSchema2({ target: bibliographyAddressSchema2 }, ["target"]), { ...bibliographyMutation2 }, objectSchema2({ target: authoritiesAddressSchema2 }, ["target"]), objectSchema2({
102997
103190
  at: tocCreateLocationSchema2,
102998
103191
  config: authoritiesConfigSchema2
102999
103192
  }, ["at"]), { ...authoritiesMutation2 }, objectSchema2({
@@ -103298,10 +103491,11 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
103298
103491
  "tableOfContents",
103299
103492
  "sdt"
103300
103493
  ]);
103301
- LEGACY_INSERT_ALLOWED_KEYS2 = new Set([
103494
+ TEXT_INSERT_ALLOWED_KEYS2 = new Set([
103302
103495
  "value",
103303
103496
  "type",
103304
103497
  "target",
103498
+ "ref",
103305
103499
  "in"
103306
103500
  ]);
103307
103501
  STRUCTURAL_INSERT_ALLOWED_KEYS2 = new Set([
@@ -103440,6 +103634,12 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
103440
103634
  "target",
103441
103635
  "rel"
103442
103636
  ]);
103637
+ VALID_CREATE_LOCATION_KINDS2 = new Set([
103638
+ "documentStart",
103639
+ "documentEnd",
103640
+ "before",
103641
+ "after"
103642
+ ]);
103443
103643
  ADAPTER_GATED_PREFIXES2 = [
103444
103644
  "bookmarks",
103445
103645
  "footnotes",
@@ -124540,9 +124740,12 @@ var init_SuperConverter_Cukh7tk8_es = __esm(() => {
124540
124740
  "tab",
124541
124741
  "lineBreak"
124542
124742
  ]);
124543
- TABLE_LIKE_PREFIX = {
124743
+ FALLBACK_PREFIX = {
124544
124744
  table: "table-auto",
124545
- tableCell: "cell-auto"
124745
+ tableCell: "cell-auto",
124746
+ paragraph: "para-auto",
124747
+ heading: "heading-auto",
124748
+ listItem: "list-auto"
124546
124749
  };
124547
124750
  UUID_LIKE_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
124548
124751
  ALIAS_ELIGIBLE_TYPES = new Set([
@@ -152177,7 +152380,7 @@ var init_remark_gfm_CjV8kaUy_es = __esm(() => {
152177
152380
  init_remark_gfm_z_sDF4ss_es();
152178
152381
  });
152179
152382
 
152180
- // ../../packages/superdoc/dist/chunks/src-D389XrYP.es.js
152383
+ // ../../packages/superdoc/dist/chunks/src-S_W0SobE.es.js
152181
152384
  function deleteProps(obj, propOrProps) {
152182
152385
  const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
152183
152386
  const removeNested = (target, pathParts, index2 = 0) => {
@@ -175893,7 +176096,16 @@ function findTextBlockByNodeId(index2, nodeId) {
175893
176096
  blockId: nodeId,
175894
176097
  matchCount: matches2.length
175895
176098
  });
175896
- return matches2[0];
176099
+ if (matches2.length === 1)
176100
+ return matches2[0];
176101
+ try {
176102
+ const resolved = findBlockByNodeIdOnly(index2, nodeId);
176103
+ if (isTextBlockCandidate(resolved))
176104
+ return resolved;
176105
+ } catch (e) {
176106
+ if (e instanceof DocumentApiAdapterError && e.code === "AMBIGUOUS_TARGET")
176107
+ throw e;
176108
+ }
175897
176109
  }
175898
176110
  function findBlockByTypeAndId(index2, nodeType, nodeId) {
175899
176111
  const key$1 = `${nodeType}:${nodeId}`;
@@ -175902,7 +176114,15 @@ function findBlockByTypeAndId(index2, nodeType, nodeId) {
175902
176114
  nodeType,
175903
176115
  nodeId
175904
176116
  });
175905
- return index2.byId.get(key$1);
176117
+ const exact = index2.byId.get(key$1);
176118
+ if (exact)
176119
+ return exact;
176120
+ try {
176121
+ return findBlockByNodeIdOnly(index2, nodeId);
176122
+ } catch (e) {
176123
+ if (e instanceof DocumentApiAdapterError && e.code === "AMBIGUOUS_TARGET")
176124
+ throw e;
176125
+ }
175906
176126
  }
175907
176127
  function expandDeleteSelection(editor, absFrom, absTo, start$1, end$1) {
175908
176128
  if (absFrom === absTo)
@@ -176342,7 +176562,13 @@ function resolveTextRef(editor, index2, step3, ref$1) {
176342
176562
  return resolveV3TextRef(editor, index2, step3, decoded);
176343
176563
  }
176344
176564
  function resolveBlockRef(editor, index2, step3, ref$1) {
176345
- const candidate = index2.candidates.find((c) => c.nodeId === ref$1);
176565
+ const primaryMatches = index2.candidates.filter((c) => c.nodeId === ref$1);
176566
+ if (primaryMatches.length > 1)
176567
+ throw planError("AMBIGUOUS_TARGET", `Multiple blocks share nodeId "${ref$1}".`, step3.id, {
176568
+ ref: ref$1,
176569
+ count: primaryMatches.length
176570
+ });
176571
+ const candidate = primaryMatches[0] ?? resolveBlockAlias(index2, ref$1);
176346
176572
  if (!candidate)
176347
176573
  return [];
176348
176574
  const blockText = getBlockText(editor, candidate);
@@ -178751,6 +178977,18 @@ function resolveMutationStory(context) {
178751
178977
  const effectiveTargetStory = context.target?.story ?? storyFromRef;
178752
178978
  return resolveStoryFromInput({ in: context.in }, effectiveTargetStory ? { story: effectiveTargetStory } : undefined);
178753
178979
  }
178980
+ function nodeEdgeAfterOffset(editor, nodeType, nodeId) {
178981
+ const index2 = getBlockIndex(editor);
178982
+ const key$1 = `${nodeType}:${nodeId}`;
178983
+ const block = index2.byId.get(key$1);
178984
+ if (!block || !block.node.isTextblock)
178985
+ return 0;
178986
+ const contentStart = block.pos + 1;
178987
+ const contentEnd = block.end - 1;
178988
+ if (contentEnd <= contentStart)
178989
+ return 0;
178990
+ return editor.state.doc.textBetween(contentStart, contentEnd, "", "").length;
178991
+ }
178754
178992
  function editorHasDom(editor) {
178755
178993
  const opts = editor.options;
178756
178994
  return !!(opts?.document ?? opts?.mockDocument ?? (typeof document !== "undefined" ? document : null));
@@ -178821,31 +179059,6 @@ function toTextAddress$1(target) {
178821
179059
  }
178822
179060
  };
178823
179061
  }
178824
- function normalizeWriteLocator(request) {
178825
- const hasBlockId = request.blockId !== undefined;
178826
- const hasOffset = request.offset !== undefined;
178827
- if (hasOffset && request.target)
178828
- throw new DocumentApiAdapterError("INVALID_TARGET", "Cannot combine target with offset on insert request.", { fields: ["target", "offset"] });
178829
- if (hasOffset && !hasBlockId)
178830
- throw new DocumentApiAdapterError("INVALID_TARGET", "offset requires blockId on insert request.", { fields: ["offset", "blockId"] });
178831
- if (!hasBlockId)
178832
- return request;
178833
- if (request.target)
178834
- throw new DocumentApiAdapterError("INVALID_TARGET", "Cannot combine target with blockId on insert request.", { fields: ["target", "blockId"] });
178835
- const effectiveOffset = request.offset ?? 0;
178836
- return {
178837
- kind: "insert",
178838
- target: {
178839
- kind: "text",
178840
- blockId: request.blockId,
178841
- range: {
178842
- start: effectiveOffset,
178843
- end: effectiveOffset
178844
- }
178845
- },
178846
- text: request.text
178847
- };
178848
- }
178849
179062
  function mapPlanReceiptToTextReceipt(_receipt, resolution) {
178850
179063
  return {
178851
179064
  success: true,
@@ -178902,11 +179115,10 @@ function writeWrapper(editor, request, options) {
178902
179115
  const runtime = resolveWriteStoryRuntime(editor, request.in);
178903
179116
  try {
178904
179117
  const storyEditor = runtime.editor;
178905
- const normalizedRequest = normalizeWriteLocator(request);
178906
- const resolved = resolveWriteTarget(storyEditor, normalizedRequest);
179118
+ const resolved = resolveWriteTarget(storyEditor, request);
178907
179119
  if (!resolved)
178908
- throw new DocumentApiAdapterError("TARGET_NOT_FOUND", "Mutation target could not be resolved.", { target: normalizedRequest.target });
178909
- const validationFailure = validateWriteRequest(normalizedRequest, resolved);
179120
+ throw new DocumentApiAdapterError("TARGET_NOT_FOUND", "Mutation target could not be resolved.", {});
179121
+ const validationFailure = validateWriteRequest(request, resolved);
178910
179122
  if (validationFailure)
178911
179123
  return {
178912
179124
  success: false,
@@ -178923,7 +179135,7 @@ function writeWrapper(editor, request, options) {
178923
179135
  };
178924
179136
  if (resolved.structuralEnd) {
178925
179137
  const insertPos = resolved.range.from;
178926
- const text5 = normalizedRequest.text ?? "";
179138
+ const text5 = request.text ?? "";
178927
179139
  const receipt$1 = executeDomainCommand(storyEditor, () => {
178928
179140
  insertParagraphAtEnd(storyEditor, insertPos, text5, mode === "tracked" ? applyTrackedMutationMeta : applyDirectMutationMeta);
178929
179141
  return true;
@@ -178941,7 +179153,7 @@ function writeWrapper(editor, request, options) {
178941
179153
  where: STUB_WHERE,
178942
179154
  args: {
178943
179155
  position: "before",
178944
- content: { text: normalizedRequest.text ?? "" }
179156
+ content: { text: request.text ?? "" }
178945
179157
  }
178946
179158
  },
178947
179159
  targets: [toCompiledTarget(stepId, "text.insert", resolved)]
@@ -179003,6 +179215,16 @@ function buildSelectionStepDef(stepId, request, where) {
179003
179215
  style: { inline: { mode: "preserve" } }
179004
179216
  }
179005
179217
  };
179218
+ case "insert":
179219
+ return {
179220
+ id: stepId,
179221
+ op: "text.insert",
179222
+ where,
179223
+ args: {
179224
+ position: "before",
179225
+ content: { text: request.text }
179226
+ }
179227
+ };
179006
179228
  case "format":
179007
179229
  return {
179008
179230
  id: stepId,
@@ -179027,12 +179249,52 @@ function selectionMutationWrapper(editor, request, options) {
179027
179249
  }
179028
179250
  const stepId = v4_default();
179029
179251
  const compiled = compilePlan(storyEditor, [buildSelectionStepDef(stepId, request, buildSelectionWhere(request))]);
179252
+ if (request.kind === "insert" && request.target) {
179253
+ if (request.target.start.kind === "nodeEdge" || request.target.end.kind === "nodeEdge")
179254
+ throw new DocumentApiAdapterError("INVALID_TARGET", "Text inserts do not support nodeEdge targets. Use a text-offset target inside a textblock.");
179255
+ }
179256
+ if (request.kind === "insert") {
179257
+ const target = compiled.mutationSteps.find((s2) => s2.step.id === stepId)?.targets[0];
179258
+ if (target) {
179259
+ if (target.kind === "span")
179260
+ return {
179261
+ success: false,
179262
+ resolution: buildSelectionResolutionFromCompiled(compiled, stepId),
179263
+ failure: {
179264
+ code: "INVALID_TARGET",
179265
+ message: "Insert operations require a single-block target, not a multi-segment span."
179266
+ }
179267
+ };
179268
+ if (target.kind === "range") {
179269
+ if (!storyEditor.state.doc.resolve(target.absFrom).parent.isTextblock)
179270
+ return {
179271
+ success: false,
179272
+ resolution: buildSelectionResolutionFromCompiled(compiled, stepId),
179273
+ failure: {
179274
+ code: "INVALID_TARGET",
179275
+ message: "Text insert target must be inside a textblock."
179276
+ }
179277
+ };
179278
+ }
179279
+ }
179280
+ }
179030
179281
  checkRevision(storyEditor, options?.expectedRevision);
179031
- if (options?.dryRun)
179282
+ if (options?.dryRun) {
179283
+ const resolution$1 = buildSelectionResolutionFromCompiled(compiled, stepId);
179284
+ if (request.kind === "insert" && !request.text)
179285
+ return {
179286
+ success: false,
179287
+ resolution: resolution$1,
179288
+ failure: {
179289
+ code: "NO_OP",
179290
+ message: "Insert text is empty."
179291
+ }
179292
+ };
179032
179293
  return {
179033
179294
  success: true,
179034
- resolution: buildSelectionResolutionFromCompiled(compiled, stepId)
179295
+ resolution: resolution$1
179035
179296
  };
179297
+ }
179036
179298
  const stepOutcome = executeCompiledPlan(storyEditor, compiled, {
179037
179299
  changeMode: mode,
179038
179300
  expectedRevision: options?.expectedRevision
@@ -179173,17 +179435,68 @@ function insertStructuredInner(editor, input2, options) {
179173
179435
  if (isStructuralInsertInput2(input2))
179174
179436
  return executeStructuralInsertWrapper(editor, input2, options);
179175
179437
  const contentType = input2.type ?? "text";
179176
- const { value, target } = input2;
179438
+ const { value, target, ref: ref$1 } = input2;
179177
179439
  if ((options?.changeMode ?? "direct") === "tracked")
179178
179440
  throw new DocumentApiAdapterError("CAPABILITY_UNAVAILABLE", `Tracked mode is not supported for type: '${contentType}' insert operations.`);
179179
179441
  let resolvedRange;
179180
179442
  let effectiveTarget;
179443
+ if (ref$1 !== undefined && ref$1 === "")
179444
+ throw new DocumentApiAdapterError("INVALID_TARGET", "ref must be a non-empty string.", { ref: ref$1 });
179181
179445
  if (target) {
179182
- const range = resolveTextTarget(editor, target);
179183
- if (!range)
179184
- throw new DocumentApiAdapterError("TARGET_NOT_FOUND", "Structured insert target could not be resolved.", { target });
179185
- resolvedRange = range;
179186
- effectiveTarget = target;
179446
+ const resolved = resolveSelectionTarget(editor, target);
179447
+ resolvedRange = {
179448
+ from: resolved.absFrom,
179449
+ to: resolved.absTo
179450
+ };
179451
+ const startPoint = target.start;
179452
+ const blockId = startPoint.kind === "text" ? startPoint.blockId : startPoint.node.nodeId;
179453
+ let offset$1;
179454
+ if (startPoint.kind === "text")
179455
+ offset$1 = startPoint.offset;
179456
+ else if (startPoint.edge === "after")
179457
+ offset$1 = nodeEdgeAfterOffset(editor, startPoint.node.nodeType, startPoint.node.nodeId);
179458
+ else
179459
+ offset$1 = 0;
179460
+ effectiveTarget = {
179461
+ kind: "text",
179462
+ blockId,
179463
+ range: {
179464
+ start: offset$1,
179465
+ end: offset$1
179466
+ }
179467
+ };
179468
+ } else if (ref$1) {
179469
+ const dummyStepId = v4_default();
179470
+ const compiled = compilePlan(editor, [{
179471
+ id: dummyStepId,
179472
+ op: "text.insert",
179473
+ where: {
179474
+ by: "ref",
179475
+ ref: ref$1
179476
+ },
179477
+ args: {
179478
+ position: "before",
179479
+ content: { text: "" }
179480
+ }
179481
+ }]);
179482
+ const compiledTarget = compiled.mutationSteps.find((s2) => s2.step.id === dummyStepId)?.targets[0];
179483
+ if (!compiledTarget)
179484
+ throw new DocumentApiAdapterError("TARGET_NOT_FOUND", "Structured insert ref could not be resolved.", { ref: ref$1 });
179485
+ if (compiledTarget.kind === "span")
179486
+ throw new DocumentApiAdapterError("INVALID_TARGET", "Insert operations require a single-block ref. Multi-segment refs are not supported.", { ref: ref$1 });
179487
+ resolvedRange = {
179488
+ from: compiledTarget.absFrom,
179489
+ to: compiledTarget.absFrom
179490
+ };
179491
+ const refTarget = buildSelectionResolutionFromCompiled(compiled, dummyStepId).target;
179492
+ effectiveTarget = {
179493
+ kind: "text",
179494
+ blockId: refTarget.blockId,
179495
+ range: {
179496
+ start: refTarget.range.start,
179497
+ end: refTarget.range.start
179498
+ }
179499
+ };
179187
179500
  } else {
179188
179501
  const fallback = resolveDefaultInsertTarget(editor);
179189
179502
  if (!fallback)
@@ -179208,13 +179521,13 @@ function insertStructuredInner(editor, input2, options) {
179208
179521
  }
179209
179522
  }
179210
179523
  const resolution = buildTextMutationResolution({
179211
- requestedTarget: target,
179524
+ requestedTarget: effectiveTarget,
179212
179525
  target: effectiveTarget,
179213
179526
  range: resolvedRange,
179214
179527
  text: readTextAtResolvedRange(editor, resolvedRange)
179215
179528
  });
179216
179529
  const { from: from$1, to } = resolvedRange;
179217
- if (from$1 !== to)
179530
+ if (target && from$1 !== to)
179218
179531
  return {
179219
179532
  success: false,
179220
179533
  resolution,
@@ -189771,7 +190084,7 @@ function createTableOfContentsWrapper(editor, input2, options) {
189771
190084
  toc: buildTocAddress(resolvePostMutationTocId(editor.state.doc, sdBlockId))
189772
190085
  };
189773
190086
  }
189774
- function stableHash2(input2) {
190087
+ function stableHash$12(input2) {
189775
190088
  let hash$3 = 2166136261;
189776
190089
  for (let index2 = 0;index2 < input2.length; index2 += 1) {
189777
190090
  hash$3 ^= input2.charCodeAt(index2);
@@ -189780,7 +190093,7 @@ function stableHash2(input2) {
189780
190093
  return (hash$3 >>> 0).toString(16).padStart(8, "0");
189781
190094
  }
189782
190095
  function resolvePublicTcEntryNodeId(node3, pos) {
189783
- return `tc-entry-${stableHash2(`${pos}:${typeof node3.attrs?.instruction === "string" ? node3.attrs.instruction : ""}`)}`;
190096
+ return `tc-entry-${stableHash$12(`${pos}:${typeof node3.attrs?.instruction === "string" ? node3.attrs.instruction : ""}`)}`;
189784
190097
  }
189785
190098
  function findAllTcEntryNodes(doc$12) {
189786
190099
  const results = [];
@@ -194018,15 +194331,47 @@ function buildRefInstruction(input2) {
194018
194331
  parts.push("\\h");
194019
194332
  return parts.join(" ");
194020
194333
  }
194334
+ function stableHash2(input2) {
194335
+ let hash$3 = 2166136261;
194336
+ for (let index2 = 0;index2 < input2.length; index2 += 1) {
194337
+ hash$3 ^= input2.charCodeAt(index2);
194338
+ hash$3 = Math.imul(hash$3, 16777619);
194339
+ }
194340
+ return (hash$3 >>> 0).toString(16).padStart(8, "0");
194341
+ }
194342
+ function toReferenceBlockType(node3) {
194343
+ switch (node3.type.name) {
194344
+ case "documentIndex":
194345
+ case "index":
194346
+ return "index";
194347
+ case "bibliography":
194348
+ return "bibliography";
194349
+ case "tableOfAuthorities":
194350
+ return "tableOfAuthorities";
194351
+ default:
194352
+ return;
194353
+ }
194354
+ }
194355
+ function resolvePublicReferenceBlockNodeId(node3, pos) {
194356
+ const sdBlockId = toId(node3.attrs?.sdBlockId);
194357
+ if (sdBlockId)
194358
+ return sdBlockId;
194359
+ const blockType = toReferenceBlockType(node3);
194360
+ if (!blockType)
194361
+ throw new Error(`Unsupported reference block node type: ${node3.type.name}`);
194362
+ return `${REFERENCE_BLOCK_PREFIX[blockType]}-${stableHash2(`${blockType}:${pos}`)}`;
194363
+ }
194021
194364
  function findAllIndexNodes(doc$12) {
194022
194365
  const results = [];
194023
194366
  doc$12.descendants((node3, pos) => {
194024
194367
  if (node3.type.name === "documentIndex" || node3.type.name === "index") {
194025
- const nodeId = node3.attrs?.sdBlockId ?? `index-${pos}`;
194368
+ const commandNodeId = node3.attrs?.sdBlockId;
194369
+ const nodeId = resolvePublicReferenceBlockNodeId(node3, pos);
194026
194370
  results.push({
194027
194371
  node: node3,
194028
194372
  pos,
194029
- nodeId
194373
+ nodeId,
194374
+ commandNodeId
194030
194375
  });
194031
194376
  return false;
194032
194377
  }
@@ -194035,22 +194380,25 @@ function findAllIndexNodes(doc$12) {
194035
194380
  return results;
194036
194381
  }
194037
194382
  function resolveIndexTarget(doc$12, target) {
194038
- const found2 = findAllIndexNodes(doc$12).find((i4) => i4.nodeId === target.nodeId);
194383
+ const found2 = findAllIndexNodes(doc$12).find((i4) => i4.nodeId === target.nodeId || i4.commandNodeId === target.nodeId);
194039
194384
  if (!found2)
194040
194385
  throw new DocumentApiAdapterError("TARGET_NOT_FOUND", `Index with nodeId "${target.nodeId}" not found.`);
194041
194386
  return found2;
194042
194387
  }
194043
- function extractIndexInfo(node3) {
194044
- const instruction = node3.attrs?.instruction ?? "";
194388
+ function resolvePostMutationIndexId(doc$12, sdBlockId) {
194389
+ return findAllIndexNodes(doc$12).find((node3) => node3.commandNodeId === sdBlockId)?.nodeId ?? sdBlockId;
194390
+ }
194391
+ function extractIndexInfo(resolved) {
194392
+ const instruction = resolved.node.attrs?.instruction ?? "";
194045
194393
  return {
194046
194394
  address: {
194047
194395
  kind: "block",
194048
194396
  nodeType: "index",
194049
- nodeId: node3.attrs?.sdBlockId ?? ""
194397
+ nodeId: resolved.nodeId
194050
194398
  },
194051
194399
  instruction,
194052
194400
  config: parseIndexInstruction(instruction),
194053
- entryCount: node3.childCount
194401
+ entryCount: resolved.node.childCount
194054
194402
  };
194055
194403
  }
194056
194404
  function buildIndexDiscoveryItem(resolved, evaluatedRevision) {
@@ -194271,7 +194619,7 @@ function indexListWrapper(editor, query2) {
194271
194619
  });
194272
194620
  }
194273
194621
  function indexGetWrapper(editor, input2) {
194274
- return extractIndexInfo(resolveIndexTarget(editor.state.doc, input2.target).node);
194622
+ return extractIndexInfo(resolveIndexTarget(editor.state.doc, input2.target));
194275
194623
  }
194276
194624
  function indexInsertWrapper(editor, input2, options) {
194277
194625
  rejectTrackedMode("index.insert", options);
@@ -194303,7 +194651,7 @@ function indexInsertWrapper(editor, input2, options) {
194303
194651
  return indexSuccess({
194304
194652
  kind: "block",
194305
194653
  nodeType: "index",
194306
- nodeId: editor.state.doc.nodeAt(pos)?.attrs?.sdBlockId ?? `index-${pos}`
194654
+ nodeId: resolvePostMutationIndexId(editor.state.doc, requestedNodeId)
194307
194655
  });
194308
194656
  }
194309
194657
  function indexConfigureWrapper(editor, input2, options) {
@@ -194894,6 +195242,8 @@ function captionsRemoveWrapper(editor, input2, options) {
194894
195242
  }
194895
195243
  function captionsConfigureWrapper(editor, input2, options) {
194896
195244
  rejectTrackedMode("captions.configure", options);
195245
+ if (options?.dryRun)
195246
+ return configSuccess();
194897
195247
  if (!receiptApplied$3(executeDomainCommand(editor, () => {
194898
195248
  const { tr } = editor.state;
194899
195249
  let changed = false;
@@ -195237,11 +195587,13 @@ function findAllBibliographies(doc$12) {
195237
195587
  const results = [];
195238
195588
  doc$12.descendants((node3, pos) => {
195239
195589
  if (node3.type.name === "bibliography") {
195240
- const nodeId = node3.attrs?.sdBlockId ?? `bibliography-${pos}`;
195590
+ const commandNodeId = node3.attrs?.sdBlockId;
195591
+ const nodeId = resolvePublicReferenceBlockNodeId(node3, pos);
195241
195592
  results.push({
195242
195593
  node: node3,
195243
195594
  pos,
195244
- nodeId
195595
+ nodeId,
195596
+ commandNodeId
195245
195597
  });
195246
195598
  return false;
195247
195599
  }
@@ -195250,11 +195602,14 @@ function findAllBibliographies(doc$12) {
195250
195602
  return results;
195251
195603
  }
195252
195604
  function resolveBibliographyTarget(doc$12, target) {
195253
- const found2 = findAllBibliographies(doc$12).find((b$1) => b$1.nodeId === target.nodeId);
195605
+ const found2 = findAllBibliographies(doc$12).find((b$1) => b$1.nodeId === target.nodeId || b$1.commandNodeId === target.nodeId);
195254
195606
  if (!found2)
195255
195607
  throw new DocumentApiAdapterError("TARGET_NOT_FOUND", `Bibliography with nodeId "${target.nodeId}" not found.`);
195256
195608
  return found2;
195257
195609
  }
195610
+ function resolvePostMutationBibliographyId(doc$12, sdBlockId) {
195611
+ return findAllBibliographies(doc$12).find((b$1) => b$1.commandNodeId === sdBlockId)?.nodeId ?? sdBlockId;
195612
+ }
195258
195613
  function extractBibliographyInfo(resolved) {
195259
195614
  const instruction = resolved.node.attrs?.instruction ?? "";
195260
195615
  const style2 = resolved.node.attrs?.style ?? "";
@@ -195269,13 +195624,31 @@ function extractBibliographyInfo(resolved) {
195269
195624
  instruction
195270
195625
  };
195271
195626
  }
195272
- function getSourcesFromConverter(editor) {
195627
+ function getBibliographyPart(editor) {
195273
195628
  const converter = editor.converter;
195274
195629
  if (!converter)
195275
- return [];
195630
+ return;
195276
195631
  converter.bibliographyPart ??= {};
195277
- converter.bibliographyPart.sources ??= [];
195278
- return converter.bibliographyPart.sources;
195632
+ return converter.bibliographyPart;
195633
+ }
195634
+ function getSourcesFromConverter(editor) {
195635
+ const part = getBibliographyPart(editor);
195636
+ if (!part)
195637
+ return [];
195638
+ part.sources ??= [];
195639
+ return part.sources;
195640
+ }
195641
+ function toSelectedStylePath(styleName) {
195642
+ if (styleName.startsWith("/") || styleName.toUpperCase().includes(".XSL"))
195643
+ return styleName;
195644
+ return `/${styleName}.XSL`;
195645
+ }
195646
+ function syncBibliographyStyleToConverter(editor, style2) {
195647
+ const part = getBibliographyPart(editor);
195648
+ if (!part)
195649
+ return;
195650
+ part.selectedStyle = toSelectedStylePath(style2);
195651
+ part.styleName = style2;
195279
195652
  }
195280
195653
  function resolveSourceTarget(editor, target) {
195281
195654
  const found2 = getSourcesFromConverter(editor).find((s2) => s2.tag === target.sourceId);
@@ -195600,7 +195973,7 @@ function bibliographyGetWrapper(editor, input2) {
195600
195973
  }
195601
195974
  function bibliographyInsertWrapper(editor, input2, options) {
195602
195975
  rejectTrackedMode("citations.bibliography.insert", options);
195603
- const nodeId = `bibliography-${Date.now()}`;
195976
+ const nodeId = v4_default();
195604
195977
  const address2 = {
195605
195978
  kind: "block",
195606
195979
  nodeType: "bibliography",
@@ -195615,7 +195988,8 @@ function bibliographyInsertWrapper(editor, input2, options) {
195615
195988
  if (!receiptApplied$1(executeDomainCommand(editor, () => {
195616
195989
  const node3 = bibType.create({
195617
195990
  instruction: "BIBLIOGRAPHY",
195618
- sdBlockId: nodeId
195991
+ sdBlockId: nodeId,
195992
+ ...input2.style !== undefined ? { style: input2.style } : {}
195619
195993
  }, editor.schema.nodes.paragraph.create());
195620
195994
  const { tr } = editor.state;
195621
195995
  tr.insert(pos, node3);
@@ -195624,39 +195998,38 @@ function bibliographyInsertWrapper(editor, input2, options) {
195624
195998
  return true;
195625
195999
  }, { expectedRevision: options?.expectedRevision })))
195626
196000
  return bibFailure("NO_OP", "Insert produced no change.");
195627
- return bibSuccess(address2);
196001
+ if (input2.style !== undefined)
196002
+ syncBibliographyStyleToConverter(editor, input2.style);
196003
+ return bibSuccess({
196004
+ kind: "block",
196005
+ nodeType: "bibliography",
196006
+ nodeId: resolvePostMutationBibliographyId(editor.state.doc, nodeId)
196007
+ });
195628
196008
  }
195629
196009
  function bibliographyConfigureWrapper(editor, input2, options) {
195630
196010
  rejectTrackedMode("citations.bibliography.configure", options);
196011
+ const resolved = resolveBibliographyTarget(editor.state.doc, input2.target);
195631
196012
  const address2 = {
195632
196013
  kind: "block",
195633
196014
  nodeType: "bibliography",
195634
- nodeId: findAllBibliographies(editor.state.doc)[0]?.nodeId ?? ""
196015
+ nodeId: resolved.nodeId
195635
196016
  };
195636
196017
  if (options?.dryRun)
195637
196018
  return bibSuccess(address2);
195638
196019
  if (!receiptApplied$1(executeDomainCommand(editor, () => {
195639
- const { tr } = editor.state;
195640
- let changed = false;
195641
- tr.doc.descendants((node3, pos) => {
195642
- if (node3.type.name !== "bibliography")
195643
- return true;
195644
- if (node3.attrs.style === input2.style)
195645
- return true;
195646
- tr.setNodeMarkup(tr.mapping.map(pos), undefined, {
195647
- ...node3.attrs,
195648
- style: input2.style
195649
- });
195650
- changed = true;
196020
+ if (resolved.node.attrs.style === input2.style)
195651
196021
  return false;
196022
+ const { tr } = editor.state;
196023
+ tr.setNodeMarkup(resolved.pos, undefined, {
196024
+ ...resolved.node.attrs,
196025
+ style: input2.style
195652
196026
  });
195653
- if (!changed)
195654
- return false;
195655
196027
  editor.dispatch(tr);
195656
196028
  clearIndexCache(editor);
195657
196029
  return true;
195658
196030
  }, { expectedRevision: options?.expectedRevision })))
195659
196031
  return bibFailure("NO_OP", "Configure produced no change.");
196032
+ syncBibliographyStyleToConverter(editor, input2.style);
195660
196033
  return bibSuccess(address2);
195661
196034
  }
195662
196035
  function bibliographyRebuildWrapper(editor, input2, options) {
@@ -195773,11 +196146,13 @@ function findAllAuthorities(doc$12) {
195773
196146
  const results = [];
195774
196147
  doc$12.descendants((node3, pos) => {
195775
196148
  if (node3.type.name === "tableOfAuthorities") {
195776
- const nodeId = node3.attrs?.sdBlockId ?? `toa-${pos}`;
196149
+ const commandNodeId = node3.attrs?.sdBlockId;
196150
+ const nodeId = resolvePublicReferenceBlockNodeId(node3, pos);
195777
196151
  results.push({
195778
196152
  node: node3,
195779
196153
  pos,
195780
- nodeId
196154
+ nodeId,
196155
+ commandNodeId
195781
196156
  });
195782
196157
  return false;
195783
196158
  }
@@ -195786,11 +196161,14 @@ function findAllAuthorities(doc$12) {
195786
196161
  return results;
195787
196162
  }
195788
196163
  function resolveAuthorityTarget(doc$12, target) {
195789
- const found2 = findAllAuthorities(doc$12).find((a2) => a2.nodeId === target.nodeId);
196164
+ const found2 = findAllAuthorities(doc$12).find((a2) => a2.nodeId === target.nodeId || a2.commandNodeId === target.nodeId);
195790
196165
  if (!found2)
195791
196166
  throw new DocumentApiAdapterError("TARGET_NOT_FOUND", `Table of authorities with nodeId "${target.nodeId}" not found.`);
195792
196167
  return found2;
195793
196168
  }
196169
+ function resolvePostMutationAuthorityId(doc$12, sdBlockId) {
196170
+ return findAllAuthorities(doc$12).find((node3) => node3.commandNodeId === sdBlockId)?.nodeId ?? sdBlockId;
196171
+ }
195794
196172
  function extractAuthorityInfo(resolved) {
195795
196173
  const instruction = resolved.node.attrs?.instruction ?? "";
195796
196174
  return {
@@ -196006,7 +196384,7 @@ function authoritiesInsertWrapper(editor, input2, options) {
196006
196384
  return toaSuccess({
196007
196385
  kind: "block",
196008
196386
  nodeType: "tableOfAuthorities",
196009
- nodeId: editor.state.doc.nodeAt(pos)?.attrs?.sdBlockId ?? `toa-${pos}`
196387
+ nodeId: resolvePostMutationAuthorityId(editor.state.doc, requestedNodeId)
196010
196388
  });
196011
196389
  }
196012
196390
  function authoritiesConfigureWrapper(editor, input2, options) {
@@ -222331,7 +222709,7 @@ var Node$13 = class Node$14 {
222331
222709
  console.warn("Failed to initialize developer tools:", error);
222332
222710
  }
222333
222711
  }
222334
- }, BLANK_DOCX_BASE64 = `UEsDBBQAAAAIAAAAIQAykW9XXgEAAKUFAAATABwAW0NvbnRlbnRfVHlwZXNdLnhtbFVUCQADMNDOEjDQzhJ1eAsAAQT1AQAABBQAAAC1lMtqwzAQRfeF/oPRNthKuiilxMmij2UbaPoBijRORPVCmrz+vuM4NaWkMeSxMcgz994zQsxwvLEmW0FM2ruSDYo+y8BJr7Sbl+xz+po/sCyhcEoY76BkW0hsPLq9GU63AVJGapdKtkAMj5wnuQArUuEDOKpUPlqBdIxzHoT8EnPgd/3+PZfeITjMsfZgo+EzVGJpMHvZ0O+GJIJJLHtqGuuskokQjJYCqc5XTv1JyfcJBSl3PWmhQ+pRA+MHE+rK/wF73TtdTdQKsomI+CYsdfG1j4orL5eWlMVxmwOcvqq0hFZfu4XoJaREd25N0Vas0K7XxeGWdgaRlJcHaa07IRJuDaTLEzS+3fGASIJrAOydOxHWMPu4GsUv806QinKnYmbg8hitdScE0hqA5js4m2NncyySOifRh0RrJZ4w9s/eqNU5DRwgoj7+6tpEsj57PqhXkgJ1IJvvluzoG1BLAwQKAAAAAACTZE1bAAAAAAAAAAAAAAAACQAcAGRvY1Byb3BzL1VUCQADhhztaIcc7Wh1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAAAAhACEYr1llAQAAxQIAABAAHABkb2NQcm9wcy9hcHAueG1sVVQJAAMw0M4SMNDOEnV4CwABBPUBAAAEFAAAAJ1STU/DMAy9I/Efqt63dBwmNHlBaAhx4GPSCpyjxG0j0iRKson9e5wVSoEbOdnP9st7TuDqvTfFAUPUzq7LxbwqC7TSKW3bdflc384uyyImYZUwzuK6PGIsr/j5GWyD8xiSxlgQhY3rskvJrxiLssNexDmVLVUaF3qRKA0tc02jJd44ue/RJnZRVUuG7wmtQjXzI2E5MK4O6b+kysmsL77UR098HGrsvREJ+WOeNHPlUg9sRKF2SZha98grgscEtqLFyBfAhgBeXVAx9wwBbDoRhEy0vwxOMrj23mgpEu2VP2gZXHRNKp5OYos8DWzaAmRgh3IfdDpmqmkK99ri6YIhIFVBtEH47gROMthJYXBD1nkjTERg3wBsXO+FJTo2RsT3Fp997W7yFj5HfoITi686dTsvJP4yO8FhRygqUj8KGAG4o8cIJrPTrG1RffX8LeT1vQy/ki+W84rOaV9fGLkevwv/AFBLAwQUAAAACAAAACEACvOn+GYBAADtAgAAEQAcAGRvY1Byb3BzL2NvcmUueG1sVVQJAAMw0M4SMNDOEnV4CwABBPUBAAAEFAAAAJ2SXU+DMBSG7038D6T3UGBqDAGWTLMrZ0yc0XhX27Otjn6k7cb27y0wmMRdeXc+nvP29G3z6UFUwR6M5UoWKIliFICkinG5LtDbch7eo8A6IhmplIQCHcGiaXl9lVOdUWXgxSgNxnGwgVeSNqO6QBvndIaxpRsQxEaekL65UkYQ51OzxprQLVkDTuP4DgtwhBFHcCMY6kERnSQZHST1zlStAKMYKhAgncVJlOAz68AIe3Gg7fwiBXdHDRfRvjnQB8sHsK7rqJ60qN8/wR+Lp9f2qiGXjVcUUJkzmjnuKihzfA59ZHdf30BdVx4SH1MDxClTPnO6DWZgJKlapq83jm/hWCvDrJ8eZR5jYKnh2vl37LRHBU9XxLqFf9gVBzY7jo/5224mDOx58y/KtCWGND+Z3K0GLPDmZJ2Vfed98vC4nKMyjdObMEnD5G6Zpll8m8XxZ7PdaP4sKE4L/FuxF+gMGn/Q8gdQSwMECgAAAAAAk2RNWwAAAAAAAAAAAAAAAAYAHABfcmVscy9VVAkAA4Yc7WiHHO1odXgLAAEE9QEAAAQUAAAAUEsDBBQAAAAIAAAAIQAekRq36QAAAE4CAAALABwAX3JlbHMvLnJlbHNVVAkAAzDQzhIw0M4SdXgLAAEE9QEAAAQUAAAArZLBasMwDEDvg/2D0b1R2sEYo04vY9DbGNkHCFtJTBPb2GrX/v082NgCXelhR8vS05PQenOcRnXglF3wGpZVDYq9Cdb5XsNb+7x4AJWFvKUxeNZw4gyb5vZm/cojSSnKg4tZFYrPGgaR+IiYzcAT5SpE9uWnC2kiKc/UYySzo55xVdf3mH4zoJkx1dZqSFt7B6o9Rb6GHbrOGX4KZj+xlzMtkI/C3rJdxFTqk7gyjWop9SwabDAvJZyRYqwKGvC80ep6o7+nxYmFLAmhCYkv+3xmXBJa/ueK5hk/Nu8hWbRf4W8bnF1B8wFQSwMECgAAAAAAk2RNWwAAAAAAAAAAAAAAAAUAHAB3b3JkL1VUCQADhhztaIcc7Wh1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAoWRNW+xw0GIQAgAAtAcAABIAHAB3b3JkL2ZvbnRUYWJsZS54bWxVVAkAA54c7WieHO1odXgLAAEE9QEAAAQUAAAAvZPBbqMwEIbvlfoOlu8NhpA0RSFV222kvexh1T6AY0ywFtvI44Tk7dcYiBSyuy3tqiCEGf75mPnHLO8PskR7bkBoleJwQjDiiulMqG2KX1/WNwuMwFKV0VIrnuIjB3y/ur5a1kmulQXk8hUkkqW4sLZKggBYwSWFia64ci9zbSS17tFsA0nNr111w7SsqBUbUQp7DCJC5vj6CrmjZZn3oHSeC8a/abaTXFkPCQwvHVYrKEQFZ8j6Pcham6wymnEA170sW6ikQp2zwviCJgUzGnRuJ663rjbPc4yQ+JUsB5TZOEr0Z8qc8cM40KIDBS7zAiaycbD5CSayIexjZQ0p2W4UJ5r2FTW3Jn0IhMxmxThmP8GgyaWWFhSKCywf1+/sxDxKNwgkWfJ9q7Shm9KR3CZDbosgD0btZJobaieO+j6Qdwiv2mK6nxLViaLSUV6E5IB+8Br91JKqXtZJK6o08NCp97RMMWkanZMpmZHYXZFbxTg4T2EFNcDtKYUMBTmVojz2743/6kBSCcuKXrGnRjQdD0Ugtk6ygw1J8TMhJHper3EbCVP85CK3i9ljF4maSvxx10WmpwhpIsxz/GPYcpjnnDT915dB6+Bf/HzSOyO4aRx908tb59+d97TxMv60l1Jn3PzbzFwcePYRJ+PpVzv54MZevunho9uPsfewPT/rIdQC4P/sx4evdrFfwuo3UEsDBBQAAAAIAAAAIQCWFrgr1QIAAIgLAAARABwAd29yZC9kb2N1bWVudC54bWxVVAkAAzDQzhIw0M4SdXgLAAEE9QEAAAQUAAAApZZbb9sgFMffJ+07WH5v8S1OYjWttGab+jCpWrcPQIDEqAYsILd9+h3s+LJ5qxz3CXPg/PjDORxz93AShXdg2nAlV354G/gek0RRLncr/+ePLzcL3zMWS4oLJdnKPzPjP9x//HB3zKgie8Gk9QAhTXYsycrPrS0zhAzJmcDmVnCilVFbe0uUQGq75YSho9IURUEYVF+lVoQZA+s9YnnAxr/gyGkcjWp8BGcHTBDJsbbs1DHCqyEztESLISiaAIIdRuEQFV+NSpFTNQAlk0CgakCaTSP9Y3PpNFI0JM2nkeIhaTGNNEgnMUxwVTIJg1ulBbbQ1TsksH7dlzcALrHlG15wewZmkDYYzOXrBEXg1RJETK8mzJFQlBUxbShq5e+1zC7+N62/k57V/pem9WDFuGVhuSViJ1sY2/jqMWdXu68vhaU6NaRZAeeopMl52VYHMZUGg3kDObx1AAdR+G1lC0detf+VtnUdhg44Rv4ldqKolb9NDIMR0XSI1mOMhD/XbJQIyOBu4UlH0zvccGTxaQDRAJASNvJn0TAWFwYi3e12HD7yWjWctOVw2uNME9MD0P1ViChudLjGufdYhlqaX4drYoScL7Y4xybvE9l1G5y1uLPonXe5e9+l+qrVvuxo/H20p668HuV1GwzSvyNYmveJeclxCVVXkOxpJ5XGmwIUwVXz4LZ4VQS8Ol1d49U3wGti7VUJ5Lmq5d/DO22j6Nm1JQwkWYk1foI0T8JlmqTz0K+s8Jezzhoks+VivpyBNYM3If0OJkiveD3/1JqetTPGYZA8fm6Na7bF+8IOpz/3JiMnwzBin/VYfiV89/ILBqFihVGUBG4iJHQ4W8A3qid8w45oFRTWMKmnaL7LbdfdKGuV6PoF2/ZGc4Ypg3XnUdXdKmV73d3eVt3LckQVBqymxITVcyozvIe/aheSrOCSPXNLQGWcVqOo2Xf1WUcEdU/o+99QSwMEFAAAAAgAAAAhAMrnZYorBAAAvgwAABEAHAB3b3JkL3NldHRpbmdzLnhtbFVUCQADMNDOEjDQzhJ1eAsAAQT1AQAABBQAAAC1V22PmzgQ/n7S/QfE58uG1ySLmq3yervV5lqVre6zAZNYa2Nkm03T0/33GwwO9BZVSav9hJln5pnxeGYM795/ZdR6wUISXsxt98axLVykPCPFfm5/edqOZrYlFSoyRHmB5/YJS/v93e+/vTtGEisFatICikJGLJ3bB6XKaDyW6QEzJG94iQsAcy4YUvAq9mOGxHNVjlLOSqRIQihRp7HnOBO7peFzuxJF1FKMGEkFlzxXtUnE85ykuH0YC3GJ38ZkzdOK4UJpj2OBKcTAC3kgpTRs7GfZADwYkpcfbeKFUaN3dJ0LtnvkIjtbXBJebVAKnmIp4YAYNQGSonMcvCI6+74B3+0WNRWYu45e9SMPryPwXhFMUvz1Oo5ZyzEGyz4Pya7jmZx5SNbj+blgegRZdRWF55s46kdt3uOSmcoO19GZMxrXtkihA5KHPiO+boPhme7EunxLekkFNtAjSQQSp375sTR62BdcoIRCOFCGFlSSpaOzmqOsH1ZTHZbJg6WTa9/B1PnGObOOUYlFCq0HI8tz7HENQMHzPFZIAVEkS0ypnmEpxQj8HqO9QAymj5FomwznqKLqCSWx4iUovSDY3tRQpgckUKqwiEuUAtuKF0pwavQy/hdXK5hkAhqttdBzrVvFzYwEiwIx2PB3c2/HM1xHVgly+cnYxrsb9l3+3xGHmS5Ihp/qRMfqRPEWgo/JN7wosg+VVAQY9fT7hQh+FAAuas8foTSeTiXeYqQqSNMbOdMnsaWk3BEhuHgoMqiNN3NG8hwLcECg1nZQPkTwo87zPUYZXKVv5LeS+G9Qhs70n6Asn5dcKc7uT+UBcv1rJ6nrfdwvX/ggyKRZfOZcnVVhbPnr6bKJtEYvQXzXCVabQWTibN1hm0XgO/4gsnLXbjCMhLPlaggJboOJuxhCJqG3CcIhZLH0Zv5sCFku3Wk4iKxW/srfDiIbZz28n83Km04HY9vees7tpj2d9kxYVH9qfBJmVTe2xRqLFWKJIMja1R8j41ojEc9LUhg8wTClcR+Jq8SAo1EDSIYo3UKJGcBp5BmR5Rrnek13SOw73lZDDEphyn44c9VTG4s/Ba/KBj0KVDYNa1TcIGgtSaEeCTNyWSWxsSrgXulBVZF9fBE6T116jpGCBtCD7xHpRtK6uBh9idtGoyKumwTvUFk2vZbs3blNyf6g3Lo9FLxl8M2qX5K912KexrwG0y8orXcG2u2ik3lG1tPzjczvZIGRBZ0sNLKwk02MbFLLDjBdBVx1z9D2ZlnLc04pP+LsvsNficwlmBI48fjEku5uu2kwSiTMoRKuQcWFwf7QmBtEGU8f6vs6aOT+YhGuF860gUN9fSo9qiC1n3G+RBJnLWZMw8b0n8nEmbjuajYKZpvb0WYaBKOZu7wdTafO1PW3rufPnH/bPjA/Hnf/AVBLAwQUAAAACAAAACEA24Vsw30EAACXHQAAEgAcAHdvcmQvbnVtYmVyaW5nLnhtbFVUCQADMNDOEjDQzhJ1eAsAAQT1AQAABBQAAADNmc1u4zYQx+8F+g6CgB4Tifq2sM4iySZFFttF0U3RMy3RlhB+CBRlx9d9mT5CH2tfoaRkyXLkxJIctz4pJjk/zQxnyL+dDx+fCdaWiOcpo1MdXJq6hmjE4pQupvqfj/cXga7lAtIYYkbRVF+jXP949fNPH1YhLcgMcblQkwyah6ssmuqJEFloGHmUIALzS5JGnOVsLi4jRgw2n6cRMlaMx4ZlArP8K+MsQnkuObeQLmGub3DRcz9azOFKGiugY0QJ5AI9bxlgMMQ1JkbQBVkjQDJCC3RR9mCUZyivOiBnFEh61SG540h7gvPGkawuyR9HsrukYBypU06kW+AsQ1ROzhknUMiPfGEQyJ+K7EKCMyjSWYpTsZZM06sxMKVPIzySVg2B2PFggm8QFiNsxzWFTfWC03Bjf9HYK9fDyn7zaCwQ7vda+bqJgZ4FzkVty/vkrjL/xKKCICrKrBkcYZlHRvMkzZrTgYylycmkhizfSsCSYL052UDPVnvtaPtUbcMW2Mf9zd4RXHn+NhGYPXZTIRqLPi7svrP2hMgK3r54VGpayQU9D58aYHUAXoR6XhY1I9gwjGjb3YqT9myrmuM1nDRuccY50wLExSCEZdd+qIcyb7HyWMTJMFy9R4ayhQImME/aRDQsQLfBrUkr39niuKb6lbMi29LS42gP2+N1RYcFaHovdzDLj3PmWwIzeeqSKHxYUMbhDEuPZKtpslu0cge0qlzVQ6s6QKv3WisLSFOnln4lhRqc5YLDSHwtiLbz6UFWuxR8khlyJFUeV4OVprueC8RvOIJPaomi0Fy9LVxCeQUAD1jejenrhpohBRbpF7RE+HGdoXpNsp7xNP5NzWE1V60VJMP1Chfc3Tp3ZlDN4KWaSOWjcioUGZb3remYE9M0QelD6WPjRGUnZeg9aQZnBcZINMRHeQfVUz++/9OMf47qUYzmm+XZ71w9UqrCVMNT3bdKTxJIF6Ugtj1TrTWaxXzzuGdU5Cq5eZTKOvy2JjOGS9NrmbedgZRKcIzmUGZmAyspRunYy0yATibsckTeZ/JSXCK14ujMsKF5AY4zLjG3rOAp4tpXtGpl58VolHcXDsua1cma+/5Z+/H976F5s4A3Lm9/ydXqO1neytru2LAE2Xsa7AQJGtxwVhD83x3nnGXHyTycdce5Z9pxjj3yCH/vjvPOtONcc+RR/n4d559lx7n+yLP6P+q44Ew7znNGHuHHd5yxo24PSl8wRvq6gW8C++b6OOl7d+c5wL91+kjf+57bGKMoJRDv3cdfwOU7a9+echVMRhYlZivEvyAh92J/RNbgiA6p1p5aEtwcE9IfjEC6PyJ7X0Q8XSQDBCUIeoTUVX/3I0N6s+acwTt0SP71VGynKzp3cEiHhFtPOXWyovOGF11HU/Uquq4AOknR+YN36JAC6ilaTld0wfCQDmiXnoriZEU3GV50HVnxStF1NQAt737auvPVD2dhXJQ/q5WDMlTHn3jWy5/LHpprv34X3cO09jGdwHWB7wDwOhO0mUbrH6pX/wJQSwMEFAAAAAgAAAAhAL5+dmJWAQAA0AMAABQAHAB3b3JkL3dlYlNldHRpbmdzLnhtbFVUCQADMNDOEjDQzhJ1eAsAAQT1AQAABBQAAACd01FvwiAQAOD3JfsPhHelumlMYzVZFpe9LEu2/QAKV0sGXAO46n79aLWuiy92T0DLfbnjYLneG02+wHmFNqOTcUIJWIFS2W1GP943owUlPnAruUYLGT2Ap+vV7c2yTmvI3yCEuNOTqFifGpHRMoQqZcyLEgz3Y6zAxp8FOsNDXLotM9x97qqRQFPxoHKlVTiwaZLM6Ylx1yhYFErAI4qdARvaeOZARxGtL1XlO62+RqvRycqhAO9jPUYfPcOVPTOT+wvIKOHQYxHGsZhTRi0VwydJOzP6F5gNA6YXwFzAfpixOBksRvYdJYc587OjZM/5XzI9QO4GEdO7Lo9maMJ7lpdBlsO4rkesieWBl9yXfRGGFTg7cwfTnLcR6fPWouO5jlK8QSReAtLC5NiFZiDHxpKuBNKeC13FJ4ZVUEZ9wwbdg8Pag2PNZ6411q8vT3HB/rzD1Q9QSwMEFAAAAAgAAAAhAD+v4WZfDwAADaYAAA8AHAB3b3JkL3N0eWxlcy54bWxVVAkAAzDQzhIw0M4SdXgLAAEE9QEAAAQUAAAA3Z1tc9s2Esff38x9B45e9V6ksp5lT92O7STnzCWpWzvX1xAJWaj5oCOpOO6nPwB8EKUlKC64UdRMZlqL4v4I4L+7xIIU+dMvXwLf+czjREThZW/w41nP4aEbeSJ8vOx9enj7at5zkpSFHvOjkF/2XnjS++Xnf/7jp+eLJH3xeeJIQJhcBO5lb5Wm64t+P3FXPGDJj9Gah/LLZRQHLJUf48d+wOKnzfqVGwVrloqF8EX60h+enU17OSZuQ4mWS+Hy15G7CXiYavt+zH1JjMJkJdZJQXtuQ3uOYm8dRy5PEtnpwM94ARNhiRmMASgQbhwl0TL9UXYmb5FGSfPBmf4r8LeACQ4wBICpy7/gGPOc0ZeWVY7wcJxpyRFehWPXmArA26AQw1HRDvU/ZV5hJV7qrXC4QqO+smUpW7FkVSVyXAcnJe4lUOMduBfvHsMoZgtfkqQHOdIJHA12MhXU/5xMWKfogqPHpfezjC4vcl/zJdv4aaI+xndx/jH/pP/3NgrTxHm+YIkrxGXvKhZMDvHzBWdJepUI9iBbLg8fCNmS26swEerLlfqjsrObXPYeRCBD+SN/dn6PAhY6P1xH3otzc/+vXl8d6InHodzzM/Mve8NsU/JXuWFcbLlJ9rf5LHwstvHw1af7ausqmxbCk01i8av7K204GF/44pGlm1g2S33ShCwRxd6N7Db/km5k++XO/Xw8+vujtC4/ZXvtDalMGDJ93GdZTH7Ll+8j94l796n84rJ31ss2fnp3F4solpnqsnd+nm+854G4FZ7Hw8qO4Up4/I8VDz8l3Ntu/+2tzjb5BjfahPLv0WyqZfYT780Xl69V7pLfhkzp9VEZaG02Yntwbf6/AjbIB7jOfsWZSuDOYB9xjkYMlUVS6W09c7PX9wH6QKNjHWh8rANNjnWg6bEONDvWgebHOtD51z6QCD2Z3wf1hwHUQxxDNKI5hmBDcwyxhOYYQgXNMUQCmmNwdDTH4MdojsFNEZw0ck1eWHH2kcHbm7mHzxF23MOnBDvu4TOAHfdwwrfjHs7vdtzD6dyOezh723EPJ2s8N5tqOe9kmIVp5yhbRlEaRil31PS0M42FkqWrWhqeOunxmKSTBJgss+Un4s40l+nPhz1k0u18nqqCzomWzlI8quKkc8N5+Jn70Zo7zPMkjxAYc1k+GUbExqdjvuQxD11O6dh0UF+E3Ak3wYLAN9fskYzFQ494+AoiSVIoHZpt0pUKEkHg1AFz44hgzsLI8sN7kXQfKwVxrje+z4lYH2lcTLO61wYa07000JjulYHGdC8MKppRDVFOIxqpnEY0YDmNaNwy/6Qat5xGNG45jWjcclr3cXsQqc/3Zx2D9mt3N36UUCS8e/EY6vXTzqR8zdS5YzF7jNl65ahl54MzLfRx9JLzA8U5rSRRzeu1i6hVZxFuug/oDo0quEoeUXiVPKIAK3ndQ+yDnCarCdotTT1zv1mktUHbviq4Z/4mm9B2jzaWdvewbQC8FXFCFgb1WAIP/qims7dEU71tK7s3bMvqHlb7WYm0eTmSoJV+5D7RpOHblzWPZVn21Jn0NvL96Jl7dMT7NI4yX6uG/HDYOuTfBOsVS0QCEO1P9cUdDM4Htu7coTufiZBGtzevAiZ8h24Gcfvw4b3zEK1VmakGhgZ4HaVpFJAx85XAH/7gi3/RNPBKFsHhC1Fvr4iWhzTsRhCcZDJS5BGR5DRThILkHKp5/+Evi4jFHg3tLubZTUMpJyLes2DtU8WWzIvPMv8QzIY0778sFmpdiCqoHkhglWXDZLP4k7vdU93HyCFZGfp1k+r1Rz3V7X61dwfXfZqwg+s+RdBqytOD8l+Czu7gund2B0fV2RufJYkwXkK15lF1t+BR97d78ZfzIj+KlxufbgALINkIFkCyIYz8TRAmlD3WPMIOax51fwldRvMIluQ079+x8MjE0DAqJTSMSgYNo9JAw0gF6H6HTgXW/TadCqz7vToZjGgKUIFR+Rnp6Z/oKk8FRuVnGkblZxpG5WcaRuVno9cOXy7lJJjuFFNBUvlcBUl3oglTHqyjmMUvRMg3Pn9kBAukGe0ujpbq1yRRmN3ETTGd3SxSysl2hqMS+Q++IGuaYlG2i2BFlPl+FBGtrW1PONpy9961Q2b65xydm3DnM5evIt/jsaFPjfXy/Zq5Ai6dtr9Y8l48rlLnflWu9lcx07ODlkXBvmN2+IB1Yz4dNl5m8sQmKBoKf0wxHbU3HgLj8WHj7Uxix3LS0hIec3rYcjtL3rGctbSEx5y3tBwBy6Z4eM3ip1pHmDX5T1njGZxv1nhhvjCuPWyTI5WWdS44a/KinVBxrlxXXS2A6rSLGbN9u+Ax22OiyEzBhJOZ0jquzIimAPudfxZJ7Rr1gevf5d0TIO+PW2fO3zZRCi5TD9v/qOudnDiFCXdqOaP2F652sox5HFunGzOidd4xI1onIDOiVSYymqNSkpnSOjeZEa2TlBmBzlbwjIDLVtAel62gvU22ghSbbNVhFmBGtJ4OmBHoQIUIdKB2mCmYEahABeZWgQop6ECFCHSgQgQ6UOEEDBeo0B4XqNDeJlAhxSZQIQUdqBCBDlSIQAcqRKADFSLQgWo5tzeaWwUqpKADFSLQgQoR6EAddwxUaI8LVGhvE6iQYhOokIIOVIhABypEoAMVItCBChHoQIUIVKACc6tAhRR0oEIEOlAhAh2ok46BCu1xgQrtbQIVUmwCFVLQgQoR6ECFCHSgQgQ6UCECHagQgQpUYG4VqJCCDlSIQAcqRKADddoxUKE9LlChvU2gQopNoEIKOlAhAh2oEIEOVIhABypEoAMVIlCBCsytAhVS0IEKEehAhYgm/8wvUZpusx/gVz2Nd+wjfueTNer36k+5d9ZQ26OKVplZ7X+LcB1FT07tDw9Ho/YQsfBFpJeoDZfVq9wZ+sLnrzfNv/Bp8RiPtl3Jfwuhr5kC+LitJVhTGTe5fNUSFHnjJk+vWoJZ57gp+1YtwWlw3JR0dVwWN6XI0xEwbkozFeOBwbwpW1fM4RA35eiKIRzhpsxcMYQD3JSPK4YTRyXnfetJy3GalveXAkKTO1YIMzOhyS2hVsa1/daimQlt1TMT2spoJqD0NGLwwppRaIXNKDupYZhhpbYPVDMBKzUkWEkNMPZSQ5S11BBlJzVMjFipIQErtX1yNhOspAYYe6khylpqiLKTGp7KsFJDAlZqSMBK3fGEbMTYSw1R1lJDlJ3UcHKHlRoSsFJDAlZqSLCSGmDspYYoa6khyk5qUCWjpYYErNSQgJUaEqykBhh7qSHKWmqIapJar6LYV0sVc9wkrGKIOyFXDHHJuWJoUS1VrC2rpQrBslqCWtlVS1XR7Kqlqnp21VJVRrtqCehpVy3VCmtXLdUqbFctmaXGVUt1UtsHql21VCc1rloySo2rlhqlxlVLjVLjqiWz1LhqqU5qXLVUJ7V9crarloxS46qlRqlx1VKj1LhqySw1rlqqkxpXLdVJjauW6qTueEK2q5YapcZVS41S46ols9S4aqlOaly1VCc1rlqqkxpXLRmlxlVLjVLjqqVGqXHVkllqXLVUJzWuWqqTGlct1UmNq5aMUuOqpUapcdVSo9S4aumDNBEEj4C6D1icOnTPi7tlySpl3R9O+CmMeRL5n7nn0Hb1PaqX/eed118ptn6dn9w/lWOmnoBe+bmSlz0BNgfqHd955WuqlLFqiZO/5yvfrBucX67NjqgNDxyqhOfXigcAv325lT7Cgsle/RrWHTxUD0as2a4cotheHOZmxeLs262rFvuc7/fl+SJO1Avcsq/Pzoaj0evZdbbXOns12xPn64/y+P3ig9SHJ/pTkv2AVpov1DPF5AiMpvq3V2yZ8viyN8+jNsqe2vT+s18eKZcuP0btW+CKV76xPyuvfNt/H5z68k2+TX2vXwlXa+kmaWXztfBE1jhXRXnZrrfj2VT7ht5ZZ4DLHtPxv92sbkpR9xm8zQjbF8gVF5urL5AbF30tXu1m4zxDo/MMKZ1n2MJ5tmGZ7bcTlF/ZvQYt3WvwfbrXaAjdK9vW0b1GRvcaUbrX6Dtxr2Gzex1yomO4ynAOXSXb1tFVxkZXGVO6yvjEXWVe9ZSx0VNGX8dTRPbfm4TEbzp6xMToERNKj5h8Hx4xPs3c0dEHpkYfmFL6wPTEfcAs++ToiWByrv7tO4F609LWBR6EeoPv1ZTAA2ZGD5hResDsb+sB0yME/pE1nxs1n1NqPj8pzaGys6PH9nCm/rXR+TXFnO/cqPM5pc7nJ67z/AgRTK+sKweVufkD1Q3rX/mLkcon++jXIu1rbnh7kkGvQTu9zO1O1SpsQ5v1Km3jwl3+sHaTQ7X2qHThZ1LLP96FyqGe83fYZy31vrBeseMN9/0PLNs7Wpt39fkyzb4dnM1rvl9kr4Qw2sf62oER0N9tTL/shHm8s5dE5j9qMa6T6keGweHOHiXWcaRb+rC7SeTQ6OXe/fbtrIHut/K2WG51tnlmL3HVxoEpXQ0OpCpz8vle1qO6LHciJR02SjokknSIO/t8/wp3WXFEKjxqVHhEpPDoayn8d1/0Q6o1blRrTKTW+NTUOvbCG1KVSaMqEyJVJqemysnpMG3UYUqkw/TUdDjqahRSklmjJDMiSWanJslpiTBvFGFOJML81EQ46koOUpLzRknOiSQ5PzVJvslyWvZgi/2xzrZSrKNpUtMi2iAv2FBrZNtF7r0L4656fcWXdMP8/En6jctjxyyBtk3W3XpV9PuJx+XgbifLZXqcwunzhDgRbiWqdYOu4VbxJbP6p1m2Hl+z+iAtX6K9L1D5BUWoFrDGaB1YRGu4CbI/hA/vhyq/BDE9mB64Je+bTECAVwwm36Lm3RHL5BZdQ3fXvczecOJzxq8sWX3MZq8B2Fcm20oRrZrUFKpDmztrD92ANige3venW3BUEcvj2khtmGSOz9S/NhpS18PbgasVp2vMVBQ2a3IwYI46cvUOrC6fbN+rsT9We6/dOOTRcChGYwv3FPpSl7pQpZ6R12LO19Jdyk7nD44rn2a3323wuDuco9R4BOqEetg7jnifVT4W9Ylu920oFAmverimvDeyKSjW117lAqneL5GelL9X+y91j5yTZUeuJ61OPuyW6+PlpdSvfKT+tmeHfhgxKjJ7NcbmU90afWU3+0SS/L/peijwo0bX7Xo62AmSAx57cnHfmCO3z9Y0DeB2j65Zsrjmh8qSi+yo+WglMqn4N2xNM3ZgSjmpH9Hir+Tn/wNQSwMECgAAAAAAk2RNWwAAAAAAAAAAAAAAAAsAHAB3b3JkL3RoZW1lL1VUCQADhhztaIcc7Wh1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAAAAhAGeA/LSbBgAAzSAAABUAHAB3b3JkL3RoZW1lL3RoZW1lMS54bWxVVAkAAzDQzhIw0M4SdXgLAAEE9QEAAAQUAAAA7VlPb9s2FL8P2HcgdHf1x5IsBXUL/23XJm3RpB16ZGRaYkyJAkknMYoCQ3vaZcCAbthlwG47DMMKrMCKXfZhCrTYug8xSnZs0abatE23AksMxCL5e48/vvf4+ExdvHycEnCIGMc0axv2BcsAKIvoCGdx27izN2wEBuACZiNIaIbaxgxx4/KlTz+5CLdEglIEpHzGt2DbSITIt0yTR7Ib8gs0R5kcG1OWQiGbLDZHDB5JvSkxHcvyzRTizAAZTKXam+MxjhDYK1Qal06UD4j8lwledESE7UbljFWJEjua2MUXn/EeYeAQkrYh5xnRoz10LAxAIBdyoG1Y5Z9hXrpoLoWIqJGtyA3Lv4XcQmA0cUo5Fu8vBa2BE7j2Ur8z17+JGwTFZ6mvBMAokiu1N7C251uBs8BWQPNHje6wZTdVfEV/c1N/6HcdV8E3V3h3c43DcND3FLy7wnsb+I7ldMOmgvdWeH8D7w46LWeg4EtQQnA22UT7rSDwF+glZEzJVS089H2r1V/AVyizEl1z+UzUxVoKDygbSkDpXChwBsQsR2MYSVwnF5SDPuY5gTMD5DCjXHZbjm3LwHMtZ/kpLQ63EKxIz7sivtFV8AE8YjgXbeOa1GpUIC+ePXv+8Onzh789f/To+cNfwDaOE6GRuwqzuCr36sev//7+C/DXrz+8evyNHs+r+Jc/f/ny9z9ep14otL598vLpkxffffXnT4818A6D+1X4Hk4RBzfQEbhNU7lAzQRon72dxF4CcVWik8UcZrCQ0aAHIlHQN2aQQA2ui1Q73mUyXeiAV6YHCuHdhE0F1gCvJ6kC3KGUdCnTrul6MVfVCtMs1k/OplXcbQgPdXP31rw8mOYy7rFOZS9BCs1bRLocxihDAhRjdIKQRuwexopdd3DEKKdjAe5h0IVYa5I9vC/0QldxKv0y0xGU/lZss3MXdCnRqe+jQxUp9wYkOpWIKGa8AqcCplrGMCVV5DYUiY7k7oxFisG5kJ6OEaFgMEKc62RusplC9zqUeUvr9h0yS1UkE3iiQ25DSqvIPp30EpjmWs44S6rYz/hEhigEt6jQkqDqDina0g8wq3X3XYzE2+3tOzIN6QOkGJky3ZZAVN2PMzKGSKe8w1IlxXYY1kZHdxorob2NEIFHcIQQuPOZDk9zqid9LZFZ5SrS2eYaVGO1aGeIy1qpKG40jsVcCdldFNMaPjuztcQzg1kKWZ3mGxM1ZAb7TG5GXbySaKKkUsyKTasncZOn8FRabyVQCauizfXxOmPZ2+4xKXPwDjLorWVkYj+1bfYgQfqA2YMYbOvSrRSZ6kWK7VSKTbVyY3XTrtxgrhU9Kc7eUAH9N5XPB6t5zr7aqUso6zVOHW69sulRNsIff2HTh9PsFpJnyXldc17X/B/rmrr9fF7NnFcz59XMv1bNrAoYs3rZU2pJa29+xpiQXTEjaJuXpQ+Xe380lJ1loxRaXjTliXxcTKfgYgbLZ8Co+ByLZDeBuZzGLmeI+UJ1zEFOuSyfjFrdZfE1TXfoaHGPZ5/cbUoBKFb9lrfsl6WamPf6rdVF6FJ92Yp5lYBXKj09icpkKommhkSreToStnVWLEINi8B+HQuz4hV5OAFYXIt77pyRDDcZ0qPCT3P5E++euafrjKku29EsL3TPzNMKiUq4qSQqYZjIw2O9+4x9HYZ6VztaGq3gQ/ja3MwNJFNb4EjuuaYn1UQwbxtj+bNJPqa51MeLTAVJnLWNSCwM/S6ZJWdc9CFP5rByaL7+FAvEAMGpjPWqG0i24mY7LevjJRdaH5/lzHUno/EYRaKmZ9WUY3Ml2tH3BBcNOpWkd5PREdgnU3YbSkN5Lbsw4AhzsbTmCLNKcK+suJauFltReQO02qKQ5AlcnCjVZD6Hl89LOpV1lEzXV2XqTLgfD8/i1H2z0FrSrDlAWrVZ7MMd8hVWTT0rT5vrwsB6/Snx/gdChVqgp9bUU6s7O86wIKhM59fYzan15nueButRa1bqyrK18XKb7h/IyO/LanVKBJ9fkB3L8rt38lpyngnK3pPscizAlOG2cd/yOm7P8XoNK/AGDbfpWo3A6zQbHc9r2gPPtvpd54E0ikhS25vPPZQ/9sls8e6+7N94f5+elNoXIpqatKyDzVK4fH9vO/Xv7wGWlrnvO8OwGXb9RtjsDBtuvxs0wp7fbfT9Xqs/7Pe8IBw+MMBhCXY7zZ7rD4KGb/d6Dde3CvpB2Gi5jtNxW51g4HYeLGwtV37yfWLektelfwBQSwMECgAAAAAAk2RNWwAAAAAAAAAAAAAAAAsAHAB3b3JkL19yZWxzL1VUCQADhhztaIcc7Wh1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAAAAhALO+ix3+AAAAtgMAABwAHAB3b3JkL19yZWxzL2RvY3VtZW50LnhtbC5yZWxzVVQJAAMw0M4SiBztaHV4CwABBPUBAAAEFAAAAK2TzWrDMBCE74W+g9h7LTttQwmRcymBXFv3AWR7/UP1Y6RNWr99RUoShwbTg44zYme+hdV6860VO6DzvTUCsiQFhqaydW9aAR/F9uEFmCdpaqmsQQEjetjk93frN1SSwpDv+sGzkGK8gI5oWHHuqw619Ikd0ISXxjotKUjX8kFWn7JFvkjTJXfTDMivMtmuFuB29SOwYhzwP9m2afoKX22112joRgX3SBQ28yFTuhZJwMlJQhbw2wiLqAg0KpwCHPVcfRaz3ux1iS5sfCE4W3MQy5gQFGbxAnCUv2Y2x/Ack6GxhgpZqgnH2ZqDeIoJ8YXl+5+TnJgnEH712/IfUEsBAh4DFAAAAAgAAAAhADKRb1deAQAApQUAABMAGAAAAAAAAQAAAKSBAAAAAFtDb250ZW50X1R5cGVzXS54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACTZE1bAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UGrAQAAZG9jUHJvcHMvVVQFAAOGHO1odXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAAAAgAAAAhACEYr1llAQAAxQIAABAAGAAAAAAAAQAAAKSB7gEAAGRvY1Byb3BzL2FwcC54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAAACAAAACEACvOn+GYBAADtAgAAEQAYAAAAAAABAAAApIGdAwAAZG9jUHJvcHMvY29yZS54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACTZE1bAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA7UFOBQAAX3JlbHMvVVQFAAOGHO1odXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAAAAgAAAAhAB6RGrfpAAAATgIAAAsAGAAAAAAAAQAAAKSBjgUAAF9yZWxzLy5yZWxzVVQFAAMw0M4SdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAk2RNWwAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BvAYAAHdvcmQvVVQFAAOGHO1odXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAAAAgAoWRNW+xw0GIQAgAAtAcAABIAGAAAAAAAAQAAAKSB+wYAAHdvcmQvZm9udFRhYmxlLnhtbFVUBQADnhztaHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAAAAIQCWFrgr1QIAAIgLAAARABgAAAAAAAEAAACkgVcJAAB3b3JkL2RvY3VtZW50LnhtbFVUBQADMNDOEnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAAAAIQDK52WKKwQAAL4MAAARABgAAAAAAAEAAACkgXcMAAB3b3JkL3NldHRpbmdzLnhtbFVUBQADMNDOEnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAAAAIQDbhWzDfQQAAJcdAAASABgAAAAAAAEAAACkge0QAAB3b3JkL251bWJlcmluZy54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAAACAAAACEAvn52YlYBAADQAwAAFAAYAAAAAAABAAAApIG2FQAAd29yZC93ZWJTZXR0aW5ncy54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAAACAAAACEAP6/hZl8PAAANpgAADwAYAAAAAAABAAAApIFaFwAAd29yZC9zdHlsZXMueG1sVVQFAAMw0M4SdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAk2RNWwAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BAicAAHdvcmQvdGhlbWUvVVQFAAOGHO1odXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAAAAgAAAAhAGeA/LSbBgAAzSAAABUAGAAAAAAAAQAAAKSBRycAAHdvcmQvdGhlbWUvdGhlbWUxLnhtbFVUBQADMNDOEnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJNkTVsAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQTEuAAB3b3JkL19yZWxzL1VUBQADhhztaHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAAAAIQCzvosd/gAAALYDAAAcABgAAAAAAAEAAACkgXYuAAB3b3JkL19yZWxzL2RvY3VtZW50LnhtbC5yZWxzVVQFAAMw0M4SdXgLAAEE9QEAAAQUAAAAUEsFBgAAAAARABEAqQUAAMovAAAAAA==`, 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, 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, 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 = "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, SNAPSHOT_VERSION3 = "sd-diff-snapshot/v1", PAYLOAD_VERSION3 = "sd-diff-payload/v1", 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, SPECIAL_NOTE_TYPES, RESTART_POLICY_TO_OOXML, VALID_DISPLAYS, 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.20.0", PIXELS_PER_INCH2 = 96, MAX_HEIGHT_BUFFER_PX = 50, MAX_WIDTH_BUFFER_PX = 20, Editor, EXCLUDED_PLUGIN_KEY_REF_LIST, EXCLUDED_PLUGIN_KEY_REFS, EXCLUDED_PLUGIN_KEY_PREFIXES, TEXT_RANGE_BLOCK_SEP = `
222712
+ }, BLANK_DOCX_BASE64 = `UEsDBBQAAAAIAAAAIQAykW9XXgEAAKUFAAATABwAW0NvbnRlbnRfVHlwZXNdLnhtbFVUCQADMNDOEjDQzhJ1eAsAAQT1AQAABBQAAAC1lMtqwzAQRfeF/oPRNthKuiilxMmij2UbaPoBijRORPVCmrz+vuM4NaWkMeSxMcgz994zQsxwvLEmW0FM2ruSDYo+y8BJr7Sbl+xz+po/sCyhcEoY76BkW0hsPLq9GU63AVJGapdKtkAMj5wnuQArUuEDOKpUPlqBdIxzHoT8EnPgd/3+PZfeITjMsfZgo+EzVGJpMHvZ0O+GJIJJLHtqGuuskokQjJYCqc5XTv1JyfcJBSl3PWmhQ+pRA+MHE+rK/wF73TtdTdQKsomI+CYsdfG1j4orL5eWlMVxmwOcvqq0hFZfu4XoJaREd25N0Vas0K7XxeGWdgaRlJcHaa07IRJuDaTLEzS+3fGASIJrAOydOxHWMPu4GsUv806QinKnYmbg8hitdScE0hqA5js4m2NncyySOifRh0RrJZ4w9s/eqNU5DRwgoj7+6tpEsj57PqhXkgJ1IJvvluzoG1BLAwQKAAAAAACTZE1bAAAAAAAAAAAAAAAACQAcAGRvY1Byb3BzL1VUCQADhhztaIcc7Wh1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAAAAhACEYr1llAQAAxQIAABAAHABkb2NQcm9wcy9hcHAueG1sVVQJAAMw0M4SMNDOEnV4CwABBPUBAAAEFAAAAJ1STU/DMAy9I/Efqt63dBwmNHlBaAhx4GPSCpyjxG0j0iRKson9e5wVSoEbOdnP9st7TuDqvTfFAUPUzq7LxbwqC7TSKW3bdflc384uyyImYZUwzuK6PGIsr/j5GWyD8xiSxlgQhY3rskvJrxiLssNexDmVLVUaF3qRKA0tc02jJd44ue/RJnZRVUuG7wmtQjXzI2E5MK4O6b+kysmsL77UR098HGrsvREJ+WOeNHPlUg9sRKF2SZha98grgscEtqLFyBfAhgBeXVAx9wwBbDoRhEy0vwxOMrj23mgpEu2VP2gZXHRNKp5OYos8DWzaAmRgh3IfdDpmqmkK99ri6YIhIFVBtEH47gROMthJYXBD1nkjTERg3wBsXO+FJTo2RsT3Fp997W7yFj5HfoITi686dTsvJP4yO8FhRygqUj8KGAG4o8cIJrPTrG1RffX8LeT1vQy/ki+W84rOaV9fGLkevwv/AFBLAwQUAAAACAAAACEACvOn+GYBAADtAgAAEQAcAGRvY1Byb3BzL2NvcmUueG1sVVQJAAMw0M4SMNDOEnV4CwABBPUBAAAEFAAAAJ2SXU+DMBSG7038D6T3UGBqDAGWTLMrZ0yc0XhX27Otjn6k7cb27y0wmMRdeXc+nvP29G3z6UFUwR6M5UoWKIliFICkinG5LtDbch7eo8A6IhmplIQCHcGiaXl9lVOdUWXgxSgNxnGwgVeSNqO6QBvndIaxpRsQxEaekL65UkYQ51OzxprQLVkDTuP4DgtwhBFHcCMY6kERnSQZHST1zlStAKMYKhAgncVJlOAz68AIe3Gg7fwiBXdHDRfRvjnQB8sHsK7rqJ60qN8/wR+Lp9f2qiGXjVcUUJkzmjnuKihzfA59ZHdf30BdVx4SH1MDxClTPnO6DWZgJKlapq83jm/hWCvDrJ8eZR5jYKnh2vl37LRHBU9XxLqFf9gVBzY7jo/5224mDOx58y/KtCWGND+Z3K0GLPDmZJ2Vfed98vC4nKMyjdObMEnD5G6Zpll8m8XxZ7PdaP4sKE4L/FuxF+gMGn/Q8gdQSwMECgAAAAAAk2RNWwAAAAAAAAAAAAAAAAYAHABfcmVscy9VVAkAA4Yc7WiHHO1odXgLAAEE9QEAAAQUAAAAUEsDBBQAAAAIAAAAIQAekRq36QAAAE4CAAALABwAX3JlbHMvLnJlbHNVVAkAAzDQzhIw0M4SdXgLAAEE9QEAAAQUAAAArZLBasMwDEDvg/2D0b1R2sEYo04vY9DbGNkHCFtJTBPb2GrX/v082NgCXelhR8vS05PQenOcRnXglF3wGpZVDYq9Cdb5XsNb+7x4AJWFvKUxeNZw4gyb5vZm/cojSSnKg4tZFYrPGgaR+IiYzcAT5SpE9uWnC2kiKc/UYySzo55xVdf3mH4zoJkx1dZqSFt7B6o9Rb6GHbrOGX4KZj+xlzMtkI/C3rJdxFTqk7gyjWop9SwabDAvJZyRYqwKGvC80ep6o7+nxYmFLAmhCYkv+3xmXBJa/ueK5hk/Nu8hWbRf4W8bnF1B8wFQSwMECgAAAAAAk2RNWwAAAAAAAAAAAAAAAAUAHAB3b3JkL1VUCQADhhztaIcc7Wh1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAoWRNW+xw0GIQAgAAtAcAABIAHAB3b3JkL2ZvbnRUYWJsZS54bWxVVAkAA54c7WieHO1odXgLAAEE9QEAAAQUAAAAvZPBbqMwEIbvlfoOlu8NhpA0RSFV222kvexh1T6AY0ywFtvI44Tk7dcYiBSyuy3tqiCEGf75mPnHLO8PskR7bkBoleJwQjDiiulMqG2KX1/WNwuMwFKV0VIrnuIjB3y/ur5a1kmulQXk8hUkkqW4sLZKggBYwSWFia64ci9zbSS17tFsA0nNr111w7SsqBUbUQp7DCJC5vj6CrmjZZn3oHSeC8a/abaTXFkPCQwvHVYrKEQFZ8j6Pcham6wymnEA170sW6ikQp2zwviCJgUzGnRuJ663rjbPc4yQ+JUsB5TZOEr0Z8qc8cM40KIDBS7zAiaycbD5CSayIexjZQ0p2W4UJ5r2FTW3Jn0IhMxmxThmP8GgyaWWFhSKCywf1+/sxDxKNwgkWfJ9q7Shm9KR3CZDbosgD0btZJobaieO+j6Qdwiv2mK6nxLViaLSUV6E5IB+8Br91JKqXtZJK6o08NCp97RMMWkanZMpmZHYXZFbxTg4T2EFNcDtKYUMBTmVojz2743/6kBSCcuKXrGnRjQdD0Ugtk6ygw1J8TMhJHper3EbCVP85CK3i9ljF4maSvxx10WmpwhpIsxz/GPYcpjnnDT915dB6+Bf/HzSOyO4aRx908tb59+d97TxMv60l1Jn3PzbzFwcePYRJ+PpVzv54MZevunho9uPsfewPT/rIdQC4P/sx4evdrFfwuo3UEsDBBQAAAAIAAAAIQCWFrgr1QIAAIgLAAARABwAd29yZC9kb2N1bWVudC54bWxVVAkAAzDQzhIw0M4SdXgLAAEE9QEAAAQUAAAApZZbb9sgFMffJ+07WH5v8S1OYjWttGab+jCpWrcPQIDEqAYsILd9+h3s+LJ5qxz3CXPg/PjDORxz93AShXdg2nAlV354G/gek0RRLncr/+ePLzcL3zMWS4oLJdnKPzPjP9x//HB3zKgie8Gk9QAhTXYsycrPrS0zhAzJmcDmVnCilVFbe0uUQGq75YSho9IURUEYVF+lVoQZA+s9YnnAxr/gyGkcjWp8BGcHTBDJsbbs1DHCqyEztESLISiaAIIdRuEQFV+NSpFTNQAlk0CgakCaTSP9Y3PpNFI0JM2nkeIhaTGNNEgnMUxwVTIJg1ulBbbQ1TsksH7dlzcALrHlG15wewZmkDYYzOXrBEXg1RJETK8mzJFQlBUxbShq5e+1zC7+N62/k57V/pem9WDFuGVhuSViJ1sY2/jqMWdXu68vhaU6NaRZAeeopMl52VYHMZUGg3kDObx1AAdR+G1lC0detf+VtnUdhg44Rv4ldqKolb9NDIMR0XSI1mOMhD/XbJQIyOBu4UlH0zvccGTxaQDRAJASNvJn0TAWFwYi3e12HD7yWjWctOVw2uNME9MD0P1ViChudLjGufdYhlqaX4drYoScL7Y4xybvE9l1G5y1uLPonXe5e9+l+qrVvuxo/H20p668HuV1GwzSvyNYmveJeclxCVVXkOxpJ5XGmwIUwVXz4LZ4VQS8Ol1d49U3wGti7VUJ5Lmq5d/DO22j6Nm1JQwkWYk1foI0T8JlmqTz0K+s8Jezzhoks+VivpyBNYM3If0OJkiveD3/1JqetTPGYZA8fm6Na7bF+8IOpz/3JiMnwzBin/VYfiV89/ILBqFihVGUBG4iJHQ4W8A3qid8w45oFRTWMKmnaL7LbdfdKGuV6PoF2/ZGc4Ypg3XnUdXdKmV73d3eVt3LckQVBqymxITVcyozvIe/aheSrOCSPXNLQGWcVqOo2Xf1WUcEdU/o+99QSwMEFAAAAAgAAAAhAMrnZYorBAAAvgwAABEAHAB3b3JkL3NldHRpbmdzLnhtbFVUCQADMNDOEjDQzhJ1eAsAAQT1AQAABBQAAAC1V22PmzgQ/n7S/QfE58uG1ySLmq3yervV5lqVre6zAZNYa2Nkm03T0/33GwwO9BZVSav9hJln5pnxeGYM795/ZdR6wUISXsxt98axLVykPCPFfm5/edqOZrYlFSoyRHmB5/YJS/v93e+/vTtGEisFatICikJGLJ3bB6XKaDyW6QEzJG94iQsAcy4YUvAq9mOGxHNVjlLOSqRIQihRp7HnOBO7peFzuxJF1FKMGEkFlzxXtUnE85ykuH0YC3GJ38ZkzdOK4UJpj2OBKcTAC3kgpTRs7GfZADwYkpcfbeKFUaN3dJ0LtnvkIjtbXBJebVAKnmIp4YAYNQGSonMcvCI6+74B3+0WNRWYu45e9SMPryPwXhFMUvz1Oo5ZyzEGyz4Pya7jmZx5SNbj+blgegRZdRWF55s46kdt3uOSmcoO19GZMxrXtkihA5KHPiO+boPhme7EunxLekkFNtAjSQQSp375sTR62BdcoIRCOFCGFlSSpaOzmqOsH1ZTHZbJg6WTa9/B1PnGObOOUYlFCq0HI8tz7HENQMHzPFZIAVEkS0ypnmEpxQj8HqO9QAymj5FomwznqKLqCSWx4iUovSDY3tRQpgckUKqwiEuUAtuKF0pwavQy/hdXK5hkAhqttdBzrVvFzYwEiwIx2PB3c2/HM1xHVgly+cnYxrsb9l3+3xGHmS5Ihp/qRMfqRPEWgo/JN7wosg+VVAQY9fT7hQh+FAAuas8foTSeTiXeYqQqSNMbOdMnsaWk3BEhuHgoMqiNN3NG8hwLcECg1nZQPkTwo87zPUYZXKVv5LeS+G9Qhs70n6Asn5dcKc7uT+UBcv1rJ6nrfdwvX/ggyKRZfOZcnVVhbPnr6bKJtEYvQXzXCVabQWTibN1hm0XgO/4gsnLXbjCMhLPlaggJboOJuxhCJqG3CcIhZLH0Zv5sCFku3Wk4iKxW/srfDiIbZz28n83Km04HY9vees7tpj2d9kxYVH9qfBJmVTe2xRqLFWKJIMja1R8j41ojEc9LUhg8wTClcR+Jq8SAo1EDSIYo3UKJGcBp5BmR5Rrnek13SOw73lZDDEphyn44c9VTG4s/Ba/KBj0KVDYNa1TcIGgtSaEeCTNyWSWxsSrgXulBVZF9fBE6T116jpGCBtCD7xHpRtK6uBh9idtGoyKumwTvUFk2vZbs3blNyf6g3Lo9FLxl8M2qX5K912KexrwG0y8orXcG2u2ik3lG1tPzjczvZIGRBZ0sNLKwk02MbFLLDjBdBVx1z9D2ZlnLc04pP+LsvsNficwlmBI48fjEku5uu2kwSiTMoRKuQcWFwf7QmBtEGU8f6vs6aOT+YhGuF860gUN9fSo9qiC1n3G+RBJnLWZMw8b0n8nEmbjuajYKZpvb0WYaBKOZu7wdTafO1PW3rufPnH/bPjA/Hnf/AVBLAwQUAAAACAAAACEA24Vsw30EAACXHQAAEgAcAHdvcmQvbnVtYmVyaW5nLnhtbFVUCQADMNDOEjDQzhJ1eAsAAQT1AQAABBQAAADNmc1u4zYQx+8F+g6CgB4Tifq2sM4iySZFFttF0U3RMy3RlhB+CBRlx9d9mT5CH2tfoaRkyXLkxJIctz4pJjk/zQxnyL+dDx+fCdaWiOcpo1MdXJq6hmjE4pQupvqfj/cXga7lAtIYYkbRVF+jXP949fNPH1YhLcgMcblQkwyah6ssmuqJEFloGHmUIALzS5JGnOVsLi4jRgw2n6cRMlaMx4ZlArP8K+MsQnkuObeQLmGub3DRcz9azOFKGiugY0QJ5AI9bxlgMMQ1JkbQBVkjQDJCC3RR9mCUZyivOiBnFEh61SG540h7gvPGkawuyR9HsrukYBypU06kW+AsQ1ROzhknUMiPfGEQyJ+K7EKCMyjSWYpTsZZM06sxMKVPIzySVg2B2PFggm8QFiNsxzWFTfWC03Bjf9HYK9fDyn7zaCwQ7vda+bqJgZ4FzkVty/vkrjL/xKKCICrKrBkcYZlHRvMkzZrTgYylycmkhizfSsCSYL052UDPVnvtaPtUbcMW2Mf9zd4RXHn+NhGYPXZTIRqLPi7svrP2hMgK3r54VGpayQU9D58aYHUAXoR6XhY1I9gwjGjb3YqT9myrmuM1nDRuccY50wLExSCEZdd+qIcyb7HyWMTJMFy9R4ayhQImME/aRDQsQLfBrUkr39niuKb6lbMi29LS42gP2+N1RYcFaHovdzDLj3PmWwIzeeqSKHxYUMbhDEuPZKtpslu0cge0qlzVQ6s6QKv3WisLSFOnln4lhRqc5YLDSHwtiLbz6UFWuxR8khlyJFUeV4OVprueC8RvOIJPaomi0Fy9LVxCeQUAD1jejenrhpohBRbpF7RE+HGdoXpNsp7xNP5NzWE1V60VJMP1Chfc3Tp3ZlDN4KWaSOWjcioUGZb3remYE9M0QelD6WPjRGUnZeg9aQZnBcZINMRHeQfVUz++/9OMf47qUYzmm+XZ71w9UqrCVMNT3bdKTxJIF6Ugtj1TrTWaxXzzuGdU5Cq5eZTKOvy2JjOGS9NrmbedgZRKcIzmUGZmAyspRunYy0yATibsckTeZ/JSXCK14ujMsKF5AY4zLjG3rOAp4tpXtGpl58VolHcXDsua1cma+/5Z+/H976F5s4A3Lm9/ydXqO1neytru2LAE2Xsa7AQJGtxwVhD83x3nnGXHyTycdce5Z9pxjj3yCH/vjvPOtONcc+RR/n4d559lx7n+yLP6P+q44Ew7znNGHuHHd5yxo24PSl8wRvq6gW8C++b6OOl7d+c5wL91+kjf+57bGKMoJRDv3cdfwOU7a9+echVMRhYlZivEvyAh92J/RNbgiA6p1p5aEtwcE9IfjEC6PyJ7X0Q8XSQDBCUIeoTUVX/3I0N6s+acwTt0SP71VGynKzp3cEiHhFtPOXWyovOGF11HU/Uquq4AOknR+YN36JAC6ilaTld0wfCQDmiXnoriZEU3GV50HVnxStF1NQAt737auvPVD2dhXJQ/q5WDMlTHn3jWy5/LHpprv34X3cO09jGdwHWB7wDwOhO0mUbrH6pX/wJQSwMEFAAAAAgAAAAhAL5+dmJWAQAA0AMAABQAHAB3b3JkL3dlYlNldHRpbmdzLnhtbFVUCQADMNDOEjDQzhJ1eAsAAQT1AQAABBQAAACd01FvwiAQAOD3JfsPhHelumlMYzVZFpe9LEu2/QAKV0sGXAO46n79aLWuiy92T0DLfbnjYLneG02+wHmFNqOTcUIJWIFS2W1GP943owUlPnAruUYLGT2Ap+vV7c2yTmvI3yCEuNOTqFifGpHRMoQqZcyLEgz3Y6zAxp8FOsNDXLotM9x97qqRQFPxoHKlVTiwaZLM6Ylx1yhYFErAI4qdARvaeOZARxGtL1XlO62+RqvRycqhAO9jPUYfPcOVPTOT+wvIKOHQYxHGsZhTRi0VwydJOzP6F5gNA6YXwFzAfpixOBksRvYdJYc587OjZM/5XzI9QO4GEdO7Lo9maMJ7lpdBlsO4rkesieWBl9yXfRGGFTg7cwfTnLcR6fPWouO5jlK8QSReAtLC5NiFZiDHxpKuBNKeC13FJ4ZVUEZ9wwbdg8Pag2PNZ6411q8vT3HB/rzD1Q9QSwMEFAAAAAgAAAAhAD+v4WZfDwAADaYAAA8AHAB3b3JkL3N0eWxlcy54bWxVVAkAAzDQzhIw0M4SdXgLAAEE9QEAAAQUAAAA3Z1tc9s2Esff38x9B45e9V6ksp5lT92O7STnzCWpWzvX1xAJWaj5oCOpOO6nPwB8EKUlKC64UdRMZlqL4v4I4L+7xIIU+dMvXwLf+czjREThZW/w41nP4aEbeSJ8vOx9enj7at5zkpSFHvOjkF/2XnjS++Xnf/7jp+eLJH3xeeJIQJhcBO5lb5Wm64t+P3FXPGDJj9Gah/LLZRQHLJUf48d+wOKnzfqVGwVrloqF8EX60h+enU17OSZuQ4mWS+Hy15G7CXiYavt+zH1JjMJkJdZJQXtuQ3uOYm8dRy5PEtnpwM94ARNhiRmMASgQbhwl0TL9UXYmb5FGSfPBmf4r8LeACQ4wBICpy7/gGPOc0ZeWVY7wcJxpyRFehWPXmArA26AQw1HRDvU/ZV5hJV7qrXC4QqO+smUpW7FkVSVyXAcnJe4lUOMduBfvHsMoZgtfkqQHOdIJHA12MhXU/5xMWKfogqPHpfezjC4vcl/zJdv4aaI+xndx/jH/pP/3NgrTxHm+YIkrxGXvKhZMDvHzBWdJepUI9iBbLg8fCNmS26swEerLlfqjsrObXPYeRCBD+SN/dn6PAhY6P1xH3otzc/+vXl8d6InHodzzM/Mve8NsU/JXuWFcbLlJ9rf5LHwstvHw1af7ausqmxbCk01i8av7K204GF/44pGlm1g2S33ShCwRxd6N7Db/km5k++XO/Xw8+vujtC4/ZXvtDalMGDJ93GdZTH7Ll+8j94l796n84rJ31ss2fnp3F4solpnqsnd+nm+854G4FZ7Hw8qO4Up4/I8VDz8l3Ntu/+2tzjb5BjfahPLv0WyqZfYT780Xl69V7pLfhkzp9VEZaG02Yntwbf6/AjbIB7jOfsWZSuDOYB9xjkYMlUVS6W09c7PX9wH6QKNjHWh8rANNjnWg6bEONDvWgebHOtD51z6QCD2Z3wf1hwHUQxxDNKI5hmBDcwyxhOYYQgXNMUQCmmNwdDTH4MdojsFNEZw0ck1eWHH2kcHbm7mHzxF23MOnBDvu4TOAHfdwwrfjHs7vdtzD6dyOezh723EPJ2s8N5tqOe9kmIVp5yhbRlEaRil31PS0M42FkqWrWhqeOunxmKSTBJgss+Un4s40l+nPhz1k0u18nqqCzomWzlI8quKkc8N5+Jn70Zo7zPMkjxAYc1k+GUbExqdjvuQxD11O6dh0UF+E3Ak3wYLAN9fskYzFQ494+AoiSVIoHZpt0pUKEkHg1AFz44hgzsLI8sN7kXQfKwVxrje+z4lYH2lcTLO61wYa07000JjulYHGdC8MKppRDVFOIxqpnEY0YDmNaNwy/6Qat5xGNG45jWjcclr3cXsQqc/3Zx2D9mt3N36UUCS8e/EY6vXTzqR8zdS5YzF7jNl65ahl54MzLfRx9JLzA8U5rSRRzeu1i6hVZxFuug/oDo0quEoeUXiVPKIAK3ndQ+yDnCarCdotTT1zv1mktUHbviq4Z/4mm9B2jzaWdvewbQC8FXFCFgb1WAIP/qims7dEU71tK7s3bMvqHlb7WYm0eTmSoJV+5D7RpOHblzWPZVn21Jn0NvL96Jl7dMT7NI4yX6uG/HDYOuTfBOsVS0QCEO1P9cUdDM4Htu7coTufiZBGtzevAiZ8h24Gcfvw4b3zEK1VmakGhgZ4HaVpFJAx85XAH/7gi3/RNPBKFsHhC1Fvr4iWhzTsRhCcZDJS5BGR5DRThILkHKp5/+Evi4jFHg3tLubZTUMpJyLes2DtU8WWzIvPMv8QzIY0778sFmpdiCqoHkhglWXDZLP4k7vdU93HyCFZGfp1k+r1Rz3V7X61dwfXfZqwg+s+RdBqytOD8l+Czu7gund2B0fV2RufJYkwXkK15lF1t+BR97d78ZfzIj+KlxufbgALINkIFkCyIYz8TRAmlD3WPMIOax51fwldRvMIluQ079+x8MjE0DAqJTSMSgYNo9JAw0gF6H6HTgXW/TadCqz7vToZjGgKUIFR+Rnp6Z/oKk8FRuVnGkblZxpG5WcaRuVno9cOXy7lJJjuFFNBUvlcBUl3oglTHqyjmMUvRMg3Pn9kBAukGe0ujpbq1yRRmN3ETTGd3SxSysl2hqMS+Q++IGuaYlG2i2BFlPl+FBGtrW1PONpy9961Q2b65xydm3DnM5evIt/jsaFPjfXy/Zq5Ai6dtr9Y8l48rlLnflWu9lcx07ODlkXBvmN2+IB1Yz4dNl5m8sQmKBoKf0wxHbU3HgLj8WHj7Uxix3LS0hIec3rYcjtL3rGctbSEx5y3tBwBy6Z4eM3ip1pHmDX5T1njGZxv1nhhvjCuPWyTI5WWdS44a/KinVBxrlxXXS2A6rSLGbN9u+Ax22OiyEzBhJOZ0jquzIimAPudfxZJ7Rr1gevf5d0TIO+PW2fO3zZRCi5TD9v/qOudnDiFCXdqOaP2F652sox5HFunGzOidd4xI1onIDOiVSYymqNSkpnSOjeZEa2TlBmBzlbwjIDLVtAel62gvU22ghSbbNVhFmBGtJ4OmBHoQIUIdKB2mCmYEahABeZWgQop6ECFCHSgQgQ6UOEEDBeo0B4XqNDeJlAhxSZQIQUdqBCBDlSIQAcqRKADFSLQgWo5tzeaWwUqpKADFSLQgQoR6EAddwxUaI8LVGhvE6iQYhOokIIOVIhABypEoAMVItCBChHoQIUIVKACc6tAhRR0oEIEOlAhAh2ok46BCu1xgQrtbQIVUmwCFVLQgQoR6ECFCHSgQgQ6UCECHagQgQpUYG4VqJCCDlSIQAcqRKADddoxUKE9LlChvU2gQopNoEIKOlAhAh2oEIEOVIhABypEoAMVIlCBCsytAhVS0IEKEehAhYgm/8wvUZpusx/gVz2Nd+wjfueTNer36k+5d9ZQ26OKVplZ7X+LcB1FT07tDw9Ho/YQsfBFpJeoDZfVq9wZ+sLnrzfNv/Bp8RiPtl3Jfwuhr5kC+LitJVhTGTe5fNUSFHnjJk+vWoJZ57gp+1YtwWlw3JR0dVwWN6XI0xEwbkozFeOBwbwpW1fM4RA35eiKIRzhpsxcMYQD3JSPK4YTRyXnfetJy3GalveXAkKTO1YIMzOhyS2hVsa1/daimQlt1TMT2spoJqD0NGLwwppRaIXNKDupYZhhpbYPVDMBKzUkWEkNMPZSQ5S11BBlJzVMjFipIQErtX1yNhOspAYYe6khylpqiLKTGp7KsFJDAlZqSMBK3fGEbMTYSw1R1lJDlJ3UcHKHlRoSsFJDAlZqSLCSGmDspYYoa6khyk5qUCWjpYYErNSQgJUaEqykBhh7qSHKWmqIapJar6LYV0sVc9wkrGKIOyFXDHHJuWJoUS1VrC2rpQrBslqCWtlVS1XR7Kqlqnp21VJVRrtqCehpVy3VCmtXLdUqbFctmaXGVUt1UtsHql21VCc1rloySo2rlhqlxlVLjVLjqiWz1LhqqU5qXLVUJ7V9crarloxS46qlRqlx1VKj1LhqySw1rlqqkxpXLdVJjauW6qTueEK2q5YapcZVS41S46ols9S4aqlOaly1VCc1rlqqkxpXLRmlxlVLjVLjqqVGqXHVkllqXLVUJzWuWqqTGlct1UmNq5aMUuOqpUapcdVSo9S4aumDNBEEj4C6D1icOnTPi7tlySpl3R9O+CmMeRL5n7nn0Hb1PaqX/eed118ptn6dn9w/lWOmnoBe+bmSlz0BNgfqHd955WuqlLFqiZO/5yvfrBucX67NjqgNDxyqhOfXigcAv325lT7Cgsle/RrWHTxUD0as2a4cotheHOZmxeLs262rFvuc7/fl+SJO1Avcsq/Pzoaj0evZdbbXOns12xPn64/y+P3ig9SHJ/pTkv2AVpov1DPF5AiMpvq3V2yZ8viyN8+jNsqe2vT+s18eKZcuP0btW+CKV76xPyuvfNt/H5z68k2+TX2vXwlXa+kmaWXztfBE1jhXRXnZrrfj2VT7ht5ZZ4DLHtPxv92sbkpR9xm8zQjbF8gVF5urL5AbF30tXu1m4zxDo/MMKZ1n2MJ5tmGZ7bcTlF/ZvQYt3WvwfbrXaAjdK9vW0b1GRvcaUbrX6Dtxr2Gzex1yomO4ynAOXSXb1tFVxkZXGVO6yvjEXWVe9ZSx0VNGX8dTRPbfm4TEbzp6xMToERNKj5h8Hx4xPs3c0dEHpkYfmFL6wPTEfcAs++ToiWByrv7tO4F609LWBR6EeoPv1ZTAA2ZGD5hResDsb+sB0yME/pE1nxs1n1NqPj8pzaGys6PH9nCm/rXR+TXFnO/cqPM5pc7nJ67z/AgRTK+sKweVufkD1Q3rX/mLkcon++jXIu1rbnh7kkGvQTu9zO1O1SpsQ5v1Km3jwl3+sHaTQ7X2qHThZ1LLP96FyqGe83fYZy31vrBeseMN9/0PLNs7Wpt39fkyzb4dnM1rvl9kr4Qw2sf62oER0N9tTL/shHm8s5dE5j9qMa6T6keGweHOHiXWcaRb+rC7SeTQ6OXe/fbtrIHut/K2WG51tnlmL3HVxoEpXQ0OpCpz8vle1qO6LHciJR02SjokknSIO/t8/wp3WXFEKjxqVHhEpPDoayn8d1/0Q6o1blRrTKTW+NTUOvbCG1KVSaMqEyJVJqemysnpMG3UYUqkw/TUdDjqahRSklmjJDMiSWanJslpiTBvFGFOJML81EQ46koOUpLzRknOiSQ5PzVJvslyWvZgi/2xzrZSrKNpUtMi2iAv2FBrZNtF7r0L4656fcWXdMP8/En6jctjxyyBtk3W3XpV9PuJx+XgbifLZXqcwunzhDgRbiWqdYOu4VbxJbP6p1m2Hl+z+iAtX6K9L1D5BUWoFrDGaB1YRGu4CbI/hA/vhyq/BDE9mB64Je+bTECAVwwm36Lm3RHL5BZdQ3fXvczecOJzxq8sWX3MZq8B2Fcm20oRrZrUFKpDmztrD92ANige3venW3BUEcvj2khtmGSOz9S/NhpS18PbgasVp2vMVBQ2a3IwYI46cvUOrC6fbN+rsT9We6/dOOTRcChGYwv3FPpSl7pQpZ6R12LO19Jdyk7nD44rn2a3323wuDuco9R4BOqEetg7jnifVT4W9Ylu920oFAmverimvDeyKSjW117lAqneL5GelL9X+y91j5yTZUeuJ61OPuyW6+PlpdSvfKT+tmeHfhgxKjJ7NcbmU90afWU3+0SS/L/peijwo0bX7Xo62AmSAx57cnHfmCO3z9Y0DeB2j65Zsrjmh8qSi+yo+WglMqn4N2xNM3ZgSjmpH9Hir+Tn/wNQSwMECgAAAAAAk2RNWwAAAAAAAAAAAAAAAAsAHAB3b3JkL3RoZW1lL1VUCQADhhztaIcc7Wh1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAAAAhAGeA/LSbBgAAzSAAABUAHAB3b3JkL3RoZW1lL3RoZW1lMS54bWxVVAkAAzDQzhIw0M4SdXgLAAEE9QEAAAQUAAAA7VlPb9s2FL8P2HcgdHf1x5IsBXUL/23XJm3RpB16ZGRaYkyJAkknMYoCQ3vaZcCAbthlwG47DMMKrMCKXfZhCrTYug8xSnZs0abatE23AksMxCL5e48/vvf4+ExdvHycEnCIGMc0axv2BcsAKIvoCGdx27izN2wEBuACZiNIaIbaxgxx4/KlTz+5CLdEglIEpHzGt2DbSITIt0yTR7Ib8gs0R5kcG1OWQiGbLDZHDB5JvSkxHcvyzRTizAAZTKXam+MxjhDYK1Qal06UD4j8lwledESE7UbljFWJEjua2MUXn/EeYeAQkrYh5xnRoz10LAxAIBdyoG1Y5Z9hXrpoLoWIqJGtyA3Lv4XcQmA0cUo5Fu8vBa2BE7j2Ur8z17+JGwTFZ6mvBMAokiu1N7C251uBs8BWQPNHje6wZTdVfEV/c1N/6HcdV8E3V3h3c43DcND3FLy7wnsb+I7ldMOmgvdWeH8D7w46LWeg4EtQQnA22UT7rSDwF+glZEzJVS089H2r1V/AVyizEl1z+UzUxVoKDygbSkDpXChwBsQsR2MYSVwnF5SDPuY5gTMD5DCjXHZbjm3LwHMtZ/kpLQ63EKxIz7sivtFV8AE8YjgXbeOa1GpUIC+ePXv+8Onzh789f/To+cNfwDaOE6GRuwqzuCr36sev//7+C/DXrz+8evyNHs+r+Jc/f/ny9z9ep14otL598vLpkxffffXnT4818A6D+1X4Hk4RBzfQEbhNU7lAzQRon72dxF4CcVWik8UcZrCQ0aAHIlHQN2aQQA2ui1Q73mUyXeiAV6YHCuHdhE0F1gCvJ6kC3KGUdCnTrul6MVfVCtMs1k/OplXcbQgPdXP31rw8mOYy7rFOZS9BCs1bRLocxihDAhRjdIKQRuwexopdd3DEKKdjAe5h0IVYa5I9vC/0QldxKv0y0xGU/lZss3MXdCnRqe+jQxUp9wYkOpWIKGa8AqcCplrGMCVV5DYUiY7k7oxFisG5kJ6OEaFgMEKc62RusplC9zqUeUvr9h0yS1UkE3iiQ25DSqvIPp30EpjmWs44S6rYz/hEhigEt6jQkqDqDina0g8wq3X3XYzE2+3tOzIN6QOkGJky3ZZAVN2PMzKGSKe8w1IlxXYY1kZHdxorob2NEIFHcIQQuPOZDk9zqid9LZFZ5SrS2eYaVGO1aGeIy1qpKG40jsVcCdldFNMaPjuztcQzg1kKWZ3mGxM1ZAb7TG5GXbySaKKkUsyKTasncZOn8FRabyVQCauizfXxOmPZ2+4xKXPwDjLorWVkYj+1bfYgQfqA2YMYbOvSrRSZ6kWK7VSKTbVyY3XTrtxgrhU9Kc7eUAH9N5XPB6t5zr7aqUso6zVOHW69sulRNsIff2HTh9PsFpJnyXldc17X/B/rmrr9fF7NnFcz59XMv1bNrAoYs3rZU2pJa29+xpiQXTEjaJuXpQ+Xe380lJ1loxRaXjTliXxcTKfgYgbLZ8Co+ByLZDeBuZzGLmeI+UJ1zEFOuSyfjFrdZfE1TXfoaHGPZ5/cbUoBKFb9lrfsl6WamPf6rdVF6FJ92Yp5lYBXKj09icpkKommhkSreToStnVWLEINi8B+HQuz4hV5OAFYXIt77pyRDDcZ0qPCT3P5E++euafrjKku29EsL3TPzNMKiUq4qSQqYZjIw2O9+4x9HYZ6VztaGq3gQ/ja3MwNJFNb4EjuuaYn1UQwbxtj+bNJPqa51MeLTAVJnLWNSCwM/S6ZJWdc9CFP5rByaL7+FAvEAMGpjPWqG0i24mY7LevjJRdaH5/lzHUno/EYRaKmZ9WUY3Ml2tH3BBcNOpWkd5PREdgnU3YbSkN5Lbsw4AhzsbTmCLNKcK+suJauFltReQO02qKQ5AlcnCjVZD6Hl89LOpV1lEzXV2XqTLgfD8/i1H2z0FrSrDlAWrVZ7MMd8hVWTT0rT5vrwsB6/Snx/gdChVqgp9bUU6s7O86wIKhM59fYzan15nueButRa1bqyrK18XKb7h/IyO/LanVKBJ9fkB3L8rt38lpyngnK3pPscizAlOG2cd/yOm7P8XoNK/AGDbfpWo3A6zQbHc9r2gPPtvpd54E0ikhS25vPPZQ/9sls8e6+7N94f5+elNoXIpqatKyDzVK4fH9vO/Xv7wGWlrnvO8OwGXb9RtjsDBtuvxs0wp7fbfT9Xqs/7Pe8IBw+MMBhCXY7zZ7rD4KGb/d6Dde3CvpB2Gi5jtNxW51g4HYeLGwtV37yfWLektelfwBQSwMECgAAAAAAk2RNWwAAAAAAAAAAAAAAAAsAHAB3b3JkL19yZWxzL1VUCQADhhztaIcc7Wh1eAsAAQT1AQAABBQAAABQSwMEFAAAAAgAAAAhALO+ix3+AAAAtgMAABwAHAB3b3JkL19yZWxzL2RvY3VtZW50LnhtbC5yZWxzVVQJAAMw0M4SiBztaHV4CwABBPUBAAAEFAAAAK2TzWrDMBCE74W+g9h7LTttQwmRcymBXFv3AWR7/UP1Y6RNWr99RUoShwbTg44zYme+hdV6860VO6DzvTUCsiQFhqaydW9aAR/F9uEFmCdpaqmsQQEjetjk93frN1SSwpDv+sGzkGK8gI5oWHHuqw619Ikd0ISXxjotKUjX8kFWn7JFvkjTJXfTDMivMtmuFuB29SOwYhzwP9m2afoKX22112joRgX3SBQ28yFTuhZJwMlJQhbw2wiLqAg0KpwCHPVcfRaz3ux1iS5sfCE4W3MQy5gQFGbxAnCUv2Y2x/Ack6GxhgpZqgnH2ZqDeIoJ8YXl+5+TnJgnEH712/IfUEsBAh4DFAAAAAgAAAAhADKRb1deAQAApQUAABMAGAAAAAAAAQAAAKSBAAAAAFtDb250ZW50X1R5cGVzXS54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACTZE1bAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UGrAQAAZG9jUHJvcHMvVVQFAAOGHO1odXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAAAAgAAAAhACEYr1llAQAAxQIAABAAGAAAAAAAAQAAAKSB7gEAAGRvY1Byb3BzL2FwcC54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAAACAAAACEACvOn+GYBAADtAgAAEQAYAAAAAAABAAAApIGdAwAAZG9jUHJvcHMvY29yZS54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACTZE1bAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA7UFOBQAAX3JlbHMvVVQFAAOGHO1odXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAAAAgAAAAhAB6RGrfpAAAATgIAAAsAGAAAAAAAAQAAAKSBjgUAAF9yZWxzLy5yZWxzVVQFAAMw0M4SdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAk2RNWwAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BvAYAAHdvcmQvVVQFAAOGHO1odXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAAAAgAoWRNW+xw0GIQAgAAtAcAABIAGAAAAAAAAQAAAKSB+wYAAHdvcmQvZm9udFRhYmxlLnhtbFVUBQADnhztaHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAAAAIQCWFrgr1QIAAIgLAAARABgAAAAAAAEAAACkgVcJAAB3b3JkL2RvY3VtZW50LnhtbFVUBQADMNDOEnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAAAAIQDK52WKKwQAAL4MAAARABgAAAAAAAEAAACkgXcMAAB3b3JkL3NldHRpbmdzLnhtbFVUBQADMNDOEnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAAAAIQDbhWzDfQQAAJcdAAASABgAAAAAAAEAAACkge0QAAB3b3JkL251bWJlcmluZy54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAAACAAAACEAvn52YlYBAADQAwAAFAAYAAAAAAABAAAApIG2FQAAd29yZC93ZWJTZXR0aW5ncy54bWxVVAUAAzDQzhJ1eAsAAQT1AQAABBQAAABQSwECHgMUAAAACAAAACEAP6/hZl8PAAANpgAADwAYAAAAAAABAAAApIFaFwAAd29yZC9zdHlsZXMueG1sVVQFAAMw0M4SdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAk2RNWwAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BAicAAHdvcmQvdGhlbWUvVVQFAAOGHO1odXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAAAAgAAAAhAGeA/LSbBgAAzSAAABUAGAAAAAAAAQAAAKSBRycAAHdvcmQvdGhlbWUvdGhlbWUxLnhtbFVUBQADMNDOEnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJNkTVsAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQTEuAAB3b3JkL19yZWxzL1VUBQADhhztaHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAAAIAAAAIQCzvosd/gAAALYDAAAcABgAAAAAAAEAAACkgXYuAAB3b3JkL19yZWxzL2RvY3VtZW50LnhtbC5yZWxzVVQFAAMw0M4SdXgLAAEE9QEAAAQUAAAAUEsFBgAAAAARABEAqQUAAMovAAAAAA==`, 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, 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, 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 = "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, SNAPSHOT_VERSION3 = "sd-diff-snapshot/v1", PAYLOAD_VERSION3 = "sd-diff-payload/v1", 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, 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.20.0", PIXELS_PER_INCH2 = 96, MAX_HEIGHT_BUFFER_PX = 50, MAX_WIDTH_BUFFER_PX = 20, Editor, EXCLUDED_PLUGIN_KEY_REF_LIST, EXCLUDED_PLUGIN_KEY_REFS, EXCLUDED_PLUGIN_KEY_PREFIXES, TEXT_RANGE_BLOCK_SEP = `
222335
222713
  `, TEXT_RANGE_LEAF_SEP = `
222336
222714
  `, DecorationBridge = class DecorationBridge2 {
222337
222715
  #applied = /* @__PURE__ */ new WeakMap;
@@ -231390,9 +231768,9 @@ var Node$13 = class Node$14 {
231390
231768
  return;
231391
231769
  console.log(...args$1);
231392
231770
  }, 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;
231393
- var init_src_D389XrYP_es = __esm(() => {
231771
+ var init_src_S_W0SobE_es = __esm(() => {
231394
231772
  init_rolldown_runtime_B2q5OVn9_es();
231395
- init_SuperConverter_Cukh7tk8_es();
231773
+ init_SuperConverter_pK0uKHZW_es();
231396
231774
  init_jszip_ChlR43oI_es();
231397
231775
  init_uuid_qzgm05fK_es();
231398
231776
  init_constants_ep1_Gwqi_es();
@@ -241804,6 +242182,10 @@ ${err.toString()}`);
241804
242182
  sdBlockId: {
241805
242183
  default: null,
241806
242184
  rendered: false
242185
+ },
242186
+ style: {
242187
+ default: null,
242188
+ rendered: false
241807
242189
  }
241808
242190
  };
241809
242191
  },
@@ -258048,6 +258430,11 @@ function print() { __p += __j.call(arguments, '') }
258048
258430
  "styledContent",
258049
258431
  "styledPageNumber"
258050
258432
  ]);
258433
+ REFERENCE_BLOCK_PREFIX = {
258434
+ index: "index-auto",
258435
+ bibliography: "bibliography-auto",
258436
+ tableOfAuthorities: "toa-auto"
258437
+ };
258051
258438
  CAPTION_STYLE_NAMES = new Set(["Caption", "caption"]);
258052
258439
  CAPTION_FORMAT_TO_OOXML = {
258053
258440
  decimal: "ARABIC",
@@ -264697,8 +265084,8 @@ var init_zipper_DqXT7uTa_es = __esm(() => {
264697
265084
 
264698
265085
  // ../../packages/superdoc/dist/super-editor.es.js
264699
265086
  var init_super_editor_es = __esm(() => {
264700
- init_src_D389XrYP_es();
264701
- init_SuperConverter_Cukh7tk8_es();
265087
+ init_src_S_W0SobE_es();
265088
+ init_SuperConverter_pK0uKHZW_es();
264702
265089
  init_jszip_ChlR43oI_es();
264703
265090
  init_xml_js_BtmJ6bNs_es();
264704
265091
  init_constants_ep1_Gwqi_es();
@@ -320035,10 +320422,11 @@ function normalizeFlatTargetFlags(operationId, apiInput) {
320035
320422
  if (SELECTION_TARGET_OPERATIONS.has(operationId)) {
320036
320423
  const blockId = apiInput.blockId;
320037
320424
  if (typeof blockId === "string") {
320038
- const start3 = typeof apiInput.start === "number" ? apiInput.start : 0;
320039
- const end2 = typeof apiInput.end === "number" ? apiInput.end : 0;
320425
+ const hasOffset = typeof apiInput.offset === "number";
320426
+ const start3 = typeof apiInput.start === "number" ? apiInput.start : hasOffset ? apiInput.offset : 0;
320427
+ const end2 = typeof apiInput.end === "number" ? apiInput.end : hasOffset ? apiInput.offset : 0;
320040
320428
  assertLegacySelectionTargetSupported(operationId, { range: { start: start3, end: end2 } });
320041
- const { blockId: _2, start: _s, end: _e, ...rest } = apiInput;
320429
+ const { blockId: _2, start: _s, end: _e, offset: _o, ...rest } = apiInput;
320042
320430
  return {
320043
320431
  ...rest,
320044
320432
  target: textAddressToSelectionTarget({ blockId, range: { start: start3, end: end2 } })
@@ -320059,18 +320447,6 @@ function normalizeFlatTargetFlags(operationId, apiInput) {
320059
320447
  }
320060
320448
  return apiInput;
320061
320449
  }
320062
- if (operationId === INSERT_OPERATION) {
320063
- const blockId = apiInput.blockId;
320064
- if (typeof blockId === "string") {
320065
- const offset3 = typeof apiInput.offset === "number" ? apiInput.offset : 0;
320066
- const { blockId: _2, offset: _o, ...rest } = apiInput;
320067
- return {
320068
- ...rest,
320069
- target: { kind: "text", blockId, range: { start: offset3, end: offset3 } }
320070
- };
320071
- }
320072
- return apiInput;
320073
- }
320074
320450
  if (operationId === "blocks.delete") {
320075
320451
  const nodeType2 = apiInput.nodeType;
320076
320452
  const nodeId = apiInput.nodeId;
@@ -320112,7 +320488,7 @@ function extractInvokeInput(operationId, cliInput) {
320112
320488
  }
320113
320489
  return normalizeFlatTargetFlags(operationId, apiInput);
320114
320490
  }
320115
- var WRAPPED_INPUT_KEY, PARAM_RENAMES, CLI_LEVEL_KEYS, CHANGEMODE_IN_INPUT, FORMAT_TARGET_OPERATIONS, SELECTION_TARGET_OPERATIONS, TEXT_ADDRESS_TARGET_OPERATIONS, INSERT_OPERATION = "insert", LIST_TARGET_OPERATIONS;
320491
+ var WRAPPED_INPUT_KEY, PARAM_RENAMES, CLI_LEVEL_KEYS, CHANGEMODE_IN_INPUT, FORMAT_TARGET_OPERATIONS, SELECTION_TARGET_OPERATIONS, TEXT_ADDRESS_TARGET_OPERATIONS, LIST_TARGET_OPERATIONS;
320116
320492
  var init_invoke_input = __esm(() => {
320117
320493
  init_errors();
320118
320494
  init_operation_set();
@@ -320159,7 +320535,12 @@ var init_invoke_input = __esm(() => {
320159
320535
  CLI_LEVEL_KEYS = new Set(["doc", "sessionId", "out", "dryRun", "force", "expectedRevision", "changeMode"]);
320160
320536
  CHANGEMODE_IN_INPUT = new Set(["mutations.apply", "mutations.preview"]);
320161
320537
  FORMAT_TARGET_OPERATIONS = CLI_DOC_OPERATIONS.filter((operationId) => operationId.startsWith("format."));
320162
- SELECTION_TARGET_OPERATIONS = new Set(["replace", "delete", ...FORMAT_TARGET_OPERATIONS]);
320538
+ SELECTION_TARGET_OPERATIONS = new Set([
320539
+ "insert",
320540
+ "replace",
320541
+ "delete",
320542
+ ...FORMAT_TARGET_OPERATIONS
320543
+ ]);
320163
320544
  TEXT_ADDRESS_TARGET_OPERATIONS = new Set(["comments.create", "comments.patch"]);
320164
320545
  LIST_TARGET_OPERATIONS = new Set([
320165
320546
  "lists.insert",
@@ -320278,7 +320659,7 @@ async function executeReadOperation(request) {
320278
320659
  } finally {
320279
320660
  opened.dispose();
320280
320661
  }
320281
- }, context.sessionId);
320662
+ }, context.sessionId, context.executionMode);
320282
320663
  }
320283
320664
  var ECHO_INPUT_FIELDS;
320284
320665
  var init_read_orchestrator = __esm(() => {
@@ -320479,7 +320860,7 @@ async function executeMutationOperation(request) {
320479
320860
  } finally {
320480
320861
  opened.dispose();
320481
320862
  }
320482
- }, context.sessionId);
320863
+ }, context.sessionId, context.executionMode);
320483
320864
  }
320484
320865
  var STATELESS_OUT_EXEMPT;
320485
320866
  var init_mutation_orchestrator = __esm(() => {
@@ -321388,7 +321769,7 @@ function deriveOptionSpecs(operationId, params4) {
321388
321769
  }
321389
321770
  return specs;
321390
321771
  }
321391
- var DOC_PARAM, SESSION_PARAM, OUT_PARAM, FORCE_PARAM, DRY_RUN_PARAM, CHANGE_MODE_PARAM, EXPECTED_REVISION_PARAM, USER_NAME_PARAM, USER_EMAIL_PARAM, AGENT_HIDDEN_PARAM_NAMES, OPERATION_CONSTRAINTS, PARAM_FLAG_OVERRIDES, PARAM_SCHEMA_OVERRIDES, PARAM_EXCLUSIONS, TEXT_TARGET_FLAT_PARAMS, INSERT_FLAT_PARAMS, LIST_TARGET_FLAT_PARAMS, FORMAT_OPERATION_IDS, EXTRA_CLI_PARAMS, CLI_ONLY_METADATA, CLI_OPERATION_METADATA, OPTION_FLAG_ALIASES, CLI_OPERATION_OPTION_SPECS;
321772
+ var DOC_PARAM, SESSION_PARAM, OUT_PARAM, FORCE_PARAM, DRY_RUN_PARAM, CHANGE_MODE_PARAM, EXPECTED_REVISION_PARAM, USER_NAME_PARAM, USER_EMAIL_PARAM, AGENT_HIDDEN_PARAM_NAMES, OPERATION_CONSTRAINTS, PARAM_FLAG_OVERRIDES, PARAM_SCHEMA_OVERRIDES, PARAM_EXCLUSIONS, TEXT_TARGET_FLAT_PARAMS, LIST_TARGET_FLAT_PARAMS, FORMAT_OPERATION_IDS, EXTRA_CLI_PARAMS, CLI_ONLY_METADATA, CLI_OPERATION_METADATA, OPTION_FLAG_ALIASES, CLI_OPERATION_OPTION_SPECS;
321392
321773
  var init_operation_params = __esm(() => {
321393
321774
  init_src();
321394
321775
  init_commands();
@@ -321493,10 +321874,6 @@ var init_operation_params = __esm(() => {
321493
321874
  { name: "start", kind: "flag", type: "number", description: "Start offset within the block (character index)." },
321494
321875
  { name: "end", kind: "flag", type: "number", description: "End offset within the block (character index)." }
321495
321876
  ];
321496
- INSERT_FLAT_PARAMS = [
321497
- { name: "blockId", kind: "flag", flag: "block-id", type: "string", description: "Block ID of the target paragraph." },
321498
- { name: "offset", kind: "flag", type: "number", description: "Character offset within the block for insertion." }
321499
- ];
321500
321877
  LIST_TARGET_FLAT_PARAMS = [
321501
321878
  { name: "nodeId", kind: "flag", flag: "node-id", type: "string", description: "Node ID of the target list item." }
321502
321879
  ];
@@ -321545,7 +321922,15 @@ var init_operation_params = __esm(() => {
321545
321922
  description: "Node address to retrieve (block or inline address object)."
321546
321923
  }
321547
321924
  ],
321548
- "doc.insert": [...INSERT_FLAT_PARAMS],
321925
+ "doc.insert": [
321926
+ ...TEXT_TARGET_FLAT_PARAMS,
321927
+ {
321928
+ name: "offset",
321929
+ kind: "flag",
321930
+ type: "number",
321931
+ description: "Character offset for insertion (alias for --start/--end with same value)."
321932
+ }
321933
+ ],
321549
321934
  "doc.replace": [...TEXT_TARGET_FLAT_PARAMS],
321550
321935
  "doc.delete": [...TEXT_TARGET_FLAT_PARAMS],
321551
321936
  "doc.styles.apply": [
@@ -322364,7 +322749,7 @@ var init_introspection_dispatch = __esm(() => {
322364
322749
  };
322365
322750
  },
322366
322751
  "doc.status": async (_input, context) => {
322367
- const activeSessionId = await getActiveSessionId();
322752
+ const activeSessionId = context.executionMode === "host" ? null : await getActiveSessionId();
322368
322753
  try {
322369
322754
  return await withActiveContext(context.io, "status", async ({ metadata, paths }) => {
322370
322755
  const byteLength3 = await getWorkingDocumentSize(paths);
@@ -322403,9 +322788,9 @@ var init_introspection_dispatch = __esm(() => {
322403
322788
  ].filter((line) => Boolean(line)).join(`
322404
322789
  `)
322405
322790
  };
322406
- }, context.sessionId);
322791
+ }, context.sessionId, context.executionMode);
322407
322792
  } catch (error2) {
322408
- if (error2 instanceof CliError && error2.code === "NO_ACTIVE_DOCUMENT") {
322793
+ if (error2 instanceof CliError && (error2.code === "NO_ACTIVE_DOCUMENT" || error2.code === "SESSION_REQUIRED")) {
322409
322794
  return {
322410
322795
  command: "status",
322411
322796
  data: {
@@ -322564,7 +322949,7 @@ function acceptsLegacyTextAddressTarget(operationId, param, value2) {
322564
322949
  if (param.name !== "target" || !isTextAddressLike2(value2))
322565
322950
  return false;
322566
322951
  const docApiId = toDocApiId(operationId);
322567
- return docApiId === "replace" || docApiId === "delete" || docApiId?.startsWith("format.") === true;
322952
+ return docApiId === "insert" || docApiId === "replace" || docApiId === "delete" || docApiId?.startsWith("format.") === true;
322568
322953
  }
322569
322954
  function extractConstValues(variants) {
322570
322955
  const values2 = [];
@@ -323162,13 +323547,16 @@ async function runClose(tokens, context) {
323162
323547
  const mode2 = validateCloseMode(getBooleanOption(parsed, "discard"));
323163
323548
  return withActiveContext(context.io, "close", async ({ metadata, paths }) => {
323164
323549
  const effectiveMetadata = metadata;
323165
- const activeSessionId = await getActiveSessionId();
323166
- const wasDefaultSession = activeSessionId === effectiveMetadata.contextId;
323167
323550
  if (effectiveMetadata.dirty && !mode2.discard) {
323168
323551
  throw new CliError("DIRTY_CLOSE_REQUIRES_DECISION", 'Active document has unsaved changes. Run "superdoc save" first or close with --discard.', {
323169
323552
  revision: effectiveMetadata.revision
323170
323553
  });
323171
323554
  }
323555
+ let wasDefaultSession = false;
323556
+ if (context.executionMode !== "host") {
323557
+ const activeSessionId = await getActiveSessionId();
323558
+ wasDefaultSession = activeSessionId === effectiveMetadata.contextId;
323559
+ }
323172
323560
  const result2 = {
323173
323561
  command: "close",
323174
323562
  data: {
@@ -323194,7 +323582,7 @@ async function runClose(tokens, context) {
323194
323582
  await clearActiveSessionId();
323195
323583
  }
323196
323584
  return result2;
323197
- }, context.sessionId);
323585
+ }, context.sessionId, context.executionMode);
323198
323586
  }
323199
323587
  var init_close = __esm(() => {
323200
323588
  init_args();
@@ -323314,7 +323702,7 @@ async function runOpen(tokens, context) {
323314
323702
  const bootstrap = "bootstrap" in opened ? opened.bootstrap : undefined;
323315
323703
  let adoptedToHostPool = false;
323316
323704
  try {
323317
- const output = await exportToPath(opened.editor, paths.workingDocPath, true);
323705
+ await exportToPath(opened.editor, paths.workingDocPath, true);
323318
323706
  const sourcePath = opened.meta.source === "path" && opened.meta.path ? resolveSourcePathForMetadata(opened.meta.path) : undefined;
323319
323707
  const sourceSnapshot = sourcePath ? await snapshotSourceFile(sourcePath) : undefined;
323320
323708
  const metadata = createInitialContextMetadata(context.io, paths, sessionId, {
@@ -323326,7 +323714,9 @@ async function runOpen(tokens, context) {
323326
323714
  user
323327
323715
  });
323328
323716
  await writeContextMetadata(paths, metadata);
323329
- await setActiveSessionId(metadata.contextId);
323717
+ if (context.executionMode !== "host") {
323718
+ await setActiveSessionId(metadata.contextId);
323719
+ }
323330
323720
  if (context.executionMode === "host" && context.sessionPool) {
323331
323721
  context.sessionPool.adoptFromOpen(sessionId, opened, {
323332
323722
  sessionType: metadata.sessionType,
@@ -323474,7 +323864,7 @@ async function runSave(tokens, context) {
323474
323864
  },
323475
323865
  pretty: `Saved context to ${output.path}`
323476
323866
  };
323477
- }, context.sessionId);
323867
+ }, context.sessionId, context.executionMode);
323478
323868
  }
323479
323869
  var init_save = __esm(() => {
323480
323870
  init_args();
@@ -324030,10 +324420,7 @@ async function preflightCallContext(operationId, input2, context) {
324030
324420
  if (!runtime.context.requiresSession || hasExplicitSessionTarget) {
324031
324421
  return;
324032
324422
  }
324033
- const activeSessionId = await getActiveSessionId();
324034
- if (!hasNonEmptyString(activeSessionId)) {
324035
- throw new CliError("NO_ACTIVE_DOCUMENT", `call: ${operationId} requires an active session or input.sessionId.`);
324036
- }
324423
+ await resolveSessionId(undefined, context.executionMode);
324037
324424
  }
324038
324425
  function normalizeLegacyInput(operationId, input2) {
324039
324426
  if (operationId === "doc.tables.split" && input2.atRowIndex !== undefined) {