@superdoc-dev/cli 0.3.0 → 0.3.1-next.1

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 +1964 -149
  2. package/package.json +8 -8
package/dist/index.js CHANGED
@@ -13006,27 +13006,27 @@ function executeMarkdownToFragment(adapter, input) {
13006
13006
  // ../../packages/document-api/src/comments/comments.ts
13007
13007
  function validateCreateCommentInput(input) {
13008
13008
  if (!isRecord(input)) {
13009
- throw new DocumentApiValidationError("INVALID_TARGET", "comments.create input must be a non-null object.");
13009
+ throw new DocumentApiValidationError("INVALID_INPUT", "comments.create input must be a non-null object.");
13010
13010
  }
13011
13011
  assertNoUnknownFields(input, CREATE_COMMENT_ALLOWED_KEYS, "comments.create");
13012
13012
  const { target, text, parentCommentId } = input;
13013
13013
  const hasTarget = target !== undefined;
13014
13014
  const isReply = parentCommentId !== undefined;
13015
13015
  if (typeof text !== "string") {
13016
- throw new DocumentApiValidationError("INVALID_TARGET", `text must be a string, got ${typeof text}.`, {
13016
+ throw new DocumentApiValidationError("INVALID_INPUT", `text must be a string, got ${typeof text}.`, {
13017
13017
  field: "text",
13018
13018
  value: text
13019
13019
  });
13020
13020
  }
13021
13021
  if (isReply) {
13022
13022
  if (typeof parentCommentId !== "string" || parentCommentId.length === 0) {
13023
- throw new DocumentApiValidationError("INVALID_TARGET", "parentCommentId must be a non-empty string.", {
13023
+ throw new DocumentApiValidationError("INVALID_INPUT", "parentCommentId must be a non-empty string.", {
13024
13024
  field: "parentCommentId",
13025
13025
  value: parentCommentId
13026
13026
  });
13027
13027
  }
13028
13028
  if (hasTarget) {
13029
- throw new DocumentApiValidationError("INVALID_TARGET", "Cannot combine parentCommentId with target. Replies do not take a target.", { fields: ["parentCommentId", "target"] });
13029
+ throw new DocumentApiValidationError("INVALID_INPUT", "Cannot combine parentCommentId with target. Replies do not take a target.", { fields: ["parentCommentId", "target"] });
13030
13030
  }
13031
13031
  return;
13032
13032
  }
@@ -13044,13 +13044,13 @@ function validateCreateCommentInput(input) {
13044
13044
  }
13045
13045
  function validatePatchCommentInput(input) {
13046
13046
  if (!isRecord(input)) {
13047
- throw new DocumentApiValidationError("INVALID_TARGET", "comments.patch input must be a non-null object.");
13047
+ throw new DocumentApiValidationError("INVALID_INPUT", "comments.patch input must be a non-null object.");
13048
13048
  }
13049
13049
  assertNoUnknownFields(input, PATCH_COMMENT_ALLOWED_KEYS, "comments.patch");
13050
13050
  const { commentId, target } = input;
13051
13051
  const hasTarget = target !== undefined;
13052
13052
  if (typeof commentId !== "string") {
13053
- throw new DocumentApiValidationError("INVALID_TARGET", `commentId must be a string, got ${typeof commentId}.`, {
13053
+ throw new DocumentApiValidationError("INVALID_INPUT", `commentId must be a string, got ${typeof commentId}.`, {
13054
13054
  field: "commentId",
13055
13055
  value: commentId
13056
13056
  });
@@ -13063,13 +13063,25 @@ function validatePatchCommentInput(input) {
13063
13063
  if (providedFields.length > 1) {
13064
13064
  throw new DocumentApiValidationError("INVALID_INPUT", `comments.patch accepts exactly one mutation field per call, got ${providedFields.length}: ${providedFields.join(", ")}.`, { providedFields: [...providedFields] });
13065
13065
  }
13066
- const { status } = input;
13066
+ const { text, status, isInternal } = input;
13067
+ if (text !== undefined && typeof text !== "string") {
13068
+ throw new DocumentApiValidationError("INVALID_INPUT", `text must be a string, got ${typeof text}.`, {
13069
+ field: "text",
13070
+ value: text
13071
+ });
13072
+ }
13067
13073
  if (status !== undefined && status !== "resolved") {
13068
- throw new DocumentApiValidationError("INVALID_TARGET", `status must be "resolved", got "${String(status)}".`, {
13074
+ throw new DocumentApiValidationError("INVALID_INPUT", `status must be "resolved", got "${String(status)}".`, {
13069
13075
  field: "status",
13070
13076
  value: status
13071
13077
  });
13072
13078
  }
13079
+ if (isInternal !== undefined && typeof isInternal !== "boolean") {
13080
+ throw new DocumentApiValidationError("INVALID_INPUT", `isInternal must be a boolean, got ${typeof isInternal}.`, {
13081
+ field: "isInternal",
13082
+ value: isInternal
13083
+ });
13084
+ }
13073
13085
  if (hasTarget && !isTextAddress(target)) {
13074
13086
  throw new DocumentApiValidationError("INVALID_TARGET", "target must be a text address object.", {
13075
13087
  field: "target",
@@ -13100,13 +13112,29 @@ function executeCommentsPatch(adapter, input, options) {
13100
13112
  }
13101
13113
  throw new DocumentApiValidationError("INTERNAL_ERROR", "comments.patch: no mutation field matched after validation. This is a bug.");
13102
13114
  }
13115
+ function validateCommentIdInput(input, operationName) {
13116
+ if (!isRecord(input)) {
13117
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} input must be a non-null object.`);
13118
+ }
13119
+ if (typeof input.commentId !== "string" || input.commentId.length === 0) {
13120
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} commentId must be a non-empty string.`, {
13121
+ field: "commentId",
13122
+ value: input.commentId
13123
+ });
13124
+ }
13125
+ }
13103
13126
  function executeCommentsDelete(adapter, input, options) {
13127
+ validateCommentIdInput(input, "comments.delete");
13104
13128
  return adapter.remove({ commentId: input.commentId }, options);
13105
13129
  }
13106
13130
  function executeGetComment(adapter, input) {
13131
+ validateCommentIdInput(input, "comments.get");
13107
13132
  return adapter.get(input);
13108
13133
  }
13109
13134
  function executeListComments(adapter, query2) {
13135
+ if (query2 !== undefined && !isRecord(query2)) {
13136
+ throw new DocumentApiValidationError("INVALID_INPUT", "comments.list query must be an object if provided.");
13137
+ }
13110
13138
  return adapter.list(query2);
13111
13139
  }
13112
13140
  var CREATE_COMMENT_ALLOWED_KEYS, PATCH_COMMENT_ALLOWED_KEYS;
@@ -13220,18 +13248,45 @@ function executeGet(adapter, input) {
13220
13248
 
13221
13249
  // ../../packages/document-api/src/get-text/get-text.ts
13222
13250
  function executeGetText(adapter, input) {
13251
+ if (!isRecord(input)) {
13252
+ throw new DocumentApiValidationError("INVALID_INPUT", "getText input must be a non-null object.");
13253
+ }
13254
+ validateStoryLocator(input.in, "in");
13223
13255
  return adapter.getText(input);
13224
13256
  }
13257
+ var init_get_text = __esm(() => {
13258
+ init_story_validator();
13259
+ init_errors2();
13260
+ init_validation_primitives();
13261
+ });
13225
13262
 
13226
13263
  // ../../packages/document-api/src/get-markdown/get-markdown.ts
13227
13264
  function executeGetMarkdown(adapter, input) {
13265
+ if (!isRecord(input)) {
13266
+ throw new DocumentApiValidationError("INVALID_INPUT", "getMarkdown input must be a non-null object.");
13267
+ }
13268
+ validateStoryLocator(input.in, "in");
13228
13269
  return adapter.getMarkdown(input);
13229
13270
  }
13271
+ var init_get_markdown = __esm(() => {
13272
+ init_story_validator();
13273
+ init_errors2();
13274
+ init_validation_primitives();
13275
+ });
13230
13276
 
13231
13277
  // ../../packages/document-api/src/get-html/get-html.ts
13232
13278
  function executeGetHtml(adapter, input) {
13279
+ if (!isRecord(input)) {
13280
+ throw new DocumentApiValidationError("INVALID_INPUT", "getHtml input must be a non-null object.");
13281
+ }
13282
+ validateStoryLocator(input.in, "in");
13233
13283
  return adapter.getHtml(input);
13234
13284
  }
13285
+ var init_get_html = __esm(() => {
13286
+ init_story_validator();
13287
+ init_errors2();
13288
+ init_validation_primitives();
13289
+ });
13235
13290
 
13236
13291
  // ../../packages/document-api/src/info/info.ts
13237
13292
  function executeInfo(adapter, input) {
@@ -13955,155 +14010,574 @@ var init_insert = __esm(() => {
13955
14010
  VALID_INSERT_TYPES = new Set(["text", "markdown", "html"]);
13956
14011
  });
13957
14012
 
14013
+ // ../../packages/document-api/src/lists/lists.types.ts
14014
+ var LIST_KINDS, LIST_INSERT_POSITIONS, JOIN_DIRECTIONS, MUTATION_SCOPES, LEVEL_ALIGNMENTS, TRAILING_CHARACTERS, LIST_PRESET_IDS;
14015
+ var init_lists_types = __esm(() => {
14016
+ LIST_KINDS = ["ordered", "bullet"];
14017
+ LIST_INSERT_POSITIONS = ["before", "after"];
14018
+ JOIN_DIRECTIONS = ["withPrevious", "withNext"];
14019
+ MUTATION_SCOPES = ["definition", "instance"];
14020
+ LEVEL_ALIGNMENTS = ["left", "center", "right"];
14021
+ TRAILING_CHARACTERS = ["tab", "space", "nothing"];
14022
+ LIST_PRESET_IDS = [
14023
+ "decimal",
14024
+ "decimalParenthesis",
14025
+ "lowerLetter",
14026
+ "upperLetter",
14027
+ "lowerRoman",
14028
+ "upperRoman",
14029
+ "disc",
14030
+ "circle",
14031
+ "square",
14032
+ "dash"
14033
+ ];
14034
+ });
14035
+
13958
14036
  // ../../packages/document-api/src/lists/lists.ts
13959
- function validateListTarget(input, operationName) {
13960
- if (input.target === undefined) {
13961
- throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} requires a target.`);
14037
+ function validateListInput(input, operationName) {
14038
+ if (!isRecord(input)) {
14039
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} input must be a non-null object.`);
14040
+ }
14041
+ }
14042
+ function validateListItemAddress(value, field, operationName) {
14043
+ if (value === undefined || value === null) {
14044
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} requires a ${field}.`);
14045
+ }
14046
+ if (!isRecord(value)) {
14047
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} ${field} must be an object.`, {
14048
+ field,
14049
+ value
14050
+ });
14051
+ }
14052
+ const t = value;
14053
+ if (t.kind !== "block") {
14054
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} ${field}.kind must be 'block', got "${String(t.kind)}".`, { field: `${field}.kind`, value: t.kind });
14055
+ }
14056
+ if (t.nodeType !== "listItem") {
14057
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} ${field}.nodeType must be 'listItem', got "${String(t.nodeType)}".`, { field: `${field}.nodeType`, value: t.nodeType });
14058
+ }
14059
+ if (typeof t.nodeId !== "string" || t.nodeId === "") {
14060
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} ${field}.nodeId must be a non-empty string.`, { field: `${field}.nodeId`, value: t.nodeId });
14061
+ }
14062
+ }
14063
+ function validateListItemTarget(input, operationName) {
14064
+ validateListItemAddress(input.target, "target", operationName);
14065
+ }
14066
+ function validateBlockAddress(value, field, operationName) {
14067
+ if (!isRecord(value)) {
14068
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} ${field} must be an object.`, {
14069
+ field,
14070
+ value
14071
+ });
14072
+ }
14073
+ const v = value;
14074
+ if (v.kind !== "block") {
14075
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} ${field}.kind must be 'block', got "${String(v.kind)}".`, { field: `${field}.kind`, value: v.kind });
14076
+ }
14077
+ if (v.nodeType !== "paragraph") {
14078
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} ${field}.nodeType must be 'paragraph', got "${String(v.nodeType)}".`, { field: `${field}.nodeType`, value: v.nodeType });
14079
+ }
14080
+ if (typeof v.nodeId !== "string" || v.nodeId === "") {
14081
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} ${field}.nodeId must be a non-empty string.`, { field: `${field}.nodeId`, value: v.nodeId });
14082
+ }
14083
+ }
14084
+ function validateBlockAddressOrRange(value, field, operationName) {
14085
+ if (!isRecord(value)) {
14086
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} ${field} must be an object.`, {
14087
+ field,
14088
+ value
14089
+ });
14090
+ }
14091
+ const v = value;
14092
+ if (v.from !== undefined) {
14093
+ validateBlockAddress(v.from, `${field}.from`, operationName);
14094
+ validateBlockAddress(v.to, `${field}.to`, operationName);
14095
+ } else {
14096
+ validateBlockAddress(value, field, operationName);
14097
+ }
14098
+ }
14099
+ function requireLevel(value, operationName) {
14100
+ if (!isInteger(value) || value < 0) {
14101
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} level must be a non-negative integer, got ${JSON.stringify(value)}.`, { field: "level", value });
14102
+ }
14103
+ }
14104
+ function requireEnum(value, field, validSet, operationName) {
14105
+ if (!validSet.has(value)) {
14106
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${field} must be one of: ${[...validSet].join(", ")}. Got ${JSON.stringify(value)}.`, { field, value });
14107
+ }
14108
+ }
14109
+ function optionalBoolean(value, field, operationName) {
14110
+ if (value !== undefined && typeof value !== "boolean") {
14111
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${field} must be a boolean if provided, got ${typeof value}.`, { field, value });
14112
+ }
14113
+ }
14114
+ function optionalNumber(value, field, operationName) {
14115
+ if (value !== undefined && (typeof value !== "number" || !Number.isFinite(value))) {
14116
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${field} must be a number if provided, got ${typeof value}.`, { field, value });
14117
+ }
14118
+ }
14119
+ function optionalInteger(value, field, operationName) {
14120
+ if (value !== undefined && !isInteger(value)) {
14121
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${field} must be an integer if provided, got ${JSON.stringify(value)}.`, { field, value });
14122
+ }
14123
+ }
14124
+ function optionalLevelsArray(value, field, operationName) {
14125
+ if (value === undefined)
14126
+ return;
14127
+ if (!Array.isArray(value)) {
14128
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${field} must be an array if provided.`, {
14129
+ field,
14130
+ value
14131
+ });
14132
+ }
14133
+ for (let i = 0;i < value.length; i++) {
14134
+ if (!isInteger(value[i]) || value[i] < 0) {
14135
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${field}[${i}] must be a non-negative integer.`, { field: `${field}[${i}]`, value: value[i] });
14136
+ }
14137
+ }
14138
+ }
14139
+ function validateListLevelTemplate(entry, path, operationName) {
14140
+ if (!isRecord(entry)) {
14141
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${path} must be an object.`, {
14142
+ field: path,
14143
+ value: entry
14144
+ });
14145
+ }
14146
+ const e = entry;
14147
+ if (!isInteger(e.level) || e.level < 0) {
14148
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${path}.level must be a non-negative integer.`, { field: `${path}.level`, value: e.level });
14149
+ }
14150
+ if (e.numFmt !== undefined && typeof e.numFmt !== "string") {
14151
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${path}.numFmt must be a string.`, {
14152
+ field: `${path}.numFmt`,
14153
+ value: e.numFmt
14154
+ });
14155
+ }
14156
+ if (e.lvlText !== undefined && typeof e.lvlText !== "string") {
14157
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${path}.lvlText must be a string.`, {
14158
+ field: `${path}.lvlText`,
14159
+ value: e.lvlText
14160
+ });
14161
+ }
14162
+ optionalInteger(e.start, `${path}.start`, operationName);
14163
+ if (e.alignment !== undefined) {
14164
+ requireEnum(e.alignment, `${path}.alignment`, VALID_LEVEL_ALIGNMENTS, operationName);
14165
+ }
14166
+ if (e.trailingCharacter !== undefined) {
14167
+ requireEnum(e.trailingCharacter, `${path}.trailingCharacter`, VALID_TRAILING_CHARACTERS, operationName);
14168
+ }
14169
+ if (e.markerFont !== undefined && typeof e.markerFont !== "string") {
14170
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${path}.markerFont must be a string.`, {
14171
+ field: `${path}.markerFont`,
14172
+ value: e.markerFont
14173
+ });
14174
+ }
14175
+ optionalInteger(e.pictureBulletId, `${path}.pictureBulletId`, operationName);
14176
+ if (e.tabStopAt !== undefined && e.tabStopAt !== null) {
14177
+ optionalNumber(e.tabStopAt, `${path}.tabStopAt`, operationName);
14178
+ }
14179
+ if (e.indents !== undefined) {
14180
+ if (!isRecord(e.indents)) {
14181
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${path}.indents must be an object.`, {
14182
+ field: `${path}.indents`,
14183
+ value: e.indents
14184
+ });
14185
+ }
14186
+ const ind = e.indents;
14187
+ optionalNumber(ind.left, `${path}.indents.left`, operationName);
14188
+ optionalNumber(ind.hanging, `${path}.indents.hanging`, operationName);
14189
+ optionalNumber(ind.firstLine, `${path}.indents.firstLine`, operationName);
14190
+ }
14191
+ }
14192
+ function validateListTemplate(value, field, operationName) {
14193
+ if (!isRecord(value)) {
14194
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${field} must be an object.`, {
14195
+ field,
14196
+ value
14197
+ });
14198
+ }
14199
+ const t = value;
14200
+ if (t.version !== 1) {
14201
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${field}.version must be 1, got ${JSON.stringify(t.version)}.`, { field: `${field}.version`, value: t.version });
14202
+ }
14203
+ if (!Array.isArray(t.levels)) {
14204
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${field}.levels must be an array.`, {
14205
+ field: `${field}.levels`,
14206
+ value: t.levels
14207
+ });
14208
+ }
14209
+ for (let i = 0;i < t.levels.length; i++) {
14210
+ validateListLevelTemplate(t.levels[i], `${field}.levels[${i}]`, operationName);
14211
+ }
14212
+ }
14213
+ function validateListsCreateFields(raw) {
14214
+ const op = "lists.create";
14215
+ if (raw.kind !== undefined) {
14216
+ requireEnum(raw.kind, "kind", VALID_LIST_KINDS, op);
14217
+ }
14218
+ if (raw.level !== undefined) {
14219
+ if (!isInteger(raw.level) || raw.level < 0) {
14220
+ throw new DocumentApiValidationError("INVALID_INPUT", `${op} level must be a non-negative integer, got ${JSON.stringify(raw.level)}.`, { field: "level", value: raw.level });
14221
+ }
14222
+ }
14223
+ if (raw.sequence !== undefined) {
14224
+ if (!isRecord(raw.sequence)) {
14225
+ throw new DocumentApiValidationError("INVALID_INPUT", `${op} sequence must be an object.`, {
14226
+ field: "sequence",
14227
+ value: raw.sequence
14228
+ });
14229
+ }
14230
+ const seq = raw.sequence;
14231
+ requireEnum(seq.mode, "sequence.mode", VALID_SEQUENCE_MODES, op);
14232
+ if (seq.mode === "continuePrevious") {
14233
+ if (raw.preset !== undefined) {
14234
+ throw new DocumentApiValidationError("INVALID_INPUT", `${op} preset must not be provided when sequence.mode is 'continuePrevious'.`, { field: "preset" });
14235
+ }
14236
+ if (raw.style !== undefined) {
14237
+ throw new DocumentApiValidationError("INVALID_INPUT", `${op} style must not be provided when sequence.mode is 'continuePrevious'.`, { field: "style" });
14238
+ }
14239
+ if (seq.startAt !== undefined) {
14240
+ throw new DocumentApiValidationError("INVALID_INPUT", `${op} sequence.startAt must not be provided when sequence.mode is 'continuePrevious'.`, { field: "sequence.startAt" });
14241
+ }
14242
+ }
14243
+ if (seq.mode === "new") {
14244
+ optionalInteger(seq.startAt, "sequence.startAt", op);
14245
+ }
14246
+ }
14247
+ if (raw.preset !== undefined) {
14248
+ requireEnum(raw.preset, "preset", VALID_LIST_PRESETS, op);
14249
+ }
14250
+ if (raw.style !== undefined) {
14251
+ validateListTemplate(raw.style, "style", op);
13962
14252
  }
13963
14253
  }
13964
14254
  function executeListsList(adapter, query2) {
14255
+ if (query2 !== undefined) {
14256
+ if (!isRecord(query2)) {
14257
+ throw new DocumentApiValidationError("INVALID_INPUT", "lists.list query must be an object if provided.");
14258
+ }
14259
+ const q = query2;
14260
+ if (q.kind !== undefined) {
14261
+ requireEnum(q.kind, "kind", VALID_LIST_KINDS, "lists.list");
14262
+ }
14263
+ optionalInteger(q.level, "level", "lists.list");
14264
+ optionalInteger(q.limit, "limit", "lists.list");
14265
+ optionalInteger(q.offset, "offset", "lists.list");
14266
+ optionalInteger(q.ordinal, "ordinal", "lists.list");
14267
+ if (q.within !== undefined) {
14268
+ if (!isRecord(q.within)) {
14269
+ throw new DocumentApiValidationError("INVALID_INPUT", "lists.list within must be an object.", {
14270
+ field: "within",
14271
+ value: q.within
14272
+ });
14273
+ }
14274
+ const w = q.within;
14275
+ if (w.kind !== "block") {
14276
+ throw new DocumentApiValidationError("INVALID_INPUT", `lists.list within.kind must be 'block', got "${String(w.kind)}".`, { field: "within.kind", value: w.kind });
14277
+ }
14278
+ if (!VALID_BLOCK_NODE_TYPES.has(w.nodeType)) {
14279
+ throw new DocumentApiValidationError("INVALID_INPUT", `lists.list within.nodeType must be a valid BlockNodeType, got ${JSON.stringify(w.nodeType)}.`, { field: "within.nodeType", value: w.nodeType });
14280
+ }
14281
+ if (typeof w.nodeId !== "string" || w.nodeId === "") {
14282
+ throw new DocumentApiValidationError("INVALID_INPUT", "lists.list within.nodeId must be a non-empty string.", {
14283
+ field: "within.nodeId",
14284
+ value: w.nodeId
14285
+ });
14286
+ }
14287
+ }
14288
+ }
13965
14289
  return adapter.list(query2);
13966
14290
  }
13967
14291
  function executeListsGet(adapter, input) {
14292
+ validateListInput(input, "lists.get");
14293
+ validateListItemAddress(input.address, "address", "lists.get");
13968
14294
  return adapter.get(input);
13969
14295
  }
13970
14296
  function executeListsInsert(adapter, input, options) {
13971
- validateListTarget(input, "lists.insert");
14297
+ validateListItemTarget(input, "lists.insert");
14298
+ requireEnum(input.position, "position", VALID_INSERT_POSITIONS, "lists.insert");
14299
+ if (input.text !== undefined && typeof input.text !== "string") {
14300
+ throw new DocumentApiValidationError("INVALID_INPUT", `lists.insert text must be a string if provided, got ${typeof input.text}.`, {
14301
+ field: "text",
14302
+ value: input.text
14303
+ });
14304
+ }
13972
14305
  return adapter.insert(input, normalizeMutationOptions(options));
13973
14306
  }
13974
14307
  function executeListsIndent(adapter, input, options) {
13975
- validateListTarget(input, "lists.indent");
14308
+ validateListItemTarget(input, "lists.indent");
13976
14309
  return adapter.indent(input, normalizeMutationOptions(options));
13977
14310
  }
13978
14311
  function executeListsOutdent(adapter, input, options) {
13979
- validateListTarget(input, "lists.outdent");
14312
+ validateListItemTarget(input, "lists.outdent");
13980
14313
  return adapter.outdent(input, normalizeMutationOptions(options));
13981
14314
  }
13982
14315
  function executeListsCreate(adapter, input, options) {
14316
+ validateListInput(input, "lists.create");
14317
+ const raw = input;
14318
+ if (!VALID_LIST_CREATE_MODES.has(raw.mode)) {
14319
+ throw new DocumentApiValidationError("INVALID_INPUT", `lists.create mode must be "empty" or "fromParagraphs", got ${JSON.stringify(raw.mode)}.`, { field: "mode", value: raw.mode });
14320
+ }
14321
+ if (raw.mode === "empty") {
14322
+ validateBlockAddress(raw.at, "at", "lists.create");
14323
+ }
14324
+ if (raw.mode === "fromParagraphs") {
14325
+ if (raw.target === undefined || raw.target === null) {
14326
+ throw new DocumentApiValidationError("INVALID_TARGET", 'lists.create with mode "fromParagraphs" requires a target.', { field: "target" });
14327
+ }
14328
+ validateBlockAddressOrRange(raw.target, "target", "lists.create");
14329
+ }
14330
+ validateListsCreateFields(raw);
13983
14331
  return adapter.create(input, normalizeMutationOptions(options));
13984
14332
  }
13985
14333
  function executeListsAttach(adapter, input, options) {
13986
- validateListTarget(input, "lists.attach");
14334
+ validateListInput(input, "lists.attach");
14335
+ validateBlockAddressOrRange(input.target, "target", "lists.attach");
14336
+ validateListItemAddress(input.attachTo, "attachTo", "lists.attach");
14337
+ optionalInteger(input.level, "level", "lists.attach");
13987
14338
  return adapter.attach(input, normalizeMutationOptions(options));
13988
14339
  }
13989
14340
  function executeListsDetach(adapter, input, options) {
13990
- validateListTarget(input, "lists.detach");
14341
+ validateListItemTarget(input, "lists.detach");
13991
14342
  return adapter.detach(input, normalizeMutationOptions(options));
13992
14343
  }
13993
14344
  function executeListsJoin(adapter, input, options) {
13994
- validateListTarget(input, "lists.join");
14345
+ validateListItemTarget(input, "lists.join");
14346
+ requireEnum(input.direction, "direction", VALID_JOIN_DIRECTIONS, "lists.join");
13995
14347
  return adapter.join(input, normalizeMutationOptions(options));
13996
14348
  }
13997
14349
  function executeListsCanJoin(adapter, input) {
13998
- validateListTarget(input, "lists.canJoin");
14350
+ validateListItemTarget(input, "lists.canJoin");
14351
+ requireEnum(input.direction, "direction", VALID_JOIN_DIRECTIONS, "lists.canJoin");
13999
14352
  return adapter.canJoin(input);
14000
14353
  }
14001
14354
  function executeListsSeparate(adapter, input, options) {
14002
- validateListTarget(input, "lists.separate");
14355
+ validateListItemTarget(input, "lists.separate");
14356
+ optionalBoolean(input.copyOverrides, "copyOverrides", "lists.separate");
14003
14357
  return adapter.separate(input, normalizeMutationOptions(options));
14004
14358
  }
14005
14359
  function executeListsSetLevel(adapter, input, options) {
14006
- validateListTarget(input, "lists.setLevel");
14360
+ validateListItemTarget(input, "lists.setLevel");
14361
+ requireLevel(input.level, "lists.setLevel");
14007
14362
  return adapter.setLevel(input, normalizeMutationOptions(options));
14008
14363
  }
14009
14364
  function executeListsSetValue(adapter, input, options) {
14010
- validateListTarget(input, "lists.setValue");
14365
+ validateListItemTarget(input, "lists.setValue");
14366
+ if (input.value !== null && !isInteger(input.value)) {
14367
+ throw new DocumentApiValidationError("INVALID_INPUT", `lists.setValue value must be an integer or null, got ${JSON.stringify(input.value)}.`, { field: "value", value: input.value });
14368
+ }
14011
14369
  return adapter.setValue(input, normalizeMutationOptions(options));
14012
14370
  }
14013
14371
  function executeListsContinuePrevious(adapter, input, options) {
14014
- validateListTarget(input, "lists.continuePrevious");
14372
+ validateListItemTarget(input, "lists.continuePrevious");
14015
14373
  return adapter.continuePrevious(input, normalizeMutationOptions(options));
14016
14374
  }
14017
14375
  function executeListsCanContinuePrevious(adapter, input) {
14018
- validateListTarget(input, "lists.canContinuePrevious");
14376
+ validateListItemTarget(input, "lists.canContinuePrevious");
14019
14377
  return adapter.canContinuePrevious(input);
14020
14378
  }
14021
14379
  function executeListsSetLevelRestart(adapter, input, options) {
14022
- validateListTarget(input, "lists.setLevelRestart");
14380
+ validateListItemTarget(input, "lists.setLevelRestart");
14381
+ requireLevel(input.level, "lists.setLevelRestart");
14382
+ if (input.restartAfterLevel !== null && !isInteger(input.restartAfterLevel)) {
14383
+ throw new DocumentApiValidationError("INVALID_INPUT", `lists.setLevelRestart restartAfterLevel must be an integer or null.`, { field: "restartAfterLevel", value: input.restartAfterLevel });
14384
+ }
14385
+ if (input.scope !== undefined) {
14386
+ requireEnum(input.scope, "scope", VALID_MUTATION_SCOPES, "lists.setLevelRestart");
14387
+ }
14023
14388
  return adapter.setLevelRestart(input, normalizeMutationOptions(options));
14024
14389
  }
14025
14390
  function executeListsConvertToText(adapter, input, options) {
14026
- validateListTarget(input, "lists.convertToText");
14391
+ validateListItemTarget(input, "lists.convertToText");
14392
+ optionalBoolean(input.includeMarker, "includeMarker", "lists.convertToText");
14027
14393
  return adapter.convertToText(input, normalizeMutationOptions(options));
14028
14394
  }
14029
14395
  function executeListsApplyTemplate(adapter, input, options) {
14030
- validateListTarget(input, "lists.applyTemplate");
14396
+ validateListItemTarget(input, "lists.applyTemplate");
14397
+ validateListTemplate(input.template, "template", "lists.applyTemplate");
14398
+ optionalLevelsArray(input.levels, "levels", "lists.applyTemplate");
14031
14399
  return adapter.applyTemplate(input, normalizeMutationOptions(options));
14032
14400
  }
14033
14401
  function executeListsApplyPreset(adapter, input, options) {
14034
- validateListTarget(input, "lists.applyPreset");
14402
+ validateListItemTarget(input, "lists.applyPreset");
14403
+ requireEnum(input.preset, "preset", VALID_LIST_PRESETS, "lists.applyPreset");
14404
+ optionalLevelsArray(input.levels, "levels", "lists.applyPreset");
14035
14405
  return adapter.applyPreset(input, normalizeMutationOptions(options));
14036
14406
  }
14037
14407
  function executeListsCaptureTemplate(adapter, input) {
14038
- validateListTarget(input, "lists.captureTemplate");
14408
+ validateListItemTarget(input, "lists.captureTemplate");
14409
+ optionalLevelsArray(input.levels, "levels", "lists.captureTemplate");
14039
14410
  return adapter.captureTemplate(input);
14040
14411
  }
14041
14412
  function executeListsSetLevelNumbering(adapter, input, options) {
14042
- validateListTarget(input, "lists.setLevelNumbering");
14413
+ validateListItemTarget(input, "lists.setLevelNumbering");
14414
+ requireLevel(input.level, "lists.setLevelNumbering");
14415
+ if (typeof input.numFmt !== "string") {
14416
+ throw new DocumentApiValidationError("INVALID_INPUT", "lists.setLevelNumbering numFmt must be a string.", {
14417
+ field: "numFmt",
14418
+ value: input.numFmt
14419
+ });
14420
+ }
14421
+ if (typeof input.lvlText !== "string") {
14422
+ throw new DocumentApiValidationError("INVALID_INPUT", "lists.setLevelNumbering lvlText must be a string.", {
14423
+ field: "lvlText",
14424
+ value: input.lvlText
14425
+ });
14426
+ }
14427
+ optionalInteger(input.start, "start", "lists.setLevelNumbering");
14043
14428
  return adapter.setLevelNumbering(input, normalizeMutationOptions(options));
14044
14429
  }
14045
14430
  function executeListsSetLevelBullet(adapter, input, options) {
14046
- validateListTarget(input, "lists.setLevelBullet");
14431
+ validateListItemTarget(input, "lists.setLevelBullet");
14432
+ requireLevel(input.level, "lists.setLevelBullet");
14433
+ if (typeof input.markerText !== "string") {
14434
+ throw new DocumentApiValidationError("INVALID_INPUT", "lists.setLevelBullet markerText must be a string.", {
14435
+ field: "markerText",
14436
+ value: input.markerText
14437
+ });
14438
+ }
14047
14439
  return adapter.setLevelBullet(input, normalizeMutationOptions(options));
14048
14440
  }
14049
14441
  function executeListsSetLevelPictureBullet(adapter, input, options) {
14050
- validateListTarget(input, "lists.setLevelPictureBullet");
14442
+ validateListItemTarget(input, "lists.setLevelPictureBullet");
14443
+ requireLevel(input.level, "lists.setLevelPictureBullet");
14444
+ if (!isInteger(input.pictureBulletId)) {
14445
+ throw new DocumentApiValidationError("INVALID_INPUT", "lists.setLevelPictureBullet pictureBulletId must be an integer.", { field: "pictureBulletId", value: input.pictureBulletId });
14446
+ }
14051
14447
  return adapter.setLevelPictureBullet(input, normalizeMutationOptions(options));
14052
14448
  }
14053
14449
  function executeListsSetLevelAlignment(adapter, input, options) {
14054
- validateListTarget(input, "lists.setLevelAlignment");
14450
+ validateListItemTarget(input, "lists.setLevelAlignment");
14451
+ requireLevel(input.level, "lists.setLevelAlignment");
14452
+ requireEnum(input.alignment, "alignment", VALID_LEVEL_ALIGNMENTS, "lists.setLevelAlignment");
14055
14453
  return adapter.setLevelAlignment(input, normalizeMutationOptions(options));
14056
14454
  }
14057
14455
  function executeListsSetLevelIndents(adapter, input, options) {
14058
- validateListTarget(input, "lists.setLevelIndents");
14456
+ validateListItemTarget(input, "lists.setLevelIndents");
14457
+ requireLevel(input.level, "lists.setLevelIndents");
14458
+ optionalNumber(input.left, "left", "lists.setLevelIndents");
14459
+ optionalNumber(input.hanging, "hanging", "lists.setLevelIndents");
14460
+ optionalNumber(input.firstLine, "firstLine", "lists.setLevelIndents");
14059
14461
  return adapter.setLevelIndents(input, normalizeMutationOptions(options));
14060
14462
  }
14061
14463
  function executeListsSetLevelTrailingCharacter(adapter, input, options) {
14062
- validateListTarget(input, "lists.setLevelTrailingCharacter");
14464
+ validateListItemTarget(input, "lists.setLevelTrailingCharacter");
14465
+ requireLevel(input.level, "lists.setLevelTrailingCharacter");
14466
+ requireEnum(input.trailingCharacter, "trailingCharacter", VALID_TRAILING_CHARACTERS, "lists.setLevelTrailingCharacter");
14063
14467
  return adapter.setLevelTrailingCharacter(input, normalizeMutationOptions(options));
14064
14468
  }
14065
14469
  function executeListsSetLevelMarkerFont(adapter, input, options) {
14066
- validateListTarget(input, "lists.setLevelMarkerFont");
14470
+ validateListItemTarget(input, "lists.setLevelMarkerFont");
14471
+ requireLevel(input.level, "lists.setLevelMarkerFont");
14472
+ if (typeof input.fontFamily !== "string") {
14473
+ throw new DocumentApiValidationError("INVALID_INPUT", "lists.setLevelMarkerFont fontFamily must be a string.", {
14474
+ field: "fontFamily",
14475
+ value: input.fontFamily
14476
+ });
14477
+ }
14067
14478
  return adapter.setLevelMarkerFont(input, normalizeMutationOptions(options));
14068
14479
  }
14069
14480
  function executeListsClearLevelOverrides(adapter, input, options) {
14070
- validateListTarget(input, "lists.clearLevelOverrides");
14481
+ validateListItemTarget(input, "lists.clearLevelOverrides");
14482
+ requireLevel(input.level, "lists.clearLevelOverrides");
14071
14483
  return adapter.clearLevelOverrides(input, normalizeMutationOptions(options));
14072
14484
  }
14073
14485
  function executeListsSetType(adapter, input, options) {
14074
- validateListTarget(input, "lists.setType");
14486
+ validateListItemTarget(input, "lists.setType");
14487
+ requireEnum(input.kind, "kind", VALID_LIST_KINDS, "lists.setType");
14488
+ if (input.continuity !== undefined) {
14489
+ requireEnum(input.continuity, "continuity", VALID_CONTINUITY_VALUES, "lists.setType");
14490
+ }
14075
14491
  return adapter.setType(input, normalizeMutationOptions(options));
14076
14492
  }
14077
14493
  function executeListsGetStyle(adapter, input) {
14078
- validateListTarget(input, "lists.getStyle");
14494
+ validateListItemTarget(input, "lists.getStyle");
14495
+ optionalLevelsArray(input.levels, "levels", "lists.getStyle");
14079
14496
  return adapter.getStyle(input);
14080
14497
  }
14081
14498
  function executeListsApplyStyle(adapter, input, options) {
14082
- validateListTarget(input, "lists.applyStyle");
14499
+ validateListItemTarget(input, "lists.applyStyle");
14500
+ validateListTemplate(input.style, "style", "lists.applyStyle");
14501
+ optionalLevelsArray(input.levels, "levels", "lists.applyStyle");
14083
14502
  return adapter.applyStyle(input, normalizeMutationOptions(options));
14084
14503
  }
14085
14504
  function executeListsRestartAt(adapter, input, options) {
14086
- validateListTarget(input, "lists.restartAt");
14505
+ validateListItemTarget(input, "lists.restartAt");
14506
+ if (!isInteger(input.startAt)) {
14507
+ throw new DocumentApiValidationError("INVALID_INPUT", `lists.restartAt startAt must be an integer, got ${JSON.stringify(input.startAt)}.`, { field: "startAt", value: input.startAt });
14508
+ }
14087
14509
  return adapter.restartAt(input, normalizeMutationOptions(options));
14088
14510
  }
14089
14511
  function executeListsSetLevelNumberStyle(adapter, input, options) {
14090
- validateListTarget(input, "lists.setLevelNumberStyle");
14512
+ validateListItemTarget(input, "lists.setLevelNumberStyle");
14513
+ requireLevel(input.level, "lists.setLevelNumberStyle");
14514
+ if (typeof input.numberStyle !== "string") {
14515
+ throw new DocumentApiValidationError("INVALID_INPUT", "lists.setLevelNumberStyle numberStyle must be a string.", {
14516
+ field: "numberStyle",
14517
+ value: input.numberStyle
14518
+ });
14519
+ }
14091
14520
  return adapter.setLevelNumberStyle(input, normalizeMutationOptions(options));
14092
14521
  }
14093
14522
  function executeListsSetLevelText(adapter, input, options) {
14094
- validateListTarget(input, "lists.setLevelText");
14523
+ validateListItemTarget(input, "lists.setLevelText");
14524
+ requireLevel(input.level, "lists.setLevelText");
14525
+ if (typeof input.text !== "string") {
14526
+ throw new DocumentApiValidationError("INVALID_INPUT", "lists.setLevelText text must be a string.", {
14527
+ field: "text",
14528
+ value: input.text
14529
+ });
14530
+ }
14095
14531
  return adapter.setLevelText(input, normalizeMutationOptions(options));
14096
14532
  }
14097
14533
  function executeListsSetLevelStart(adapter, input, options) {
14098
- validateListTarget(input, "lists.setLevelStart");
14534
+ validateListItemTarget(input, "lists.setLevelStart");
14535
+ requireLevel(input.level, "lists.setLevelStart");
14536
+ if (!isInteger(input.startAt)) {
14537
+ throw new DocumentApiValidationError("INVALID_INPUT", `lists.setLevelStart startAt must be an integer, got ${JSON.stringify(input.startAt)}.`, { field: "startAt", value: input.startAt });
14538
+ }
14099
14539
  return adapter.setLevelStart(input, normalizeMutationOptions(options));
14100
14540
  }
14101
14541
  function executeListsSetLevelLayout(adapter, input, options) {
14102
- validateListTarget(input, "lists.setLevelLayout");
14542
+ validateListItemTarget(input, "lists.setLevelLayout");
14543
+ requireLevel(input.level, "lists.setLevelLayout");
14544
+ if (!isRecord(input.layout)) {
14545
+ throw new DocumentApiValidationError("INVALID_INPUT", "lists.setLevelLayout layout must be an object.", {
14546
+ field: "layout",
14547
+ value: input.layout
14548
+ });
14549
+ }
14550
+ const layout = input.layout;
14551
+ if (layout.alignment !== undefined) {
14552
+ requireEnum(layout.alignment, "layout.alignment", VALID_LEVEL_ALIGNMENTS, "lists.setLevelLayout");
14553
+ }
14554
+ if (layout.followCharacter !== undefined) {
14555
+ requireEnum(layout.followCharacter, "layout.followCharacter", VALID_TRAILING_CHARACTERS, "lists.setLevelLayout");
14556
+ }
14557
+ optionalNumber(layout.alignedAt, "layout.alignedAt", "lists.setLevelLayout");
14558
+ optionalNumber(layout.textIndentAt, "layout.textIndentAt", "lists.setLevelLayout");
14559
+ if (layout.tabStopAt !== undefined && layout.tabStopAt !== null) {
14560
+ optionalNumber(layout.tabStopAt, "layout.tabStopAt", "lists.setLevelLayout");
14561
+ }
14103
14562
  return adapter.setLevelLayout(input, normalizeMutationOptions(options));
14104
14563
  }
14564
+ var VALID_BLOCK_NODE_TYPES, VALID_LIST_KINDS, VALID_INSERT_POSITIONS, VALID_JOIN_DIRECTIONS, VALID_MUTATION_SCOPES, VALID_LEVEL_ALIGNMENTS, VALID_TRAILING_CHARACTERS, VALID_LIST_PRESETS, VALID_CONTINUITY_VALUES, VALID_SEQUENCE_MODES, VALID_LIST_CREATE_MODES;
14105
14565
  var init_lists = __esm(() => {
14106
14566
  init_errors2();
14567
+ init_validation_primitives();
14568
+ init_base();
14569
+ init_lists_types();
14570
+ VALID_BLOCK_NODE_TYPES = new Set(BLOCK_NODE_TYPES);
14571
+ VALID_LIST_KINDS = new Set(LIST_KINDS);
14572
+ VALID_INSERT_POSITIONS = new Set(LIST_INSERT_POSITIONS);
14573
+ VALID_JOIN_DIRECTIONS = new Set(JOIN_DIRECTIONS);
14574
+ VALID_MUTATION_SCOPES = new Set(MUTATION_SCOPES);
14575
+ VALID_LEVEL_ALIGNMENTS = new Set(LEVEL_ALIGNMENTS);
14576
+ VALID_TRAILING_CHARACTERS = new Set(TRAILING_CHARACTERS);
14577
+ VALID_LIST_PRESETS = new Set(LIST_PRESET_IDS);
14578
+ VALID_CONTINUITY_VALUES = new Set(["preserve", "none"]);
14579
+ VALID_SEQUENCE_MODES = new Set(["new", "continuePrevious"]);
14580
+ VALID_LIST_CREATE_MODES = new Set(["empty", "fromParagraphs"]);
14107
14581
  });
14108
14582
 
14109
14583
  // ../../packages/document-api/src/replace/replace.ts
@@ -14281,16 +14755,36 @@ function validateCreateSectionBreakInput(input) {
14281
14755
  }
14282
14756
  }
14283
14757
  function executeCreateParagraph(adapter, input, options) {
14758
+ if (!isRecord(input)) {
14759
+ throw new DocumentApiValidationError("INVALID_INPUT", "create.paragraph input must be a non-null object.");
14760
+ }
14761
+ validateStoryLocator(input.in, "in");
14284
14762
  const at = normalizeCreateLocation(input.at, (loc) => validateTargetOnlyCreateLocation(loc, "create.paragraph"));
14285
14763
  const normalized = { at, text: input.text ?? "" };
14286
14764
  return adapter.paragraph(normalized, normalizeMutationOptions(options));
14287
14765
  }
14288
14766
  function executeCreateHeading(adapter, input, options) {
14767
+ if (!isRecord(input)) {
14768
+ throw new DocumentApiValidationError("INVALID_INPUT", "create.heading input must be a non-null object.");
14769
+ }
14770
+ validateStoryLocator(input.in, "in");
14771
+ if (!isInteger(input.level) || !VALID_HEADING_LEVELS.has(input.level)) {
14772
+ throw new DocumentApiValidationError("INVALID_INPUT", `create.heading level must be an integer 1–6, got ${JSON.stringify(input.level)}.`, { field: "level", value: input.level });
14773
+ }
14289
14774
  const at = normalizeCreateLocation(input.at, (loc) => validateTargetOnlyCreateLocation(loc, "create.heading"));
14290
14775
  const normalized = { level: input.level, at, text: input.text ?? "" };
14291
14776
  return adapter.heading(normalized, normalizeMutationOptions(options));
14292
14777
  }
14293
14778
  function executeCreateTable(adapter, input, options) {
14779
+ if (!isRecord(input)) {
14780
+ throw new DocumentApiValidationError("INVALID_INPUT", "create.table input must be a non-null object.");
14781
+ }
14782
+ if (!isInteger(input.rows) || input.rows < 1) {
14783
+ throw new DocumentApiValidationError("INVALID_INPUT", `create.table rows must be a positive integer, got ${JSON.stringify(input.rows)}.`, { field: "rows", value: input.rows });
14784
+ }
14785
+ if (!isInteger(input.columns) || input.columns < 1) {
14786
+ throw new DocumentApiValidationError("INVALID_INPUT", `create.table columns must be a positive integer, got ${JSON.stringify(input.columns)}.`, { field: "columns", value: input.columns });
14787
+ }
14294
14788
  const at = normalizeCreateLocation(input.at, (loc) => validateTargetOrNodeIdCreateLocation(loc, "create.table"));
14295
14789
  const normalized = { rows: input.rows, columns: input.columns, at };
14296
14790
  return adapter.table(normalized, normalizeMutationOptions(options));
@@ -14316,9 +14810,12 @@ function executeCreateTableOfContents(adapter, input, options) {
14316
14810
  const normalized = { at, config: input.config };
14317
14811
  return adapter.tableOfContents(normalized, normalizeMutationOptions(options));
14318
14812
  }
14319
- var SECTION_BREAK_TYPES;
14813
+ var VALID_HEADING_LEVELS, SECTION_BREAK_TYPES;
14320
14814
  var init_create = __esm(() => {
14321
14815
  init_errors2();
14816
+ init_validation_primitives();
14817
+ init_story_validator();
14818
+ VALID_HEADING_LEVELS = new Set([1, 2, 3, 4, 5, 6]);
14322
14819
  SECTION_BREAK_TYPES = ["continuous", "nextPage", "evenPage", "oddPage"];
14323
14820
  });
14324
14821
 
@@ -14343,7 +14840,7 @@ function validateBlocksListInput(input) {
14343
14840
  });
14344
14841
  }
14345
14842
  for (const nt of input.nodeTypes) {
14346
- if (!VALID_BLOCK_NODE_TYPES.has(nt)) {
14843
+ if (!VALID_BLOCK_NODE_TYPES2.has(nt)) {
14347
14844
  throw new DocumentApiValidationError("INVALID_INPUT", `blocks.list nodeTypes contains unknown type "${nt}".`, {
14348
14845
  fields: ["nodeTypes"],
14349
14846
  nodeType: nt
@@ -14428,13 +14925,13 @@ function executeBlocksDeleteRange(adapter, input, options) {
14428
14925
  validateBlocksDeleteRangeInput(input);
14429
14926
  return adapter.deleteRange(input, normalizeMutationOptions(options));
14430
14927
  }
14431
- var SUPPORTED_DELETE_NODE_TYPES, REJECTED_DELETE_NODE_TYPES, VALID_BLOCK_NODE_TYPES;
14928
+ var SUPPORTED_DELETE_NODE_TYPES, REJECTED_DELETE_NODE_TYPES, VALID_BLOCK_NODE_TYPES2;
14432
14929
  var init_blocks = __esm(() => {
14433
14930
  init_base();
14434
14931
  init_errors2();
14435
14932
  SUPPORTED_DELETE_NODE_TYPES = new Set(DELETABLE_BLOCK_NODE_TYPES);
14436
14933
  REJECTED_DELETE_NODE_TYPES = new Set(["tableRow", "tableCell"]);
14437
- VALID_BLOCK_NODE_TYPES = new Set(BLOCK_NODE_TYPES);
14934
+ VALID_BLOCK_NODE_TYPES2 = new Set(BLOCK_NODE_TYPES);
14438
14935
  });
14439
14936
 
14440
14937
  // ../../packages/document-api/src/track-changes/track-changes.ts
@@ -14442,6 +14939,19 @@ function executeTrackChangesList(adapter, input) {
14442
14939
  return adapter.list(input);
14443
14940
  }
14444
14941
  function executeTrackChangesGet(adapter, input) {
14942
+ const raw = input;
14943
+ if (typeof raw !== "object" || raw == null) {
14944
+ throw new DocumentApiValidationError("INVALID_INPUT", "trackChanges.get input must be a non-null object.", {
14945
+ value: raw
14946
+ });
14947
+ }
14948
+ const { id } = raw;
14949
+ if (typeof id !== "string" || id.length === 0) {
14950
+ throw new DocumentApiValidationError("INVALID_INPUT", "trackChanges.get id must be a non-empty string.", {
14951
+ field: "id",
14952
+ value: id
14953
+ });
14954
+ }
14445
14955
  return adapter.get(input);
14446
14956
  }
14447
14957
  function executeTrackChangesDecide(adapter, rawInput, options) {
@@ -15838,11 +16348,13 @@ function executeImagesRemoveCaption(adapter, input, options) {
15838
16348
  }
15839
16349
  function executeCreateImage(adapter, input, options) {
15840
16350
  requireString(input?.src, "src");
16351
+ validateStoryLocator(input?.in, "in");
15841
16352
  return adapter.image(input, options);
15842
16353
  }
15843
16354
  var VALID_WRAP_TYPES, VALID_WRAP_SIDES, VALID_IMAGE_SIZE_UNITS;
15844
16355
  var init_images = __esm(() => {
15845
16356
  init_errors2();
16357
+ init_story_validator();
15846
16358
  VALID_WRAP_TYPES = new Set(["Inline", "None", "Square", "Tight", "Through", "TopAndBottom"]);
15847
16359
  VALID_WRAP_SIDES = new Set(["bothSides", "left", "right", "largest"]);
15848
16360
  VALID_IMAGE_SIZE_UNITS = new Set(["px", "pt", "twip"]);
@@ -15882,26 +16394,39 @@ function validateInsertionTarget(target, operationName) {
15882
16394
  throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} target.anchor must have nodeType 'paragraph' and a string nodeId.`, { target });
15883
16395
  }
15884
16396
  }
16397
+ function validateTocInput(input, operationName) {
16398
+ if (!isRecord(input)) {
16399
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} input must be a non-null object.`);
16400
+ }
16401
+ }
15885
16402
  function executeTocList(adapter, query2) {
15886
16403
  return adapter.list(query2);
15887
16404
  }
15888
16405
  function executeTocGet(adapter, input) {
16406
+ validateTocInput(input, "toc.get");
15889
16407
  validateTocTarget(input.target, "toc.get");
15890
16408
  return adapter.get(input);
15891
16409
  }
15892
16410
  function executeTocConfigure(adapter, input, options) {
16411
+ validateTocInput(input, "toc.configure");
15893
16412
  validateTocTarget(input.target, "toc.configure");
15894
16413
  return adapter.configure(input, normalizeMutationOptions(options));
15895
16414
  }
15896
16415
  function executeTocUpdate(adapter, input, options) {
16416
+ validateTocInput(input, "toc.update");
15897
16417
  validateTocTarget(input.target, "toc.update");
16418
+ if (input.mode !== undefined && !VALID_TOC_UPDATE_MODES.has(input.mode)) {
16419
+ throw new DocumentApiValidationError("INVALID_INPUT", `toc.update mode must be "all" or "pageNumbers", got "${String(input.mode)}".`, { field: "mode", value: input.mode });
16420
+ }
15898
16421
  return adapter.update(input, normalizeMutationOptions(options));
15899
16422
  }
15900
16423
  function executeTocRemove(adapter, input, options) {
16424
+ validateTocInput(input, "toc.remove");
15901
16425
  validateTocTarget(input.target, "toc.remove");
15902
16426
  return adapter.remove(input, normalizeMutationOptions(options));
15903
16427
  }
15904
16428
  function executeTocMarkEntry(adapter, input, options) {
16429
+ validateTocInput(input, "toc.markEntry");
15905
16430
  validateInsertionTarget(input.target, "toc.markEntry");
15906
16431
  if (!input.text || typeof input.text !== "string") {
15907
16432
  throw new DocumentApiValidationError("INVALID_INPUT", "toc.markEntry requires a non-empty text string.");
@@ -15909,6 +16434,7 @@ function executeTocMarkEntry(adapter, input, options) {
15909
16434
  return adapter.markEntry(input, normalizeMutationOptions(options));
15910
16435
  }
15911
16436
  function executeTocUnmarkEntry(adapter, input, options) {
16437
+ validateTocInput(input, "toc.unmarkEntry");
15912
16438
  validateTocEntryTarget(input.target, "toc.unmarkEntry");
15913
16439
  return adapter.unmarkEntry(input, normalizeMutationOptions(options));
15914
16440
  }
@@ -15916,15 +16442,63 @@ function executeTocListEntries(adapter, query2) {
15916
16442
  return adapter.listEntries(query2);
15917
16443
  }
15918
16444
  function executeTocGetEntry(adapter, input) {
16445
+ validateTocInput(input, "toc.getEntry");
15919
16446
  validateTocEntryTarget(input.target, "toc.getEntry");
15920
16447
  return adapter.getEntry(input);
15921
16448
  }
16449
+ function validateTocEditEntryPatch(patch, operationName) {
16450
+ if (!isRecord(patch)) {
16451
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} patch must be a non-null object.`, {
16452
+ field: "patch",
16453
+ value: patch
16454
+ });
16455
+ }
16456
+ for (const key of Object.keys(patch)) {
16457
+ if (!EDIT_ENTRY_PATCH_ALLOWED_KEYS.has(key)) {
16458
+ throw new DocumentApiValidationError("INVALID_INPUT", `Unknown field "${key}" on ${operationName} patch. Allowed fields: ${[...EDIT_ENTRY_PATCH_ALLOWED_KEYS].join(", ")}.`, { field: `patch.${key}` });
16459
+ }
16460
+ }
16461
+ if (patch.text !== undefined && typeof patch.text !== "string") {
16462
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} patch.text must be a string.`, {
16463
+ field: "patch.text",
16464
+ value: patch.text
16465
+ });
16466
+ }
16467
+ if (patch.level !== undefined) {
16468
+ if (typeof patch.level !== "number" || !Number.isInteger(patch.level) || patch.level < 1) {
16469
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} patch.level must be a positive integer.`, { field: "patch.level", value: patch.level });
16470
+ }
16471
+ }
16472
+ if (patch.tableIdentifier !== undefined && typeof patch.tableIdentifier !== "string") {
16473
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} patch.tableIdentifier must be a string.`, {
16474
+ field: "patch.tableIdentifier",
16475
+ value: patch.tableIdentifier
16476
+ });
16477
+ }
16478
+ if (patch.omitPageNumber !== undefined && typeof patch.omitPageNumber !== "boolean") {
16479
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} patch.omitPageNumber must be a boolean.`, {
16480
+ field: "patch.omitPageNumber",
16481
+ value: patch.omitPageNumber
16482
+ });
16483
+ }
16484
+ }
15922
16485
  function executeTocEditEntry(adapter, input, options) {
16486
+ validateTocInput(input, "toc.editEntry");
15923
16487
  validateTocEntryTarget(input.target, "toc.editEntry");
16488
+ validateTocEditEntryPatch(input.patch, "toc.editEntry");
15924
16489
  return adapter.editEntry(input, normalizeMutationOptions(options));
15925
16490
  }
16491
+ var VALID_TOC_UPDATE_MODES, EDIT_ENTRY_PATCH_ALLOWED_KEYS;
15926
16492
  var init_toc = __esm(() => {
15927
16493
  init_errors2();
16494
+ init_validation_primitives();
16495
+ VALID_TOC_UPDATE_MODES = new Set(["all", "pageNumbers"]);
16496
+ EDIT_ENTRY_PATCH_ALLOWED_KEYS = new Set([
16497
+ "text",
16498
+ "level",
16499
+ "tableIdentifier",
16500
+ "omitPageNumber"
16501
+ ]);
15928
16502
  });
15929
16503
 
15930
16504
  // ../../packages/document-api/src/hyperlinks/hyperlinks.ts
@@ -16037,172 +16611,480 @@ var init_hyperlinks = __esm(() => {
16037
16611
  PATCH_FIELDS = new Set(["href", "anchor", "docLocation", "tooltip", "target", "rel"]);
16038
16612
  });
16039
16613
 
16614
+ // ../../packages/document-api/src/content-controls/content-controls.types.ts
16615
+ var CONTENT_CONTROL_TYPES, LOCK_MODES, CONTENT_CONTROL_APPEARANCES;
16616
+ var init_content_controls_types = __esm(() => {
16617
+ CONTENT_CONTROL_TYPES = [
16618
+ "text",
16619
+ "date",
16620
+ "checkbox",
16621
+ "comboBox",
16622
+ "dropDownList",
16623
+ "repeatingSection",
16624
+ "repeatingSectionItem",
16625
+ "group",
16626
+ "unknown"
16627
+ ];
16628
+ LOCK_MODES = [
16629
+ "unlocked",
16630
+ "sdtLocked",
16631
+ "contentLocked",
16632
+ "sdtContentLocked"
16633
+ ];
16634
+ CONTENT_CONTROL_APPEARANCES = [
16635
+ "boundingBox",
16636
+ "tags",
16637
+ "hidden"
16638
+ ];
16639
+ });
16640
+
16040
16641
  // ../../packages/document-api/src/content-controls/content-controls.ts
16642
+ function validateCCInput(input, operationName) {
16643
+ if (!isRecord(input)) {
16644
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} input must be a non-null object.`);
16645
+ }
16646
+ }
16647
+ function validateCCTarget(target, operationName) {
16648
+ if (!isRecord(target)) {
16649
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} requires a valid target with { kind, nodeType: 'sdt', nodeId }.`, { field: "target", value: target });
16650
+ }
16651
+ if (!VALID_NODE_KINDS.has(target.kind)) {
16652
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} target.kind must be 'block' or 'inline', got "${String(target.kind)}".`, { field: "target.kind", value: target.kind });
16653
+ }
16654
+ if (target.nodeType !== "sdt") {
16655
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} target.nodeType must be 'sdt', got "${String(target.nodeType)}".`, { field: "target.nodeType", value: target.nodeType });
16656
+ }
16657
+ if (typeof target.nodeId !== "string" || target.nodeId === "") {
16658
+ throw new DocumentApiValidationError("INVALID_TARGET", `${operationName} target.nodeId must be a non-empty string.`, { field: "target.nodeId", value: target.nodeId });
16659
+ }
16660
+ }
16661
+ function requireString2(value, field, operationName) {
16662
+ if (typeof value !== "string" || value.length === 0) {
16663
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${field} must be a non-empty string.`, {
16664
+ field,
16665
+ value
16666
+ });
16667
+ }
16668
+ }
16669
+ function requireBoolean(value, field, operationName) {
16670
+ if (typeof value !== "boolean") {
16671
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${field} must be a boolean, got ${typeof value}.`, { field, value });
16672
+ }
16673
+ }
16674
+ function requireIndex(value, field, operationName) {
16675
+ if (!isInteger(value) || value < 0) {
16676
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${field} must be a non-negative integer.`, {
16677
+ field,
16678
+ value
16679
+ });
16680
+ }
16681
+ }
16682
+ function requireNodeKind(value, field, operationName) {
16683
+ if (!VALID_NODE_KINDS.has(value)) {
16684
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${field} must be 'block' or 'inline', got "${String(value)}".`, { field, value });
16685
+ }
16686
+ }
16687
+ function validateContentFormat(value, field, operationName) {
16688
+ if (value !== undefined && !VALID_CONTENT_FORMATS.has(value)) {
16689
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${field} must be 'text' or 'html', got "${String(value)}".`, { field, value });
16690
+ }
16691
+ }
16692
+ function validateContentPayload(input, operationName) {
16693
+ if (typeof input.content !== "string") {
16694
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} content must be a string.`, {
16695
+ field: "content",
16696
+ value: input.content
16697
+ });
16698
+ }
16699
+ validateContentFormat(input.format, "format", operationName);
16700
+ }
16701
+ function validateSymbol(value, field, operationName) {
16702
+ if (!isRecord(value) || typeof value.font !== "string" || typeof value.char !== "string") {
16703
+ throw new DocumentApiValidationError("INVALID_INPUT", `${operationName} ${field} must be { font: string, char: string }.`, { field, value });
16704
+ }
16705
+ }
16041
16706
  function executeContentControlsList(adapter, query2) {
16707
+ if (query2 !== undefined && !isRecord(query2)) {
16708
+ throw new DocumentApiValidationError("INVALID_INPUT", "contentControls.list query must be an object if provided.");
16709
+ }
16042
16710
  return adapter.list(query2);
16043
16711
  }
16044
16712
  function executeContentControlsGet(adapter, input) {
16713
+ validateCCInput(input, "contentControls.get");
16714
+ validateCCTarget(input.target, "contentControls.get");
16045
16715
  return adapter.get(input);
16046
16716
  }
16047
16717
  function executeContentControlsListInRange(adapter, input) {
16718
+ validateCCInput(input, "contentControls.listInRange");
16719
+ requireString2(input.startBlockId, "startBlockId", "contentControls.listInRange");
16720
+ requireString2(input.endBlockId, "endBlockId", "contentControls.listInRange");
16048
16721
  return adapter.listInRange(input);
16049
16722
  }
16050
16723
  function executeContentControlsSelectByTag(adapter, input) {
16724
+ validateCCInput(input, "contentControls.selectByTag");
16725
+ requireString2(input.tag, "tag", "contentControls.selectByTag");
16051
16726
  return adapter.selectByTag(input);
16052
16727
  }
16053
16728
  function executeContentControlsSelectByTitle(adapter, input) {
16729
+ validateCCInput(input, "contentControls.selectByTitle");
16730
+ requireString2(input.title, "title", "contentControls.selectByTitle");
16054
16731
  return adapter.selectByTitle(input);
16055
16732
  }
16056
16733
  function executeContentControlsListChildren(adapter, input) {
16734
+ validateCCInput(input, "contentControls.listChildren");
16735
+ validateCCTarget(input.target, "contentControls.listChildren");
16057
16736
  return adapter.listChildren(input);
16058
16737
  }
16059
16738
  function executeContentControlsGetParent(adapter, input) {
16739
+ validateCCInput(input, "contentControls.getParent");
16740
+ validateCCTarget(input.target, "contentControls.getParent");
16060
16741
  return adapter.getParent(input);
16061
16742
  }
16062
16743
  function executeContentControlsWrap(adapter, input, options) {
16744
+ validateCCInput(input, "contentControls.wrap");
16745
+ requireNodeKind(input.kind, "kind", "contentControls.wrap");
16746
+ validateCCTarget(input.target, "contentControls.wrap");
16063
16747
  return adapter.wrap(input, options);
16064
16748
  }
16065
16749
  function executeContentControlsUnwrap(adapter, input, options) {
16750
+ validateCCInput(input, "contentControls.unwrap");
16751
+ validateCCTarget(input.target, "contentControls.unwrap");
16066
16752
  return adapter.unwrap(input, options);
16067
16753
  }
16068
16754
  function executeContentControlsDelete(adapter, input, options) {
16755
+ validateCCInput(input, "contentControls.delete");
16756
+ validateCCTarget(input.target, "contentControls.delete");
16069
16757
  return adapter.delete(input, options);
16070
16758
  }
16071
16759
  function executeContentControlsCopy(adapter, input, options) {
16760
+ validateCCInput(input, "contentControls.copy");
16761
+ validateCCTarget(input.target, "contentControls.copy");
16762
+ validateCCTarget(input.destination, "contentControls.copy (destination)");
16072
16763
  return adapter.copy(input, options);
16073
16764
  }
16074
16765
  function executeContentControlsMove(adapter, input, options) {
16766
+ validateCCInput(input, "contentControls.move");
16767
+ validateCCTarget(input.target, "contentControls.move");
16768
+ validateCCTarget(input.destination, "contentControls.move (destination)");
16075
16769
  return adapter.move(input, options);
16076
16770
  }
16077
16771
  function executeContentControlsPatch(adapter, input, options) {
16772
+ validateCCInput(input, "contentControls.patch");
16773
+ validateCCTarget(input.target, "contentControls.patch");
16774
+ if (input.appearance !== undefined && input.appearance !== null && !VALID_CC_APPEARANCES.has(input.appearance)) {
16775
+ throw new DocumentApiValidationError("INVALID_INPUT", `contentControls.patch appearance must be one of: ${[...VALID_CC_APPEARANCES].join(", ")}.`, { field: "appearance", value: input.appearance });
16776
+ }
16777
+ if (input.showingPlaceholder !== undefined && typeof input.showingPlaceholder !== "boolean") {
16778
+ throw new DocumentApiValidationError("INVALID_INPUT", `contentControls.patch showingPlaceholder must be a boolean, got ${typeof input.showingPlaceholder}.`, { field: "showingPlaceholder", value: input.showingPlaceholder });
16779
+ }
16780
+ if (input.temporary !== undefined && typeof input.temporary !== "boolean") {
16781
+ throw new DocumentApiValidationError("INVALID_INPUT", `contentControls.patch temporary must be a boolean, got ${typeof input.temporary}.`, { field: "temporary", value: input.temporary });
16782
+ }
16783
+ if (input.tabIndex !== undefined && input.tabIndex !== null && !isInteger(input.tabIndex)) {
16784
+ throw new DocumentApiValidationError("INVALID_INPUT", `contentControls.patch tabIndex must be an integer or null, got ${typeof input.tabIndex}.`, { field: "tabIndex", value: input.tabIndex });
16785
+ }
16078
16786
  return adapter.patch(input, options);
16079
16787
  }
16080
16788
  function executeContentControlsSetLockMode(adapter, input, options) {
16789
+ validateCCInput(input, "contentControls.setLockMode");
16790
+ validateCCTarget(input.target, "contentControls.setLockMode");
16791
+ if (!VALID_LOCK_MODES.has(input.lockMode)) {
16792
+ throw new DocumentApiValidationError("INVALID_INPUT", `contentControls.setLockMode lockMode must be one of: ${[...VALID_LOCK_MODES].join(", ")}.`, { field: "lockMode", value: input.lockMode });
16793
+ }
16081
16794
  return adapter.setLockMode(input, options);
16082
16795
  }
16083
16796
  function executeContentControlsSetType(adapter, input, options) {
16797
+ validateCCInput(input, "contentControls.setType");
16798
+ validateCCTarget(input.target, "contentControls.setType");
16799
+ if (!VALID_CC_TYPES.has(input.controlType)) {
16800
+ throw new DocumentApiValidationError("INVALID_INPUT", `contentControls.setType controlType must be one of: ${[...VALID_CC_TYPES].join(", ")}.`, { field: "controlType", value: input.controlType });
16801
+ }
16084
16802
  return adapter.setType(input, options);
16085
16803
  }
16086
16804
  function executeContentControlsGetContent(adapter, input) {
16805
+ validateCCInput(input, "contentControls.getContent");
16806
+ validateCCTarget(input.target, "contentControls.getContent");
16087
16807
  return adapter.getContent(input);
16088
16808
  }
16089
16809
  function executeContentControlsReplaceContent(adapter, input, options) {
16810
+ validateCCInput(input, "contentControls.replaceContent");
16811
+ validateCCTarget(input.target, "contentControls.replaceContent");
16812
+ validateContentPayload(input, "contentControls.replaceContent");
16090
16813
  return adapter.replaceContent(input, options);
16091
16814
  }
16092
16815
  function executeContentControlsClearContent(adapter, input, options) {
16816
+ validateCCInput(input, "contentControls.clearContent");
16817
+ validateCCTarget(input.target, "contentControls.clearContent");
16093
16818
  return adapter.clearContent(input, options);
16094
16819
  }
16095
16820
  function executeContentControlsAppendContent(adapter, input, options) {
16821
+ validateCCInput(input, "contentControls.appendContent");
16822
+ validateCCTarget(input.target, "contentControls.appendContent");
16823
+ validateContentPayload(input, "contentControls.appendContent");
16096
16824
  return adapter.appendContent(input, options);
16097
16825
  }
16098
16826
  function executeContentControlsPrependContent(adapter, input, options) {
16827
+ validateCCInput(input, "contentControls.prependContent");
16828
+ validateCCTarget(input.target, "contentControls.prependContent");
16829
+ validateContentPayload(input, "contentControls.prependContent");
16099
16830
  return adapter.prependContent(input, options);
16100
16831
  }
16101
16832
  function executeContentControlsInsertBefore(adapter, input, options) {
16833
+ validateCCInput(input, "contentControls.insertBefore");
16834
+ validateCCTarget(input.target, "contentControls.insertBefore");
16835
+ validateContentPayload(input, "contentControls.insertBefore");
16102
16836
  return adapter.insertBefore(input, options);
16103
16837
  }
16104
16838
  function executeContentControlsInsertAfter(adapter, input, options) {
16839
+ validateCCInput(input, "contentControls.insertAfter");
16840
+ validateCCTarget(input.target, "contentControls.insertAfter");
16841
+ validateContentPayload(input, "contentControls.insertAfter");
16105
16842
  return adapter.insertAfter(input, options);
16106
16843
  }
16107
16844
  function executeContentControlsGetBinding(adapter, input) {
16845
+ validateCCInput(input, "contentControls.getBinding");
16846
+ validateCCTarget(input.target, "contentControls.getBinding");
16108
16847
  return adapter.getBinding(input);
16109
16848
  }
16110
16849
  function executeContentControlsSetBinding(adapter, input, options) {
16850
+ validateCCInput(input, "contentControls.setBinding");
16851
+ validateCCTarget(input.target, "contentControls.setBinding");
16852
+ requireString2(input.storeItemId, "storeItemId", "contentControls.setBinding");
16853
+ requireString2(input.xpath, "xpath", "contentControls.setBinding");
16111
16854
  return adapter.setBinding(input, options);
16112
16855
  }
16113
16856
  function executeContentControlsClearBinding(adapter, input, options) {
16857
+ validateCCInput(input, "contentControls.clearBinding");
16858
+ validateCCTarget(input.target, "contentControls.clearBinding");
16114
16859
  return adapter.clearBinding(input, options);
16115
16860
  }
16116
16861
  function executeContentControlsGetRawProperties(adapter, input) {
16862
+ validateCCInput(input, "contentControls.getRawProperties");
16863
+ validateCCTarget(input.target, "contentControls.getRawProperties");
16117
16864
  return adapter.getRawProperties(input);
16118
16865
  }
16119
16866
  function executeContentControlsPatchRawProperties(adapter, input, options) {
16867
+ validateCCInput(input, "contentControls.patchRawProperties");
16868
+ validateCCTarget(input.target, "contentControls.patchRawProperties");
16869
+ if (!Array.isArray(input.patches)) {
16870
+ throw new DocumentApiValidationError("INVALID_INPUT", "contentControls.patchRawProperties patches must be an array.", { field: "patches", value: input.patches });
16871
+ }
16872
+ for (let i = 0;i < input.patches.length; i++) {
16873
+ const patch = input.patches[i];
16874
+ if (!isRecord(patch)) {
16875
+ throw new DocumentApiValidationError("INVALID_INPUT", `contentControls.patchRawProperties patches[${i}] must be an object.`, { field: `patches[${i}]`, value: patch });
16876
+ }
16877
+ if (!VALID_RAW_PATCH_OPS.has(patch.op)) {
16878
+ throw new DocumentApiValidationError("INVALID_INPUT", `contentControls.patchRawProperties patches[${i}].op must be one of: ${[...VALID_RAW_PATCH_OPS].join(", ")}.`, { field: `patches[${i}].op`, value: patch.op });
16879
+ }
16880
+ if (typeof patch.name !== "string" || patch.name === "") {
16881
+ throw new DocumentApiValidationError("INVALID_INPUT", `contentControls.patchRawProperties patches[${i}].name must be a non-empty string.`, { field: `patches[${i}].name`, value: patch.name });
16882
+ }
16883
+ }
16120
16884
  return adapter.patchRawProperties(input, options);
16121
16885
  }
16122
16886
  function executeContentControlsValidateWordCompatibility(adapter, input) {
16887
+ validateCCInput(input, "contentControls.validateWordCompatibility");
16888
+ validateCCTarget(input.target, "contentControls.validateWordCompatibility");
16123
16889
  return adapter.validateWordCompatibility(input);
16124
16890
  }
16125
16891
  function executeContentControlsNormalizeWordCompatibility(adapter, input, options) {
16892
+ validateCCInput(input, "contentControls.normalizeWordCompatibility");
16893
+ validateCCTarget(input.target, "contentControls.normalizeWordCompatibility");
16126
16894
  return adapter.normalizeWordCompatibility(input, options);
16127
16895
  }
16128
16896
  function executeContentControlsNormalizeTagPayload(adapter, input, options) {
16897
+ validateCCInput(input, "contentControls.normalizeTagPayload");
16898
+ validateCCTarget(input.target, "contentControls.normalizeTagPayload");
16129
16899
  return adapter.normalizeTagPayload(input, options);
16130
16900
  }
16131
16901
  function executeContentControlsTextSetMultiline(adapter, input, options) {
16902
+ validateCCInput(input, "contentControls.text.setMultiline");
16903
+ validateCCTarget(input.target, "contentControls.text.setMultiline");
16904
+ requireBoolean(input.multiline, "multiline", "contentControls.text.setMultiline");
16132
16905
  return adapter.text.setMultiline(input, options);
16133
16906
  }
16134
16907
  function executeContentControlsTextSetValue(adapter, input, options) {
16908
+ validateCCInput(input, "contentControls.text.setValue");
16909
+ validateCCTarget(input.target, "contentControls.text.setValue");
16910
+ if (typeof input.value !== "string") {
16911
+ throw new DocumentApiValidationError("INVALID_INPUT", `contentControls.text.setValue value must be a string.`, {
16912
+ field: "value",
16913
+ value: input.value
16914
+ });
16915
+ }
16135
16916
  return adapter.text.setValue(input, options);
16136
16917
  }
16137
16918
  function executeContentControlsTextClearValue(adapter, input, options) {
16919
+ validateCCInput(input, "contentControls.text.clearValue");
16920
+ validateCCTarget(input.target, "contentControls.text.clearValue");
16138
16921
  return adapter.text.clearValue(input, options);
16139
16922
  }
16140
16923
  function executeContentControlsDateSetValue(adapter, input, options) {
16924
+ validateCCInput(input, "contentControls.date.setValue");
16925
+ validateCCTarget(input.target, "contentControls.date.setValue");
16926
+ if (typeof input.value !== "string") {
16927
+ throw new DocumentApiValidationError("INVALID_INPUT", `contentControls.date.setValue value must be a string.`, {
16928
+ field: "value",
16929
+ value: input.value
16930
+ });
16931
+ }
16141
16932
  return adapter.date.setValue(input, options);
16142
16933
  }
16143
16934
  function executeContentControlsDateClearValue(adapter, input, options) {
16935
+ validateCCInput(input, "contentControls.date.clearValue");
16936
+ validateCCTarget(input.target, "contentControls.date.clearValue");
16144
16937
  return adapter.date.clearValue(input, options);
16145
16938
  }
16146
16939
  function executeContentControlsDateSetDisplayFormat(adapter, input, options) {
16940
+ validateCCInput(input, "contentControls.date.setDisplayFormat");
16941
+ validateCCTarget(input.target, "contentControls.date.setDisplayFormat");
16942
+ requireString2(input.format, "format", "contentControls.date.setDisplayFormat");
16147
16943
  return adapter.date.setDisplayFormat(input, options);
16148
16944
  }
16149
16945
  function executeContentControlsDateSetDisplayLocale(adapter, input, options) {
16946
+ validateCCInput(input, "contentControls.date.setDisplayLocale");
16947
+ validateCCTarget(input.target, "contentControls.date.setDisplayLocale");
16948
+ requireString2(input.locale, "locale", "contentControls.date.setDisplayLocale");
16150
16949
  return adapter.date.setDisplayLocale(input, options);
16151
16950
  }
16152
16951
  function executeContentControlsDateSetStorageFormat(adapter, input, options) {
16952
+ validateCCInput(input, "contentControls.date.setStorageFormat");
16953
+ validateCCTarget(input.target, "contentControls.date.setStorageFormat");
16954
+ requireString2(input.format, "format", "contentControls.date.setStorageFormat");
16153
16955
  return adapter.date.setStorageFormat(input, options);
16154
16956
  }
16155
16957
  function executeContentControlsDateSetCalendar(adapter, input, options) {
16958
+ validateCCInput(input, "contentControls.date.setCalendar");
16959
+ validateCCTarget(input.target, "contentControls.date.setCalendar");
16960
+ requireString2(input.calendar, "calendar", "contentControls.date.setCalendar");
16156
16961
  return adapter.date.setCalendar(input, options);
16157
16962
  }
16158
16963
  function executeContentControlsCheckboxGetState(adapter, input) {
16964
+ validateCCInput(input, "contentControls.checkbox.getState");
16965
+ validateCCTarget(input.target, "contentControls.checkbox.getState");
16159
16966
  return adapter.checkbox.getState(input);
16160
16967
  }
16161
16968
  function executeContentControlsCheckboxSetState(adapter, input, options) {
16969
+ validateCCInput(input, "contentControls.checkbox.setState");
16970
+ validateCCTarget(input.target, "contentControls.checkbox.setState");
16971
+ requireBoolean(input.checked, "checked", "contentControls.checkbox.setState");
16162
16972
  return adapter.checkbox.setState(input, options);
16163
16973
  }
16164
16974
  function executeContentControlsCheckboxToggle(adapter, input, options) {
16975
+ validateCCInput(input, "contentControls.checkbox.toggle");
16976
+ validateCCTarget(input.target, "contentControls.checkbox.toggle");
16165
16977
  return adapter.checkbox.toggle(input, options);
16166
16978
  }
16167
16979
  function executeContentControlsCheckboxSetSymbolPair(adapter, input, options) {
16980
+ validateCCInput(input, "contentControls.checkbox.setSymbolPair");
16981
+ validateCCTarget(input.target, "contentControls.checkbox.setSymbolPair");
16982
+ validateSymbol(input.checkedSymbol, "checkedSymbol", "contentControls.checkbox.setSymbolPair");
16983
+ validateSymbol(input.uncheckedSymbol, "uncheckedSymbol", "contentControls.checkbox.setSymbolPair");
16168
16984
  return adapter.checkbox.setSymbolPair(input, options);
16169
16985
  }
16170
16986
  function executeContentControlsChoiceListGetItems(adapter, input) {
16987
+ validateCCInput(input, "contentControls.choiceList.getItems");
16988
+ validateCCTarget(input.target, "contentControls.choiceList.getItems");
16171
16989
  return adapter.choiceList.getItems(input);
16172
16990
  }
16173
16991
  function executeContentControlsChoiceListSetItems(adapter, input, options) {
16992
+ validateCCInput(input, "contentControls.choiceList.setItems");
16993
+ validateCCTarget(input.target, "contentControls.choiceList.setItems");
16994
+ if (!Array.isArray(input.items)) {
16995
+ throw new DocumentApiValidationError("INVALID_INPUT", "contentControls.choiceList.setItems items must be an array.", { field: "items", value: input.items });
16996
+ }
16997
+ for (let i = 0;i < input.items.length; i++) {
16998
+ const item = input.items[i];
16999
+ if (!isRecord(item) || typeof item.displayText !== "string" || typeof item.value !== "string") {
17000
+ throw new DocumentApiValidationError("INVALID_INPUT", `contentControls.choiceList.setItems items[${i}] must be { displayText: string, value: string }.`, { field: `items[${i}]`, value: item });
17001
+ }
17002
+ }
16174
17003
  return adapter.choiceList.setItems(input, options);
16175
17004
  }
16176
17005
  function executeContentControlsChoiceListSetSelected(adapter, input, options) {
17006
+ validateCCInput(input, "contentControls.choiceList.setSelected");
17007
+ validateCCTarget(input.target, "contentControls.choiceList.setSelected");
17008
+ if (typeof input.value !== "string") {
17009
+ throw new DocumentApiValidationError("INVALID_INPUT", "contentControls.choiceList.setSelected value must be a string.", { field: "value", value: input.value });
17010
+ }
16177
17011
  return adapter.choiceList.setSelected(input, options);
16178
17012
  }
16179
17013
  function executeContentControlsRepeatingSectionListItems(adapter, input) {
17014
+ validateCCInput(input, "contentControls.repeatingSection.listItems");
17015
+ validateCCTarget(input.target, "contentControls.repeatingSection.listItems");
16180
17016
  return adapter.repeatingSection.listItems(input);
16181
17017
  }
16182
17018
  function executeContentControlsRepeatingSectionInsertItemBefore(adapter, input, options) {
17019
+ validateCCInput(input, "contentControls.repeatingSection.insertItemBefore");
17020
+ validateCCTarget(input.target, "contentControls.repeatingSection.insertItemBefore");
17021
+ requireIndex(input.index, "index", "contentControls.repeatingSection.insertItemBefore");
16183
17022
  return adapter.repeatingSection.insertItemBefore(input, options);
16184
17023
  }
16185
17024
  function executeContentControlsRepeatingSectionInsertItemAfter(adapter, input, options) {
17025
+ validateCCInput(input, "contentControls.repeatingSection.insertItemAfter");
17026
+ validateCCTarget(input.target, "contentControls.repeatingSection.insertItemAfter");
17027
+ requireIndex(input.index, "index", "contentControls.repeatingSection.insertItemAfter");
16186
17028
  return adapter.repeatingSection.insertItemAfter(input, options);
16187
17029
  }
16188
17030
  function executeContentControlsRepeatingSectionCloneItem(adapter, input, options) {
17031
+ validateCCInput(input, "contentControls.repeatingSection.cloneItem");
17032
+ validateCCTarget(input.target, "contentControls.repeatingSection.cloneItem");
17033
+ requireIndex(input.index, "index", "contentControls.repeatingSection.cloneItem");
16189
17034
  return adapter.repeatingSection.cloneItem(input, options);
16190
17035
  }
16191
17036
  function executeContentControlsRepeatingSectionDeleteItem(adapter, input, options) {
17037
+ validateCCInput(input, "contentControls.repeatingSection.deleteItem");
17038
+ validateCCTarget(input.target, "contentControls.repeatingSection.deleteItem");
17039
+ requireIndex(input.index, "index", "contentControls.repeatingSection.deleteItem");
16192
17040
  return adapter.repeatingSection.deleteItem(input, options);
16193
17041
  }
16194
17042
  function executeContentControlsRepeatingSectionSetAllowInsertDelete(adapter, input, options) {
17043
+ validateCCInput(input, "contentControls.repeatingSection.setAllowInsertDelete");
17044
+ validateCCTarget(input.target, "contentControls.repeatingSection.setAllowInsertDelete");
17045
+ requireBoolean(input.allow, "allow", "contentControls.repeatingSection.setAllowInsertDelete");
16195
17046
  return adapter.repeatingSection.setAllowInsertDelete(input, options);
16196
17047
  }
16197
17048
  function executeContentControlsGroupWrap(adapter, input, options) {
17049
+ validateCCInput(input, "contentControls.group.wrap");
17050
+ validateCCTarget(input.target, "contentControls.group.wrap");
16198
17051
  return adapter.group.wrap(input, options);
16199
17052
  }
16200
17053
  function executeContentControlsGroupUngroup(adapter, input, options) {
17054
+ validateCCInput(input, "contentControls.group.ungroup");
17055
+ validateCCTarget(input.target, "contentControls.group.ungroup");
16201
17056
  return adapter.group.ungroup(input, options);
16202
17057
  }
16203
17058
  function executeCreateContentControl(adapter, input, options) {
17059
+ validateCCInput(input, "create.contentControl");
17060
+ requireNodeKind(input.kind, "kind", "create.contentControl");
17061
+ if (input.controlType !== undefined && !VALID_CC_TYPES.has(input.controlType)) {
17062
+ throw new DocumentApiValidationError("INVALID_INPUT", `create.contentControl controlType must be one of: ${[...VALID_CC_TYPES].join(", ")}.`, { field: "controlType", value: input.controlType });
17063
+ }
17064
+ if (input.lockMode !== undefined && !VALID_LOCK_MODES.has(input.lockMode)) {
17065
+ throw new DocumentApiValidationError("INVALID_INPUT", `create.contentControl lockMode must be one of: ${[...VALID_LOCK_MODES].join(", ")}.`, { field: "lockMode", value: input.lockMode });
17066
+ }
17067
+ if (input.target !== undefined) {
17068
+ validateCCTarget(input.target, "create.contentControl");
17069
+ }
17070
+ if (input.content !== undefined && typeof input.content !== "string") {
17071
+ throw new DocumentApiValidationError("INVALID_INPUT", `create.contentControl content must be a string, got ${typeof input.content}.`, { field: "content", value: input.content });
17072
+ }
16204
17073
  return adapter.create(input, options);
16205
17074
  }
17075
+ var VALID_NODE_KINDS, VALID_LOCK_MODES, VALID_CC_TYPES, VALID_CC_APPEARANCES, VALID_CONTENT_FORMATS, VALID_RAW_PATCH_OPS;
17076
+ var init_content_controls = __esm(() => {
17077
+ init_errors2();
17078
+ init_validation_primitives();
17079
+ init_content_controls_types();
17080
+ init_base();
17081
+ VALID_NODE_KINDS = new Set(NODE_KINDS);
17082
+ VALID_LOCK_MODES = new Set(LOCK_MODES);
17083
+ VALID_CC_TYPES = new Set(CONTENT_CONTROL_TYPES);
17084
+ VALID_CC_APPEARANCES = new Set(CONTENT_CONTROL_APPEARANCES);
17085
+ VALID_CONTENT_FORMATS = new Set(["text", "html"]);
17086
+ VALID_RAW_PATCH_OPS = new Set(["set", "remove", "setAttr", "removeAttr"]);
17087
+ });
16206
17088
 
16207
17089
  // ../../packages/document-api/src/bookmarks/bookmarks.ts
16208
17090
  function validateBookmarkTarget(target, operationName) {
@@ -16656,16 +17538,6 @@ var init_authorities = __esm(() => {
16656
17538
  init_create_location_validator();
16657
17539
  });
16658
17540
 
16659
- // ../../packages/document-api/src/content-controls/content-controls.types.ts
16660
- var init_content_controls_types = () => {};
16661
-
16662
- // ../../packages/document-api/src/lists/lists.types.ts
16663
- var LIST_KINDS, LIST_INSERT_POSITIONS;
16664
- var init_lists_types = __esm(() => {
16665
- LIST_KINDS = ["ordered", "bullet"];
16666
- LIST_INSERT_POSITIONS = ["before", "after"];
16667
- });
16668
-
16669
17541
  // ../../packages/document-api/src/index.ts
16670
17542
  function executeQueryMatch(adapter, input) {
16671
17543
  if (!input || typeof input !== "object") {
@@ -17844,6 +18716,9 @@ var init_src = __esm(() => {
17844
18716
  init_format();
17845
18717
  init_inline_run_patch();
17846
18718
  init_styles();
18719
+ init_get_text();
18720
+ init_get_markdown();
18721
+ init_get_html();
17847
18722
  init_story_validator();
17848
18723
  init_delete();
17849
18724
  init_resolve();
@@ -17863,6 +18738,7 @@ var init_src = __esm(() => {
17863
18738
  init_images();
17864
18739
  init_toc();
17865
18740
  init_hyperlinks();
18741
+ init_content_controls();
17866
18742
  init_bookmarks();
17867
18743
  init_footnotes();
17868
18744
  init_cross_refs();
@@ -40183,7 +41059,7 @@ var init_remark_gfm_z_sDF4ss_es = __esm(() => {
40183
41059
  emptyOptions2 = {};
40184
41060
  });
40185
41061
 
40186
- // ../../packages/superdoc/dist/chunks/SuperConverter-CQNRAk8k.es.js
41062
+ // ../../packages/superdoc/dist/chunks/SuperConverter-V-8WDjnK.es.js
40187
41063
  function getExtensionConfigField(extension$1, field, context = { name: "" }) {
40188
41064
  const fieldValue = extension$1.config[field];
40189
41065
  if (typeof fieldValue === "function")
@@ -42836,24 +43712,24 @@ function executeMarkdownToFragment2(adapter, input) {
42836
43712
  }
42837
43713
  function validateCreateCommentInput2(input) {
42838
43714
  if (!isRecord4(input))
42839
- throw new DocumentApiValidationError2("INVALID_TARGET", "comments.create input must be a non-null object.");
43715
+ throw new DocumentApiValidationError2("INVALID_INPUT", "comments.create input must be a non-null object.");
42840
43716
  assertNoUnknownFields3(input, CREATE_COMMENT_ALLOWED_KEYS2, "comments.create");
42841
43717
  const { target, text: text$2, parentCommentId } = input;
42842
43718
  const hasTarget = target !== undefined;
42843
43719
  const isReply = parentCommentId !== undefined;
42844
43720
  if (typeof text$2 !== "string")
42845
- throw new DocumentApiValidationError2("INVALID_TARGET", `text must be a string, got ${typeof text$2}.`, {
43721
+ throw new DocumentApiValidationError2("INVALID_INPUT", `text must be a string, got ${typeof text$2}.`, {
42846
43722
  field: "text",
42847
43723
  value: text$2
42848
43724
  });
42849
43725
  if (isReply) {
42850
43726
  if (typeof parentCommentId !== "string" || parentCommentId.length === 0)
42851
- throw new DocumentApiValidationError2("INVALID_TARGET", "parentCommentId must be a non-empty string.", {
43727
+ throw new DocumentApiValidationError2("INVALID_INPUT", "parentCommentId must be a non-empty string.", {
42852
43728
  field: "parentCommentId",
42853
43729
  value: parentCommentId
42854
43730
  });
42855
43731
  if (hasTarget)
42856
- throw new DocumentApiValidationError2("INVALID_TARGET", "Cannot combine parentCommentId with target. Replies do not take a target.", { fields: ["parentCommentId", "target"] });
43732
+ throw new DocumentApiValidationError2("INVALID_INPUT", "Cannot combine parentCommentId with target. Replies do not take a target.", { fields: ["parentCommentId", "target"] });
42857
43733
  return;
42858
43734
  }
42859
43735
  if (!hasTarget)
@@ -42866,12 +43742,12 @@ function validateCreateCommentInput2(input) {
42866
43742
  }
42867
43743
  function validatePatchCommentInput2(input) {
42868
43744
  if (!isRecord4(input))
42869
- throw new DocumentApiValidationError2("INVALID_TARGET", "comments.patch input must be a non-null object.");
43745
+ throw new DocumentApiValidationError2("INVALID_INPUT", "comments.patch input must be a non-null object.");
42870
43746
  assertNoUnknownFields3(input, PATCH_COMMENT_ALLOWED_KEYS2, "comments.patch");
42871
43747
  const { commentId, target } = input;
42872
43748
  const hasTarget = target !== undefined;
42873
43749
  if (typeof commentId !== "string")
42874
- throw new DocumentApiValidationError2("INVALID_TARGET", `commentId must be a string, got ${typeof commentId}.`, {
43750
+ throw new DocumentApiValidationError2("INVALID_INPUT", `commentId must be a string, got ${typeof commentId}.`, {
42875
43751
  field: "commentId",
42876
43752
  value: commentId
42877
43753
  });
@@ -42886,12 +43762,22 @@ function validatePatchCommentInput2(input) {
42886
43762
  throw new DocumentApiValidationError2("INVALID_INPUT", "comments.patch requires exactly one mutation field (text, target, status, or isInternal).", { allowedFields: [...mutationFields] });
42887
43763
  if (providedFields.length > 1)
42888
43764
  throw new DocumentApiValidationError2("INVALID_INPUT", `comments.patch accepts exactly one mutation field per call, got ${providedFields.length}: ${providedFields.join(", ")}.`, { providedFields: [...providedFields] });
42889
- const { status } = input;
43765
+ const { text: text$2, status, isInternal } = input;
43766
+ if (text$2 !== undefined && typeof text$2 !== "string")
43767
+ throw new DocumentApiValidationError2("INVALID_INPUT", `text must be a string, got ${typeof text$2}.`, {
43768
+ field: "text",
43769
+ value: text$2
43770
+ });
42890
43771
  if (status !== undefined && status !== "resolved")
42891
- throw new DocumentApiValidationError2("INVALID_TARGET", `status must be "resolved", got "${String(status)}".`, {
43772
+ throw new DocumentApiValidationError2("INVALID_INPUT", `status must be "resolved", got "${String(status)}".`, {
42892
43773
  field: "status",
42893
43774
  value: status
42894
43775
  });
43776
+ if (isInternal !== undefined && typeof isInternal !== "boolean")
43777
+ throw new DocumentApiValidationError2("INVALID_INPUT", `isInternal must be a boolean, got ${typeof isInternal}.`, {
43778
+ field: "isInternal",
43779
+ value: isInternal
43780
+ });
42895
43781
  if (hasTarget && !isTextAddress2(target))
42896
43782
  throw new DocumentApiValidationError2("INVALID_TARGET", "target must be a text address object.", {
42897
43783
  field: "target",
@@ -42928,13 +43814,26 @@ function executeCommentsPatch2(adapter, input, options) {
42928
43814
  }, options);
42929
43815
  throw new DocumentApiValidationError2("INTERNAL_ERROR", "comments.patch: no mutation field matched after validation. This is a bug.");
42930
43816
  }
43817
+ function validateCommentIdInput2(input, operationName) {
43818
+ if (!isRecord4(input))
43819
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} input must be a non-null object.`);
43820
+ if (typeof input.commentId !== "string" || input.commentId.length === 0)
43821
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} commentId must be a non-empty string.`, {
43822
+ field: "commentId",
43823
+ value: input.commentId
43824
+ });
43825
+ }
42931
43826
  function executeCommentsDelete2(adapter, input, options) {
43827
+ validateCommentIdInput2(input, "comments.delete");
42932
43828
  return adapter.remove({ commentId: input.commentId }, options);
42933
43829
  }
42934
43830
  function executeGetComment2(adapter, input) {
43831
+ validateCommentIdInput2(input, "comments.get");
42935
43832
  return adapter.get(input);
42936
43833
  }
42937
43834
  function executeListComments2(adapter, query2) {
43835
+ if (query2 !== undefined && !isRecord4(query2))
43836
+ throw new DocumentApiValidationError2("INVALID_INPUT", "comments.list query must be an object if provided.");
42938
43837
  return adapter.list(query2);
42939
43838
  }
42940
43839
  function executeFind2(adapter, input) {
@@ -43028,12 +43927,21 @@ function executeGet2(adapter, input) {
43028
43927
  return adapter.get(input);
43029
43928
  }
43030
43929
  function executeGetText2(adapter, input) {
43930
+ if (!isRecord4(input))
43931
+ throw new DocumentApiValidationError2("INVALID_INPUT", "getText input must be a non-null object.");
43932
+ validateStoryLocator2(input.in, "in");
43031
43933
  return adapter.getText(input);
43032
43934
  }
43033
43935
  function executeGetMarkdown2(adapter, input) {
43936
+ if (!isRecord4(input))
43937
+ throw new DocumentApiValidationError2("INVALID_INPUT", "getMarkdown input must be a non-null object.");
43938
+ validateStoryLocator2(input.in, "in");
43034
43939
  return adapter.getMarkdown(input);
43035
43940
  }
43036
43941
  function executeGetHtml2(adapter, input) {
43942
+ if (!isRecord4(input))
43943
+ throw new DocumentApiValidationError2("INVALID_INPUT", "getHtml input must be a non-null object.");
43944
+ validateStoryLocator2(input.in, "in");
43037
43945
  return adapter.getHtml(input);
43038
43946
  }
43039
43947
  function executeInfo2(adapter, input) {
@@ -43647,149 +44555,531 @@ function executeInsert2(selectionAdapter, writeAdapter, input, options) {
43647
44555
  ...storyIn ? { in: storyIn } : {}
43648
44556
  }, options));
43649
44557
  }
43650
- function validateListTarget2(input, operationName) {
43651
- if (input.target === undefined)
43652
- throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} requires a target.`);
44558
+ function validateListInput2(input, operationName) {
44559
+ if (!isRecord4(input))
44560
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} input must be a non-null object.`);
44561
+ }
44562
+ function validateListItemAddress2(value, field, operationName) {
44563
+ if (value === undefined || value === null)
44564
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} requires a ${field}.`);
44565
+ if (!isRecord4(value))
44566
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} ${field} must be an object.`, {
44567
+ field,
44568
+ value
44569
+ });
44570
+ const t = value;
44571
+ if (t.kind !== "block")
44572
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} ${field}.kind must be 'block', got "${String(t.kind)}".`, {
44573
+ field: `${field}.kind`,
44574
+ value: t.kind
44575
+ });
44576
+ if (t.nodeType !== "listItem")
44577
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} ${field}.nodeType must be 'listItem', got "${String(t.nodeType)}".`, {
44578
+ field: `${field}.nodeType`,
44579
+ value: t.nodeType
44580
+ });
44581
+ if (typeof t.nodeId !== "string" || t.nodeId === "")
44582
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} ${field}.nodeId must be a non-empty string.`, {
44583
+ field: `${field}.nodeId`,
44584
+ value: t.nodeId
44585
+ });
44586
+ }
44587
+ function validateListItemTarget2(input, operationName) {
44588
+ validateListItemAddress2(input.target, "target", operationName);
44589
+ }
44590
+ function validateBlockAddress2(value, field, operationName) {
44591
+ if (!isRecord4(value))
44592
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} ${field} must be an object.`, {
44593
+ field,
44594
+ value
44595
+ });
44596
+ const v = value;
44597
+ if (v.kind !== "block")
44598
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} ${field}.kind must be 'block', got "${String(v.kind)}".`, {
44599
+ field: `${field}.kind`,
44600
+ value: v.kind
44601
+ });
44602
+ if (v.nodeType !== "paragraph")
44603
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} ${field}.nodeType must be 'paragraph', got "${String(v.nodeType)}".`, {
44604
+ field: `${field}.nodeType`,
44605
+ value: v.nodeType
44606
+ });
44607
+ if (typeof v.nodeId !== "string" || v.nodeId === "")
44608
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} ${field}.nodeId must be a non-empty string.`, {
44609
+ field: `${field}.nodeId`,
44610
+ value: v.nodeId
44611
+ });
44612
+ }
44613
+ function validateBlockAddressOrRange2(value, field, operationName) {
44614
+ if (!isRecord4(value))
44615
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} ${field} must be an object.`, {
44616
+ field,
44617
+ value
44618
+ });
44619
+ const v = value;
44620
+ if (v.from !== undefined) {
44621
+ validateBlockAddress2(v.from, `${field}.from`, operationName);
44622
+ validateBlockAddress2(v.to, `${field}.to`, operationName);
44623
+ } else
44624
+ validateBlockAddress2(value, field, operationName);
44625
+ }
44626
+ function requireLevel2(value, operationName) {
44627
+ if (!isInteger2(value) || value < 0)
44628
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} level must be a non-negative integer, got ${JSON.stringify(value)}.`, {
44629
+ field: "level",
44630
+ value
44631
+ });
44632
+ }
44633
+ function requireEnum2(value, field, validSet, operationName) {
44634
+ if (!validSet.has(value))
44635
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${field} must be one of: ${[...validSet].join(", ")}. Got ${JSON.stringify(value)}.`, {
44636
+ field,
44637
+ value
44638
+ });
44639
+ }
44640
+ function optionalBoolean2(value, field, operationName) {
44641
+ if (value !== undefined && typeof value !== "boolean")
44642
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${field} must be a boolean if provided, got ${typeof value}.`, {
44643
+ field,
44644
+ value
44645
+ });
44646
+ }
44647
+ function optionalNumber2(value, field, operationName) {
44648
+ if (value !== undefined && (typeof value !== "number" || !Number.isFinite(value)))
44649
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${field} must be a number if provided, got ${typeof value}.`, {
44650
+ field,
44651
+ value
44652
+ });
44653
+ }
44654
+ function optionalInteger2(value, field, operationName) {
44655
+ if (value !== undefined && !isInteger2(value))
44656
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${field} must be an integer if provided, got ${JSON.stringify(value)}.`, {
44657
+ field,
44658
+ value
44659
+ });
44660
+ }
44661
+ function optionalLevelsArray2(value, field, operationName) {
44662
+ if (value === undefined)
44663
+ return;
44664
+ if (!Array.isArray(value))
44665
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${field} must be an array if provided.`, {
44666
+ field,
44667
+ value
44668
+ });
44669
+ for (let i$1 = 0;i$1 < value.length; i$1++)
44670
+ if (!isInteger2(value[i$1]) || value[i$1] < 0)
44671
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${field}[${i$1}] must be a non-negative integer.`, {
44672
+ field: `${field}[${i$1}]`,
44673
+ value: value[i$1]
44674
+ });
44675
+ }
44676
+ function validateListLevelTemplate2(entry, path2, operationName) {
44677
+ if (!isRecord4(entry))
44678
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${path2} must be an object.`, {
44679
+ field: path2,
44680
+ value: entry
44681
+ });
44682
+ const e = entry;
44683
+ if (!isInteger2(e.level) || e.level < 0)
44684
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${path2}.level must be a non-negative integer.`, {
44685
+ field: `${path2}.level`,
44686
+ value: e.level
44687
+ });
44688
+ if (e.numFmt !== undefined && typeof e.numFmt !== "string")
44689
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${path2}.numFmt must be a string.`, {
44690
+ field: `${path2}.numFmt`,
44691
+ value: e.numFmt
44692
+ });
44693
+ if (e.lvlText !== undefined && typeof e.lvlText !== "string")
44694
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${path2}.lvlText must be a string.`, {
44695
+ field: `${path2}.lvlText`,
44696
+ value: e.lvlText
44697
+ });
44698
+ optionalInteger2(e.start, `${path2}.start`, operationName);
44699
+ if (e.alignment !== undefined)
44700
+ requireEnum2(e.alignment, `${path2}.alignment`, VALID_LEVEL_ALIGNMENTS2, operationName);
44701
+ if (e.trailingCharacter !== undefined)
44702
+ requireEnum2(e.trailingCharacter, `${path2}.trailingCharacter`, VALID_TRAILING_CHARACTERS2, operationName);
44703
+ if (e.markerFont !== undefined && typeof e.markerFont !== "string")
44704
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${path2}.markerFont must be a string.`, {
44705
+ field: `${path2}.markerFont`,
44706
+ value: e.markerFont
44707
+ });
44708
+ optionalInteger2(e.pictureBulletId, `${path2}.pictureBulletId`, operationName);
44709
+ if (e.tabStopAt !== undefined && e.tabStopAt !== null)
44710
+ optionalNumber2(e.tabStopAt, `${path2}.tabStopAt`, operationName);
44711
+ if (e.indents !== undefined) {
44712
+ if (!isRecord4(e.indents))
44713
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${path2}.indents must be an object.`, {
44714
+ field: `${path2}.indents`,
44715
+ value: e.indents
44716
+ });
44717
+ const ind = e.indents;
44718
+ optionalNumber2(ind.left, `${path2}.indents.left`, operationName);
44719
+ optionalNumber2(ind.hanging, `${path2}.indents.hanging`, operationName);
44720
+ optionalNumber2(ind.firstLine, `${path2}.indents.firstLine`, operationName);
44721
+ }
44722
+ }
44723
+ function validateListTemplate2(value, field, operationName) {
44724
+ if (!isRecord4(value))
44725
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${field} must be an object.`, {
44726
+ field,
44727
+ value
44728
+ });
44729
+ const t = value;
44730
+ if (t.version !== 1)
44731
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${field}.version must be 1, got ${JSON.stringify(t.version)}.`, {
44732
+ field: `${field}.version`,
44733
+ value: t.version
44734
+ });
44735
+ if (!Array.isArray(t.levels))
44736
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${field}.levels must be an array.`, {
44737
+ field: `${field}.levels`,
44738
+ value: t.levels
44739
+ });
44740
+ for (let i$1 = 0;i$1 < t.levels.length; i$1++)
44741
+ validateListLevelTemplate2(t.levels[i$1], `${field}.levels[${i$1}]`, operationName);
44742
+ }
44743
+ function validateListsCreateFields2(raw) {
44744
+ const op = "lists.create";
44745
+ if (raw.kind !== undefined)
44746
+ requireEnum2(raw.kind, "kind", VALID_LIST_KINDS2, op);
44747
+ if (raw.level !== undefined) {
44748
+ if (!isInteger2(raw.level) || raw.level < 0)
44749
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${op} level must be a non-negative integer, got ${JSON.stringify(raw.level)}.`, {
44750
+ field: "level",
44751
+ value: raw.level
44752
+ });
44753
+ }
44754
+ if (raw.sequence !== undefined) {
44755
+ if (!isRecord4(raw.sequence))
44756
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${op} sequence must be an object.`, {
44757
+ field: "sequence",
44758
+ value: raw.sequence
44759
+ });
44760
+ const seq = raw.sequence;
44761
+ requireEnum2(seq.mode, "sequence.mode", VALID_SEQUENCE_MODES2, op);
44762
+ if (seq.mode === "continuePrevious") {
44763
+ if (raw.preset !== undefined)
44764
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${op} preset must not be provided when sequence.mode is 'continuePrevious'.`, { field: "preset" });
44765
+ if (raw.style !== undefined)
44766
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${op} style must not be provided when sequence.mode is 'continuePrevious'.`, { field: "style" });
44767
+ if (seq.startAt !== undefined)
44768
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${op} sequence.startAt must not be provided when sequence.mode is 'continuePrevious'.`, { field: "sequence.startAt" });
44769
+ }
44770
+ if (seq.mode === "new")
44771
+ optionalInteger2(seq.startAt, "sequence.startAt", op);
44772
+ }
44773
+ if (raw.preset !== undefined)
44774
+ requireEnum2(raw.preset, "preset", VALID_LIST_PRESETS2, op);
44775
+ if (raw.style !== undefined)
44776
+ validateListTemplate2(raw.style, "style", op);
43653
44777
  }
43654
44778
  function executeListsList2(adapter, query2) {
44779
+ if (query2 !== undefined) {
44780
+ if (!isRecord4(query2))
44781
+ throw new DocumentApiValidationError2("INVALID_INPUT", "lists.list query must be an object if provided.");
44782
+ const q$1 = query2;
44783
+ if (q$1.kind !== undefined)
44784
+ requireEnum2(q$1.kind, "kind", VALID_LIST_KINDS2, "lists.list");
44785
+ optionalInteger2(q$1.level, "level", "lists.list");
44786
+ optionalInteger2(q$1.limit, "limit", "lists.list");
44787
+ optionalInteger2(q$1.offset, "offset", "lists.list");
44788
+ optionalInteger2(q$1.ordinal, "ordinal", "lists.list");
44789
+ if (q$1.within !== undefined) {
44790
+ if (!isRecord4(q$1.within))
44791
+ throw new DocumentApiValidationError2("INVALID_INPUT", "lists.list within must be an object.", {
44792
+ field: "within",
44793
+ value: q$1.within
44794
+ });
44795
+ const w = q$1.within;
44796
+ if (w.kind !== "block")
44797
+ throw new DocumentApiValidationError2("INVALID_INPUT", `lists.list within.kind must be 'block', got "${String(w.kind)}".`, {
44798
+ field: "within.kind",
44799
+ value: w.kind
44800
+ });
44801
+ if (!VALID_BLOCK_NODE_TYPES$1.has(w.nodeType))
44802
+ throw new DocumentApiValidationError2("INVALID_INPUT", `lists.list within.nodeType must be a valid BlockNodeType, got ${JSON.stringify(w.nodeType)}.`, {
44803
+ field: "within.nodeType",
44804
+ value: w.nodeType
44805
+ });
44806
+ if (typeof w.nodeId !== "string" || w.nodeId === "")
44807
+ throw new DocumentApiValidationError2("INVALID_INPUT", "lists.list within.nodeId must be a non-empty string.", {
44808
+ field: "within.nodeId",
44809
+ value: w.nodeId
44810
+ });
44811
+ }
44812
+ }
43655
44813
  return adapter.list(query2);
43656
44814
  }
43657
44815
  function executeListsGet2(adapter, input) {
44816
+ validateListInput2(input, "lists.get");
44817
+ validateListItemAddress2(input.address, "address", "lists.get");
43658
44818
  return adapter.get(input);
43659
44819
  }
43660
44820
  function executeListsInsert2(adapter, input, options) {
43661
- validateListTarget2(input, "lists.insert");
44821
+ validateListItemTarget2(input, "lists.insert");
44822
+ requireEnum2(input.position, "position", VALID_INSERT_POSITIONS2, "lists.insert");
44823
+ if (input.text !== undefined && typeof input.text !== "string")
44824
+ throw new DocumentApiValidationError2("INVALID_INPUT", `lists.insert text must be a string if provided, got ${typeof input.text}.`, {
44825
+ field: "text",
44826
+ value: input.text
44827
+ });
43662
44828
  return adapter.insert(input, normalizeMutationOptions2(options));
43663
44829
  }
43664
44830
  function executeListsIndent2(adapter, input, options) {
43665
- validateListTarget2(input, "lists.indent");
44831
+ validateListItemTarget2(input, "lists.indent");
43666
44832
  return adapter.indent(input, normalizeMutationOptions2(options));
43667
44833
  }
43668
44834
  function executeListsOutdent2(adapter, input, options) {
43669
- validateListTarget2(input, "lists.outdent");
44835
+ validateListItemTarget2(input, "lists.outdent");
43670
44836
  return adapter.outdent(input, normalizeMutationOptions2(options));
43671
44837
  }
43672
44838
  function executeListsCreate2(adapter, input, options) {
44839
+ validateListInput2(input, "lists.create");
44840
+ const raw = input;
44841
+ if (!VALID_LIST_CREATE_MODES2.has(raw.mode))
44842
+ throw new DocumentApiValidationError2("INVALID_INPUT", `lists.create mode must be "empty" or "fromParagraphs", got ${JSON.stringify(raw.mode)}.`, {
44843
+ field: "mode",
44844
+ value: raw.mode
44845
+ });
44846
+ if (raw.mode === "empty")
44847
+ validateBlockAddress2(raw.at, "at", "lists.create");
44848
+ if (raw.mode === "fromParagraphs") {
44849
+ if (raw.target === undefined || raw.target === null)
44850
+ throw new DocumentApiValidationError2("INVALID_TARGET", 'lists.create with mode "fromParagraphs" requires a target.', { field: "target" });
44851
+ validateBlockAddressOrRange2(raw.target, "target", "lists.create");
44852
+ }
44853
+ validateListsCreateFields2(raw);
43673
44854
  return adapter.create(input, normalizeMutationOptions2(options));
43674
44855
  }
43675
44856
  function executeListsAttach2(adapter, input, options) {
43676
- validateListTarget2(input, "lists.attach");
44857
+ validateListInput2(input, "lists.attach");
44858
+ validateBlockAddressOrRange2(input.target, "target", "lists.attach");
44859
+ validateListItemAddress2(input.attachTo, "attachTo", "lists.attach");
44860
+ optionalInteger2(input.level, "level", "lists.attach");
43677
44861
  return adapter.attach(input, normalizeMutationOptions2(options));
43678
44862
  }
43679
44863
  function executeListsDetach2(adapter, input, options) {
43680
- validateListTarget2(input, "lists.detach");
44864
+ validateListItemTarget2(input, "lists.detach");
43681
44865
  return adapter.detach(input, normalizeMutationOptions2(options));
43682
44866
  }
43683
44867
  function executeListsJoin2(adapter, input, options) {
43684
- validateListTarget2(input, "lists.join");
44868
+ validateListItemTarget2(input, "lists.join");
44869
+ requireEnum2(input.direction, "direction", VALID_JOIN_DIRECTIONS2, "lists.join");
43685
44870
  return adapter.join(input, normalizeMutationOptions2(options));
43686
44871
  }
43687
44872
  function executeListsCanJoin2(adapter, input) {
43688
- validateListTarget2(input, "lists.canJoin");
44873
+ validateListItemTarget2(input, "lists.canJoin");
44874
+ requireEnum2(input.direction, "direction", VALID_JOIN_DIRECTIONS2, "lists.canJoin");
43689
44875
  return adapter.canJoin(input);
43690
44876
  }
43691
44877
  function executeListsSeparate2(adapter, input, options) {
43692
- validateListTarget2(input, "lists.separate");
44878
+ validateListItemTarget2(input, "lists.separate");
44879
+ optionalBoolean2(input.copyOverrides, "copyOverrides", "lists.separate");
43693
44880
  return adapter.separate(input, normalizeMutationOptions2(options));
43694
44881
  }
43695
44882
  function executeListsSetLevel2(adapter, input, options) {
43696
- validateListTarget2(input, "lists.setLevel");
44883
+ validateListItemTarget2(input, "lists.setLevel");
44884
+ requireLevel2(input.level, "lists.setLevel");
43697
44885
  return adapter.setLevel(input, normalizeMutationOptions2(options));
43698
44886
  }
43699
44887
  function executeListsSetValue2(adapter, input, options) {
43700
- validateListTarget2(input, "lists.setValue");
44888
+ validateListItemTarget2(input, "lists.setValue");
44889
+ if (input.value !== null && !isInteger2(input.value))
44890
+ throw new DocumentApiValidationError2("INVALID_INPUT", `lists.setValue value must be an integer or null, got ${JSON.stringify(input.value)}.`, {
44891
+ field: "value",
44892
+ value: input.value
44893
+ });
43701
44894
  return adapter.setValue(input, normalizeMutationOptions2(options));
43702
44895
  }
43703
44896
  function executeListsContinuePrevious2(adapter, input, options) {
43704
- validateListTarget2(input, "lists.continuePrevious");
44897
+ validateListItemTarget2(input, "lists.continuePrevious");
43705
44898
  return adapter.continuePrevious(input, normalizeMutationOptions2(options));
43706
44899
  }
43707
44900
  function executeListsCanContinuePrevious2(adapter, input) {
43708
- validateListTarget2(input, "lists.canContinuePrevious");
44901
+ validateListItemTarget2(input, "lists.canContinuePrevious");
43709
44902
  return adapter.canContinuePrevious(input);
43710
44903
  }
43711
44904
  function executeListsSetLevelRestart2(adapter, input, options) {
43712
- validateListTarget2(input, "lists.setLevelRestart");
44905
+ validateListItemTarget2(input, "lists.setLevelRestart");
44906
+ requireLevel2(input.level, "lists.setLevelRestart");
44907
+ if (input.restartAfterLevel !== null && !isInteger2(input.restartAfterLevel))
44908
+ throw new DocumentApiValidationError2("INVALID_INPUT", `lists.setLevelRestart restartAfterLevel must be an integer or null.`, {
44909
+ field: "restartAfterLevel",
44910
+ value: input.restartAfterLevel
44911
+ });
44912
+ if (input.scope !== undefined)
44913
+ requireEnum2(input.scope, "scope", VALID_MUTATION_SCOPES2, "lists.setLevelRestart");
43713
44914
  return adapter.setLevelRestart(input, normalizeMutationOptions2(options));
43714
44915
  }
43715
44916
  function executeListsConvertToText2(adapter, input, options) {
43716
- validateListTarget2(input, "lists.convertToText");
44917
+ validateListItemTarget2(input, "lists.convertToText");
44918
+ optionalBoolean2(input.includeMarker, "includeMarker", "lists.convertToText");
43717
44919
  return adapter.convertToText(input, normalizeMutationOptions2(options));
43718
44920
  }
43719
44921
  function executeListsApplyTemplate2(adapter, input, options) {
43720
- validateListTarget2(input, "lists.applyTemplate");
44922
+ validateListItemTarget2(input, "lists.applyTemplate");
44923
+ validateListTemplate2(input.template, "template", "lists.applyTemplate");
44924
+ optionalLevelsArray2(input.levels, "levels", "lists.applyTemplate");
43721
44925
  return adapter.applyTemplate(input, normalizeMutationOptions2(options));
43722
44926
  }
43723
44927
  function executeListsApplyPreset2(adapter, input, options) {
43724
- validateListTarget2(input, "lists.applyPreset");
44928
+ validateListItemTarget2(input, "lists.applyPreset");
44929
+ requireEnum2(input.preset, "preset", VALID_LIST_PRESETS2, "lists.applyPreset");
44930
+ optionalLevelsArray2(input.levels, "levels", "lists.applyPreset");
43725
44931
  return adapter.applyPreset(input, normalizeMutationOptions2(options));
43726
44932
  }
43727
44933
  function executeListsCaptureTemplate2(adapter, input) {
43728
- validateListTarget2(input, "lists.captureTemplate");
44934
+ validateListItemTarget2(input, "lists.captureTemplate");
44935
+ optionalLevelsArray2(input.levels, "levels", "lists.captureTemplate");
43729
44936
  return adapter.captureTemplate(input);
43730
44937
  }
43731
44938
  function executeListsSetLevelNumbering2(adapter, input, options) {
43732
- validateListTarget2(input, "lists.setLevelNumbering");
44939
+ validateListItemTarget2(input, "lists.setLevelNumbering");
44940
+ requireLevel2(input.level, "lists.setLevelNumbering");
44941
+ if (typeof input.numFmt !== "string")
44942
+ throw new DocumentApiValidationError2("INVALID_INPUT", "lists.setLevelNumbering numFmt must be a string.", {
44943
+ field: "numFmt",
44944
+ value: input.numFmt
44945
+ });
44946
+ if (typeof input.lvlText !== "string")
44947
+ throw new DocumentApiValidationError2("INVALID_INPUT", "lists.setLevelNumbering lvlText must be a string.", {
44948
+ field: "lvlText",
44949
+ value: input.lvlText
44950
+ });
44951
+ optionalInteger2(input.start, "start", "lists.setLevelNumbering");
43733
44952
  return adapter.setLevelNumbering(input, normalizeMutationOptions2(options));
43734
44953
  }
43735
44954
  function executeListsSetLevelBullet2(adapter, input, options) {
43736
- validateListTarget2(input, "lists.setLevelBullet");
44955
+ validateListItemTarget2(input, "lists.setLevelBullet");
44956
+ requireLevel2(input.level, "lists.setLevelBullet");
44957
+ if (typeof input.markerText !== "string")
44958
+ throw new DocumentApiValidationError2("INVALID_INPUT", "lists.setLevelBullet markerText must be a string.", {
44959
+ field: "markerText",
44960
+ value: input.markerText
44961
+ });
43737
44962
  return adapter.setLevelBullet(input, normalizeMutationOptions2(options));
43738
44963
  }
43739
44964
  function executeListsSetLevelPictureBullet2(adapter, input, options) {
43740
- validateListTarget2(input, "lists.setLevelPictureBullet");
44965
+ validateListItemTarget2(input, "lists.setLevelPictureBullet");
44966
+ requireLevel2(input.level, "lists.setLevelPictureBullet");
44967
+ if (!isInteger2(input.pictureBulletId))
44968
+ throw new DocumentApiValidationError2("INVALID_INPUT", "lists.setLevelPictureBullet pictureBulletId must be an integer.", {
44969
+ field: "pictureBulletId",
44970
+ value: input.pictureBulletId
44971
+ });
43741
44972
  return adapter.setLevelPictureBullet(input, normalizeMutationOptions2(options));
43742
44973
  }
43743
44974
  function executeListsSetLevelAlignment2(adapter, input, options) {
43744
- validateListTarget2(input, "lists.setLevelAlignment");
44975
+ validateListItemTarget2(input, "lists.setLevelAlignment");
44976
+ requireLevel2(input.level, "lists.setLevelAlignment");
44977
+ requireEnum2(input.alignment, "alignment", VALID_LEVEL_ALIGNMENTS2, "lists.setLevelAlignment");
43745
44978
  return adapter.setLevelAlignment(input, normalizeMutationOptions2(options));
43746
44979
  }
43747
44980
  function executeListsSetLevelIndents2(adapter, input, options) {
43748
- validateListTarget2(input, "lists.setLevelIndents");
44981
+ validateListItemTarget2(input, "lists.setLevelIndents");
44982
+ requireLevel2(input.level, "lists.setLevelIndents");
44983
+ optionalNumber2(input.left, "left", "lists.setLevelIndents");
44984
+ optionalNumber2(input.hanging, "hanging", "lists.setLevelIndents");
44985
+ optionalNumber2(input.firstLine, "firstLine", "lists.setLevelIndents");
43749
44986
  return adapter.setLevelIndents(input, normalizeMutationOptions2(options));
43750
44987
  }
43751
44988
  function executeListsSetLevelTrailingCharacter2(adapter, input, options) {
43752
- validateListTarget2(input, "lists.setLevelTrailingCharacter");
44989
+ validateListItemTarget2(input, "lists.setLevelTrailingCharacter");
44990
+ requireLevel2(input.level, "lists.setLevelTrailingCharacter");
44991
+ requireEnum2(input.trailingCharacter, "trailingCharacter", VALID_TRAILING_CHARACTERS2, "lists.setLevelTrailingCharacter");
43753
44992
  return adapter.setLevelTrailingCharacter(input, normalizeMutationOptions2(options));
43754
44993
  }
43755
44994
  function executeListsSetLevelMarkerFont2(adapter, input, options) {
43756
- validateListTarget2(input, "lists.setLevelMarkerFont");
44995
+ validateListItemTarget2(input, "lists.setLevelMarkerFont");
44996
+ requireLevel2(input.level, "lists.setLevelMarkerFont");
44997
+ if (typeof input.fontFamily !== "string")
44998
+ throw new DocumentApiValidationError2("INVALID_INPUT", "lists.setLevelMarkerFont fontFamily must be a string.", {
44999
+ field: "fontFamily",
45000
+ value: input.fontFamily
45001
+ });
43757
45002
  return adapter.setLevelMarkerFont(input, normalizeMutationOptions2(options));
43758
45003
  }
43759
45004
  function executeListsClearLevelOverrides2(adapter, input, options) {
43760
- validateListTarget2(input, "lists.clearLevelOverrides");
45005
+ validateListItemTarget2(input, "lists.clearLevelOverrides");
45006
+ requireLevel2(input.level, "lists.clearLevelOverrides");
43761
45007
  return adapter.clearLevelOverrides(input, normalizeMutationOptions2(options));
43762
45008
  }
43763
45009
  function executeListsSetType2(adapter, input, options) {
43764
- validateListTarget2(input, "lists.setType");
45010
+ validateListItemTarget2(input, "lists.setType");
45011
+ requireEnum2(input.kind, "kind", VALID_LIST_KINDS2, "lists.setType");
45012
+ if (input.continuity !== undefined)
45013
+ requireEnum2(input.continuity, "continuity", VALID_CONTINUITY_VALUES2, "lists.setType");
43765
45014
  return adapter.setType(input, normalizeMutationOptions2(options));
43766
45015
  }
43767
45016
  function executeListsGetStyle2(adapter, input) {
43768
- validateListTarget2(input, "lists.getStyle");
45017
+ validateListItemTarget2(input, "lists.getStyle");
45018
+ optionalLevelsArray2(input.levels, "levels", "lists.getStyle");
43769
45019
  return adapter.getStyle(input);
43770
45020
  }
43771
45021
  function executeListsApplyStyle2(adapter, input, options) {
43772
- validateListTarget2(input, "lists.applyStyle");
45022
+ validateListItemTarget2(input, "lists.applyStyle");
45023
+ validateListTemplate2(input.style, "style", "lists.applyStyle");
45024
+ optionalLevelsArray2(input.levels, "levels", "lists.applyStyle");
43773
45025
  return adapter.applyStyle(input, normalizeMutationOptions2(options));
43774
45026
  }
43775
45027
  function executeListsRestartAt2(adapter, input, options) {
43776
- validateListTarget2(input, "lists.restartAt");
45028
+ validateListItemTarget2(input, "lists.restartAt");
45029
+ if (!isInteger2(input.startAt))
45030
+ throw new DocumentApiValidationError2("INVALID_INPUT", `lists.restartAt startAt must be an integer, got ${JSON.stringify(input.startAt)}.`, {
45031
+ field: "startAt",
45032
+ value: input.startAt
45033
+ });
43777
45034
  return adapter.restartAt(input, normalizeMutationOptions2(options));
43778
45035
  }
43779
45036
  function executeListsSetLevelNumberStyle2(adapter, input, options) {
43780
- validateListTarget2(input, "lists.setLevelNumberStyle");
45037
+ validateListItemTarget2(input, "lists.setLevelNumberStyle");
45038
+ requireLevel2(input.level, "lists.setLevelNumberStyle");
45039
+ if (typeof input.numberStyle !== "string")
45040
+ throw new DocumentApiValidationError2("INVALID_INPUT", "lists.setLevelNumberStyle numberStyle must be a string.", {
45041
+ field: "numberStyle",
45042
+ value: input.numberStyle
45043
+ });
43781
45044
  return adapter.setLevelNumberStyle(input, normalizeMutationOptions2(options));
43782
45045
  }
43783
45046
  function executeListsSetLevelText2(adapter, input, options) {
43784
- validateListTarget2(input, "lists.setLevelText");
45047
+ validateListItemTarget2(input, "lists.setLevelText");
45048
+ requireLevel2(input.level, "lists.setLevelText");
45049
+ if (typeof input.text !== "string")
45050
+ throw new DocumentApiValidationError2("INVALID_INPUT", "lists.setLevelText text must be a string.", {
45051
+ field: "text",
45052
+ value: input.text
45053
+ });
43785
45054
  return adapter.setLevelText(input, normalizeMutationOptions2(options));
43786
45055
  }
43787
45056
  function executeListsSetLevelStart2(adapter, input, options) {
43788
- validateListTarget2(input, "lists.setLevelStart");
45057
+ validateListItemTarget2(input, "lists.setLevelStart");
45058
+ requireLevel2(input.level, "lists.setLevelStart");
45059
+ if (!isInteger2(input.startAt))
45060
+ throw new DocumentApiValidationError2("INVALID_INPUT", `lists.setLevelStart startAt must be an integer, got ${JSON.stringify(input.startAt)}.`, {
45061
+ field: "startAt",
45062
+ value: input.startAt
45063
+ });
43789
45064
  return adapter.setLevelStart(input, normalizeMutationOptions2(options));
43790
45065
  }
43791
45066
  function executeListsSetLevelLayout2(adapter, input, options) {
43792
- validateListTarget2(input, "lists.setLevelLayout");
45067
+ validateListItemTarget2(input, "lists.setLevelLayout");
45068
+ requireLevel2(input.level, "lists.setLevelLayout");
45069
+ if (!isRecord4(input.layout))
45070
+ throw new DocumentApiValidationError2("INVALID_INPUT", "lists.setLevelLayout layout must be an object.", {
45071
+ field: "layout",
45072
+ value: input.layout
45073
+ });
45074
+ const layout = input.layout;
45075
+ if (layout.alignment !== undefined)
45076
+ requireEnum2(layout.alignment, "layout.alignment", VALID_LEVEL_ALIGNMENTS2, "lists.setLevelLayout");
45077
+ if (layout.followCharacter !== undefined)
45078
+ requireEnum2(layout.followCharacter, "layout.followCharacter", VALID_TRAILING_CHARACTERS2, "lists.setLevelLayout");
45079
+ optionalNumber2(layout.alignedAt, "layout.alignedAt", "lists.setLevelLayout");
45080
+ optionalNumber2(layout.textIndentAt, "layout.textIndentAt", "lists.setLevelLayout");
45081
+ if (layout.tabStopAt !== undefined && layout.tabStopAt !== null)
45082
+ optionalNumber2(layout.tabStopAt, "layout.tabStopAt", "lists.setLevelLayout");
43793
45083
  return adapter.setLevelLayout(input, normalizeMutationOptions2(options));
43794
45084
  }
43795
45085
  function isStructuralReplaceInput2(input) {
@@ -43939,6 +45229,9 @@ function validateCreateSectionBreakInput2(input) {
43939
45229
  }
43940
45230
  }
43941
45231
  function executeCreateParagraph2(adapter, input, options) {
45232
+ if (!isRecord4(input))
45233
+ throw new DocumentApiValidationError2("INVALID_INPUT", "create.paragraph input must be a non-null object.");
45234
+ validateStoryLocator2(input.in, "in");
43942
45235
  const normalized = {
43943
45236
  at: normalizeCreateLocation2(input.at, (loc) => validateTargetOnlyCreateLocation2(loc, "create.paragraph")),
43944
45237
  text: input.text ?? ""
@@ -43946,6 +45239,14 @@ function executeCreateParagraph2(adapter, input, options) {
43946
45239
  return adapter.paragraph(normalized, normalizeMutationOptions2(options));
43947
45240
  }
43948
45241
  function executeCreateHeading2(adapter, input, options) {
45242
+ if (!isRecord4(input))
45243
+ throw new DocumentApiValidationError2("INVALID_INPUT", "create.heading input must be a non-null object.");
45244
+ validateStoryLocator2(input.in, "in");
45245
+ if (!isInteger2(input.level) || !VALID_HEADING_LEVELS2.has(input.level))
45246
+ throw new DocumentApiValidationError2("INVALID_INPUT", `create.heading level must be an integer 1–6, got ${JSON.stringify(input.level)}.`, {
45247
+ field: "level",
45248
+ value: input.level
45249
+ });
43949
45250
  const at = normalizeCreateLocation2(input.at, (loc) => validateTargetOnlyCreateLocation2(loc, "create.heading"));
43950
45251
  const normalized = {
43951
45252
  level: input.level,
@@ -43955,6 +45256,18 @@ function executeCreateHeading2(adapter, input, options) {
43955
45256
  return adapter.heading(normalized, normalizeMutationOptions2(options));
43956
45257
  }
43957
45258
  function executeCreateTable2(adapter, input, options) {
45259
+ if (!isRecord4(input))
45260
+ throw new DocumentApiValidationError2("INVALID_INPUT", "create.table input must be a non-null object.");
45261
+ if (!isInteger2(input.rows) || input.rows < 1)
45262
+ throw new DocumentApiValidationError2("INVALID_INPUT", `create.table rows must be a positive integer, got ${JSON.stringify(input.rows)}.`, {
45263
+ field: "rows",
45264
+ value: input.rows
45265
+ });
45266
+ if (!isInteger2(input.columns) || input.columns < 1)
45267
+ throw new DocumentApiValidationError2("INVALID_INPUT", `create.table columns must be a positive integer, got ${JSON.stringify(input.columns)}.`, {
45268
+ field: "columns",
45269
+ value: input.columns
45270
+ });
43958
45271
  const at = normalizeCreateLocation2(input.at, (loc) => validateTargetOrNodeIdCreateLocation2(loc, "create.table"));
43959
45272
  const normalized = {
43960
45273
  rows: input.rows,
@@ -43995,7 +45308,7 @@ function validateBlocksListInput2(input) {
43995
45308
  if (!Array.isArray(input.nodeTypes) || input.nodeTypes.length === 0)
43996
45309
  throw new DocumentApiValidationError2("INVALID_INPUT", "blocks.list nodeTypes must be a non-empty array.", { fields: ["nodeTypes"] });
43997
45310
  for (const nt of input.nodeTypes)
43998
- if (!VALID_BLOCK_NODE_TYPES2.has(nt))
45311
+ if (!VALID_BLOCK_NODE_TYPES3.has(nt))
43999
45312
  throw new DocumentApiValidationError2("INVALID_INPUT", `blocks.list nodeTypes contains unknown type "${nt}".`, {
44000
45313
  fields: ["nodeTypes"],
44001
45314
  nodeType: nt
@@ -44056,6 +45369,15 @@ function executeTrackChangesList2(adapter, input) {
44056
45369
  return adapter.list(input);
44057
45370
  }
44058
45371
  function executeTrackChangesGet2(adapter, input) {
45372
+ const raw = input;
45373
+ if (typeof raw !== "object" || raw == null)
45374
+ throw new DocumentApiValidationError2("INVALID_INPUT", "trackChanges.get input must be a non-null object.", { value: raw });
45375
+ const { id } = raw;
45376
+ if (typeof id !== "string" || id.length === 0)
45377
+ throw new DocumentApiValidationError2("INVALID_INPUT", "trackChanges.get id must be a non-empty string.", {
45378
+ field: "id",
45379
+ value: id
45380
+ });
44059
45381
  return adapter.get(input);
44060
45382
  }
44061
45383
  function executeTrackChangesDecide2(adapter, rawInput, options) {
@@ -45058,12 +46380,12 @@ function executeSectionsClearPageBorders2(adapter, input, options) {
45058
46380
  assertSectionTarget2(input, "sections.clearPageBorders");
45059
46381
  return adapter.clearPageBorders(input, normalizeMutationOptions2(options));
45060
46382
  }
45061
- function requireString2(value, field) {
46383
+ function requireString$1(value, field) {
45062
46384
  if (typeof value !== "string" || value.length === 0)
45063
46385
  throw new DocumentApiValidationError2("INVALID_INPUT", `${field} must be a non-empty string.`, { field });
45064
46386
  }
45065
46387
  function requireImageId2(input) {
45066
- requireString2(input?.imageId, "imageId");
46388
+ requireString$1(input?.imageId, "imageId");
45067
46389
  }
45068
46390
  function requireFinitePositiveNumber2(value, field) {
45069
46391
  if (typeof value !== "number" || !Number.isFinite(value) || value <= 0)
@@ -45224,7 +46546,7 @@ function executeImagesResetCrop2(adapter, input, options) {
45224
46546
  }
45225
46547
  function executeImagesReplaceSource2(adapter, input, options) {
45226
46548
  requireImageId2(input);
45227
- requireString2(input.src, "src");
46549
+ requireString$1(input.src, "src");
45228
46550
  return adapter.replaceSource(input, options);
45229
46551
  }
45230
46552
  function executeImagesSetAltText2(adapter, input, options) {
@@ -45255,12 +46577,12 @@ function executeImagesSetHyperlink2(adapter, input, options) {
45255
46577
  }
45256
46578
  function executeImagesInsertCaption2(adapter, input, options) {
45257
46579
  requireImageId2(input);
45258
- requireString2(input.text, "text");
46580
+ requireString$1(input.text, "text");
45259
46581
  return adapter.insertCaption(input, options);
45260
46582
  }
45261
46583
  function executeImagesUpdateCaption2(adapter, input, options) {
45262
46584
  requireImageId2(input);
45263
- requireString2(input.text, "text");
46585
+ requireString$1(input.text, "text");
45264
46586
  return adapter.updateCaption(input, options);
45265
46587
  }
45266
46588
  function executeImagesRemoveCaption2(adapter, input, options) {
@@ -45268,7 +46590,8 @@ function executeImagesRemoveCaption2(adapter, input, options) {
45268
46590
  return adapter.removeCaption(input, options);
45269
46591
  }
45270
46592
  function executeCreateImage2(adapter, input, options) {
45271
- requireString2(input?.src, "src");
46593
+ requireString$1(input?.src, "src");
46594
+ validateStoryLocator2(input?.in, "in");
45272
46595
  return adapter.image(input, options);
45273
46596
  }
45274
46597
  function validateTocTarget2(target, operationName) {
@@ -45295,32 +46618,47 @@ function validateInsertionTarget2(target, operationName) {
45295
46618
  if (!anchor || anchor.nodeType !== "paragraph" || typeof anchor.nodeId !== "string")
45296
46619
  throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} target.anchor must have nodeType 'paragraph' and a string nodeId.`, { target });
45297
46620
  }
46621
+ function validateTocInput2(input, operationName) {
46622
+ if (!isRecord4(input))
46623
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} input must be a non-null object.`);
46624
+ }
45298
46625
  function executeTocList2(adapter, query2) {
45299
46626
  return adapter.list(query2);
45300
46627
  }
45301
46628
  function executeTocGet2(adapter, input) {
46629
+ validateTocInput2(input, "toc.get");
45302
46630
  validateTocTarget2(input.target, "toc.get");
45303
46631
  return adapter.get(input);
45304
46632
  }
45305
46633
  function executeTocConfigure2(adapter, input, options) {
46634
+ validateTocInput2(input, "toc.configure");
45306
46635
  validateTocTarget2(input.target, "toc.configure");
45307
46636
  return adapter.configure(input, normalizeMutationOptions2(options));
45308
46637
  }
45309
46638
  function executeTocUpdate2(adapter, input, options) {
46639
+ validateTocInput2(input, "toc.update");
45310
46640
  validateTocTarget2(input.target, "toc.update");
46641
+ if (input.mode !== undefined && !VALID_TOC_UPDATE_MODES2.has(input.mode))
46642
+ throw new DocumentApiValidationError2("INVALID_INPUT", `toc.update mode must be "all" or "pageNumbers", got "${String(input.mode)}".`, {
46643
+ field: "mode",
46644
+ value: input.mode
46645
+ });
45311
46646
  return adapter.update(input, normalizeMutationOptions2(options));
45312
46647
  }
45313
46648
  function executeTocRemove2(adapter, input, options) {
46649
+ validateTocInput2(input, "toc.remove");
45314
46650
  validateTocTarget2(input.target, "toc.remove");
45315
46651
  return adapter.remove(input, normalizeMutationOptions2(options));
45316
46652
  }
45317
46653
  function executeTocMarkEntry2(adapter, input, options) {
46654
+ validateTocInput2(input, "toc.markEntry");
45318
46655
  validateInsertionTarget2(input.target, "toc.markEntry");
45319
46656
  if (!input.text || typeof input.text !== "string")
45320
46657
  throw new DocumentApiValidationError2("INVALID_INPUT", "toc.markEntry requires a non-empty text string.");
45321
46658
  return adapter.markEntry(input, normalizeMutationOptions2(options));
45322
46659
  }
45323
46660
  function executeTocUnmarkEntry2(adapter, input, options) {
46661
+ validateTocInput2(input, "toc.unmarkEntry");
45324
46662
  validateTocEntryTarget2(input.target, "toc.unmarkEntry");
45325
46663
  return adapter.unmarkEntry(input, normalizeMutationOptions2(options));
45326
46664
  }
@@ -45328,11 +46666,46 @@ function executeTocListEntries2(adapter, query2) {
45328
46666
  return adapter.listEntries(query2);
45329
46667
  }
45330
46668
  function executeTocGetEntry2(adapter, input) {
46669
+ validateTocInput2(input, "toc.getEntry");
45331
46670
  validateTocEntryTarget2(input.target, "toc.getEntry");
45332
46671
  return adapter.getEntry(input);
45333
46672
  }
46673
+ function validateTocEditEntryPatch2(patch, operationName) {
46674
+ if (!isRecord4(patch))
46675
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} patch must be a non-null object.`, {
46676
+ field: "patch",
46677
+ value: patch
46678
+ });
46679
+ for (const key of Object.keys(patch))
46680
+ if (!EDIT_ENTRY_PATCH_ALLOWED_KEYS2.has(key))
46681
+ throw new DocumentApiValidationError2("INVALID_INPUT", `Unknown field "${key}" on ${operationName} patch. Allowed fields: ${[...EDIT_ENTRY_PATCH_ALLOWED_KEYS2].join(", ")}.`, { field: `patch.${key}` });
46682
+ if (patch.text !== undefined && typeof patch.text !== "string")
46683
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} patch.text must be a string.`, {
46684
+ field: "patch.text",
46685
+ value: patch.text
46686
+ });
46687
+ if (patch.level !== undefined) {
46688
+ if (typeof patch.level !== "number" || !Number.isInteger(patch.level) || patch.level < 1)
46689
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} patch.level must be a positive integer.`, {
46690
+ field: "patch.level",
46691
+ value: patch.level
46692
+ });
46693
+ }
46694
+ if (patch.tableIdentifier !== undefined && typeof patch.tableIdentifier !== "string")
46695
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} patch.tableIdentifier must be a string.`, {
46696
+ field: "patch.tableIdentifier",
46697
+ value: patch.tableIdentifier
46698
+ });
46699
+ if (patch.omitPageNumber !== undefined && typeof patch.omitPageNumber !== "boolean")
46700
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} patch.omitPageNumber must be a boolean.`, {
46701
+ field: "patch.omitPageNumber",
46702
+ value: patch.omitPageNumber
46703
+ });
46704
+ }
45334
46705
  function executeTocEditEntry2(adapter, input, options) {
46706
+ validateTocInput2(input, "toc.editEntry");
45335
46707
  validateTocEntryTarget2(input.target, "toc.editEntry");
46708
+ validateTocEditEntryPatch2(input.patch, "toc.editEntry");
45336
46709
  return adapter.editEntry(input, normalizeMutationOptions2(options));
45337
46710
  }
45338
46711
  function isHyperlinkTarget2(value) {
@@ -45420,169 +46793,477 @@ function executeHyperlinksRemove2(adapter, input, options) {
45420
46793
  throw new DocumentApiValidationError2("INVALID_INPUT", `hyperlinks.remove mode must be 'unwrap' or 'deleteText', got '${String(input.mode)}'.`);
45421
46794
  return adapter.remove(input, normalizeMutationOptions2(options));
45422
46795
  }
46796
+ function validateCCInput2(input, operationName) {
46797
+ if (!isRecord4(input))
46798
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} input must be a non-null object.`);
46799
+ }
46800
+ function validateCCTarget2(target, operationName) {
46801
+ if (!isRecord4(target))
46802
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} requires a valid target with { kind, nodeType: 'sdt', nodeId }.`, {
46803
+ field: "target",
46804
+ value: target
46805
+ });
46806
+ if (!VALID_NODE_KINDS2.has(target.kind))
46807
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} target.kind must be 'block' or 'inline', got "${String(target.kind)}".`, {
46808
+ field: "target.kind",
46809
+ value: target.kind
46810
+ });
46811
+ if (target.nodeType !== "sdt")
46812
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} target.nodeType must be 'sdt', got "${String(target.nodeType)}".`, {
46813
+ field: "target.nodeType",
46814
+ value: target.nodeType
46815
+ });
46816
+ if (typeof target.nodeId !== "string" || target.nodeId === "")
46817
+ throw new DocumentApiValidationError2("INVALID_TARGET", `${operationName} target.nodeId must be a non-empty string.`, {
46818
+ field: "target.nodeId",
46819
+ value: target.nodeId
46820
+ });
46821
+ }
46822
+ function requireString3(value, field, operationName) {
46823
+ if (typeof value !== "string" || value.length === 0)
46824
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${field} must be a non-empty string.`, {
46825
+ field,
46826
+ value
46827
+ });
46828
+ }
46829
+ function requireBoolean2(value, field, operationName) {
46830
+ if (typeof value !== "boolean")
46831
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${field} must be a boolean, got ${typeof value}.`, {
46832
+ field,
46833
+ value
46834
+ });
46835
+ }
46836
+ function requireIndex2(value, field, operationName) {
46837
+ if (!isInteger2(value) || value < 0)
46838
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${field} must be a non-negative integer.`, {
46839
+ field,
46840
+ value
46841
+ });
46842
+ }
46843
+ function requireNodeKind2(value, field, operationName) {
46844
+ if (!VALID_NODE_KINDS2.has(value))
46845
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${field} must be 'block' or 'inline', got "${String(value)}".`, {
46846
+ field,
46847
+ value
46848
+ });
46849
+ }
46850
+ function validateContentFormat2(value, field, operationName) {
46851
+ if (value !== undefined && !VALID_CONTENT_FORMATS2.has(value))
46852
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${field} must be 'text' or 'html', got "${String(value)}".`, {
46853
+ field,
46854
+ value
46855
+ });
46856
+ }
46857
+ function validateContentPayload2(input, operationName) {
46858
+ if (typeof input.content !== "string")
46859
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} content must be a string.`, {
46860
+ field: "content",
46861
+ value: input.content
46862
+ });
46863
+ validateContentFormat2(input.format, "format", operationName);
46864
+ }
46865
+ function validateSymbol2(value, field, operationName) {
46866
+ if (!isRecord4(value) || typeof value.font !== "string" || typeof value.char !== "string")
46867
+ throw new DocumentApiValidationError2("INVALID_INPUT", `${operationName} ${field} must be { font: string, char: string }.`, {
46868
+ field,
46869
+ value
46870
+ });
46871
+ }
45423
46872
  function executeContentControlsList2(adapter, query2) {
46873
+ if (query2 !== undefined && !isRecord4(query2))
46874
+ throw new DocumentApiValidationError2("INVALID_INPUT", "contentControls.list query must be an object if provided.");
45424
46875
  return adapter.list(query2);
45425
46876
  }
45426
46877
  function executeContentControlsGet2(adapter, input) {
46878
+ validateCCInput2(input, "contentControls.get");
46879
+ validateCCTarget2(input.target, "contentControls.get");
45427
46880
  return adapter.get(input);
45428
46881
  }
45429
46882
  function executeContentControlsListInRange2(adapter, input) {
46883
+ validateCCInput2(input, "contentControls.listInRange");
46884
+ requireString3(input.startBlockId, "startBlockId", "contentControls.listInRange");
46885
+ requireString3(input.endBlockId, "endBlockId", "contentControls.listInRange");
45430
46886
  return adapter.listInRange(input);
45431
46887
  }
45432
46888
  function executeContentControlsSelectByTag2(adapter, input) {
46889
+ validateCCInput2(input, "contentControls.selectByTag");
46890
+ requireString3(input.tag, "tag", "contentControls.selectByTag");
45433
46891
  return adapter.selectByTag(input);
45434
46892
  }
45435
46893
  function executeContentControlsSelectByTitle2(adapter, input) {
46894
+ validateCCInput2(input, "contentControls.selectByTitle");
46895
+ requireString3(input.title, "title", "contentControls.selectByTitle");
45436
46896
  return adapter.selectByTitle(input);
45437
46897
  }
45438
46898
  function executeContentControlsListChildren2(adapter, input) {
46899
+ validateCCInput2(input, "contentControls.listChildren");
46900
+ validateCCTarget2(input.target, "contentControls.listChildren");
45439
46901
  return adapter.listChildren(input);
45440
46902
  }
45441
46903
  function executeContentControlsGetParent2(adapter, input) {
46904
+ validateCCInput2(input, "contentControls.getParent");
46905
+ validateCCTarget2(input.target, "contentControls.getParent");
45442
46906
  return adapter.getParent(input);
45443
46907
  }
45444
46908
  function executeContentControlsWrap2(adapter, input, options) {
46909
+ validateCCInput2(input, "contentControls.wrap");
46910
+ requireNodeKind2(input.kind, "kind", "contentControls.wrap");
46911
+ validateCCTarget2(input.target, "contentControls.wrap");
45445
46912
  return adapter.wrap(input, options);
45446
46913
  }
45447
46914
  function executeContentControlsUnwrap2(adapter, input, options) {
46915
+ validateCCInput2(input, "contentControls.unwrap");
46916
+ validateCCTarget2(input.target, "contentControls.unwrap");
45448
46917
  return adapter.unwrap(input, options);
45449
46918
  }
45450
46919
  function executeContentControlsDelete2(adapter, input, options) {
46920
+ validateCCInput2(input, "contentControls.delete");
46921
+ validateCCTarget2(input.target, "contentControls.delete");
45451
46922
  return adapter.delete(input, options);
45452
46923
  }
45453
46924
  function executeContentControlsCopy2(adapter, input, options) {
46925
+ validateCCInput2(input, "contentControls.copy");
46926
+ validateCCTarget2(input.target, "contentControls.copy");
46927
+ validateCCTarget2(input.destination, "contentControls.copy (destination)");
45454
46928
  return adapter.copy(input, options);
45455
46929
  }
45456
46930
  function executeContentControlsMove2(adapter, input, options) {
46931
+ validateCCInput2(input, "contentControls.move");
46932
+ validateCCTarget2(input.target, "contentControls.move");
46933
+ validateCCTarget2(input.destination, "contentControls.move (destination)");
45457
46934
  return adapter.move(input, options);
45458
46935
  }
45459
46936
  function executeContentControlsPatch2(adapter, input, options) {
46937
+ validateCCInput2(input, "contentControls.patch");
46938
+ validateCCTarget2(input.target, "contentControls.patch");
46939
+ if (input.appearance !== undefined && input.appearance !== null && !VALID_CC_APPEARANCES2.has(input.appearance))
46940
+ throw new DocumentApiValidationError2("INVALID_INPUT", `contentControls.patch appearance must be one of: ${[...VALID_CC_APPEARANCES2].join(", ")}.`, {
46941
+ field: "appearance",
46942
+ value: input.appearance
46943
+ });
46944
+ if (input.showingPlaceholder !== undefined && typeof input.showingPlaceholder !== "boolean")
46945
+ throw new DocumentApiValidationError2("INVALID_INPUT", `contentControls.patch showingPlaceholder must be a boolean, got ${typeof input.showingPlaceholder}.`, {
46946
+ field: "showingPlaceholder",
46947
+ value: input.showingPlaceholder
46948
+ });
46949
+ if (input.temporary !== undefined && typeof input.temporary !== "boolean")
46950
+ throw new DocumentApiValidationError2("INVALID_INPUT", `contentControls.patch temporary must be a boolean, got ${typeof input.temporary}.`, {
46951
+ field: "temporary",
46952
+ value: input.temporary
46953
+ });
46954
+ if (input.tabIndex !== undefined && input.tabIndex !== null && !isInteger2(input.tabIndex))
46955
+ throw new DocumentApiValidationError2("INVALID_INPUT", `contentControls.patch tabIndex must be an integer or null, got ${typeof input.tabIndex}.`, {
46956
+ field: "tabIndex",
46957
+ value: input.tabIndex
46958
+ });
45460
46959
  return adapter.patch(input, options);
45461
46960
  }
45462
46961
  function executeContentControlsSetLockMode2(adapter, input, options) {
46962
+ validateCCInput2(input, "contentControls.setLockMode");
46963
+ validateCCTarget2(input.target, "contentControls.setLockMode");
46964
+ if (!VALID_LOCK_MODES$1.has(input.lockMode))
46965
+ throw new DocumentApiValidationError2("INVALID_INPUT", `contentControls.setLockMode lockMode must be one of: ${[...VALID_LOCK_MODES$1].join(", ")}.`, {
46966
+ field: "lockMode",
46967
+ value: input.lockMode
46968
+ });
45463
46969
  return adapter.setLockMode(input, options);
45464
46970
  }
45465
46971
  function executeContentControlsSetType2(adapter, input, options) {
46972
+ validateCCInput2(input, "contentControls.setType");
46973
+ validateCCTarget2(input.target, "contentControls.setType");
46974
+ if (!VALID_CC_TYPES2.has(input.controlType))
46975
+ throw new DocumentApiValidationError2("INVALID_INPUT", `contentControls.setType controlType must be one of: ${[...VALID_CC_TYPES2].join(", ")}.`, {
46976
+ field: "controlType",
46977
+ value: input.controlType
46978
+ });
45466
46979
  return adapter.setType(input, options);
45467
46980
  }
45468
46981
  function executeContentControlsGetContent2(adapter, input) {
46982
+ validateCCInput2(input, "contentControls.getContent");
46983
+ validateCCTarget2(input.target, "contentControls.getContent");
45469
46984
  return adapter.getContent(input);
45470
46985
  }
45471
46986
  function executeContentControlsReplaceContent2(adapter, input, options) {
46987
+ validateCCInput2(input, "contentControls.replaceContent");
46988
+ validateCCTarget2(input.target, "contentControls.replaceContent");
46989
+ validateContentPayload2(input, "contentControls.replaceContent");
45472
46990
  return adapter.replaceContent(input, options);
45473
46991
  }
45474
46992
  function executeContentControlsClearContent2(adapter, input, options) {
46993
+ validateCCInput2(input, "contentControls.clearContent");
46994
+ validateCCTarget2(input.target, "contentControls.clearContent");
45475
46995
  return adapter.clearContent(input, options);
45476
46996
  }
45477
46997
  function executeContentControlsAppendContent2(adapter, input, options) {
46998
+ validateCCInput2(input, "contentControls.appendContent");
46999
+ validateCCTarget2(input.target, "contentControls.appendContent");
47000
+ validateContentPayload2(input, "contentControls.appendContent");
45478
47001
  return adapter.appendContent(input, options);
45479
47002
  }
45480
47003
  function executeContentControlsPrependContent2(adapter, input, options) {
47004
+ validateCCInput2(input, "contentControls.prependContent");
47005
+ validateCCTarget2(input.target, "contentControls.prependContent");
47006
+ validateContentPayload2(input, "contentControls.prependContent");
45481
47007
  return adapter.prependContent(input, options);
45482
47008
  }
45483
47009
  function executeContentControlsInsertBefore2(adapter, input, options) {
47010
+ validateCCInput2(input, "contentControls.insertBefore");
47011
+ validateCCTarget2(input.target, "contentControls.insertBefore");
47012
+ validateContentPayload2(input, "contentControls.insertBefore");
45484
47013
  return adapter.insertBefore(input, options);
45485
47014
  }
45486
47015
  function executeContentControlsInsertAfter2(adapter, input, options) {
47016
+ validateCCInput2(input, "contentControls.insertAfter");
47017
+ validateCCTarget2(input.target, "contentControls.insertAfter");
47018
+ validateContentPayload2(input, "contentControls.insertAfter");
45487
47019
  return adapter.insertAfter(input, options);
45488
47020
  }
45489
47021
  function executeContentControlsGetBinding2(adapter, input) {
47022
+ validateCCInput2(input, "contentControls.getBinding");
47023
+ validateCCTarget2(input.target, "contentControls.getBinding");
45490
47024
  return adapter.getBinding(input);
45491
47025
  }
45492
47026
  function executeContentControlsSetBinding2(adapter, input, options) {
47027
+ validateCCInput2(input, "contentControls.setBinding");
47028
+ validateCCTarget2(input.target, "contentControls.setBinding");
47029
+ requireString3(input.storeItemId, "storeItemId", "contentControls.setBinding");
47030
+ requireString3(input.xpath, "xpath", "contentControls.setBinding");
45493
47031
  return adapter.setBinding(input, options);
45494
47032
  }
45495
47033
  function executeContentControlsClearBinding2(adapter, input, options) {
47034
+ validateCCInput2(input, "contentControls.clearBinding");
47035
+ validateCCTarget2(input.target, "contentControls.clearBinding");
45496
47036
  return adapter.clearBinding(input, options);
45497
47037
  }
45498
47038
  function executeContentControlsGetRawProperties2(adapter, input) {
47039
+ validateCCInput2(input, "contentControls.getRawProperties");
47040
+ validateCCTarget2(input.target, "contentControls.getRawProperties");
45499
47041
  return adapter.getRawProperties(input);
45500
47042
  }
45501
47043
  function executeContentControlsPatchRawProperties2(adapter, input, options) {
47044
+ validateCCInput2(input, "contentControls.patchRawProperties");
47045
+ validateCCTarget2(input.target, "contentControls.patchRawProperties");
47046
+ if (!Array.isArray(input.patches))
47047
+ throw new DocumentApiValidationError2("INVALID_INPUT", "contentControls.patchRawProperties patches must be an array.", {
47048
+ field: "patches",
47049
+ value: input.patches
47050
+ });
47051
+ for (let i$1 = 0;i$1 < input.patches.length; i$1++) {
47052
+ const patch = input.patches[i$1];
47053
+ if (!isRecord4(patch))
47054
+ throw new DocumentApiValidationError2("INVALID_INPUT", `contentControls.patchRawProperties patches[${i$1}] must be an object.`, {
47055
+ field: `patches[${i$1}]`,
47056
+ value: patch
47057
+ });
47058
+ if (!VALID_RAW_PATCH_OPS2.has(patch.op))
47059
+ throw new DocumentApiValidationError2("INVALID_INPUT", `contentControls.patchRawProperties patches[${i$1}].op must be one of: ${[...VALID_RAW_PATCH_OPS2].join(", ")}.`, {
47060
+ field: `patches[${i$1}].op`,
47061
+ value: patch.op
47062
+ });
47063
+ if (typeof patch.name !== "string" || patch.name === "")
47064
+ throw new DocumentApiValidationError2("INVALID_INPUT", `contentControls.patchRawProperties patches[${i$1}].name must be a non-empty string.`, {
47065
+ field: `patches[${i$1}].name`,
47066
+ value: patch.name
47067
+ });
47068
+ }
45502
47069
  return adapter.patchRawProperties(input, options);
45503
47070
  }
45504
47071
  function executeContentControlsValidateWordCompatibility2(adapter, input) {
47072
+ validateCCInput2(input, "contentControls.validateWordCompatibility");
47073
+ validateCCTarget2(input.target, "contentControls.validateWordCompatibility");
45505
47074
  return adapter.validateWordCompatibility(input);
45506
47075
  }
45507
47076
  function executeContentControlsNormalizeWordCompatibility2(adapter, input, options) {
47077
+ validateCCInput2(input, "contentControls.normalizeWordCompatibility");
47078
+ validateCCTarget2(input.target, "contentControls.normalizeWordCompatibility");
45508
47079
  return adapter.normalizeWordCompatibility(input, options);
45509
47080
  }
45510
47081
  function executeContentControlsNormalizeTagPayload2(adapter, input, options) {
47082
+ validateCCInput2(input, "contentControls.normalizeTagPayload");
47083
+ validateCCTarget2(input.target, "contentControls.normalizeTagPayload");
45511
47084
  return adapter.normalizeTagPayload(input, options);
45512
47085
  }
45513
47086
  function executeContentControlsTextSetMultiline2(adapter, input, options) {
47087
+ validateCCInput2(input, "contentControls.text.setMultiline");
47088
+ validateCCTarget2(input.target, "contentControls.text.setMultiline");
47089
+ requireBoolean2(input.multiline, "multiline", "contentControls.text.setMultiline");
45514
47090
  return adapter.text.setMultiline(input, options);
45515
47091
  }
45516
47092
  function executeContentControlsTextSetValue2(adapter, input, options) {
47093
+ validateCCInput2(input, "contentControls.text.setValue");
47094
+ validateCCTarget2(input.target, "contentControls.text.setValue");
47095
+ if (typeof input.value !== "string")
47096
+ throw new DocumentApiValidationError2("INVALID_INPUT", `contentControls.text.setValue value must be a string.`, {
47097
+ field: "value",
47098
+ value: input.value
47099
+ });
45517
47100
  return adapter.text.setValue(input, options);
45518
47101
  }
45519
47102
  function executeContentControlsTextClearValue2(adapter, input, options) {
47103
+ validateCCInput2(input, "contentControls.text.clearValue");
47104
+ validateCCTarget2(input.target, "contentControls.text.clearValue");
45520
47105
  return adapter.text.clearValue(input, options);
45521
47106
  }
45522
47107
  function executeContentControlsDateSetValue2(adapter, input, options) {
47108
+ validateCCInput2(input, "contentControls.date.setValue");
47109
+ validateCCTarget2(input.target, "contentControls.date.setValue");
47110
+ if (typeof input.value !== "string")
47111
+ throw new DocumentApiValidationError2("INVALID_INPUT", `contentControls.date.setValue value must be a string.`, {
47112
+ field: "value",
47113
+ value: input.value
47114
+ });
45523
47115
  return adapter.date.setValue(input, options);
45524
47116
  }
45525
47117
  function executeContentControlsDateClearValue2(adapter, input, options) {
47118
+ validateCCInput2(input, "contentControls.date.clearValue");
47119
+ validateCCTarget2(input.target, "contentControls.date.clearValue");
45526
47120
  return adapter.date.clearValue(input, options);
45527
47121
  }
45528
47122
  function executeContentControlsDateSetDisplayFormat2(adapter, input, options) {
47123
+ validateCCInput2(input, "contentControls.date.setDisplayFormat");
47124
+ validateCCTarget2(input.target, "contentControls.date.setDisplayFormat");
47125
+ requireString3(input.format, "format", "contentControls.date.setDisplayFormat");
45529
47126
  return adapter.date.setDisplayFormat(input, options);
45530
47127
  }
45531
47128
  function executeContentControlsDateSetDisplayLocale2(adapter, input, options) {
47129
+ validateCCInput2(input, "contentControls.date.setDisplayLocale");
47130
+ validateCCTarget2(input.target, "contentControls.date.setDisplayLocale");
47131
+ requireString3(input.locale, "locale", "contentControls.date.setDisplayLocale");
45532
47132
  return adapter.date.setDisplayLocale(input, options);
45533
47133
  }
45534
47134
  function executeContentControlsDateSetStorageFormat2(adapter, input, options) {
47135
+ validateCCInput2(input, "contentControls.date.setStorageFormat");
47136
+ validateCCTarget2(input.target, "contentControls.date.setStorageFormat");
47137
+ requireString3(input.format, "format", "contentControls.date.setStorageFormat");
45535
47138
  return adapter.date.setStorageFormat(input, options);
45536
47139
  }
45537
47140
  function executeContentControlsDateSetCalendar2(adapter, input, options) {
47141
+ validateCCInput2(input, "contentControls.date.setCalendar");
47142
+ validateCCTarget2(input.target, "contentControls.date.setCalendar");
47143
+ requireString3(input.calendar, "calendar", "contentControls.date.setCalendar");
45538
47144
  return adapter.date.setCalendar(input, options);
45539
47145
  }
45540
47146
  function executeContentControlsCheckboxGetState2(adapter, input) {
47147
+ validateCCInput2(input, "contentControls.checkbox.getState");
47148
+ validateCCTarget2(input.target, "contentControls.checkbox.getState");
45541
47149
  return adapter.checkbox.getState(input);
45542
47150
  }
45543
47151
  function executeContentControlsCheckboxSetState2(adapter, input, options) {
47152
+ validateCCInput2(input, "contentControls.checkbox.setState");
47153
+ validateCCTarget2(input.target, "contentControls.checkbox.setState");
47154
+ requireBoolean2(input.checked, "checked", "contentControls.checkbox.setState");
45544
47155
  return adapter.checkbox.setState(input, options);
45545
47156
  }
45546
47157
  function executeContentControlsCheckboxToggle2(adapter, input, options) {
47158
+ validateCCInput2(input, "contentControls.checkbox.toggle");
47159
+ validateCCTarget2(input.target, "contentControls.checkbox.toggle");
45547
47160
  return adapter.checkbox.toggle(input, options);
45548
47161
  }
45549
47162
  function executeContentControlsCheckboxSetSymbolPair2(adapter, input, options) {
47163
+ validateCCInput2(input, "contentControls.checkbox.setSymbolPair");
47164
+ validateCCTarget2(input.target, "contentControls.checkbox.setSymbolPair");
47165
+ validateSymbol2(input.checkedSymbol, "checkedSymbol", "contentControls.checkbox.setSymbolPair");
47166
+ validateSymbol2(input.uncheckedSymbol, "uncheckedSymbol", "contentControls.checkbox.setSymbolPair");
45550
47167
  return adapter.checkbox.setSymbolPair(input, options);
45551
47168
  }
45552
47169
  function executeContentControlsChoiceListGetItems2(adapter, input) {
47170
+ validateCCInput2(input, "contentControls.choiceList.getItems");
47171
+ validateCCTarget2(input.target, "contentControls.choiceList.getItems");
45553
47172
  return adapter.choiceList.getItems(input);
45554
47173
  }
45555
47174
  function executeContentControlsChoiceListSetItems2(adapter, input, options) {
47175
+ validateCCInput2(input, "contentControls.choiceList.setItems");
47176
+ validateCCTarget2(input.target, "contentControls.choiceList.setItems");
47177
+ if (!Array.isArray(input.items))
47178
+ throw new DocumentApiValidationError2("INVALID_INPUT", "contentControls.choiceList.setItems items must be an array.", {
47179
+ field: "items",
47180
+ value: input.items
47181
+ });
47182
+ for (let i$1 = 0;i$1 < input.items.length; i$1++) {
47183
+ const item = input.items[i$1];
47184
+ if (!isRecord4(item) || typeof item.displayText !== "string" || typeof item.value !== "string")
47185
+ throw new DocumentApiValidationError2("INVALID_INPUT", `contentControls.choiceList.setItems items[${i$1}] must be { displayText: string, value: string }.`, {
47186
+ field: `items[${i$1}]`,
47187
+ value: item
47188
+ });
47189
+ }
45556
47190
  return adapter.choiceList.setItems(input, options);
45557
47191
  }
45558
47192
  function executeContentControlsChoiceListSetSelected2(adapter, input, options) {
47193
+ validateCCInput2(input, "contentControls.choiceList.setSelected");
47194
+ validateCCTarget2(input.target, "contentControls.choiceList.setSelected");
47195
+ if (typeof input.value !== "string")
47196
+ throw new DocumentApiValidationError2("INVALID_INPUT", "contentControls.choiceList.setSelected value must be a string.", {
47197
+ field: "value",
47198
+ value: input.value
47199
+ });
45559
47200
  return adapter.choiceList.setSelected(input, options);
45560
47201
  }
45561
47202
  function executeContentControlsRepeatingSectionListItems2(adapter, input) {
47203
+ validateCCInput2(input, "contentControls.repeatingSection.listItems");
47204
+ validateCCTarget2(input.target, "contentControls.repeatingSection.listItems");
45562
47205
  return adapter.repeatingSection.listItems(input);
45563
47206
  }
45564
47207
  function executeContentControlsRepeatingSectionInsertItemBefore2(adapter, input, options) {
47208
+ validateCCInput2(input, "contentControls.repeatingSection.insertItemBefore");
47209
+ validateCCTarget2(input.target, "contentControls.repeatingSection.insertItemBefore");
47210
+ requireIndex2(input.index, "index", "contentControls.repeatingSection.insertItemBefore");
45565
47211
  return adapter.repeatingSection.insertItemBefore(input, options);
45566
47212
  }
45567
47213
  function executeContentControlsRepeatingSectionInsertItemAfter2(adapter, input, options) {
47214
+ validateCCInput2(input, "contentControls.repeatingSection.insertItemAfter");
47215
+ validateCCTarget2(input.target, "contentControls.repeatingSection.insertItemAfter");
47216
+ requireIndex2(input.index, "index", "contentControls.repeatingSection.insertItemAfter");
45568
47217
  return adapter.repeatingSection.insertItemAfter(input, options);
45569
47218
  }
45570
47219
  function executeContentControlsRepeatingSectionCloneItem2(adapter, input, options) {
47220
+ validateCCInput2(input, "contentControls.repeatingSection.cloneItem");
47221
+ validateCCTarget2(input.target, "contentControls.repeatingSection.cloneItem");
47222
+ requireIndex2(input.index, "index", "contentControls.repeatingSection.cloneItem");
45571
47223
  return adapter.repeatingSection.cloneItem(input, options);
45572
47224
  }
45573
47225
  function executeContentControlsRepeatingSectionDeleteItem2(adapter, input, options) {
47226
+ validateCCInput2(input, "contentControls.repeatingSection.deleteItem");
47227
+ validateCCTarget2(input.target, "contentControls.repeatingSection.deleteItem");
47228
+ requireIndex2(input.index, "index", "contentControls.repeatingSection.deleteItem");
45574
47229
  return adapter.repeatingSection.deleteItem(input, options);
45575
47230
  }
45576
47231
  function executeContentControlsRepeatingSectionSetAllowInsertDelete2(adapter, input, options) {
47232
+ validateCCInput2(input, "contentControls.repeatingSection.setAllowInsertDelete");
47233
+ validateCCTarget2(input.target, "contentControls.repeatingSection.setAllowInsertDelete");
47234
+ requireBoolean2(input.allow, "allow", "contentControls.repeatingSection.setAllowInsertDelete");
45577
47235
  return adapter.repeatingSection.setAllowInsertDelete(input, options);
45578
47236
  }
45579
47237
  function executeContentControlsGroupWrap2(adapter, input, options) {
47238
+ validateCCInput2(input, "contentControls.group.wrap");
47239
+ validateCCTarget2(input.target, "contentControls.group.wrap");
45580
47240
  return adapter.group.wrap(input, options);
45581
47241
  }
45582
47242
  function executeContentControlsGroupUngroup2(adapter, input, options) {
47243
+ validateCCInput2(input, "contentControls.group.ungroup");
47244
+ validateCCTarget2(input.target, "contentControls.group.ungroup");
45583
47245
  return adapter.group.ungroup(input, options);
45584
47246
  }
45585
47247
  function executeCreateContentControl2(adapter, input, options) {
47248
+ validateCCInput2(input, "create.contentControl");
47249
+ requireNodeKind2(input.kind, "kind", "create.contentControl");
47250
+ if (input.controlType !== undefined && !VALID_CC_TYPES2.has(input.controlType))
47251
+ throw new DocumentApiValidationError2("INVALID_INPUT", `create.contentControl controlType must be one of: ${[...VALID_CC_TYPES2].join(", ")}.`, {
47252
+ field: "controlType",
47253
+ value: input.controlType
47254
+ });
47255
+ if (input.lockMode !== undefined && !VALID_LOCK_MODES$1.has(input.lockMode))
47256
+ throw new DocumentApiValidationError2("INVALID_INPUT", `create.contentControl lockMode must be one of: ${[...VALID_LOCK_MODES$1].join(", ")}.`, {
47257
+ field: "lockMode",
47258
+ value: input.lockMode
47259
+ });
47260
+ if (input.target !== undefined)
47261
+ validateCCTarget2(input.target, "create.contentControl");
47262
+ if (input.content !== undefined && typeof input.content !== "string")
47263
+ throw new DocumentApiValidationError2("INVALID_INPUT", `create.contentControl content must be a string, got ${typeof input.content}.`, {
47264
+ field: "content",
47265
+ value: input.content
47266
+ });
45586
47267
  return adapter.create(input, options);
45587
47268
  }
45588
47269
  function validateBookmarkTarget2(target, operationName) {
@@ -51439,11 +53120,16 @@ function preProcessCitationInstruction(nodesToCombine, instrText, _docx, instruc
51439
53120
  }];
51440
53121
  }
51441
53122
  function preProcessBibliographyInstruction(nodesToCombine, instrText) {
53123
+ const contentNodes = Array.isArray(nodesToCombine) && nodesToCombine.length > 0 ? nodesToCombine : [{
53124
+ name: "w:p",
53125
+ type: "element",
53126
+ elements: []
53127
+ }];
51442
53128
  return [{
51443
53129
  name: "sd:bibliography",
51444
53130
  type: "element",
51445
53131
  attributes: { instruction: instrText },
51446
- elements: nodesToCombine
53132
+ elements: contentNodes
51447
53133
  }];
51448
53134
  }
51449
53135
  function preProcessTaInstruction(nodesToCombine, instrText, _docx, instructionTokens = null) {
@@ -72069,7 +73755,7 @@ function resolveControlType(attrs) {
72069
73755
  }
72070
73756
  function resolveLockMode(attrs) {
72071
73757
  const raw = attrs.lockMode;
72072
- if (typeof raw === "string" && VALID_LOCK_MODES.includes(raw))
73758
+ if (typeof raw === "string" && VALID_LOCK_MODES2.includes(raw))
72073
73759
  return raw;
72074
73760
  return "unlocked";
72075
73761
  }
@@ -75221,7 +76907,7 @@ var isRegExp = (value) => {
75221
76907
  }, decode$73 = (attrs) => {
75222
76908
  const { pos } = attrs || {};
75223
76909
  return pos?.toString();
75224
- }, attributes_default$6, DocumentApiValidationError2, NODE_TYPES2, BLOCK_NODE_TYPES2, DELETABLE_BLOCK_NODE_TYPES2, INLINE_NODE_TYPES2, SELECTION_EDGE_NODE_TYPES2, MARK_KEYS, INLINE_DIRECTIVES2, SD_CONTENT_NODE_KINDS2, SD_INLINE_NODE_KINDS2, PLACEMENT_VALUES2, TABLE_NESTING_POLICY_VALUES2, DEFAULT_NESTING_POLICY2, STORY_TYPES2, STORY_HEADER_FOOTER_KINDS2, STORY_HEADER_FOOTER_VARIANTS2, STORY_HEADER_FOOTER_RESOLUTIONS2, STORY_HEADER_FOOTER_ON_WRITE_VALUES2, BLOCK_NODE_TYPES_SET2, NESTING_POLICY_ALLOWED_KEYS2, schemaBooleanOrNull2 = () => ({ oneOf: [{ type: "boolean" }, { type: "null" }] }), schemaStringOrNull2 = () => ({ oneOf: [{
76910
+ }, attributes_default$6, DocumentApiValidationError2, NODE_KINDS2, NODE_TYPES2, BLOCK_NODE_TYPES2, DELETABLE_BLOCK_NODE_TYPES2, INLINE_NODE_TYPES2, SELECTION_EDGE_NODE_TYPES2, MARK_KEYS, INLINE_DIRECTIVES2, SD_CONTENT_NODE_KINDS2, SD_INLINE_NODE_KINDS2, PLACEMENT_VALUES2, TABLE_NESTING_POLICY_VALUES2, DEFAULT_NESTING_POLICY2, STORY_TYPES2, STORY_HEADER_FOOTER_KINDS2, STORY_HEADER_FOOTER_VARIANTS2, STORY_HEADER_FOOTER_RESOLUTIONS2, STORY_HEADER_FOOTER_ON_WRITE_VALUES2, BLOCK_NODE_TYPES_SET2, NESTING_POLICY_ALLOWED_KEYS2, schemaBooleanOrNull2 = () => ({ oneOf: [{ type: "boolean" }, { type: "null" }] }), schemaStringOrNull2 = () => ({ oneOf: [{
75225
76911
  type: "string",
75226
76912
  minLength: 1
75227
76913
  }, { type: "null" }] }), schemaNumberOrNull2 = () => ({ oneOf: [{ type: "number" }, { type: "null" }] }), schemaObjectOrNull2 = (properties) => ({ oneOf: [{
@@ -75261,7 +76947,7 @@ var isRegExp = (value) => {
75261
76947
  tracked: false,
75262
76948
  carrier: runAttributeCarrier2(runPropertyKey ?? key),
75263
76949
  schema
75264
- }), 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, documentStylesSchema2, documentDefaultsSchema2, listKindSchema2, listInsertPositionSchema2, sectionBreakTypeSchema2, sectionOrientationSchema2, sectionVerticalAlignSchema2, sectionDirectionSchema2, sectionHeaderFooterKindSchema2, sectionHeaderFooterVariantSchema2, sectionLineNumberRestartSchema2, sectionPageNumberFormatSchema2, sectionRangeDomainSchema2, sectionPageMarginsSchema2, sectionHeaderFooterMarginsSchema2, sectionPageSetupSchema2, sectionColumnsSchema2, sectionLineNumberingSchema2, sectionPageNumberingSchema2, sectionHeaderFooterRefsSchema2, sectionBorderSpecSchema2, sectionPageBordersSchema2, sectionMutationSuccessSchema2, documentMutationSuccessSchema2, paragraphMutationTargetSchema2, paragraphMutationSuccessSchema2, createSectionBreakSuccessSchema2, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, inlinePropertyCapabilitySchema2, formatCapabilitiesSchema2, planEngineCapabilitiesSchema2, nullableTableBorderSpecSchema2, sdFragmentSchema2, placementSchema2, nestingPolicySchema2, tableCreateLocationSchema2, formatInlineAliasOperationSchemas2, tocMutationFailureSchema2, tocMutationSuccessSchema2, tocEntryMutationFailureSchema2, tocEntryMutationSuccessSchema2, hyperlinkTargetSchema2, hyperlinkReadPropertiesSchema2, hyperlinkSpecSchema2, hyperlinkPatchSchema2, hyperlinkDomainSchema2, hyperlinkMutationSuccessSchema2, hyperlinkMutationFailureSchema2, contentControlTargetSchema2, contentControlMutationSuccessSchema2, contentControlMutationFailureSchema2, ccListResultSchema2, ccInfoSchema2, refFailureSchema2, bookmarkAddressSchema2, bookmarkMutation2, footnoteAddressSchema2, footnoteConfigScopeSchema2, footnoteNumberingSchema2, footnoteMutation2, footnoteConfig2, crossRefAddressSchema2, crossRefTargetSchema2, crossRefDisplaySchema2, crossRefMutation2, indexAddressSchema2, indexEntryAddressSchema2, indexConfigSchema2, indexEntryDataSchema2, indexEntryPatchSchema2, indexMutation2, indexEntryMutation2, captionAddressSchema2, captionMutation2, captionConfig2, fieldAddressSchema2, fieldMutation2, citationAddressSchema2, citationSourceAddressSchema2, bibliographyAddressSchema2, citationMutation2, citationSourceMutation2, bibliographyMutation2, citationPersonSchema2, citationSourceFieldsSchema2, tocCreateLocationSchema2, authoritiesAddressSchema2, authorityEntryAddressSchema2, authoritiesConfigSchema2, authorityEntryDataSchema2, authorityEntryPatchSchema2, authoritiesMutation2, authorityEntryMutation2, diffCoverageSchema2, diffSummarySchema2, diffSnapshotSchema2, diffPayloadSchema2, GROUP_METADATA2, STEP_OP_CATALOG_UNFROZEN2, PUBLIC_STEP_OP_CATALOG_UNFROZEN2, PUBLIC_MUTATION_STEP_OP_IDS2, PUBLIC_MUTATION_STEP_OP_SET2, CAPABILITY_REASON_CODES, VALID_EDGE_VALUES2, VALID_EDGE_NODE_TYPES2, VALID_DOCUMENT_EDGES2, VALID_REF_BOUNDARIES2, VALID_ANCHOR_KINDS2, RESOLVE_RANGE_ALLOWED_KEYS2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, INLINE_ALIAS_INPUT_ALLOWED_KEYS2, DELETE_INPUT_ALLOWED_KEYS2, VALID_BEHAVIORS2, CONTENT_KIND_SET2, INLINE_KIND_SET2, LEGACY_TOP_LEVEL_TYPES2, TEXT_INSERT_ALLOWED_KEYS2, STRUCTURAL_INSERT_ALLOWED_KEYS2, VALID_INSERT_TYPES2, 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) => ({
76950
+ }), 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, documentStylesSchema2, documentDefaultsSchema2, listKindSchema2, listInsertPositionSchema2, sectionBreakTypeSchema2, sectionOrientationSchema2, sectionVerticalAlignSchema2, sectionDirectionSchema2, sectionHeaderFooterKindSchema2, sectionHeaderFooterVariantSchema2, sectionLineNumberRestartSchema2, sectionPageNumberFormatSchema2, sectionRangeDomainSchema2, sectionPageMarginsSchema2, sectionHeaderFooterMarginsSchema2, sectionPageSetupSchema2, sectionColumnsSchema2, sectionLineNumberingSchema2, sectionPageNumberingSchema2, sectionHeaderFooterRefsSchema2, sectionBorderSpecSchema2, sectionPageBordersSchema2, sectionMutationSuccessSchema2, documentMutationSuccessSchema2, paragraphMutationTargetSchema2, paragraphMutationSuccessSchema2, createSectionBreakSuccessSchema2, capabilityReasonsSchema2, capabilityFlagSchema2, operationRuntimeCapabilitySchema2, operationCapabilitiesSchema2, inlinePropertyCapabilitySchema2, formatCapabilitiesSchema2, planEngineCapabilitiesSchema2, nullableTableBorderSpecSchema2, sdFragmentSchema2, placementSchema2, nestingPolicySchema2, tableCreateLocationSchema2, formatInlineAliasOperationSchemas2, tocMutationFailureSchema2, tocMutationSuccessSchema2, tocEntryMutationFailureSchema2, tocEntryMutationSuccessSchema2, hyperlinkTargetSchema2, hyperlinkReadPropertiesSchema2, hyperlinkSpecSchema2, hyperlinkPatchSchema2, hyperlinkDomainSchema2, hyperlinkMutationSuccessSchema2, hyperlinkMutationFailureSchema2, contentControlTargetSchema2, contentControlMutationSuccessSchema2, contentControlMutationFailureSchema2, ccListResultSchema2, ccInfoSchema2, refFailureSchema2, bookmarkAddressSchema2, bookmarkMutation2, footnoteAddressSchema2, footnoteConfigScopeSchema2, footnoteNumberingSchema2, footnoteMutation2, footnoteConfig2, crossRefAddressSchema2, crossRefTargetSchema2, crossRefDisplaySchema2, crossRefMutation2, indexAddressSchema2, indexEntryAddressSchema2, indexConfigSchema2, indexEntryDataSchema2, indexEntryPatchSchema2, indexMutation2, indexEntryMutation2, captionAddressSchema2, captionMutation2, captionConfig2, fieldAddressSchema2, fieldMutation2, citationAddressSchema2, citationSourceAddressSchema2, bibliographyAddressSchema2, citationMutation2, citationSourceMutation2, bibliographyMutation2, citationPersonSchema2, citationSourceFieldsSchema2, tocCreateLocationSchema2, authoritiesAddressSchema2, authorityEntryAddressSchema2, authoritiesConfigSchema2, authorityEntryDataSchema2, authorityEntryPatchSchema2, authoritiesMutation2, authorityEntryMutation2, diffCoverageSchema2, diffSummarySchema2, diffSnapshotSchema2, diffPayloadSchema2, GROUP_METADATA2, STEP_OP_CATALOG_UNFROZEN2, PUBLIC_STEP_OP_CATALOG_UNFROZEN2, PUBLIC_MUTATION_STEP_OP_IDS2, PUBLIC_MUTATION_STEP_OP_SET2, CAPABILITY_REASON_CODES, VALID_EDGE_VALUES2, VALID_EDGE_NODE_TYPES2, VALID_DOCUMENT_EDGES2, VALID_REF_BOUNDARIES2, VALID_ANCHOR_KINDS2, RESOLVE_RANGE_ALLOWED_KEYS2, CREATE_COMMENT_ALLOWED_KEYS2, PATCH_COMMENT_ALLOWED_KEYS2, STYLE_APPLY_INPUT_ALLOWED_KEYS2, INLINE_ALIAS_INPUT_ALLOWED_KEYS2, DELETE_INPUT_ALLOWED_KEYS2, VALID_BEHAVIORS2, CONTENT_KIND_SET2, INLINE_KIND_SET2, LEGACY_TOP_LEVEL_TYPES2, TEXT_INSERT_ALLOWED_KEYS2, STRUCTURAL_INSERT_ALLOWED_KEYS2, VALID_INSERT_TYPES2, LIST_KINDS2, LIST_INSERT_POSITIONS2, JOIN_DIRECTIONS2, MUTATION_SCOPES2, LEVEL_ALIGNMENTS2, TRAILING_CHARACTERS2, LIST_PRESET_IDS2, VALID_BLOCK_NODE_TYPES$1, VALID_LIST_KINDS2, VALID_INSERT_POSITIONS2, VALID_JOIN_DIRECTIONS2, VALID_MUTATION_SCOPES2, VALID_LEVEL_ALIGNMENTS2, VALID_TRAILING_CHARACTERS2, VALID_LIST_PRESETS2, VALID_CONTINUITY_VALUES2, VALID_SEQUENCE_MODES2, VALID_LIST_CREATE_MODES2, TEXT_REPLACE_ALLOWED_KEYS2, STRUCTURAL_REPLACE_ALLOWED_KEYS2, VALID_HEADING_LEVELS2, SECTION_BREAK_TYPES$1, SUPPORTED_DELETE_NODE_TYPES2, REJECTED_DELETE_NODE_TYPES2, VALID_BLOCK_NODE_TYPES3, SNAPSHOT_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, VALID_TOC_UPDATE_MODES2, EDIT_ENTRY_PATCH_ALLOWED_KEYS2, PATCH_FIELDS2, CONTENT_CONTROL_TYPES2, LOCK_MODES2, CONTENT_CONTROL_APPEARANCES2, VALID_NODE_KINDS2, VALID_LOCK_MODES$1, VALID_CC_TYPES2, VALID_CC_APPEARANCES2, VALID_CONTENT_FORMATS2, VALID_RAW_PATCH_OPS2, VALID_CREATE_LOCATION_KINDS2, ADAPTER_GATED_PREFIXES2, _buffers, _defaultCollectionId = null, _nextCollectionId = 1, generateV2HandlerEntity = (handlerName, translator$216) => ({
75265
76951
  handlerName,
75266
76952
  handler: (params) => {
75267
76953
  const { nodes } = params;
@@ -76508,10 +78194,10 @@ var isRegExp = (value) => {
76508
78194
  sdtPr
76509
78195
  }
76510
78196
  };
76511
- }, validGalleryTypeMap, inlineNodeTypes, SD_TOC_XML_NAME = "sd:tableOfContents", PARAGRAPH_XML_NAME = "w:p", PARAGRAPH_PROPERTIES_XML_NAME = "w:pPr", wrapInlineNode = (node3) => ({
78197
+ }, validGalleryTypeMap, inlineNodeTypes, SD_TOC_XML_NAME = "sd:tableOfContents", PARAGRAPH_XML_NAME = "w:p", PARAGRAPH_PROPERTIES_XML_NAME$1 = "w:pPr", wrapInlineNode = (node3) => ({
76512
78198
  type: "paragraph",
76513
78199
  content: [node3]
76514
- }), hasMeaningfulParagraphContent = (elements = []) => elements.some((element) => element?.name && element.name !== PARAGRAPH_PROPERTIES_XML_NAME), translateNodes = (params, nodes, pathTail = []) => params.nodeListHandler.handler({
78200
+ }), hasMeaningfulParagraphContent$1 = (elements = []) => elements.some((element) => element?.name && element.name !== PARAGRAPH_PROPERTIES_XML_NAME$1), translateNodes = (params, nodes, pathTail = []) => params.nodeListHandler.handler({
76515
78201
  ...params,
76516
78202
  nodes,
76517
78203
  path: [...params.path || [], ...pathTail]
@@ -76526,7 +78212,7 @@ var isRegExp = (value) => {
76526
78212
  return;
76527
78213
  }
76528
78214
  const remainingElements = childElements.filter((el) => el?.name !== SD_TOC_XML_NAME);
76529
- if (hasMeaningfulParagraphContent(remainingElements))
78215
+ if (hasMeaningfulParagraphContent$1(remainingElements))
76530
78216
  translatedContent.push(...translateNodes(params, [{
76531
78217
  ...child,
76532
78218
  elements: remainingElements
@@ -87262,13 +88948,45 @@ var isRegExp = (value) => {
87262
88948
  nodes: [resultNode],
87263
88949
  consumed: 1
87264
88950
  };
87265
- }, textNodeHandlerEntity, handleParagraphNode = (params) => {
88951
+ }, textNodeHandlerEntity, PARAGRAPH_PROPERTIES_XML_NAME = "w:pPr", BLOCK_FIELD_XML_NAMES, hasMeaningfulParagraphContent = (elements = []) => elements.some((element) => element?.name && element.name !== PARAGRAPH_PROPERTIES_XML_NAME), hoistBlockFieldNodes = (params, paragraphNode) => {
88952
+ const paragraphElements = Array.isArray(paragraphNode?.elements) ? paragraphNode.elements : [];
88953
+ const blockFieldElements = paragraphElements.filter((element) => BLOCK_FIELD_XML_NAMES.has(element?.name));
88954
+ if (blockFieldElements.length === 0)
88955
+ return null;
88956
+ const nodes = [];
88957
+ const remainingElements = paragraphElements.filter((element) => !BLOCK_FIELD_XML_NAMES.has(element?.name));
88958
+ if (hasMeaningfulParagraphContent(remainingElements)) {
88959
+ const paragraph2 = translator.encode({
88960
+ ...params,
88961
+ nodes: [{
88962
+ ...paragraphNode,
88963
+ elements: remainingElements
88964
+ }]
88965
+ });
88966
+ if (paragraph2)
88967
+ nodes.push(paragraph2);
88968
+ }
88969
+ blockFieldElements.forEach((blockFieldElement) => {
88970
+ nodes.push(...params.nodeListHandler.handler({
88971
+ ...params,
88972
+ nodes: [blockFieldElement],
88973
+ path: [...params.path || [], paragraphNode]
88974
+ }));
88975
+ });
88976
+ return nodes;
88977
+ }, handleParagraphNode = (params) => {
87266
88978
  const { nodes } = params;
87267
88979
  if (nodes.length === 0 || nodes[0].name !== "w:p")
87268
88980
  return {
87269
88981
  nodes: [],
87270
88982
  consumed: 0
87271
88983
  };
88984
+ const hoistedNodes = hoistBlockFieldNodes(params, nodes[0]);
88985
+ if (hoistedNodes)
88986
+ return {
88987
+ nodes: hoistedNodes,
88988
+ consumed: 1
88989
+ };
87272
88990
  const schemaNode = translator.encode(params);
87273
88991
  return {
87274
88992
  nodes: schemaNode ? [schemaNode] : [],
@@ -88222,7 +89940,7 @@ var isRegExp = (value) => {
88222
89940
  nodes: [translator$3.encode(params)],
88223
89941
  consumed: 1
88224
89942
  };
88225
- }, tabNodeEntityHandler, footnoteReferenceHandlerEntity, tableNodeHandlerEntity, tableOfContentsHandlerEntity, indexHandlerEntity, indexEntryHandlerEntity, commentRangeStartHandlerEntity, commentRangeEndHandlerEntity, permStartHandlerEntity, permEndHandlerEntity, PARAGRAPH_IDENTITY_ATTRS, TABLE_IDENTITY_ATTRS, DEFAULT_BLOCK_IDENTITY_ATTRS, SYNTHETIC_PARA_ID_TYPES, DOCX_ID_LENGTH = 8, MAX_DOCX_ID = 4294967295, BLOCK_IDENTITY_ATTRS, WORD_2012_NAMESPACE = "http://schemas.microsoft.com/office/word/2012/wordml", deepClone = (value) => JSON.parse(JSON.stringify(value)), getNumberingRoot = (numberingXml) => {
89943
+ }, tabNodeEntityHandler, footnoteReferenceHandlerEntity, tableNodeHandlerEntity, tableOfContentsHandlerEntity, indexHandlerEntity, indexEntryHandlerEntity, bibliographyHandlerEntity, commentRangeStartHandlerEntity, commentRangeEndHandlerEntity, permStartHandlerEntity, permEndHandlerEntity, PARAGRAPH_IDENTITY_ATTRS, TABLE_IDENTITY_ATTRS, DEFAULT_BLOCK_IDENTITY_ATTRS, SYNTHETIC_PARA_ID_TYPES, DOCX_ID_LENGTH = 8, MAX_DOCX_ID = 4294967295, BLOCK_IDENTITY_ATTRS, WORD_2012_NAMESPACE = "http://schemas.microsoft.com/office/word/2012/wordml", deepClone = (value) => JSON.parse(JSON.stringify(value)), getNumberingRoot = (numberingXml) => {
88226
89944
  if (!numberingXml?.elements?.length)
88227
89945
  return null;
88228
89946
  return numberingXml.elements.find((el) => el?.name === "w:numbering") || numberingXml.elements[0] || null;
@@ -88374,6 +90092,7 @@ var isRegExp = (value) => {
88374
90092
  tabNodeEntityHandler,
88375
90093
  tableOfContentsHandlerEntity,
88376
90094
  indexHandlerEntity,
90095
+ bibliographyHandlerEntity,
88377
90096
  indexEntryHandlerEntity,
88378
90097
  autoPageHandlerEntity,
88379
90098
  autoTotalPageCountEntity,
@@ -89401,7 +91120,7 @@ var isRegExp = (value) => {
89401
91120
  if (id)
89402
91121
  return trackedChanges.filter(({ mark }) => mark.attrs.id === id);
89403
91122
  return trackedChanges;
89404
- }, DERIVED_ID_LENGTH = 24, groupedCache, SDT_NODE_NAMES, SDT_BLOCK_NAME = "structuredContentBlock", VALID_CONTROL_TYPES, VALID_LOCK_MODES, VALID_APPEARANCES, FIELD_LIKE_SDT_TYPES, liveDocumentCountsCache, SETTINGS_PART_PATH = "word/settings.xml", BIBLIOGRAPHY_NAMESPACE_URI = "http://schemas.openxmlformats.org/officeDocument/2006/bibliography", CUSTOM_XML_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml", CUSTOM_XML_PROPS_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps", DEFAULT_SELECTED_STYLE = "/APA.XSL", DEFAULT_STYLE_NAME = "APA", DEFAULT_VERSION = "6", DEFAULT_XML_DECLARATION, API_TO_OOXML_SOURCE_TYPE, OOXML_TO_API_SOURCE_TYPE, SIMPLE_FIELD_TO_XML_TAG, XML_TAG_TO_SIMPLE_FIELD, import_lib2, FONT_FAMILY_FALLBACKS, DEFAULT_GENERIC_FALLBACK = "sans-serif", DEFAULT_FONT_SIZE_PT = 10, CURRENT_APP_VERSION = "1.20.0", collectRunDefaultProperties = (runProps, { allowOverrideTypeface = true, allowOverrideSize = true, themeResolver, state }) => {
91123
+ }, DERIVED_ID_LENGTH = 24, groupedCache, SDT_NODE_NAMES, SDT_BLOCK_NAME = "structuredContentBlock", VALID_CONTROL_TYPES, VALID_LOCK_MODES2, VALID_APPEARANCES, FIELD_LIKE_SDT_TYPES, liveDocumentCountsCache, SETTINGS_PART_PATH = "word/settings.xml", BIBLIOGRAPHY_NAMESPACE_URI = "http://schemas.openxmlformats.org/officeDocument/2006/bibliography", CUSTOM_XML_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml", CUSTOM_XML_PROPS_RELATIONSHIP_TYPE = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps", DEFAULT_SELECTED_STYLE = "/APA.XSL", DEFAULT_STYLE_NAME = "APA", DEFAULT_VERSION = "6", DEFAULT_XML_DECLARATION, API_TO_OOXML_SOURCE_TYPE, OOXML_TO_API_SOURCE_TYPE, SIMPLE_FIELD_TO_XML_TAG, XML_TAG_TO_SIMPLE_FIELD, import_lib2, FONT_FAMILY_FALLBACKS, DEFAULT_GENERIC_FALLBACK = "sans-serif", DEFAULT_FONT_SIZE_PT = 10, CURRENT_APP_VERSION = "1.21.0", collectRunDefaultProperties = (runProps, { allowOverrideTypeface = true, allowOverrideSize = true, themeResolver, state }) => {
89405
91124
  if (!runProps?.elements?.length || !state)
89406
91125
  return;
89407
91126
  const fontsNode = runProps.elements.find((el) => el.name === "w:rFonts");
@@ -89435,7 +91154,7 @@ var isRegExp = (value) => {
89435
91154
  state.kern = kernNode.attributes["w:val"];
89436
91155
  }
89437
91156
  }, SuperConverter;
89438
- var init_SuperConverter_CQNRAk8k_es = __esm(() => {
91157
+ var init_SuperConverter_V_8WDjnK_es = __esm(() => {
89439
91158
  init_rolldown_runtime_B2q5OVn9_es();
89440
91159
  init_jszip_ChlR43oI_es();
89441
91160
  init_xml_js_DLE8mr0n_es();
@@ -91855,6 +93574,7 @@ var init_SuperConverter_CQNRAk8k_es = __esm(() => {
91855
93574
  Object.setPrototypeOf(this, DocumentApiValidationError3.prototype);
91856
93575
  }
91857
93576
  };
93577
+ NODE_KINDS2 = ["block", "inline"];
91858
93578
  NODE_TYPES2 = [
91859
93579
  "paragraph",
91860
93580
  "heading",
@@ -103621,6 +105341,43 @@ var init_SuperConverter_CQNRAk8k_es = __esm(() => {
103621
105341
  "markdown",
103622
105342
  "html"
103623
105343
  ]);
105344
+ LIST_KINDS2 = ["ordered", "bullet"];
105345
+ LIST_INSERT_POSITIONS2 = ["before", "after"];
105346
+ JOIN_DIRECTIONS2 = ["withPrevious", "withNext"];
105347
+ MUTATION_SCOPES2 = ["definition", "instance"];
105348
+ LEVEL_ALIGNMENTS2 = [
105349
+ "left",
105350
+ "center",
105351
+ "right"
105352
+ ];
105353
+ TRAILING_CHARACTERS2 = [
105354
+ "tab",
105355
+ "space",
105356
+ "nothing"
105357
+ ];
105358
+ LIST_PRESET_IDS2 = [
105359
+ "decimal",
105360
+ "decimalParenthesis",
105361
+ "lowerLetter",
105362
+ "upperLetter",
105363
+ "lowerRoman",
105364
+ "upperRoman",
105365
+ "disc",
105366
+ "circle",
105367
+ "square",
105368
+ "dash"
105369
+ ];
105370
+ VALID_BLOCK_NODE_TYPES$1 = new Set(BLOCK_NODE_TYPES2);
105371
+ VALID_LIST_KINDS2 = new Set(LIST_KINDS2);
105372
+ VALID_INSERT_POSITIONS2 = new Set(LIST_INSERT_POSITIONS2);
105373
+ VALID_JOIN_DIRECTIONS2 = new Set(JOIN_DIRECTIONS2);
105374
+ VALID_MUTATION_SCOPES2 = new Set(MUTATION_SCOPES2);
105375
+ VALID_LEVEL_ALIGNMENTS2 = new Set(LEVEL_ALIGNMENTS2);
105376
+ VALID_TRAILING_CHARACTERS2 = new Set(TRAILING_CHARACTERS2);
105377
+ VALID_LIST_PRESETS2 = new Set(LIST_PRESET_IDS2);
105378
+ VALID_CONTINUITY_VALUES2 = new Set(["preserve", "none"]);
105379
+ VALID_SEQUENCE_MODES2 = new Set(["new", "continuePrevious"]);
105380
+ VALID_LIST_CREATE_MODES2 = new Set(["empty", "fromParagraphs"]);
103624
105381
  TEXT_REPLACE_ALLOWED_KEYS2 = new Set([
103625
105382
  "text",
103626
105383
  "target",
@@ -103634,6 +105391,14 @@ var init_SuperConverter_CQNRAk8k_es = __esm(() => {
103634
105391
  "nestingPolicy",
103635
105392
  "in"
103636
105393
  ]);
105394
+ VALID_HEADING_LEVELS2 = new Set([
105395
+ 1,
105396
+ 2,
105397
+ 3,
105398
+ 4,
105399
+ 5,
105400
+ 6
105401
+ ]);
103637
105402
  SECTION_BREAK_TYPES$1 = [
103638
105403
  "continuous",
103639
105404
  "nextPage",
@@ -103642,7 +105407,7 @@ var init_SuperConverter_CQNRAk8k_es = __esm(() => {
103642
105407
  ];
103643
105408
  SUPPORTED_DELETE_NODE_TYPES2 = new Set(DELETABLE_BLOCK_NODE_TYPES2);
103644
105409
  REJECTED_DELETE_NODE_TYPES2 = new Set(["tableRow", "tableCell"]);
103645
- VALID_BLOCK_NODE_TYPES2 = new Set(BLOCK_NODE_TYPES2);
105410
+ VALID_BLOCK_NODE_TYPES3 = new Set(BLOCK_NODE_TYPES2);
103646
105411
  VALID_STYLE_OPTION_FLAGS2 = new Set([
103647
105412
  "headerRow",
103648
105413
  "lastRow",
@@ -103737,6 +105502,13 @@ var init_SuperConverter_CQNRAk8k_es = __esm(() => {
103737
105502
  "pt",
103738
105503
  "twip"
103739
105504
  ]);
105505
+ VALID_TOC_UPDATE_MODES2 = new Set(["all", "pageNumbers"]);
105506
+ EDIT_ENTRY_PATCH_ALLOWED_KEYS2 = new Set([
105507
+ "text",
105508
+ "level",
105509
+ "tableIdentifier",
105510
+ "omitPageNumber"
105511
+ ]);
103740
105512
  PATCH_FIELDS2 = new Set([
103741
105513
  "href",
103742
105514
  "anchor",
@@ -103745,6 +105517,39 @@ var init_SuperConverter_CQNRAk8k_es = __esm(() => {
103745
105517
  "target",
103746
105518
  "rel"
103747
105519
  ]);
105520
+ CONTENT_CONTROL_TYPES2 = [
105521
+ "text",
105522
+ "date",
105523
+ "checkbox",
105524
+ "comboBox",
105525
+ "dropDownList",
105526
+ "repeatingSection",
105527
+ "repeatingSectionItem",
105528
+ "group",
105529
+ "unknown"
105530
+ ];
105531
+ LOCK_MODES2 = [
105532
+ "unlocked",
105533
+ "sdtLocked",
105534
+ "contentLocked",
105535
+ "sdtContentLocked"
105536
+ ];
105537
+ CONTENT_CONTROL_APPEARANCES2 = [
105538
+ "boundingBox",
105539
+ "tags",
105540
+ "hidden"
105541
+ ];
105542
+ VALID_NODE_KINDS2 = new Set(NODE_KINDS2);
105543
+ VALID_LOCK_MODES$1 = new Set(LOCK_MODES2);
105544
+ VALID_CC_TYPES2 = new Set(CONTENT_CONTROL_TYPES2);
105545
+ VALID_CC_APPEARANCES2 = new Set(CONTENT_CONTROL_APPEARANCES2);
105546
+ VALID_CONTENT_FORMATS2 = new Set(["text", "html"]);
105547
+ VALID_RAW_PATCH_OPS2 = new Set([
105548
+ "set",
105549
+ "remove",
105550
+ "setAttr",
105551
+ "removeAttr"
105552
+ ]);
103748
105553
  VALID_CREATE_LOCATION_KINDS2 = new Set([
103749
105554
  "documentStart",
103750
105555
  "documentEnd",
@@ -124118,6 +125923,12 @@ var init_SuperConverter_CQNRAk8k_es = __esm(() => {
124118
125923
  handlerName: "textNodeHandler",
124119
125924
  handler: handleTextNode
124120
125925
  };
125926
+ BLOCK_FIELD_XML_NAMES = new Set([
125927
+ "sd:tableOfContents",
125928
+ "sd:index",
125929
+ "sd:bibliography",
125930
+ "sd:tableOfAuthorities"
125931
+ ]);
124121
125932
  paragraphNodeHandlerEntity = {
124122
125933
  handlerName: "paragraphNodeHandler",
124123
125934
  handler: handleParagraphNode
@@ -124741,6 +126552,7 @@ var init_SuperConverter_CQNRAk8k_es = __esm(() => {
124741
126552
  tableOfContentsHandlerEntity = generateV2HandlerEntity("tableOfContentsHandler", translator$22);
124742
126553
  indexHandlerEntity = generateV2HandlerEntity("indexHandler", translator$23);
124743
126554
  indexEntryHandlerEntity = generateV2HandlerEntity("indexEntryHandler", translator$24);
126555
+ bibliographyHandlerEntity = generateV2HandlerEntity("bibliographyHandler", translator$18);
124744
126556
  commentRangeStartHandlerEntity = generateV2HandlerEntity("commentRangeStartHandler", commentRangeStartTranslator);
124745
126557
  commentRangeEndHandlerEntity = generateV2HandlerEntity("commentRangeEndHandler", commentRangeEndTranslator);
124746
126558
  permStartHandlerEntity = generateV2HandlerEntity("permStartHandler", translator$13);
@@ -124966,7 +126778,7 @@ var init_SuperConverter_CQNRAk8k_es = __esm(() => {
124966
126778
  "repeatingSectionItem",
124967
126779
  "group"
124968
126780
  ];
124969
- VALID_LOCK_MODES = [
126781
+ VALID_LOCK_MODES2 = [
124970
126782
  "unlocked",
124971
126783
  "sdtLocked",
124972
126784
  "contentLocked",
@@ -152491,7 +154303,7 @@ var init_remark_gfm_CjV8kaUy_es = __esm(() => {
152491
154303
  init_remark_gfm_z_sDF4ss_es();
152492
154304
  });
152493
154305
 
152494
- // ../../packages/superdoc/dist/chunks/src-Ddr7dM19.es.js
154306
+ // ../../packages/superdoc/dist/chunks/src-H6TB6E1W.es.js
152495
154307
  function deleteProps(obj, propOrProps) {
152496
154308
  const props = typeof propOrProps === "string" ? [propOrProps] : propOrProps;
152497
154309
  const removeNested = (target, pathParts, index2 = 0) => {
@@ -152571,7 +154383,7 @@ function prosemirrorToYXmlFragment(doc$12, xmlFragment) {
152571
154383
  }
152572
154384
  function getSuperdocVersion() {
152573
154385
  try {
152574
- return "1.20.0";
154386
+ return "1.21.0";
152575
154387
  } catch {
152576
154388
  return "unknown";
152577
154389
  }
@@ -182187,7 +183999,7 @@ function extractBlockFormatting(node3) {
182187
183999
  ...fontFamily ? { fontFamily } : {},
182188
184000
  ...fontSize !== undefined ? { fontSize } : {},
182189
184001
  ...bold ? { bold } : {},
182190
- ...pProps?.alignment ? { alignment: pProps.alignment } : {},
184002
+ ...pProps?.justification ? { alignment: pProps.justification } : {},
182191
184003
  ...headingLevel ? { headingLevel } : {}
182192
184004
  };
182193
184005
  }
@@ -182259,7 +184071,7 @@ function blocksListWrapper(editor, input2) {
182259
184071
  ordinal: offset$1 + i4,
182260
184072
  nodeId: candidate.nodeId,
182261
184073
  nodeType: candidate.nodeType,
182262
- textPreview: candidate.node.isTextblock ? candidate.node.textContent || null : null,
184074
+ textPreview: extractTextPreview(candidate.node),
182263
184075
  isEmpty: candidate.node.textContent.length === 0,
182264
184076
  ...extractBlockFormatting(candidate.node)
182265
184077
  })),
@@ -194625,21 +196437,20 @@ function toReferenceBlockType(node3) {
194625
196437
  return;
194626
196438
  }
194627
196439
  }
194628
- function resolvePublicReferenceBlockNodeId(node3, pos) {
194629
- const sdBlockId = toId(node3.attrs?.sdBlockId);
194630
- if (sdBlockId)
194631
- return sdBlockId;
196440
+ function resolvePublicReferenceBlockNodeId(node3, occurrenceIndex) {
194632
196441
  const blockType = toReferenceBlockType(node3);
194633
196442
  if (!blockType)
194634
196443
  throw new Error(`Unsupported reference block node type: ${node3.type.name}`);
194635
- return `${REFERENCE_BLOCK_PREFIX[blockType]}-${stableHash2(`${blockType}:${pos}`)}`;
196444
+ return `${REFERENCE_BLOCK_PREFIX[blockType]}-${stableHash2(`${blockType}:${occurrenceIndex}`)}`;
194636
196445
  }
194637
196446
  function findAllIndexNodes(doc$12) {
194638
196447
  const results = [];
196448
+ let occurrenceIndex = 0;
194639
196449
  doc$12.descendants((node3, pos) => {
194640
196450
  if (node3.type.name === "documentIndex" || node3.type.name === "index") {
194641
196451
  const commandNodeId = node3.attrs?.sdBlockId;
194642
- const nodeId = resolvePublicReferenceBlockNodeId(node3, pos);
196452
+ const nodeId = resolvePublicReferenceBlockNodeId(node3, occurrenceIndex);
196453
+ occurrenceIndex += 1;
194643
196454
  results.push({
194644
196455
  node: node3,
194645
196456
  pos,
@@ -195858,10 +197669,12 @@ function buildCitationDiscoveryItem(doc$12, resolved, evaluatedRevision) {
195858
197669
  }
195859
197670
  function findAllBibliographies(doc$12) {
195860
197671
  const results = [];
197672
+ let occurrenceIndex = 0;
195861
197673
  doc$12.descendants((node3, pos) => {
195862
197674
  if (node3.type.name === "bibliography") {
195863
197675
  const commandNodeId = node3.attrs?.sdBlockId;
195864
- const nodeId = resolvePublicReferenceBlockNodeId(node3, pos);
197676
+ const nodeId = resolvePublicReferenceBlockNodeId(node3, occurrenceIndex);
197677
+ occurrenceIndex += 1;
195865
197678
  results.push({
195866
197679
  node: node3,
195867
197680
  pos,
@@ -196417,10 +198230,12 @@ function buildCitationInstruction(sourceIds) {
196417
198230
  }
196418
198231
  function findAllAuthorities(doc$12) {
196419
198232
  const results = [];
198233
+ let occurrenceIndex = 0;
196420
198234
  doc$12.descendants((node3, pos) => {
196421
198235
  if (node3.type.name === "tableOfAuthorities") {
196422
198236
  const commandNodeId = node3.attrs?.sdBlockId;
196423
- const nodeId = resolvePublicReferenceBlockNodeId(node3, pos);
198237
+ const nodeId = resolvePublicReferenceBlockNodeId(node3, occurrenceIndex);
198238
+ occurrenceIndex += 1;
196424
198239
  results.push({
196425
198240
  node: node3,
196426
198241
  pos,
@@ -222677,7 +224492,7 @@ var Node$13 = class Node$14 {
222677
224492
  domAvailabilityCache = false;
222678
224493
  return false;
222679
224494
  }
222680
- }, summaryVersion = "1.20.0", nodeKeys, markKeys, transformListsInCopiedContent = (html3) => {
224495
+ }, summaryVersion = "1.21.0", nodeKeys, markKeys, transformListsInCopiedContent = (html3) => {
222681
224496
  const container = document.createElement("div");
222682
224497
  container.innerHTML = html3;
222683
224498
  const result = [];
@@ -222982,7 +224797,7 @@ var Node$13 = class Node$14 {
222982
224797
  console.warn("Failed to initialize developer tools:", error);
222983
224798
  }
222984
224799
  }
222985
- }, BLANK_DOCX_BASE64 = `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`, BLANK_DOCX_DATA_URI, TAB_LEADER_TO_SEPARATOR, SEPARATOR_TO_TAB_LEADER, DEFAULT_TOC_CONFIG, SWITCH_PATTERN$1, BULLET_FORMATS$1, LOCK_MODE_TO_SDT_LOCK, SNIPPET_PADDING = 30, DUAL_KIND_TYPES, KNOWN_BLOCK_PM_NODE_TYPES, KNOWN_INLINE_PM_NODE_TYPES, MAX_PATTERN_LENGTH = 1024, TOGGLE_MARK_SPECS, CORE_MARK_NAMES, METADATA_MARK_NAMES, CSS_NAMED_COLORS, V3_PREFIX = "text:", V4_PREFIX = "text:v4:", HEADING_STYLE_DEPTH, BULLET_FORMATS, MARK_PRIORITY, remarkProcessor, DEFAULT_UNFLATTEN_LISTS = true, HEADING_STYLE_PATTERN, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, REQUIRED_HELPERS, SCHEMA_NODE_GATES, schemaGatedIds, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, registry, VALID_CREATE_POSITIONS, REF_HANDLERS, STEP_INTERACTION_MATRIX, MATRIX_EXEMPT_OPS, DEFAULT_INLINE_POLICY, CORE_SET_MARK_KEYS, BOOLEAN_INLINE_MARK_KEYS, TEXT_STYLE_KEYS, PRESERVE_RUN_PROPERTIES_META_KEY = "sdPreserveRunPropertiesKeys", CONTENT_CAPABILITIES, INLINE_CAPABILITIES, SDT_LOCK_TO_LOCK_MODE, BODY_LOCATOR2, STUB_WHERE, EMPTY_RESOLUTION, CONTAINER_NODE_TYPES, VALID_EDGE_NODE_TYPES3, FALLBACK_STORE_KEY = "__documentApiComments", STYLES_PART = "word/styles.xml", PROPERTIES_KEY_BY_CHANNEL, XML_PATH_BY_CHANNEL2, UNDERLINE_API_TO_STORAGE, UNDERLINE_STORAGE_TO_API, HEX_SUBKEYS_BY_PROPERTY, PARAGRAPH_NODE_TYPES, TEXT_STYLE_CHARACTER_STYLE_ATTR = "styleId", DIRECT_FORMATTING_MARK_NAMES, ALIGNMENT_TO_JUSTIFICATION, SUPPORTED_DELETE_NODE_TYPES3, REJECTED_DELETE_NODE_TYPES3, TEXT_PREVIEW_MAX_LENGTH = 80, RANGE_DELETE_SAFE_NODE_TYPES, HEADING_PATTERN, INDENT_PER_LEVEL_TWIPS = 720, HANGING_INDENT_TWIPS = 360, ORDERED_PRESET_CONFIG, BULLET_PRESET_CONFIG, PRESET_TEMPLATES, LevelFormattingHelpers, PRESET_KIND_MAP, NUMBERING_PART = "word/numbering.xml", DEFAULT_PRESET_FOR_KIND, _setValueDelegate, PREVIEW_TEXT_MAX_LENGTH = 2000, BLOCK_PREVIEW_MAX_LENGTH = 200, EDGE_NODE_TYPES$1, POINTS_TO_PIXELS, POINTS_TO_TWIPS = 20, PIXELS_TO_TWIPS, DEFAULT_TABLE_GRID_WIDTH_TWIPS = 1500, SETTINGS_PART = "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 = `
224800
+ }, 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, HEADING_STYLE_PATTERN, REQUIRED_COMMANDS, VALID_CAPABILITY_REASON_CODES, REQUIRED_HELPERS, SCHEMA_NODE_GATES, schemaGatedIds, SUPPORTED_NON_UNIFORM_STRATEGIES, SUPPORTED_SET_MARKS, REGEX_MAX_PATTERN_LENGTH = 1024, registry, VALID_CREATE_POSITIONS, REF_HANDLERS, STEP_INTERACTION_MATRIX, MATRIX_EXEMPT_OPS, DEFAULT_INLINE_POLICY, CORE_SET_MARK_KEYS, BOOLEAN_INLINE_MARK_KEYS, TEXT_STYLE_KEYS, PRESERVE_RUN_PROPERTIES_META_KEY = "sdPreserveRunPropertiesKeys", CONTENT_CAPABILITIES, INLINE_CAPABILITIES, SDT_LOCK_TO_LOCK_MODE, BODY_LOCATOR2, STUB_WHERE, EMPTY_RESOLUTION, CONTAINER_NODE_TYPES, VALID_EDGE_NODE_TYPES3, FALLBACK_STORE_KEY = "__documentApiComments", STYLES_PART = "word/styles.xml", PROPERTIES_KEY_BY_CHANNEL, XML_PATH_BY_CHANNEL2, UNDERLINE_API_TO_STORAGE, UNDERLINE_STORAGE_TO_API, HEX_SUBKEYS_BY_PROPERTY, PARAGRAPH_NODE_TYPES, TEXT_STYLE_CHARACTER_STYLE_ATTR = "styleId", DIRECT_FORMATTING_MARK_NAMES, ALIGNMENT_TO_JUSTIFICATION, SUPPORTED_DELETE_NODE_TYPES3, REJECTED_DELETE_NODE_TYPES3, TEXT_PREVIEW_MAX_LENGTH = 80, RANGE_DELETE_SAFE_NODE_TYPES, HEADING_PATTERN, INDENT_PER_LEVEL_TWIPS = 720, HANGING_INDENT_TWIPS = 360, ORDERED_PRESET_CONFIG, BULLET_PRESET_CONFIG, PRESET_TEMPLATES, LevelFormattingHelpers, PRESET_KIND_MAP, NUMBERING_PART = "word/numbering.xml", DEFAULT_PRESET_FOR_KIND, _setValueDelegate, PREVIEW_TEXT_MAX_LENGTH = 2000, BLOCK_PREVIEW_MAX_LENGTH = 200, EDGE_NODE_TYPES$1, POINTS_TO_PIXELS, POINTS_TO_TWIPS = 20, PIXELS_TO_TWIPS, DEFAULT_TABLE_GRID_WIDTH_TWIPS = 1500, SETTINGS_PART = "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.21.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 = `
222986
224801
  `, TEXT_RANGE_LEAF_SEP = `
222987
224802
  `, DecorationBridge = class DecorationBridge2 {
222988
224803
  #applied = /* @__PURE__ */ new WeakMap;
@@ -232041,9 +233856,9 @@ var Node$13 = class Node$14 {
232041
233856
  return;
232042
233857
  console.log(...args$1);
232043
233858
  }, 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;
232044
- var init_src_Ddr7dM19_es = __esm(() => {
233859
+ var init_src_H6TB6E1W_es = __esm(() => {
232045
233860
  init_rolldown_runtime_B2q5OVn9_es();
232046
- init_SuperConverter_CQNRAk8k_es();
233861
+ init_SuperConverter_V_8WDjnK_es();
232047
233862
  init_jszip_ChlR43oI_es();
232048
233863
  init_uuid_qzgm05fK_es();
232049
233864
  init_constants_CMPtQbp7_es();
@@ -265359,8 +267174,8 @@ var init_zipper_DqXT7uTa_es = __esm(() => {
265359
267174
 
265360
267175
  // ../../packages/superdoc/dist/super-editor.es.js
265361
267176
  var init_super_editor_es = __esm(() => {
265362
- init_src_Ddr7dM19_es();
265363
- init_SuperConverter_CQNRAk8k_es();
267177
+ init_src_H6TB6E1W_es();
267178
+ init_SuperConverter_V_8WDjnK_es();
265364
267179
  init_jszip_ChlR43oI_es();
265365
267180
  init_xml_js_DLE8mr0n_es();
265366
267181
  init_constants_CMPtQbp7_es();
@@ -319874,7 +321689,7 @@ function validateNodeAddress(value2, path2 = "address") {
319874
321689
  }
319875
321690
  throw new CliError("VALIDATION_ERROR", `${path2}.kind must be one of: block, inline.`);
319876
321691
  }
319877
- function validateListItemAddress(value2, path2 = "target") {
321692
+ function validateListItemAddress3(value2, path2 = "target") {
319878
321693
  const address2 = validateNodeAddress(value2, path2);
319879
321694
  if (address2.kind !== "block" || address2.nodeType !== "listItem") {
319880
321695
  throw new CliError("VALIDATION_ERROR", `${path2} must be a block listItem address.`);
@@ -319899,7 +321714,7 @@ function validateListsListQuery(value2, path2 = "query") {
319899
321714
  }
319900
321715
  if (obj.kind != null) {
319901
321716
  const kind2 = expectString(obj.kind, `${path2}.kind`);
319902
- if (!LIST_KINDS2.has(kind2)) {
321717
+ if (!LIST_KINDS3.has(kind2)) {
319903
321718
  throw new CliError("VALIDATION_ERROR", `${path2}.kind must be "ordered" or "bullet".`);
319904
321719
  }
319905
321720
  query3.kind = kind2;
@@ -319976,7 +321791,7 @@ function validateQuerySelect(value2, path2) {
319976
321791
  if (type2 === "node") {
319977
321792
  expectOnlyKeys(obj, ["type", "nodeType", "kind"], path2);
319978
321793
  const nodeType2 = obj.nodeType != null ? String(obj.nodeType) : undefined;
319979
- if (obj.kind != null && !NODE_KINDS2.has(obj.kind)) {
321794
+ if (obj.kind != null && !NODE_KINDS3.has(obj.kind)) {
319980
321795
  throw new CliError("VALIDATION_ERROR", `${path2}.kind must be "block" or "inline".`);
319981
321796
  }
319982
321797
  return {
@@ -320015,16 +321830,16 @@ function validateQuery(value2, path2 = "query") {
320015
321830
  }
320016
321831
  return query3;
320017
321832
  }
320018
- var NODE_TYPES3, BLOCK_NODE_TYPES3, NODE_KINDS2, LIST_KINDS2, LIST_INSERT_POSITIONS2;
321833
+ var NODE_TYPES3, BLOCK_NODE_TYPES3, NODE_KINDS3, LIST_KINDS3, LIST_INSERT_POSITIONS3;
320019
321834
  var init_validate = __esm(() => {
320020
321835
  init_errors();
320021
321836
  init_guards();
320022
321837
  init_src();
320023
321838
  NODE_TYPES3 = new Set(NODE_TYPES);
320024
321839
  BLOCK_NODE_TYPES3 = new Set(BLOCK_NODE_TYPES);
320025
- NODE_KINDS2 = new Set(NODE_KINDS);
320026
- LIST_KINDS2 = new Set(LIST_KINDS);
320027
- LIST_INSERT_POSITIONS2 = new Set(LIST_INSERT_POSITIONS);
321840
+ NODE_KINDS3 = new Set(NODE_KINDS);
321841
+ LIST_KINDS3 = new Set(LIST_KINDS);
321842
+ LIST_INSERT_POSITIONS3 = new Set(LIST_INSERT_POSITIONS);
320028
321843
  });
320029
321844
 
320030
321845
  // src/lib/find-query.ts
@@ -323622,7 +325437,7 @@ async function resolveListItemAddressPayload(parsed, baseName = "target") {
323622
325437
  const payload = await resolveJsonInput(parsed, baseName);
323623
325438
  if (!payload)
323624
325439
  return;
323625
- return validateListItemAddress(payload, baseName);
325440
+ return validateListItemAddress3(payload, baseName);
323626
325441
  }
323627
325442
  async function requireListItemAddressPayload(parsed, commandName, baseName = "target") {
323628
325443
  const payload = await resolveListItemAddressPayload(parsed, baseName);