@kubohiroya/turbowarp-extension-data-editor 0.2.0 → 0.2.2

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 (68) hide show
  1. package/README.md +9 -6
  2. package/dist/build-info.json +3 -3
  3. package/dist/fixed-input-branches.d.ts +12 -0
  4. package/dist/fixed-input-branches.js +180 -0
  5. package/dist/fixed-input-editor.d.ts +39 -0
  6. package/dist/fixed-input-editor.js +538 -0
  7. package/dist/fixed-input-schema.d.ts +15 -0
  8. package/dist/fixed-input-schema.js +21 -0
  9. package/dist/fixed-input-snapshot.d.ts +7 -0
  10. package/dist/fixed-input-snapshot.js +180 -0
  11. package/dist/fixed-input-types.d.ts +138 -0
  12. package/dist/fixed-input-types.js +23 -0
  13. package/dist/fixed-input-view.d.ts +14 -0
  14. package/dist/fixed-input-view.js +168 -0
  15. package/dist/index.d.ts +6 -0
  16. package/dist/index.js +4 -0
  17. package/dist/react.css +168 -0
  18. package/dist/react.d.ts +8 -0
  19. package/dist/react.js +19 -2
  20. package/dist/registry.d.ts +4 -0
  21. package/dist/registry.js +45 -7
  22. package/dist/rjsf-templates.d.ts +11 -0
  23. package/dist/rjsf-templates.js +129 -0
  24. package/dist/rjsf.d.ts +24 -1
  25. package/dist/rjsf.js +35 -3
  26. package/dist/schema.d.ts +2 -0
  27. package/dist/schema.js +1 -0
  28. package/dist/session.d.ts +3 -1
  29. package/dist/session.js +205 -7
  30. package/dist/turbowarp/bridge.d.ts +2 -1
  31. package/dist/turbowarp/bridge.js +37 -5
  32. package/dist/turbowarp/fixed-fields.d.ts +82 -0
  33. package/dist/turbowarp/fixed-fields.js +311 -0
  34. package/dist/turbowarp/fixed-transaction.d.ts +18 -0
  35. package/dist/turbowarp/fixed-transaction.js +460 -0
  36. package/dist/turbowarp/host.d.ts +3 -8
  37. package/dist/turbowarp/host.js +68 -1
  38. package/dist/turbowarp.d.ts +4 -0
  39. package/dist/turbowarp.js +1 -1
  40. package/dist/types.d.ts +5 -0
  41. package/dist/view.js +4 -0
  42. package/dist/webpack4/index.js +22 -5
  43. package/dist/webpack4/metafile.json +592 -299
  44. package/dist/webpack4/react.js +20 -6
  45. package/dist/webpack4/react.js.map +2 -2
  46. package/dist/webpack4/rjsf.js +450 -60
  47. package/dist/webpack4/rjsf.js.map +4 -4
  48. package/dist/webpack4/schema.js +6 -3
  49. package/dist/webpack4/{shared-KQOUMWJ4.js → shared-75QIWLZY.js} +1129 -1244
  50. package/dist/webpack4/{shared-KQOUMWJ4.js.map → shared-75QIWLZY.js.map} +4 -4
  51. package/dist/webpack4/shared-FYUILHED.js +1 -0
  52. package/dist/webpack4/shared-GQLPPRT2.js +210 -0
  53. package/dist/webpack4/shared-GQLPPRT2.js.map +7 -0
  54. package/dist/webpack4/shared-P2JBRZFP.js +2206 -0
  55. package/dist/webpack4/shared-P2JBRZFP.js.map +7 -0
  56. package/dist/webpack4/turbowarp.js +913 -9
  57. package/dist/webpack4/turbowarp.js.map +4 -4
  58. package/docs/api.md +7 -0
  59. package/docs/fixed-input-contracts.md +77 -0
  60. package/docs/package-distribution.md +5 -0
  61. package/docs/stage-2-publication.ja.md +6 -0
  62. package/package.json +2 -1
  63. package/dist/webpack4/shared-CQB3NG2A.js +0 -1
  64. package/dist/webpack4/shared-MRPGBJIH.js +0 -75
  65. package/dist/webpack4/shared-MRPGBJIH.js.map +0 -7
  66. package/dist/webpack4/shared-N6YQE2X6.js +0 -1029
  67. package/dist/webpack4/shared-N6YQE2X6.js.map +0 -7
  68. /package/dist/webpack4/{shared-CQB3NG2A.js.map → shared-FYUILHED.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../data.js", "../fixed-input-branches.js", "../fixed-input-snapshot.js", "../fixed-input-editor.js", "../fixed-input-types.js", "../view.js", "../prepared-save.js", "../session.js", "../subtree.js", "../descendants.js", "../registry.js"],
4
+ "sourcesContent": ["export function isLiteral(value) {\n return typeof value === 'string' || typeof value === 'boolean' ||\n (typeof value === 'number' && Number.isFinite(value));\n}\n/** Reject values whose meaning would change during JSON persistence. */\nexport function cloneJson(value) {\n const ancestors = new Set();\n const visit = (item, depth) => {\n if (depth > 100)\n throw new TypeError('JSON data exceeds the maximum depth.');\n if (item === null || isLiteral(item))\n return item;\n if (typeof item !== 'object')\n throw new TypeError('Expected JSON-compatible data.');\n if (ancestors.has(item))\n throw new TypeError('JSON data must not contain cycles.');\n ancestors.add(item);\n try {\n if (Array.isArray(item))\n return Array.from(item, child => visit(child, depth + 1));\n const prototype = Object.getPrototypeOf(item);\n if (prototype !== Object.prototype && prototype !== null) {\n throw new TypeError('JSON objects must be plain objects.');\n }\n if (Object.getOwnPropertySymbols(item).length > 0) {\n throw new TypeError('JSON objects must not have symbol properties.');\n }\n return Object.fromEntries(Object.entries(item).map(([key, child]) => [key, visit(child, depth + 1)]));\n }\n finally {\n ancestors.delete(item);\n }\n };\n return visit(value, 0);\n}\nexport function captureReference(reference) {\n if (!reference || typeof reference.targetId !== 'string' || !reference.targetId ||\n typeof reference.blockId !== 'string' || !reference.blockId) {\n throw new TypeError('A target ID and block ID are required.');\n }\n return Object.freeze({ targetId: reference.targetId, blockId: reference.blockId });\n}\nexport function captureSnapshot(snapshot, reference) {\n if (snapshot.targetId !== reference.targetId || snapshot.blockId !== reference.blockId ||\n typeof snapshot.opcode !== 'string' || !snapshot.opcode ||\n typeof snapshot.revision !== 'string' || !snapshot.revision ||\n !snapshot.arguments || typeof snapshot.arguments !== 'object' ||\n Array.isArray(snapshot.arguments)) {\n throw new TypeError('The host returned an invalid block snapshot.');\n }\n const entries = Object.entries(snapshot.arguments).map(([name, slot]) => {\n if (!slot || (slot.kind !== 'reporter' && slot.kind !== 'literal') ||\n (slot.kind === 'literal' && !isLiteral(slot.value))) {\n throw new TypeError(`Invalid argument slot: ${name}`);\n }\n const copy = slot.kind === 'reporter'\n ? Object.freeze({ kind: 'reporter' })\n : Object.freeze({ kind: 'literal', value: slot.value });\n return [name, copy];\n });\n return Object.freeze({\n ...captureReference(reference), opcode: snapshot.opcode, revision: snapshot.revision,\n arguments: Object.freeze(Object.fromEntries(entries))\n });\n}\nexport function sameSnapshot(left, right) {\n const names = Object.keys(left.arguments);\n return left.targetId === right.targetId && left.blockId === right.blockId &&\n left.opcode === right.opcode && left.revision === right.revision &&\n names.length === Object.keys(right.arguments).length && names.every(name => {\n const a = left.arguments[name];\n const b = Object.hasOwn(right.arguments, name) ? right.arguments[name] : undefined;\n return b !== undefined && a.kind === b.kind &&\n (a.kind === 'reporter' || (b.kind === 'literal' && a.value === b.value));\n });\n}\n", "import { snapshotJson } from './schema-json.js';\nconst fail = () => { throw new TypeError('Invalid fixed branch declaration.'); };\nconst names = (value) => {\n if (!Array.isArray(value) || !value.length || value.some(item => typeof item !== 'string' || !item) ||\n new Set(value).size !== value.length)\n return fail();\n return Object.freeze(value);\n};\nconst object = (value) => {\n if (!value || typeof value !== 'object' || Array.isArray(value))\n return fail();\n return value;\n};\nconst normalize = (value, rule) => {\n var _a, _b;\n const text = ((_a = rule.normalize) === null || _a === void 0 ? void 0 : _a.trim) ? value.trim() : value;\n return ((_b = rule.normalize) === null || _b === void 0 ? void 0 : _b.lowercase) ? text.toLowerCase() : text;\n};\n/** Capture finite JSON policy once; callbacks and getters are never part of host authority. */\nexport function captureFixedBranchRules(value, dependencies, readOnlyArguments) {\n if (value === undefined)\n return Object.freeze([]);\n const captured = snapshotJson(value);\n if (!Array.isArray(captured))\n return fail();\n const selectors = new Set();\n const occupied = new Set();\n const result = [];\n for (const item of captured) {\n const rule = object(item);\n if (typeof rule.selector !== 'string' || selectors.has(rule.selector))\n return fail();\n const group = dependencies.find(dependency => dependency.selector === rule.selector);\n if (!group)\n return fail();\n for (const argument of [group.selector, ...group.dependents]) {\n if (occupied.has(argument) || dependencies.some(other => other !== group &&\n (other.selector === argument || other.dependents.includes(argument))))\n return fail();\n occupied.add(argument);\n }\n selectors.add(rule.selector);\n let normalization;\n if (rule.normalize !== undefined) {\n const input = object(rule.normalize);\n if (Object.keys(input).some(key => key !== 'trim' && key !== 'lowercase') ||\n Object.values(input).some(value => typeof value !== 'boolean'))\n return fail();\n normalization = Object.freeze({ ...input });\n }\n const shell = { selector: rule.selector, cases: [], ...(normalization ? { normalize: normalization } : {}) };\n if (!Array.isArray(rule.cases) || !rule.cases.length)\n return fail();\n const values = new Set();\n const cases = [];\n for (const input of rule.cases) {\n const branch = object(input);\n const caseValues = names(branch.values);\n const normalized = caseValues.map(value => normalize(value, shell));\n if (normalized.some(value => !value || values.has(value)))\n return fail();\n for (const value of normalized)\n values.add(value);\n if (new Set(normalized).size !== normalized.length)\n return fail();\n if (!Array.isArray(branch.activeDependents))\n return fail();\n const active = branch.activeDependents.length ? names(branch.activeDependents) : Object.freeze([]);\n if (active.some(argument => !group.dependents.includes(argument)))\n return fail();\n const requirements = [];\n if (branch.requireOnSelectorChange !== undefined) {\n if (!Array.isArray(branch.requireOnSelectorChange))\n return fail();\n const required = new Set();\n for (const input of branch.requireOnSelectorChange) {\n const requirement = object(input);\n if (typeof requirement.argument !== 'string' || !readOnlyArguments.includes(requirement.argument) ||\n required.has(requirement.argument) || (requirement.rule !== 'literal' && requirement.rule !== 'nonempty-string'))\n return fail();\n required.add(requirement.argument);\n requirements.push(Object.freeze({ argument: requirement.argument, rule: requirement.rule }));\n }\n }\n cases.push(Object.freeze({ values: caseValues, activeDependents: active,\n ...(branch.requireOnSelectorChange === undefined ? {} : { requireOnSelectorChange: Object.freeze(requirements) }) }));\n }\n result.push(Object.freeze({ ...shell, cases: Object.freeze(cases) }));\n }\n return Object.freeze(result);\n}\n/** Resolve only captured literal metadata. Reporters and unavailable fields are never evaluated. */\nexport function resolveFixedBranches(declaration, snapshot, arguments_ = snapshot.arguments) {\n var _a;\n return Object.freeze(((_a = declaration.branchRules) !== null && _a !== void 0 ? _a : []).map(rule => {\n const metadata = snapshot.fixedContext.inputs[rule.selector];\n const slot = arguments_[rule.selector];\n let status;\n if (!metadata || metadata.source === 'missing')\n status = 'missing';\n else if (metadata.source === 'reporter' || (slot === null || slot === void 0 ? void 0 : slot.kind) === 'reporter')\n status = 'reporter';\n else if ((metadata.source !== 'field' && metadata.source !== 'shadow') || metadata.role !== 'editable')\n status = 'unsupported';\n else if ((slot === null || slot === void 0 ? void 0 : slot.kind) !== 'literal' || typeof slot.value !== 'string')\n status = 'unknown';\n else {\n const value = normalize(slot.value, rule);\n const selected = rule.cases.find(branch => branch.values.some(item => normalize(item, rule) === value));\n if (selected)\n return Object.freeze({ selector: rule.selector, rule, selected,\n status: slot.value === selected.values[0] ? 'known' : 'alias', value: selected.values[0] });\n status = 'unknown';\n }\n return Object.freeze({ selector: rule.selector, rule, status });\n }));\n}\nconst writableLiteral = (snapshot, arguments_, name) => {\n var _a;\n const metadata = snapshot.fixedContext.inputs[name];\n return ((_a = arguments_[name]) === null || _a === void 0 ? void 0 : _a.kind) === 'literal' && (metadata === null || metadata === void 0 ? void 0 : metadata.role) === 'editable' &&\n (metadata.source === 'field' || metadata.source === 'shadow');\n};\nconst diagnostic = (declaration, code, argument) => Object.freeze({\n message: `Fixed branch validation failed: ${code}; contract=${JSON.stringify(declaration.contractId)}.`,\n path: `/${argument.replace(/~/g, '~0').replace(/\\//g, '~1')}`\n});\n/** Shared session/host gate. Schema and owner validation remain the prepared factory's responsibility. */\nexport function validateFixedBranchChanges(declaration, snapshot, changes) {\n var _a;\n const issues = [];\n const finalArguments = { ...snapshot.arguments };\n const changed = new Set();\n const seen = new Set();\n for (const change of changes) {\n if (seen.has(change.argument) || !['string', 'number', 'boolean'].includes(typeof change.value) || !declaration.editableArguments.includes(change.argument) ||\n !writableLiteral(snapshot, snapshot.arguments, change.argument)) {\n issues.push(diagnostic(declaration, 'disallowed-change', change.argument));\n continue;\n }\n seen.add(change.argument);\n const original = snapshot.arguments[change.argument];\n if ((original === null || original === void 0 ? void 0 : original.kind) === 'literal' && Object.is(original.value, change.value))\n continue;\n changed.add(change.argument);\n Object.defineProperty(finalArguments, change.argument, { value: { kind: 'literal', value: change.value }, enumerable: true, configurable: true });\n }\n const resolved = resolveFixedBranches(declaration, snapshot, finalArguments);\n for (const group of declaration.dependencies) {\n if (![group.selector, ...group.dependents].some(name => changed.has(name)))\n continue;\n const branch = resolved.find(item => item.selector === group.selector);\n if (!(branch === null || branch === void 0 ? void 0 : branch.selected)) {\n issues.push(diagnostic(declaration, branch ? 'selector-unavailable' : 'fixed-dependency-validation-unavailable', group.selector));\n continue;\n }\n for (const argument of group.dependents) {\n if (changed.has(argument) && !branch.selected.activeDependents.includes(argument)) {\n issues.push(diagnostic(declaration, 'inactive-change', argument));\n }\n }\n if (!changed.has(group.selector))\n continue;\n for (const argument of branch.selected.activeDependents) {\n if (!writableLiteral(snapshot, finalArguments, argument))\n issues.push(diagnostic(declaration, 'dependency-unverifiable', argument));\n }\n for (const requirement of (_a = branch.selected.requireOnSelectorChange) !== null && _a !== void 0 ? _a : []) {\n const metadata = snapshot.fixedContext.inputs[requirement.argument];\n const slot = finalArguments[requirement.argument];\n if (!metadata || metadata.role !== 'readonly' || (metadata.source !== 'field' && metadata.source !== 'shadow') || (slot === null || slot === void 0 ? void 0 : slot.kind) !== 'literal') {\n issues.push(diagnostic(declaration, 'dependency-unverifiable', requirement.argument));\n }\n else if (requirement.rule === 'nonempty-string' && (typeof slot.value !== 'string' || !slot.value.trim())) {\n issues.push(diagnostic(declaration, 'dependency-invalid', requirement.argument));\n }\n }\n }\n return Object.freeze(issues);\n}\n", "import { snapshotJson } from './schema-json.js';\nimport { captureFixedBranchRules } from './fixed-input-branches.js';\nfunction fail() { throw new TypeError('Invalid fixed-input contract or snapshot.'); }\n/** Read each own data property once; accessors and prototype values cannot supply data. */\nfunction own(value, key) {\n if (!value || typeof value !== 'object')\n return fail();\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (!descriptor || !('value' in descriptor))\n return fail();\n return descriptor.value;\n}\nfunction text(value) {\n if (typeof value !== 'string' || value.length === 0)\n return fail();\n return value;\n}\nfunction record(value) {\n if (!value || typeof value !== 'object' || Array.isArray(value))\n return fail();\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null)\n return fail();\n if (Object.getOwnPropertySymbols(value).length)\n return fail();\n return value;\n}\nfunction names(value) {\n if (!Array.isArray(value))\n return fail();\n const items = [];\n for (let i = 0; i < value.length; i++)\n items.push(text(own(value, String(i))));\n if (new Set(items).size !== items.length)\n return fail();\n return Object.freeze(items);\n}\nfunction dependencies(value, editable) {\n if (!Array.isArray(value))\n return fail();\n const selectors = new Set();\n const result = [];\n for (let i = 0; i < value.length; i++) {\n const item = record(own(value, String(i)));\n const selector = text(own(item, 'selector'));\n const dependents = names(own(item, 'dependents'));\n if (!editable.has(selector) || selectors.has(selector) || dependents.length === 0 ||\n dependents.some(name => name === selector || !editable.has(name)))\n return fail();\n selectors.add(selector);\n result.push(Object.freeze({ selector, dependents }));\n }\n return Object.freeze(result);\n}\nexport function captureFixedInputDeclaration(value) {\n const policy = Object.getOwnPropertyDescriptor(value, 'branchRules');\n if (policy && !('value' in policy))\n return fail();\n const captured = record(snapshotJson({\n contractId: own(value, 'contractId'), contractRevision: own(value, 'contractRevision'),\n editableArguments: own(value, 'editableArguments'), readOnlyArguments: own(value, 'readOnlyArguments'),\n dependencies: own(value, 'dependencies')\n }));\n const editableArguments = names(captured.editableArguments);\n const readOnlyArguments = names(captured.readOnlyArguments);\n const editable = new Set(editableArguments);\n if (editable.size === 0 || readOnlyArguments.some(name => editable.has(name)))\n return fail();\n const groups = dependencies(captured.dependencies, editable);\n const branchRules = captureFixedBranchRules(policy === null || policy === void 0 ? void 0 : policy.value, groups, readOnlyArguments);\n return Object.freeze({\n contractId: text(captured.contractId), contractRevision: text(captured.contractRevision),\n editableArguments, readOnlyArguments, dependencies: groups,\n ...((policy === null || policy === void 0 ? void 0 : policy.value) === undefined ? {} : { branchRules })\n });\n}\nexport const validateFixedInputDeclaration = captureFixedInputDeclaration;\nfunction canonical(value) {\n if (value === null || typeof value !== 'object')\n return JSON.stringify(value);\n if (Array.isArray(value))\n return `[${value.map(canonical).join(',')}]`;\n const item = value;\n return `{${Object.keys(item).sort().map(key => `${JSON.stringify(key)}:${canonical(item[key])}`).join(',')}}`;\n}\nfunction sameNames(left, right) {\n return left.length === right.length && left.every(name => right.includes(name));\n}\n/** Preserve raw literals with Object.is semantics while copying metadata as finite JSON. */\nexport function captureFixedSnapshot(value, reference, declaration) {\n record(value);\n const targetId = text(own(value, 'targetId'));\n const blockId = text(own(value, 'blockId'));\n if (reference && (targetId !== own(reference, 'targetId') || blockId !== own(reference, 'blockId')))\n return fail();\n const opcode = text(own(value, 'opcode'));\n const revision = text(own(value, 'revision'));\n const inputArguments = record(own(value, 'arguments'));\n const argumentsCopy = Object.create(null);\n for (const name of Object.keys(inputArguments)) {\n const item = record(own(inputArguments, name));\n const kind = own(item, 'kind');\n if (kind === 'reporter')\n argumentsCopy[name] = Object.freeze({ kind });\n else if (kind === 'literal') {\n const raw = own(item, 'value');\n if (typeof raw !== 'string' && typeof raw !== 'number' && typeof raw !== 'boolean')\n return fail();\n argumentsCopy[name] = Object.freeze({ kind, value: raw });\n }\n else\n return fail();\n }\n const context = record(snapshotJson(own(value, 'fixedContext')));\n const contractId = text(context.contractId);\n const contractRevision = text(context.contractRevision);\n const generation = text(context.generation);\n const readOnlyArguments = names(context.readOnlyArguments);\n const inputMetadata = record(context.inputs);\n const editable = new Set();\n const inputs = Object.create(null);\n for (const name of Object.keys(inputMetadata)) {\n const item = record(inputMetadata[name]);\n if (item.role !== 'editable' && item.role !== 'readonly')\n return fail();\n const role = item.role;\n if ((role === 'readonly') !== readOnlyArguments.includes(name))\n return fail();\n if (role === 'editable')\n editable.add(name);\n const source = item.source;\n if (source !== 'shadow' && source !== 'field' && source !== 'reporter' && source !== 'unsupported' && source !== 'missing')\n return fail();\n const slot = argumentsCopy[name];\n if ((source === 'shadow' || source === 'field') && (slot === null || slot === void 0 ? void 0 : slot.kind) !== 'literal')\n return fail();\n if (source === 'reporter' && (slot === null || slot === void 0 ? void 0 : slot.kind) !== 'reporter')\n return fail();\n if (source === 'missing' && (slot === null || slot === void 0 ? void 0 : slot.kind) === 'literal')\n return fail();\n let field;\n if (source === 'shadow' || source === 'field') {\n const capturedField = record(item.field);\n field = Object.freeze({ blockId: text(capturedField.blockId), name: text(capturedField.name), type: text(capturedField.type) });\n }\n else if (item.field !== undefined)\n return fail();\n if (item.reason !== undefined && typeof item.reason !== 'string')\n return fail();\n if ((source === 'unsupported' || source === 'missing') && !item.reason)\n return fail();\n inputs[name] = Object.freeze({ role, source, identity: text(item.identity),\n ...(field ? { field } : {}), ...(item.reason === undefined ? {} : { reason: item.reason }) });\n }\n if (readOnlyArguments.some(name => !Object.hasOwn(inputs, name)))\n return fail();\n const capturedDependencies = dependencies(context.dependencies, editable);\n if (declaration) {\n const expected = captureFixedInputDeclaration(declaration);\n if (contractId !== expected.contractId || contractRevision !== expected.contractRevision ||\n !sameNames([...editable], expected.editableArguments) || !sameNames(readOnlyArguments, expected.readOnlyArguments) ||\n canonical(capturedDependencies) !== canonical(expected.dependencies))\n return fail();\n }\n return Object.freeze({ targetId, blockId, opcode, revision, arguments: Object.freeze(argumentsCopy),\n fixedContext: Object.freeze({ contractId, contractRevision, generation, readOnlyArguments,\n dependencies: capturedDependencies, inputs: Object.freeze(inputs) }) });\n}\nexport function sameFixedSnapshot(left, right) {\n const a = captureFixedSnapshot(left);\n const b = captureFixedSnapshot(right);\n const keys = Object.keys(a.arguments);\n return a.targetId === b.targetId && a.blockId === b.blockId && a.opcode === b.opcode && a.revision === b.revision &&\n canonical(a.fixedContext) === canonical(b.fixedContext) && keys.length === Object.keys(b.arguments).length &&\n keys.every(name => {\n const x = a.arguments[name];\n const y = b.arguments[name];\n return !!y && x.kind === y.kind && (x.kind === 'reporter' || (y.kind === 'literal' && Object.is(x.value, y.value)));\n });\n}\n", "import { compileSchemaBundle } from './schema-engine.js';\nimport { isJsonRecord, snapshotJson } from './schema-json.js';\nimport { isLiteral } from './data.js';\nimport { parseFixedNumberInput } from './fixed-input-schema.js';\nimport { captureFixedInputDeclaration, captureFixedSnapshot } from './fixed-input-snapshot.js';\nimport { resolveFixedBranches, validateFixedBranchChanges } from './fixed-input-branches.js';\nfunction fixedDeclarationError() { throw new TypeError('Invalid fixed editor declaration.'); }\nfunction plainDeclaration(value) {\n if (!value || typeof value !== 'object' || Array.isArray(value) ||\n (Object.getPrototypeOf(value) !== Object.prototype && Object.getPrototypeOf(value) !== null) ||\n Object.getOwnPropertySymbols(value).length)\n fixedDeclarationError();\n}\n/** Callback-bearing declarations cannot be JSON-copied as a whole. Read own data only. */\nfunction ownData(value, key, optional = false) {\n if (!value || typeof value !== 'object')\n return fixedDeclarationError();\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (!descriptor) {\n if (optional)\n return undefined;\n return fixedDeclarationError();\n }\n if (!('value' in descriptor))\n return fixedDeclarationError();\n return descriptor.value;\n}\nfunction declarationText(value) {\n if (typeof value !== 'string' || !value)\n return fixedDeclarationError();\n return value;\n}\n/** Capture callback-bearing array elements by index, without running input iterators. */\nfunction declarationArray(value) {\n if (!Array.isArray(value) || Object.getOwnPropertySymbols(value).length)\n return fixedDeclarationError();\n const length = ownData(value, 'length');\n if (typeof length !== 'number' || !Number.isSafeInteger(length) || length < 0 || length > 100000)\n return fixedDeclarationError();\n for (const key of Object.getOwnPropertyNames(value)) {\n if (key !== 'length' && (!/^(0|[1-9][0-9]*)$/.test(key) || Number(key) >= length))\n return fixedDeclarationError();\n }\n const items = [];\n for (let i = 0; i < length; i++)\n items.push(ownData(value, String(i)));\n return Object.freeze(items);\n}\nfunction declarationJson(value) {\n try {\n return snapshotJson(value);\n }\n catch (_a) {\n return fixedDeclarationError();\n }\n}\nfunction fixedDeclaration(value) {\n try {\n return captureFixedInputDeclaration(value);\n }\n catch (_a) {\n return fixedDeclarationError();\n }\n}\nfunction captureOpcodes(value, extensionId) {\n const items = declarationJson(value);\n if (!Array.isArray(items) || !items.length || items.some(opcode => typeof opcode !== 'string' ||\n !opcode.startsWith(`${extensionId}_`) || opcode === `${extensionId}_`) || new Set(items).size !== items.length)\n return fixedDeclarationError();\n return Object.freeze(items);\n}\n/** Capture exactly the callbacks and declaration values subsequently registered. */\nexport function captureFixedInputEditorDefinition(value) {\n plainDeclaration(value);\n const apiVersion = ownData(value, 'apiVersion');\n const extensionId = declarationText(ownData(value, 'extensionId'));\n const editorId = declarationText(ownData(value, 'editorId'));\n const saveContract = ownData(value, 'saveContract');\n if (apiVersion !== 1 || saveContract !== 'prepared-fixed-v1')\n return fixedDeclarationError();\n const opcodes = captureOpcodes(ownData(value, 'opcodes'), extensionId);\n const branchRules = ownData(value, 'branchRules', true);\n const declaration = fixedDeclaration({\n contractId: declarationText(ownData(value, 'contractId')), contractRevision: declarationText(ownData(value, 'contractRevision')),\n editableArguments: ownData(value, 'editableArguments'),\n readOnlyArguments: ownData(value, 'readOnlyArguments'),\n dependencies: ownData(value, 'dependencies'),\n ...(branchRules === undefined ? {} : { branchRules: branchRules })\n });\n const read = ownData(value, 'read');\n const validate = ownData(value, 'validate');\n const createPatch = ownData(value, 'createPatch');\n const readFixed = ownData(value, 'readFixed');\n const prepareFixedSave = ownData(value, 'prepareFixedSave');\n const mount = ownData(value, 'mount', true);\n const describeFixed = ownData(value, 'describeFixed', true);\n if (typeof read !== 'function' || typeof validate !== 'function' || typeof createPatch !== 'function' ||\n typeof readFixed !== 'function' || typeof prepareFixedSave !== 'function' ||\n (mount !== undefined && typeof mount !== 'function') ||\n (describeFixed !== undefined && typeof describeFixed !== 'function'))\n return fixedDeclarationError();\n return Object.freeze({ apiVersion, extensionId, editorId, opcodes, saveContract, ...declaration,\n read: read, validate: validate, createPatch: createPatch,\n readFixed: readFixed, prepareFixedSave: prepareFixedSave,\n ...(describeFixed === undefined ? {} : { describeFixed: describeFixed }),\n ...(mount === undefined ? {} : { mount: mount }) });\n}\nfunction drain(value) {\n try {\n void Promise.prototype.then.call(value, () => undefined, () => undefined);\n }\n catch ( /* Reject arbitrary thenables without invoking then. */_a) { /* Reject arbitrary thenables without invoking then. */ }\n}\nfunction copySync(value) {\n try {\n return snapshotJson(value);\n }\n catch (error) {\n drain(value);\n throw error;\n }\n}\nfunction freeze(value) {\n if (value && typeof value === 'object' && !Object.isFrozen(value)) {\n Object.values(value).forEach(freeze);\n Object.freeze(value);\n }\n}\nfunction sameProjection(left, right) {\n if (Object.is(left, right))\n return true;\n if (left === null || right === null || typeof left !== 'object' || typeof right !== 'object')\n return false;\n if (Array.isArray(left) || Array.isArray(right)) {\n return Array.isArray(left) && Array.isArray(right) && left.length === right.length && left.every((value, index) => sameProjection(value, right[index]));\n }\n const names = Object.keys(left);\n return names.length === Object.keys(right).length && names.every(name => Object.hasOwn(right, name) && sameProjection(left[name], right[name]));\n}\nconst pointer = (name) => `/${name.replace(/~/g, '~0').replace(/\\//g, '~1')}`;\nexport function isFixedInputEditor(definition) {\n return definition.saveContract === 'prepared-fixed-v1';\n}\n/** Capture a synchronous callback result without invoking getters, iterators, or toJSON. */\nexport function captureFixedPreparedSave(definition, draft, snapshot) {\n const value = copySync(definition.prepareFixedSave(draft, snapshot));\n if (!isJsonRecord(value))\n throw new TypeError('Invalid fixed prepared save.');\n if (value.kind === 'invalid' && Array.isArray(value.issues) && value.issues.length > 0) {\n const issues = [];\n for (let i = 0; i < value.issues.length; i++) {\n const issue = value.issues[i];\n if (!isJsonRecord(issue) || typeof issue.message !== 'string' || (issue.path !== undefined && typeof issue.path !== 'string'))\n throw new TypeError('Invalid fixed issue.');\n issues.push(Object.freeze({ message: issue.message, ...(issue.path === undefined ? {} : { path: issue.path }) }));\n }\n return Object.freeze({ kind: 'invalid', issues: Object.freeze(issues) });\n }\n if (value.kind !== 'ready' || !Array.isArray(value.changes) || !isJsonRecord(value.context) ||\n typeof value.context.consumerId !== 'string' || !value.context.consumerId ||\n typeof value.context.nowMs !== 'number' || !Number.isFinite(value.context.nowMs) || !Object.hasOwn(value.context, 'settings'))\n throw new TypeError('Invalid fixed prepared save.');\n const changes = [];\n for (let i = 0; i < value.changes.length; i++) {\n const change = value.changes[i];\n if (!isJsonRecord(change) || typeof change.argument !== 'string' || !isLiteral(change.value))\n throw new TypeError('Invalid fixed change.');\n changes.push(Object.freeze({ argument: change.argument, value: change.value }));\n }\n freeze(value.context);\n return Object.freeze({ kind: 'ready', changes: Object.freeze(changes), context: value.context });\n}\n/** Fixed inputs are additive: legacy callbacks cannot accidentally save their drafts. */\nexport function createFixedInputEditor(options) {\n var _a;\n plainDeclaration(options);\n const apiVersion = ownData(options, 'apiVersion');\n const extensionId = declarationText(ownData(options, 'extensionId'));\n const editorId = declarationText(ownData(options, 'editorId'));\n const contractId = declarationText(ownData(options, 'contractId'));\n const contractRevision = declarationText(ownData(options, 'contractRevision'));\n const contextProvider = ownData(options, 'validationContext');\n const opcodes = captureOpcodes(ownData(options, 'opcodes'), extensionId);\n const inputBindings = declarationArray(ownData(options, 'bindings'));\n const readOnlyArguments = ownData(options, 'readOnlyArguments', true);\n const dependencies = ownData(options, 'dependencies', true);\n const branchPolicies = ownData(options, 'branchPolicies', true);\n if (apiVersion !== 1 || !inputBindings.length || typeof contextProvider !== 'function')\n throw new TypeError('Invalid fixed editor options.');\n const provider = contextProvider;\n const compileBinding = (binding) => {\n plainDeclaration(binding);\n const argument = declarationText(ownData(binding, 'argument'));\n const read = ownData(binding, 'read');\n const encode = ownData(binding, 'encode');\n const validateCandidate = ownData(binding, 'validateCandidate');\n const schemaBundle = declarationJson(ownData(binding, 'schemaBundle'));\n const inputControl = ownData(binding, 'control', true);\n let control;\n if (inputControl !== undefined) {\n const item = declarationJson(inputControl);\n if (!isJsonRecord(item) || !['text', 'number', 'enum', 'color'].includes(item.kind) ||\n (item.label !== undefined && typeof item.label !== 'string') ||\n (item.choices !== undefined && (!Array.isArray(item.choices) || item.choices.some(choice => !isJsonRecord(choice) || !Object.hasOwn(choice, 'value') || (choice.label !== undefined && typeof choice.label !== 'string')))))\n return fixedDeclarationError();\n freeze(item);\n control = item;\n }\n if (typeof read !== 'function' || typeof encode !== 'function' || typeof validateCandidate !== 'function')\n throw new TypeError('Invalid fixed binding callbacks.');\n const result = compileSchemaBundle(schemaBundle);\n if (result.kind !== 'compiled')\n throw new TypeError('Invalid fixed input schema.');\n freeze(schemaBundle);\n return Object.freeze({ argument, read: read, encode: encode,\n validateCandidate: validateCandidate, validator: result.validator, schemaBundle,\n ...(control === undefined ? {} : { control }) });\n };\n const bindings = inputBindings.map(compileBinding);\n const policyBindings = [];\n const policyRules = [];\n if (branchPolicies !== undefined) {\n for (const input of declarationArray(branchPolicies)) {\n plainDeclaration(input);\n const selector = declarationText(ownData(input, 'selector'));\n const normalization = ownData(input, 'normalize', true);\n const cases = [];\n const variants = [];\n for (const caseInput of declarationArray(ownData(input, 'cases'))) {\n plainDeclaration(caseInput);\n const requirements = ownData(caseInput, 'requireOnSelectorChange', true);\n const overrides = ownData(caseInput, 'bindings', true);\n cases.push({ values: declarationJson(ownData(caseInput, 'values')),\n activeDependents: declarationJson(ownData(caseInput, 'activeDependents')),\n ...(requirements === undefined ? {} : { requireOnSelectorChange: declarationJson(requirements) }) });\n variants.push(overrides === undefined ? [] : declarationArray(overrides).map(compileBinding));\n }\n policyRules.push({ selector, cases, ...(normalization === undefined ? {} : { normalize: declarationJson(normalization) }) });\n policyBindings.push(variants);\n }\n }\n const declaration = fixedDeclaration({ contractId, contractRevision,\n editableArguments: bindings.map(binding => binding.argument), readOnlyArguments: (readOnlyArguments !== null && readOnlyArguments !== void 0 ? readOnlyArguments : []),\n dependencies: (dependencies !== null && dependencies !== void 0 ? dependencies : []),\n ...(branchPolicies === undefined ? {} : { branchRules: policyRules }) });\n for (const [index, rule] of ((_a = declaration.branchRules) !== null && _a !== void 0 ? _a : []).entries()) {\n const group = declaration.dependencies.find(item => item.selector === rule.selector);\n for (const variants of policyBindings[index]) {\n if (new Set(variants.map(binding => binding.argument)).size !== variants.length ||\n variants.some(binding => !group.dependents.includes(binding.argument)))\n return fixedDeclarationError();\n }\n }\n const diagnostic = (code, argument) => Object.freeze({\n message: `Fixed input validation failed: ${code}; contract=${JSON.stringify(contractId)}${argument === undefined ? '' : `; argument=${JSON.stringify(argument)}`}.`,\n ...(argument === undefined ? {} : { path: pointer(argument) })\n });\n const literal = (snapshot, argument) => {\n var _a;\n const metadata = snapshot.fixedContext.inputs[argument];\n return ((_a = snapshot.arguments[argument]) === null || _a === void 0 ? void 0 : _a.kind) === 'literal' && (metadata === null || metadata === void 0 ? void 0 : metadata.role) === 'editable' &&\n (metadata.source === 'field' || metadata.source === 'shadow');\n };\n const project = (binding, snapshot) => {\n const slot = snapshot.arguments[binding.argument];\n if ((slot === null || slot === void 0 ? void 0 : slot.kind) !== 'literal' || !literal(snapshot, binding.argument))\n return { readOnly: true };\n try {\n return { value: copySync(binding.read(slot.value)), changed: false };\n }\n catch (_a) {\n return { readOnly: true };\n }\n };\n const entryFor = (draft, argument) => {\n const entry = isJsonRecord(draft.inputs) && Object.hasOwn(draft.inputs, argument) ? draft.inputs[argument] : undefined;\n return isJsonRecord(entry) ? entry : undefined;\n };\n const selection = (snapshot, draft) => {\n var _a;\n const arguments_ = { ...snapshot.arguments };\n if (draft)\n for (const rule of (_a = declaration.branchRules) !== null && _a !== void 0 ? _a : []) {\n const entry = entryFor(draft, rule.selector);\n if ((entry === null || entry === void 0 ? void 0 : entry.changed) === true && Object.hasOwn(entry, 'value') && isLiteral(entry.value)) {\n Object.defineProperty(arguments_, rule.selector, { value: { kind: 'literal', value: entry.value }, enumerable: true });\n }\n }\n const branches = resolveFixedBranches(declaration, snapshot, arguments_);\n const selected = new Map(bindings.map(binding => [binding.argument, binding]));\n const states = new Map();\n const unruled = new Set();\n for (const group of declaration.dependencies) {\n if (branches.some(branch => branch.selector === group.selector))\n continue;\n for (const argument of [group.selector, ...group.dependents]) {\n states.set(argument, 'readonly');\n unruled.add(argument);\n }\n }\n for (const [policyIndex, branch] of branches.entries()) {\n const group = declaration.dependencies.find(item => item.selector === branch.selector);\n if (!branch.selected) {\n for (const argument of group.dependents)\n states.set(argument, 'readonly');\n continue;\n }\n for (const argument of group.dependents)\n if (!branch.selected.activeDependents.includes(argument))\n states.set(argument, 'hidden');\n const caseIndex = branch.rule.cases.indexOf(branch.selected);\n for (const binding of policyBindings[policyIndex][caseIndex])\n selected.set(binding.argument, binding);\n }\n return { branches, bindings: [...selected.values()], states, unruled };\n };\n const initialProjection = (argument, snapshot) => {\n const binding = selection(snapshot).bindings.find(item => item.argument === argument);\n return project(binding, snapshot);\n };\n const parseEntry = (_binding, entry, original) => {\n if (original.readOnly === true) {\n if (sameProjection(original, entry))\n return { changed: false, value: null };\n if (entry.repair !== true)\n throw new TypeError();\n }\n if (!Object.hasOwn(entry, 'value') || typeof entry.changed !== 'boolean' || entry.readOnly === true)\n throw new TypeError();\n let value = copySync(entry.value);\n let token;\n if (Object.hasOwn(entry, 'buffer')) {\n if (!entry.changed || typeof entry.buffer !== 'string')\n throw new TypeError();\n const parsed = parseFixedNumberInput(entry.buffer);\n if (parsed.kind !== 'valid' || typeof value !== 'number' || !Object.is(parsed.value, value))\n throw new TypeError();\n token = parsed.token;\n value = token;\n }\n if (token === undefined && original.readOnly !== true && sameProjection(original.value, value))\n return { changed: false, value };\n if (!entry.changed)\n throw new TypeError();\n return { changed: true, value, ...(token === undefined ? {} : { token }) };\n };\n const validateExact = (binding, candidate, context, snapshot) => {\n const projectedCandidate = copySync(binding.read(candidate));\n if (binding.validator.validate(projectedCandidate, { consumerId: context.consumerId }).kind !== 'valid')\n return diagnostic('schema-data-invalid', binding.argument);\n const owner = copySync(binding.validateCandidate(candidate, context, snapshot));\n if (!Array.isArray(owner))\n throw new TypeError();\n for (const issue of owner) {\n if (!isJsonRecord(issue) || typeof issue.message !== 'string' || (issue.path !== undefined && typeof issue.path !== 'string'))\n throw new TypeError();\n }\n return owner.length ? diagnostic('owner-input-invalid', binding.argument) : undefined;\n };\n const description = (draft, snapshot) => {\n const current = selection(snapshot, draft);\n const inputs = Object.create(null);\n const issues = [];\n const changes = [];\n const describe = (argument, binding) => {\n var _a, _b, _c, _d;\n const metadata = snapshot.fixedContext.inputs[argument];\n const slot = snapshot.arguments[argument];\n const entry = entryFor(draft, argument);\n const projected = binding ? project(binding, snapshot) : undefined;\n const schema = binding === null || binding === void 0 ? void 0 : binding.schemaBundle.root.document;\n const schemaType = schema && typeof schema === 'object' && !Array.isArray(schema) ? schema.type : undefined;\n const value = (_a = entry === null || entry === void 0 ? void 0 : entry.value) !== null && _a !== void 0 ? _a : projected === null || projected === void 0 ? void 0 : projected.value;\n const valueType = schemaType === 'number' || schemaType === 'integer' ? 'number' :\n schemaType === 'string' ? 'string' : typeof value === 'number' ? 'number' : 'string';\n const explicit = binding === null || binding === void 0 ? void 0 : binding.control;\n const state = (_b = current.states.get(argument)) !== null && _b !== void 0 ? _b : (binding && literal(snapshot, argument) ? 'editable' : 'readonly');\n const schemaEnum = schema && typeof schema === 'object' && !Array.isArray(schema) ? schema.enum : undefined;\n const choices = (_c = explicit === null || explicit === void 0 ? void 0 : explicit.choices) !== null && _c !== void 0 ? _c : (Array.isArray(schemaEnum) ? schemaEnum.map(value => ({ value: value })) : undefined);\n const control = (_d = explicit === null || explicit === void 0 ? void 0 : explicit.kind) !== null && _d !== void 0 ? _d : (choices ? 'enum' : valueType === 'number' ? 'number' : 'text');\n const rawDisplay = (slot === null || slot === void 0 ? void 0 : slot.kind) === 'literal' ? String(slot.value) : undefined;\n const reason = state === 'hidden' ? 'Inactive branch; its draft is retained and is not saved.' :\n current.states.get(argument) === 'readonly' ? 'The selector is unavailable; the dependent input is read-only.' :\n state === 'readonly' ? 'This input is read-only; connected expressions are not evaluated.' : undefined;\n inputs[argument] = Object.freeze({ state, control, valueType,\n ...(rawDisplay === undefined ? {} : { rawDisplay }),\n ...((explicit === null || explicit === void 0 ? void 0 : explicit.label) === undefined ? {} : { label: explicit.label }), ...(choices === undefined ? {} : { choices }),\n ...(explicit && Object.hasOwn(explicit, 'reset') ? { reset: explicit.reset } : {}),\n ...(reason === undefined ? {} : { reason }), ...((metadata === null || metadata === void 0 ? void 0 : metadata.source) === 'reporter' ? { unverified: true } : {}) });\n if (!binding || state !== 'editable' || !entry)\n return;\n try {\n const parsed = parseEntry(binding, entry, initialProjection(argument, snapshot));\n if (!parsed.changed)\n return;\n const projection = parsed.token === undefined ? parsed.value : parseFixedNumberInput(parsed.token);\n const data = typeof projection === 'object' && projection !== null && 'kind' in projection && projection.kind === 'valid' ? projection.value : projection;\n if (binding.validator.validate(data, { consumerId: contractId }).kind !== 'valid')\n issues.push(diagnostic('schema-data-invalid', argument));\n if (isLiteral(parsed.value))\n changes.push({ argument, value: parsed.value });\n }\n catch (_e) {\n issues.push(diagnostic('fixed-input-invalid', argument));\n }\n };\n for (const binding of current.bindings)\n describe(binding.argument, binding);\n for (const argument of declaration.readOnlyArguments)\n describe(argument);\n issues.push(...validateFixedBranchChanges(declaration, snapshot, changes));\n for (const branch of current.branches) {\n if (!branch.selected || !changes.some(change => change.argument === branch.selector))\n continue;\n for (const argument of branch.selected.activeDependents) {\n if (changes.some(change => change.argument === argument))\n continue;\n const binding = current.bindings.find(binding => binding.argument === argument);\n const slot = snapshot.arguments[argument];\n if ((slot === null || slot === void 0 ? void 0 : slot.kind) !== 'literal')\n continue;\n try {\n const projected = copySync(binding.read(slot.value));\n if (binding.validator.validate(projected, { consumerId: contractId }).kind !== 'valid')\n issues.push(diagnostic('schema-data-invalid', argument));\n }\n catch (_a) {\n issues.push(diagnostic('fixed-input-invalid', argument));\n }\n }\n }\n return Object.freeze({ inputs: Object.freeze(inputs), issues: Object.freeze(issues), branches: Object.freeze(current.branches.map(({ selector, status, value }) => Object.freeze({ selector, status, ...(value === undefined ? {} : { value }) }))) });\n };\n return Object.freeze({\n apiVersion, extensionId, editorId, opcodes, ...declaration,\n saveContract: 'prepared-fixed-v1',\n read: () => { throw new TypeError('Fixed editors require a compatible host.'); },\n validate: () => [diagnostic('fixed-host-required')],\n createPatch: () => { throw new TypeError('Fixed editors require a compatible host.'); },\n readFixed: (snapshot) => {\n const inputs = {};\n for (const binding of selection(snapshot).bindings)\n Object.defineProperty(inputs, binding.argument, { value: project(binding, snapshot), enumerable: true });\n return { inputs };\n },\n describeFixed: description,\n prepareFixedSave: (draft, snapshot) => {\n const issues = [];\n const changes = [];\n let context;\n try {\n const value = copySync(provider());\n if (!isJsonRecord(value) || typeof value.consumerId !== 'string' || !value.consumerId || typeof value.nowMs !== 'number' || !Number.isFinite(value.nowMs) || !Object.hasOwn(value, 'settings'))\n throw new TypeError();\n freeze(value);\n context = value;\n }\n catch (_a) {\n return { kind: 'invalid', issues: [diagnostic('owner-context-invalid')] };\n }\n const current = selection(snapshot, draft);\n const candidates = new Map();\n const finalArguments = { ...snapshot.arguments };\n for (const binding of current.bindings) {\n const { argument } = binding;\n try {\n const entry = entryFor(draft, argument);\n if (!entry)\n throw new TypeError();\n if (current.states.get(argument) === 'hidden')\n continue;\n if (current.states.get(argument) === 'readonly') {\n if (sameProjection(project(binding, snapshot), entry))\n continue;\n if (current.unruled.has(argument)) {\n issues.push(diagnostic('fixed-dependency-validation-unavailable', argument));\n continue;\n }\n throw new TypeError();\n }\n const original = initialProjection(argument, snapshot);\n if (!literal(snapshot, argument)) {\n if (sameProjection(original, entry))\n continue;\n throw new TypeError();\n }\n const parsed = parseEntry(binding, entry, original);\n if (!parsed.changed)\n continue;\n const raw = binding.encode(parsed.value, context);\n if (!isLiteral(raw)) {\n drain(raw);\n throw new TypeError();\n }\n if (parsed.token !== undefined && raw !== parsed.token)\n throw new TypeError();\n candidates.set(argument, raw);\n Object.defineProperty(finalArguments, argument, { value: { kind: 'literal', value: raw }, enumerable: true, configurable: true });\n const slot = snapshot.arguments[argument];\n if ((slot === null || slot === void 0 ? void 0 : slot.kind) === 'literal' && !Object.is(raw, slot.value))\n changes.push(Object.freeze({ argument, value: raw }));\n }\n catch (_b) {\n issues.push(diagnostic('fixed-input-invalid', argument));\n }\n }\n issues.push(...validateFixedBranchChanges(declaration, snapshot, changes));\n const finalBranches = resolveFixedBranches(declaration, snapshot, finalArguments);\n // Encoding a selector must not silently choose a different codec from the displayed finite branch.\n for (let index = 0; index < current.branches.length; index++) {\n if (current.branches[index].selected !== finalBranches[index].selected)\n issues.push(diagnostic('selector-codec-mismatch', current.branches[index].selector));\n }\n const validateNames = new Set(candidates.keys());\n for (const branch of finalBranches)\n if (branch.selected && changes.some(change => change.argument === branch.selector)) {\n for (const argument of branch.selected.activeDependents)\n validateNames.add(argument);\n }\n const finalSnapshot = captureFixedSnapshot({ ...snapshot, arguments: finalArguments }, snapshot, declaration);\n for (const argument of validateNames) {\n const binding = current.bindings.find(binding => binding.argument === argument);\n const slot = finalArguments[argument];\n if ((slot === null || slot === void 0 ? void 0 : slot.kind) !== 'literal')\n continue;\n try {\n const issue = validateExact(binding, slot.value, context, finalSnapshot);\n if (issue)\n issues.push(issue);\n }\n catch (_c) {\n issues.push(diagnostic('fixed-input-invalid', argument));\n }\n }\n return issues.length ? { kind: 'invalid', issues } : { kind: 'ready', changes, context };\n }\n });\n}\n", "export const FIXED_INPUTS_CAPABILITY = 'fixed-inputs-v1';\n/** Inspect methods without evaluating accessor-backed capability advertisements. */\nexport function supportsFixedInputs(host) {\n const data = (object, key) => {\n let item = object;\n for (let depth = 0; item && (typeof item === 'object' || typeof item === 'function') && depth < 64; depth++) {\n const descriptor = Object.getOwnPropertyDescriptor(item, key);\n if (descriptor)\n return 'value' in descriptor ? descriptor.value : undefined;\n item = Object.getPrototypeOf(item);\n }\n return undefined;\n };\n try {\n const port = data(host, 'fixedInputs');\n return data(port, 'capability') === FIXED_INPUTS_CAPABILITY &&\n typeof data(port, 'readBlock') === 'function' && typeof data(port, 'commit') === 'function';\n }\n catch (_a) {\n return false;\n }\n}\nexport const supportsFixedInputEditing = supportsFixedInputs;\n", "var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _EditorView_unmount, _EditorView_mounting;\n/** Shared body lifetime for single-block and aggregate sessions. */\nexport class EditorView {\n constructor() {\n _EditorView_unmount.set(this, void 0);\n _EditorView_mounting.set(this, false);\n }\n mount(container, mount, owner) {\n if (owner.getState().status !== 'editing' || __classPrivateFieldGet(this, _EditorView_unmount, \"f\") || __classPrivateFieldGet(this, _EditorView_mounting, \"f\")) {\n throw new Error('The session cannot mount another view.');\n }\n if (!mount)\n throw new Error('No editor view is registered.');\n let active = true;\n const subscriptions = new Set();\n const assertMounted = () => {\n if (!active)\n throw new Error('The editor view is unmounted.');\n };\n const release = () => {\n active = false;\n for (const unsubscribe of subscriptions)\n unsubscribe();\n subscriptions.clear();\n };\n const context = Object.freeze({\n getDraft: () => owner.getDraft(),\n ...(owner.getFixedInputView ? { getFixedInputView: () => {\n assertMounted();\n return owner.getFixedInputView();\n } } : {}),\n setDraft: (draft) => { assertMounted(); owner.setDraft(draft); },\n setValidationIssues: (issues) => {\n assertMounted();\n owner.setValidationIssues(issues);\n },\n getState: () => owner.getState(),\n subscribe: (listener) => {\n assertMounted();\n const unsubscribe = owner.subscribe(() => { if (active)\n listener(); });\n const remove = () => { subscriptions.delete(remove); unsubscribe(); };\n subscriptions.add(remove);\n return remove;\n }\n });\n __classPrivateFieldSet(this, _EditorView_mounting, true, \"f\");\n let cleanup;\n try {\n cleanup = mount(container, context);\n if (typeof cleanup !== 'function')\n throw new TypeError('mount() must return a cleanup function.');\n }\n catch (error) {\n release();\n throw error;\n }\n finally {\n __classPrivateFieldSet(this, _EditorView_mounting, false, \"f\");\n }\n if (owner.getState().status !== 'editing' && owner.getState().status !== 'saving') {\n release();\n cleanup();\n return () => { };\n }\n const unmount = () => {\n if (!active)\n return;\n release();\n __classPrivateFieldSet(this, _EditorView_unmount, undefined, \"f\");\n cleanup();\n };\n __classPrivateFieldSet(this, _EditorView_unmount, unmount, \"f\");\n return unmount;\n }\n unmount() { var _a; (_a = __classPrivateFieldGet(this, _EditorView_unmount, \"f\")) === null || _a === void 0 ? void 0 : _a.call(this); }\n}\n_EditorView_unmount = new WeakMap(), _EditorView_mounting = new WeakMap();\n", "import { snapshotJson } from './schema-json.js';\nexport function isPreparedEditor(definition) {\n return definition.saveContract === 'prepared-source-v1';\n}\n/** Capture callback output before checking it; accessors and iterators never supply writes. */\nexport function capturePreparedSave(definition, draft, snapshot) {\n const output = definition.prepareSave(draft, snapshot);\n try {\n const value = snapshotJson(output);\n if (!value || typeof value !== 'object' || Array.isArray(value))\n throw new TypeError('Invalid prepared save.');\n const result = value;\n if (result.kind === 'ready' && Array.isArray(result.changes)) {\n const changes = [];\n for (let i = 0; i < result.changes.length; i++) {\n const change = result.changes[i];\n if (!change || typeof change.argument !== 'string' ||\n !(typeof change.value === 'string' || typeof change.value === 'boolean' ||\n (typeof change.value === 'number' && Number.isFinite(change.value)))) {\n throw new TypeError('Invalid prepared change.');\n }\n changes.push(Object.freeze({ argument: change.argument, value: change.value }));\n }\n return Object.freeze({ kind: 'ready', changes: Object.freeze(changes) });\n }\n if (result.kind === 'invalid' && Array.isArray(result.issues) && result.issues.length > 0) {\n const issues = [];\n for (let i = 0; i < result.issues.length; i++) {\n const issue = result.issues[i];\n if (!issue || typeof issue.message !== 'string' || (issue.path !== undefined && typeof issue.path !== 'string')) {\n throw new TypeError('Invalid prepared issue.');\n }\n issues.push(Object.freeze({ message: issue.message, ...(issue.path === undefined ? {} : { path: issue.path }) }));\n }\n return Object.freeze({ kind: 'invalid', issues: Object.freeze(issues) });\n }\n throw new TypeError('Invalid prepared save.');\n }\n catch (error) {\n // A synchronous contract never awaits foreign thenables. Drain native rejected promises.\n try {\n void Promise.prototype.then.call(output, () => undefined, () => undefined);\n }\n catch ( /* Non-promises are rejected without touching their then property. */_a) { /* Non-promises are rejected without touching their then property. */ }\n throw error;\n }\n}\n", "var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _EditorSession_instances, _EditorSession_draft, _EditorSession_status, _EditorSession_issues, _EditorSession_error, _EditorSession_listeners, _EditorSession_view, _EditorSession_definition, _EditorSession_snapshot, _EditorSession_host, _EditorSession_fixedPort, _EditorSession_isRegistered, _EditorSession_subscribeRegistrationChanges, _EditorSession_unsubscribeFixedScope, _EditorSession_unsubscribeFixedRegistration, _EditorSession_fixedSavingController, _EditorSession_saveFixed, _EditorSession_prepareChanges, _EditorSession_copyIssues, _EditorSession_copyDraft, _EditorSession_assertOpen, _EditorSession_finish, _EditorSession_notify, _EditorSession_reportObserverError;\nimport { captureReference, captureSnapshot, cloneJson, isLiteral, sameSnapshot } from './data.js';\nimport { BlockEditorConflictError } from './types.js';\nimport { EditorView } from './view.js';\nimport { isPreparedEditor, capturePreparedSave } from './prepared-save.js';\nimport { isFixedInputEditor, captureFixedPreparedSave } from './fixed-input-editor.js';\nimport { captureFixedSnapshot, sameFixedSnapshot } from './fixed-input-snapshot.js';\nimport { supportsFixedInputEditing } from './fixed-input-types.js';\nimport { snapshotJson, isJsonRecord } from './schema-json.js';\nimport { validateFixedBranchChanges } from './fixed-input-branches.js';\nexport class EditorSession {\n /** Use EditorRegistry.open() to construct sessions from a captured host snapshot. */\n constructor(definition, snapshot, host, isRegistered, subscribeRegistrationChanges) {\n _EditorSession_instances.add(this);\n _EditorSession_draft.set(this, void 0);\n _EditorSession_status.set(this, 'editing');\n _EditorSession_issues.set(this, []);\n _EditorSession_error.set(this, void 0);\n _EditorSession_listeners.set(this, new Set());\n _EditorSession_view.set(this, new EditorView());\n _EditorSession_definition.set(this, void 0);\n _EditorSession_snapshot.set(this, void 0);\n _EditorSession_host.set(this, void 0);\n _EditorSession_fixedPort.set(this, void 0);\n _EditorSession_isRegistered.set(this, void 0);\n _EditorSession_subscribeRegistrationChanges.set(this, void 0);\n _EditorSession_unsubscribeFixedScope.set(this, void 0);\n _EditorSession_unsubscribeFixedRegistration.set(this, void 0);\n _EditorSession_fixedSavingController.set(this, void 0);\n __classPrivateFieldSet(this, _EditorSession_isRegistered, isRegistered, \"f\");\n __classPrivateFieldSet(this, _EditorSession_subscribeRegistrationChanges, subscribeRegistrationChanges, \"f\");\n __classPrivateFieldSet(this, _EditorSession_definition, definition, \"f\");\n __classPrivateFieldSet(this, _EditorSession_snapshot, isFixedInputEditor(definition)\n ? captureFixedSnapshot(snapshot, captureReference(snapshot), definition)\n : captureSnapshot(snapshot, captureReference(snapshot)), \"f\");\n __classPrivateFieldSet(this, _EditorSession_host, host, \"f\");\n __classPrivateFieldSet(this, _EditorSession_fixedPort, isFixedInputEditor(definition) && supportsFixedInputEditing(host) ? host.fixedInputs : undefined, \"f\");\n if (isFixedInputEditor(definition) && !supportsFixedInputEditing(host))\n throw new TypeError('Fixed input editors require a compatible host.');\n __classPrivateFieldSet(this, _EditorSession_draft, __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_copyDraft).call(this, isFixedInputEditor(definition)\n ? definition.readFixed(__classPrivateFieldGet(this, _EditorSession_snapshot, \"f\")) : definition.read(__classPrivateFieldGet(this, _EditorSession_snapshot, \"f\"))), \"f\");\n if (isFixedInputEditor(definition) && __classPrivateFieldGet(this, _EditorSession_subscribeRegistrationChanges, \"f\")) {\n const unsubscribe = __classPrivateFieldGet(this, _EditorSession_subscribeRegistrationChanges, \"f\").call(this, () => {\n var _a;\n if (__classPrivateFieldGet(this, _EditorSession_isRegistered, \"f\") && !__classPrivateFieldGet(this, _EditorSession_isRegistered, \"f\").call(this) && (__classPrivateFieldGet(this, _EditorSession_status, \"f\") === 'editing' || __classPrivateFieldGet(this, _EditorSession_status, \"f\") === 'saving')) {\n (_a = __classPrivateFieldGet(this, _EditorSession_fixedSavingController, \"f\")) === null || _a === void 0 ? void 0 : _a.abort(new BlockEditorConflictError());\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_finish).call(this, 'disposed');\n }\n });\n if (__classPrivateFieldGet(this, _EditorSession_status, \"f\") === 'editing')\n __classPrivateFieldSet(this, _EditorSession_unsubscribeFixedRegistration, unsubscribe, \"f\");\n else\n unsubscribe();\n }\n try {\n if (isFixedInputEditor(definition) && __classPrivateFieldGet(this, _EditorSession_fixedPort, \"f\")) {\n let subscribe;\n for (let item = __classPrivateFieldGet(this, _EditorSession_fixedPort, \"f\"), depth = 0; item && depth < 64; item = Object.getPrototypeOf(item), depth++) {\n const property = Object.getOwnPropertyDescriptor(item, 'subscribeInvalidation');\n if (property) {\n subscribe = 'value' in property ? property.value : undefined;\n break;\n }\n }\n if (typeof subscribe === 'function') {\n const unsubscribe = subscribe.call(__classPrivateFieldGet(this, _EditorSession_fixedPort, \"f\"), this.reference, definition, () => {\n var _a;\n if (__classPrivateFieldGet(this, _EditorSession_status, \"f\") !== 'editing' && __classPrivateFieldGet(this, _EditorSession_status, \"f\") !== 'saving')\n return;\n (_a = __classPrivateFieldGet(this, _EditorSession_fixedSavingController, \"f\")) === null || _a === void 0 ? void 0 : _a.abort(new BlockEditorConflictError());\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_finish).call(this, 'disposed');\n });\n if (typeof unsubscribe !== 'function')\n throw new TypeError('Invalid fixed scope subscription.');\n if (__classPrivateFieldGet(this, _EditorSession_status, \"f\") === 'editing')\n __classPrivateFieldSet(this, _EditorSession_unsubscribeFixedScope, unsubscribe, \"f\");\n else\n unsubscribe();\n }\n }\n }\n catch (error) {\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_finish).call(this, 'disposed');\n throw error;\n }\n }\n /** Stable instance identity remains available after the session closes. */\n get reference() {\n return captureReference(__classPrivateFieldGet(this, _EditorSession_snapshot, \"f\"));\n }\n getDraft() {\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_assertOpen).call(this);\n return cloneJson(__classPrivateFieldGet(this, _EditorSession_draft, \"f\"));\n }\n getFixedInputView() {\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_assertOpen).call(this);\n const definition = __classPrivateFieldGet(this, _EditorSession_definition, \"f\");\n if (!isFixedInputEditor(definition) || !definition.describeFixed)\n return undefined;\n let description;\n try {\n description = definition.describeFixed(__classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_copyDraft).call(this, __classPrivateFieldGet(this, _EditorSession_draft, \"f\")), __classPrivateFieldGet(this, _EditorSession_snapshot, \"f\"));\n const captured = snapshotJson(description);\n if (!isJsonRecord(captured) || !isJsonRecord(captured.inputs) ||\n !Array.isArray(captured.issues) || !Array.isArray(captured.branches)) {\n throw new TypeError('Invalid fixed input presentation.');\n }\n const freeze = (value) => {\n if (value && typeof value === 'object') {\n Object.values(value).forEach(freeze);\n Object.freeze(value);\n }\n };\n freeze(captured);\n return captured;\n }\n catch (_a) {\n try {\n void Promise.prototype.then.call(description, () => undefined, () => undefined);\n }\n catch ( /* Never inspect arbitrary thenables. */_b) { /* Never inspect arbitrary thenables. */ }\n throw new TypeError('Invalid fixed input presentation.');\n }\n }\n setDraft(draft) {\n if (__classPrivateFieldGet(this, _EditorSession_status, \"f\") !== 'editing')\n throw new Error('The session is not editable.');\n __classPrivateFieldSet(this, _EditorSession_draft, __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_copyDraft).call(this, draft), \"f\");\n __classPrivateFieldSet(this, _EditorSession_issues, [], \"f\");\n __classPrivateFieldSet(this, _EditorSession_error, undefined, \"f\");\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_notify).call(this);\n }\n setValidationIssues(issues) {\n if (__classPrivateFieldGet(this, _EditorSession_status, \"f\") !== 'editing')\n throw new Error('The session is not editable.');\n __classPrivateFieldSet(this, _EditorSession_issues, __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_copyIssues).call(this, issues), \"f\");\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_notify).call(this);\n }\n getState() {\n return Object.freeze({\n status: __classPrivateFieldGet(this, _EditorSession_status, \"f\"), canSave: __classPrivateFieldGet(this, _EditorSession_status, \"f\") === 'editing' && __classPrivateFieldGet(this, _EditorSession_issues, \"f\").length === 0,\n issues: __classPrivateFieldGet(this, _EditorSession_issues, \"f\"), error: __classPrivateFieldGet(this, _EditorSession_error, \"f\")\n });\n }\n subscribe(listener) {\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_assertOpen).call(this);\n __classPrivateFieldGet(this, _EditorSession_listeners, \"f\").add(listener);\n return () => { __classPrivateFieldGet(this, _EditorSession_listeners, \"f\").delete(listener); };\n }\n mount(container) {\n return __classPrivateFieldGet(this, _EditorSession_view, \"f\").mount(container, __classPrivateFieldGet(this, _EditorSession_definition, \"f\").mount, this);\n }\n async save() {\n if (__classPrivateFieldGet(this, _EditorSession_status, \"f\") === 'saving')\n return { status: 'busy' };\n if (__classPrivateFieldGet(this, _EditorSession_status, \"f\") !== 'editing')\n return { status: 'closed' };\n __classPrivateFieldSet(this, _EditorSession_status, 'saving', \"f\");\n __classPrivateFieldSet(this, _EditorSession_issues, [], \"f\");\n __classPrivateFieldSet(this, _EditorSession_error, undefined, \"f\");\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_notify).call(this);\n try {\n if (__classPrivateFieldGet(this, _EditorSession_isRegistered, \"f\") && !__classPrivateFieldGet(this, _EditorSession_isRegistered, \"f\").call(this))\n throw new BlockEditorConflictError('The source editor registration expired.');\n if (isFixedInputEditor(__classPrivateFieldGet(this, _EditorSession_definition, \"f\")))\n return await __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_saveFixed).call(this);\n const prepared = isPreparedEditor(__classPrivateFieldGet(this, _EditorSession_definition, \"f\"))\n ? capturePreparedSave(__classPrivateFieldGet(this, _EditorSession_definition, \"f\"), cloneJson(__classPrivateFieldGet(this, _EditorSession_draft, \"f\")), __classPrivateFieldGet(this, _EditorSession_snapshot, \"f\")) : undefined;\n const issues = prepared ? (prepared.kind === 'invalid' ? prepared.issues : [])\n : await __classPrivateFieldGet(this, _EditorSession_definition, \"f\").validate(cloneJson(__classPrivateFieldGet(this, _EditorSession_draft, \"f\")), __classPrivateFieldGet(this, _EditorSession_snapshot, \"f\"));\n if (!Array.isArray(issues))\n throw new TypeError('validate() must return an issue array.');\n if (issues.length > 0) {\n __classPrivateFieldSet(this, _EditorSession_issues, __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_copyIssues).call(this, issues), \"f\");\n return { status: 'invalid', issues: __classPrivateFieldGet(this, _EditorSession_issues, \"f\") };\n }\n const changes = __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_prepareChanges).call(this, (prepared === null || prepared === void 0 ? void 0 : prepared.kind) === 'ready' ? prepared.changes\n : __classPrivateFieldGet(this, _EditorSession_definition, \"f\").createPatch(cloneJson(__classPrivateFieldGet(this, _EditorSession_draft, \"f\")), __classPrivateFieldGet(this, _EditorSession_snapshot, \"f\")));\n if (__classPrivateFieldGet(this, _EditorSession_isRegistered, \"f\") && !__classPrivateFieldGet(this, _EditorSession_isRegistered, \"f\").call(this))\n throw new BlockEditorConflictError('The source editor registration expired.');\n const current = __classPrivateFieldGet(this, _EditorSession_host, \"f\").readBlock(__classPrivateFieldGet(this, _EditorSession_snapshot, \"f\"));\n if (!current || !sameSnapshot(__classPrivateFieldGet(this, _EditorSession_snapshot, \"f\"), captureSnapshot(current, __classPrivateFieldGet(this, _EditorSession_snapshot, \"f\")))) {\n throw new BlockEditorConflictError();\n }\n if (__classPrivateFieldGet(this, _EditorSession_isRegistered, \"f\") && !__classPrivateFieldGet(this, _EditorSession_isRegistered, \"f\").call(this))\n throw new BlockEditorConflictError('The source editor registration expired.');\n if (changes.length > 0) {\n await __classPrivateFieldGet(this, _EditorSession_host, \"f\").commit(Object.freeze({ expected: __classPrivateFieldGet(this, _EditorSession_snapshot, \"f\"), changes }));\n }\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_finish).call(this, 'saved');\n return { status: 'saved', changed: changes.length > 0 };\n }\n catch (error) {\n __classPrivateFieldSet(this, _EditorSession_error, error, \"f\");\n return error instanceof BlockEditorConflictError\n ? { status: 'conflict', error } : { status: 'failed', error };\n }\n finally {\n if (__classPrivateFieldGet(this, _EditorSession_status, \"f\") === 'saving') {\n __classPrivateFieldSet(this, _EditorSession_status, 'editing', \"f\");\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_notify).call(this);\n }\n }\n }\n /** Closing is refused while saving; the host must keep the modal open. */\n cancel() {\n if (__classPrivateFieldGet(this, _EditorSession_status, \"f\") !== 'editing')\n return false;\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_finish).call(this, 'cancelled');\n return true;\n }\n dispose() {\n if (__classPrivateFieldGet(this, _EditorSession_status, \"f\") === 'saving')\n return false;\n if (__classPrivateFieldGet(this, _EditorSession_status, \"f\") === 'editing')\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_finish).call(this, 'disposed');\n return true;\n }\n}\n_EditorSession_draft = new WeakMap(), _EditorSession_status = new WeakMap(), _EditorSession_issues = new WeakMap(), _EditorSession_error = new WeakMap(), _EditorSession_listeners = new WeakMap(), _EditorSession_view = new WeakMap(), _EditorSession_definition = new WeakMap(), _EditorSession_snapshot = new WeakMap(), _EditorSession_host = new WeakMap(), _EditorSession_fixedPort = new WeakMap(), _EditorSession_isRegistered = new WeakMap(), _EditorSession_subscribeRegistrationChanges = new WeakMap(), _EditorSession_unsubscribeFixedScope = new WeakMap(), _EditorSession_unsubscribeFixedRegistration = new WeakMap(), _EditorSession_fixedSavingController = new WeakMap(), _EditorSession_instances = new WeakSet(), _EditorSession_saveFixed = async function _EditorSession_saveFixed() {\n var _a;\n const definition = __classPrivateFieldGet(this, _EditorSession_definition, \"f\");\n if (!isFixedInputEditor(definition))\n throw new TypeError('Fixed input capability is unavailable.');\n if (!supportsFixedInputEditing(__classPrivateFieldGet(this, _EditorSession_host, \"f\")) || __classPrivateFieldGet(this, _EditorSession_host, \"f\").fixedInputs !== __classPrivateFieldGet(this, _EditorSession_fixedPort, \"f\")) {\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_finish).call(this, 'disposed');\n throw new BlockEditorConflictError('The fixed input capability changed.');\n }\n const snapshot = __classPrivateFieldGet(this, _EditorSession_snapshot, \"f\");\n const prepared = captureFixedPreparedSave(definition, __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_copyDraft).call(this, __classPrivateFieldGet(this, _EditorSession_draft, \"f\")), snapshot);\n if (__classPrivateFieldGet(this, _EditorSession_status, \"f\") !== 'saving')\n throw new BlockEditorConflictError();\n if (prepared.kind === 'invalid') {\n __classPrivateFieldSet(this, _EditorSession_issues, __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_copyIssues).call(this, prepared.issues), \"f\");\n return { status: 'invalid', issues: __classPrivateFieldGet(this, _EditorSession_issues, \"f\") };\n }\n const changes = __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_prepareChanges).call(this, prepared.changes);\n const port = __classPrivateFieldGet(this, _EditorSession_host, \"f\").fixedInputs;\n if (__classPrivateFieldGet(this, _EditorSession_isRegistered, \"f\") && !__classPrivateFieldGet(this, _EditorSession_isRegistered, \"f\").call(this))\n throw new BlockEditorConflictError('The fixed editor registration expired.');\n const current = port.readBlock(snapshot, definition);\n if (!current)\n throw new BlockEditorConflictError();\n try {\n const captured = captureFixedSnapshot(current, snapshot, definition);\n if (captured.fixedContext.generation !== snapshot.fixedContext.generation) {\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_finish).call(this, 'disposed');\n throw new BlockEditorConflictError();\n }\n if (!sameFixedSnapshot(snapshot, captured))\n throw new BlockEditorConflictError();\n }\n catch (_b) {\n throw new BlockEditorConflictError();\n }\n if (!supportsFixedInputEditing(__classPrivateFieldGet(this, _EditorSession_host, \"f\")) || __classPrivateFieldGet(this, _EditorSession_host, \"f\").fixedInputs !== port ||\n (__classPrivateFieldGet(this, _EditorSession_isRegistered, \"f\") && !__classPrivateFieldGet(this, _EditorSession_isRegistered, \"f\").call(this)))\n throw new BlockEditorConflictError('The fixed editor registration expired.');\n if (changes.length > 0) {\n const controller = new AbortController();\n __classPrivateFieldSet(this, _EditorSession_fixedSavingController, controller, \"f\");\n const context = prepared.context;\n const unsubscribe = (_a = __classPrivateFieldGet(this, _EditorSession_subscribeRegistrationChanges, \"f\")) === null || _a === void 0 ? void 0 : _a.call(this, () => {\n if (__classPrivateFieldGet(this, _EditorSession_isRegistered, \"f\") && !__classPrivateFieldGet(this, _EditorSession_isRegistered, \"f\").call(this))\n controller.abort(new BlockEditorConflictError('The fixed editor registration expired.'));\n });\n try {\n if (__classPrivateFieldGet(this, _EditorSession_isRegistered, \"f\") && !__classPrivateFieldGet(this, _EditorSession_isRegistered, \"f\").call(this))\n throw new BlockEditorConflictError('The fixed editor registration expired.');\n await port.commit(Object.freeze({ expected: snapshot, changes, context, signal: controller.signal }));\n if (controller.signal.aborted)\n throw new BlockEditorConflictError('The fixed editor registration expired.');\n }\n catch (error) {\n if (controller.signal.aborted)\n throw new BlockEditorConflictError('The fixed editor registration expired.');\n throw error;\n }\n finally {\n unsubscribe === null || unsubscribe === void 0 ? void 0 : unsubscribe();\n __classPrivateFieldSet(this, _EditorSession_fixedSavingController, undefined, \"f\");\n }\n }\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_finish).call(this, 'saved');\n return { status: 'saved', changed: changes.length > 0 };\n}, _EditorSession_prepareChanges = function _EditorSession_prepareChanges(patch) {\n if (!Array.isArray(patch))\n throw new TypeError('createPatch() must return an array.');\n const seen = new Set();\n const changes = [];\n for (const change of patch) {\n if (!change || !__classPrivateFieldGet(this, _EditorSession_definition, \"f\").editableArguments.includes(change.argument) ||\n seen.has(change.argument) || !isLiteral(change.value)) {\n throw new TypeError('Patch contains an invalid, duplicate or disallowed argument.');\n }\n seen.add(change.argument);\n const slot = Object.hasOwn(__classPrivateFieldGet(this, _EditorSession_snapshot, \"f\").arguments, change.argument)\n ? __classPrivateFieldGet(this, _EditorSession_snapshot, \"f\").arguments[change.argument] : undefined;\n if (!slot || slot.kind !== 'literal') {\n throw new TypeError('Only existing literal arguments can be changed.');\n }\n if (isFixedInputEditor(__classPrivateFieldGet(this, _EditorSession_definition, \"f\"))) {\n const metadata = __classPrivateFieldGet(this, _EditorSession_snapshot, \"f\").fixedContext.inputs[change.argument];\n if (!metadata || metadata.role !== 'editable' || (metadata.source !== 'field' && metadata.source !== 'shadow'))\n throw new TypeError('Fixed patches require editable literal fields.');\n if (!Object.is(slot.value, change.value)) {\n changes.push(Object.freeze({ argument: change.argument, value: change.value }));\n }\n }\n else if (slot.value !== change.value)\n changes.push(Object.freeze({ ...change }));\n }\n if (isFixedInputEditor(__classPrivateFieldGet(this, _EditorSession_definition, \"f\")) && validateFixedBranchChanges(__classPrivateFieldGet(this, _EditorSession_definition, \"f\"), __classPrivateFieldGet(this, _EditorSession_snapshot, \"f\"), changes).length)\n throw new TypeError('Fixed dependency validation is unavailable.');\n return Object.freeze(changes);\n}, _EditorSession_copyIssues = function _EditorSession_copyIssues(issues) {\n if (isFixedInputEditor(__classPrivateFieldGet(this, _EditorSession_definition, \"f\")))\n issues = snapshotJson(issues);\n if (!Array.isArray(issues))\n throw new TypeError('Expected a validation issue array.');\n return Object.freeze(issues.map(issue => {\n if (!issue || typeof issue.message !== 'string' ||\n (issue.path !== undefined && typeof issue.path !== 'string')) {\n throw new TypeError('Invalid validation issue.');\n }\n return Object.freeze({ ...issue });\n }));\n}, _EditorSession_copyDraft = function _EditorSession_copyDraft(draft) {\n if (!draft || typeof draft !== 'object' || Array.isArray(draft)) {\n throw new TypeError('The editor draft must be a JSON object.');\n }\n if (!isFixedInputEditor(__classPrivateFieldGet(this, _EditorSession_definition, \"f\")))\n return cloneJson(draft);\n try {\n return snapshotJson(draft);\n }\n catch (error) {\n try {\n void Promise.prototype.then.call(draft, () => undefined, () => undefined);\n }\n catch ( /* Synchronous fixed drafts never inspect arbitrary thenables. */_a) { /* Synchronous fixed drafts never inspect arbitrary thenables. */ }\n throw error;\n }\n}, _EditorSession_assertOpen = function _EditorSession_assertOpen() {\n if (__classPrivateFieldGet(this, _EditorSession_status, \"f\") !== 'editing' && __classPrivateFieldGet(this, _EditorSession_status, \"f\") !== 'saving') {\n throw new Error('The session is closed.');\n }\n}, _EditorSession_finish = function _EditorSession_finish(status) {\n __classPrivateFieldSet(this, _EditorSession_status, status, \"f\");\n __classPrivateFieldSet(this, _EditorSession_draft, {}, \"f\");\n const unsubscribe = __classPrivateFieldGet(this, _EditorSession_unsubscribeFixedScope, \"f\");\n __classPrivateFieldSet(this, _EditorSession_unsubscribeFixedScope, undefined, \"f\");\n try {\n unsubscribe === null || unsubscribe === void 0 ? void 0 : unsubscribe();\n }\n catch (error) {\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_reportObserverError).call(this, error);\n }\n const unsubscribeRegistration = __classPrivateFieldGet(this, _EditorSession_unsubscribeFixedRegistration, \"f\");\n __classPrivateFieldSet(this, _EditorSession_unsubscribeFixedRegistration, undefined, \"f\");\n try {\n unsubscribeRegistration === null || unsubscribeRegistration === void 0 ? void 0 : unsubscribeRegistration();\n }\n catch (error) {\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_reportObserverError).call(this, error);\n }\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_notify).call(this);\n try {\n __classPrivateFieldGet(this, _EditorSession_view, \"f\").unmount();\n }\n catch (error) {\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_reportObserverError).call(this, error);\n }\n __classPrivateFieldGet(this, _EditorSession_listeners, \"f\").clear();\n}, _EditorSession_notify = function _EditorSession_notify() {\n for (const listener of [...__classPrivateFieldGet(this, _EditorSession_listeners, \"f\")]) {\n try {\n listener();\n }\n catch (error) {\n __classPrivateFieldGet(this, _EditorSession_instances, \"m\", _EditorSession_reportObserverError).call(this, error);\n }\n }\n}, _EditorSession_reportObserverError = function _EditorSession_reportObserverError(error) {\n // A view failure must not turn a completed host commit into a failed save.\n console.error('Block editor view callback failed:', error);\n};\n", "import { captureReference, captureSnapshot, sameSnapshot } from './data.js';\nimport { BlockEditorStructureError, DEFAULT_DESCENDANT_LIMITS } from './descendant-types.js';\nexport function descendantLimits(limits = {}) {\n const result = { ...DEFAULT_DESCENDANT_LIMITS, ...limits };\n if (!Number.isSafeInteger(result.maxDepth) || result.maxDepth < 0 || result.maxDepth > DEFAULT_DESCENDANT_LIMITS.maxDepth ||\n !Number.isSafeInteger(result.maxNodes) || result.maxNodes < 1 || result.maxNodes > DEFAULT_DESCENDANT_LIMITS.maxNodes) {\n throw new BlockEditorStructureError('Limits must be integers: depth 0\u201332, nodes 1\u2013500.', 'limit');\n }\n return Object.freeze(result);\n}\n/** Validate the host's complete graph before any editor callback sees it. */\nexport function captureSubtree(source, reference, limits) {\n const invalid = (message) => {\n throw new BlockEditorStructureError(message, 'invalid-structure');\n };\n if (!source || source.targetId !== reference.targetId || source.blockId !== reference.blockId ||\n typeof source.generation !== 'string' || !source.generation || !Array.isArray(source.nodes) ||\n source.nodes.length === 0)\n invalid('The host returned an invalid subtree snapshot.');\n if (source.nodes.length > limits.maxNodes) {\n throw new BlockEditorStructureError('The subtree exceeds the node limit.', 'limit');\n }\n const entries = new Map();\n let edges = 0;\n for (const node of source.nodes) {\n if (!(node === null || node === void 0 ? void 0 : node.block) || !Array.isArray(node.branches))\n invalid('Invalid subtree node.');\n const block = (() => {\n try {\n return captureSnapshot(node.block, { targetId: reference.targetId, blockId: node.block.blockId });\n }\n catch (_a) {\n return invalid('Invalid subtree block snapshot or target identity.');\n }\n })();\n if (entries.has(block.blockId))\n invalid('Duplicate block ID in subtree.');\n const inputs = new Set();\n const branches = node.branches.map(branch => {\n if (!branch || typeof branch.input !== 'string' || !branch.input || inputs.has(branch.input) ||\n !Array.isArray(branch.blockIds))\n invalid('Invalid or duplicate statement input.');\n inputs.add(branch.input);\n edges += branch.blockIds.length;\n if (edges >= source.nodes.length)\n invalid('Subtree connections contain a cycle or duplicate parent.');\n const blockIds = branch.blockIds.map(id => {\n if (typeof id !== 'string' || !id)\n invalid('Invalid statement block ID.');\n return id;\n });\n return Object.freeze({ input: branch.input, blockIds: Object.freeze(blockIds) });\n });\n entries.set(block.blockId, Object.freeze({ block, branches: Object.freeze(branches) }));\n }\n const paths = new Map();\n const ordered = [];\n const stack = [{ id: reference.blockId, path: Object.freeze([]) }];\n while (stack.length) {\n const { id, path } = stack.pop();\n if (paths.has(id))\n throw new BlockEditorStructureError('Cycle or repeated subtree node.', 'cycle');\n if (path.length > limits.maxDepth) {\n throw new BlockEditorStructureError('The subtree exceeds the depth limit.', 'limit');\n }\n const node = entries.get(id);\n if (!node)\n invalid(`Missing subtree node: ${id}`);\n paths.set(id, path);\n ordered.push(node);\n for (let branchIndex = node.branches.length - 1; branchIndex >= 0; branchIndex--) {\n const branch = node.branches[branchIndex];\n for (let index = branch.blockIds.length - 1; index >= 0; index--) {\n stack.push({ id: branch.blockIds[index], path: Object.freeze([\n ...path, Object.freeze({ blockId: id, input: branch.input, index })\n ]) });\n }\n }\n }\n if (paths.size !== entries.size)\n invalid('Subtree includes disconnected or out-of-scope nodes.');\n return {\n snapshot: Object.freeze({\n ...captureReference(reference), generation: source.generation, nodes: Object.freeze(ordered)\n }), paths\n };\n}\nexport function sameSubtree(left, right) {\n return left.targetId === right.targetId && left.blockId === right.blockId &&\n left.generation === right.generation && left.nodes.length === right.nodes.length &&\n left.nodes.every((node, index) => {\n const other = right.nodes[index];\n return sameSnapshot(node.block, other.block) && node.branches.length === other.branches.length &&\n node.branches.every((branch, branchIndex) => {\n const b = other.branches[branchIndex];\n return branch.input === b.input && branch.blockIds.length === b.blockIds.length &&\n branch.blockIds.every((id, i) => id === b.blockIds[i]);\n });\n });\n}\n", "var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _DescendantSession_instances, _DescendantSession_snapshot, _DescendantSession_host, _DescendantSession_limits, _DescendantSession_lookup, _DescendantSession_bindings, _DescendantSession_records, _DescendantSession_nodes, _DescendantSession_listeners, _DescendantSession_detach, _DescendantSession_abort, _DescendantSession_status, _DescendantSession_committing, _DescendantSession_error, _DescendantSession_createRecord, _DescendantSession_isOpen, _DescendantSession_closedSaveResult, _DescendantSession_assertOpen, _DescendantSession_assertEditable, _DescendantSession_bindingsCurrent, _DescendantSession_checkBindings, _DescendantSession_assertSaving, _DescendantSession_notify, _DescendantSession_watch, _DescendantSession_finish;\nimport { captureReference, cloneJson, isLiteral } from './data.js';\nimport { BlockEditorConflictError } from './types.js';\nimport { DescendantNodeError } from './descendant-types.js';\nimport { captureSubtree, sameSubtree } from './subtree.js';\nimport { EditorView } from './view.js';\nfunction copyDraft(draft) {\n if (!draft || typeof draft !== 'object' || Array.isArray(draft)) {\n throw new TypeError('The editor draft must be a JSON object.');\n }\n return cloneJson(draft);\n}\nfunction copyIssues(issues) {\n if (!Array.isArray(issues))\n throw new TypeError('Expected a validation issue array.');\n return Object.freeze(issues.map(issue => {\n if (!issue || typeof issue.message !== 'string' ||\n (issue.path !== undefined && typeof issue.path !== 'string')) {\n throw new TypeError('Invalid validation issue.');\n }\n return Object.freeze({ message: issue.message, ...(issue.path === undefined ? {} : { path: issue.path }) });\n }));\n}\nfunction observe(listeners) {\n for (const listener of [...listeners]) {\n try {\n listener();\n }\n catch (error) {\n report(error);\n }\n }\n}\nfunction report(error) {\n console.error('Block editor view callback failed:', error);\n}\n/** Stop waiting immediately on invalidation; late resolutions/rejections stay handled. */\nfunction abortable(value, signal) {\n return new Promise((resolve, reject) => {\n const abort = () => reject(signal.reason);\n signal.addEventListener('abort', abort, { once: true });\n Promise.resolve(value).then(resolve, reject).finally(() => signal.removeEventListener('abort', abort));\n if (signal.aborted) {\n signal.removeEventListener('abort', abort);\n abort();\n }\n });\n}\n/** Aggregate draft/validation only. The negotiated host owns the atomic write. */\nexport class DescendantSession {\n /** Use EditorRegistry.openDescendants() to negotiate and capture the scope. */\n constructor(captured, host, lookup, subscribeRegistry, limits) {\n _DescendantSession_instances.add(this);\n _DescendantSession_snapshot.set(this, void 0);\n _DescendantSession_host.set(this, void 0);\n _DescendantSession_limits.set(this, void 0);\n _DescendantSession_lookup.set(this, void 0);\n _DescendantSession_bindings.set(this, new Map());\n _DescendantSession_records.set(this, new Map());\n _DescendantSession_nodes.set(this, void 0);\n _DescendantSession_listeners.set(this, new Set());\n _DescendantSession_detach.set(this, new Set());\n _DescendantSession_abort.set(this, new AbortController());\n _DescendantSession_status.set(this, 'editing');\n _DescendantSession_committing.set(this, false);\n _DescendantSession_error.set(this, void 0);\n __classPrivateFieldSet(this, _DescendantSession_snapshot, captured.snapshot, \"f\");\n __classPrivateFieldSet(this, _DescendantSession_host, host, \"f\");\n __classPrivateFieldSet(this, _DescendantSession_lookup, lookup, \"f\");\n __classPrivateFieldSet(this, _DescendantSession_limits, limits, \"f\");\n for (const node of captured.snapshot.nodes)\n __classPrivateFieldGet(this, _DescendantSession_bindings, \"f\").set(node.block.opcode, lookup(node.block.opcode));\n __classPrivateFieldSet(this, _DescendantSession_nodes, Object.freeze(captured.snapshot.nodes.map(node => {\n const definition = __classPrivateFieldGet(this, _DescendantSession_bindings, \"f\").get(node.block.opcode);\n const descriptor = Object.freeze({\n reference: captureReference(node.block), opcode: node.block.opcode,\n inputPath: captured.paths.get(node.block.blockId),\n ...(definition ? { editor: Object.freeze({\n apiVersion: definition.apiVersion, extensionId: definition.extensionId,\n editorId: definition.editorId, opcodes: definition.opcodes,\n editableArguments: definition.editableArguments\n }) } : {})\n });\n if (definition) {\n try {\n __classPrivateFieldGet(this, _DescendantSession_records, \"f\").set(node.block.blockId, __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_createRecord).call(this, descriptor, definition, node.block));\n }\n catch (cause) {\n throw new DescendantNodeError(descriptor.reference, descriptor.inputPath, cause);\n }\n }\n return descriptor;\n })), \"f\");\n try {\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_watch).call(this, () => subscribeRegistry(() => {\n if (!__classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_bindingsCurrent).call(this))\n this.invalidate(new BlockEditorConflictError('An editor registration changed.'));\n }));\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_checkBindings).call(this);\n if (host.subscribeInvalidation) {\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_watch).call(this, () => host.subscribeInvalidation(this.reference, reason => this.invalidate(reason)));\n }\n }\n catch (error) {\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_finish).call(this, 'disposed');\n throw error;\n }\n }\n get reference() { return captureReference(__classPrivateFieldGet(this, _DescendantSession_snapshot, \"f\")); }\n get generation() { return __classPrivateFieldGet(this, _DescendantSession_snapshot, \"f\").generation; }\n getNodes() { return __classPrivateFieldGet(this, _DescendantSession_nodes, \"f\"); }\n getEditor(blockId) { var _a; return (_a = __classPrivateFieldGet(this, _DescendantSession_records, \"f\").get(blockId)) === null || _a === void 0 ? void 0 : _a.editor; }\n getState() {\n const issues = Object.freeze([...__classPrivateFieldGet(this, _DescendantSession_records, \"f\").values()].flatMap(record => record.issues.map(issue => Object.freeze({ ...issue, reference: record.descriptor.reference, inputPath: record.descriptor.inputPath }))));\n return Object.freeze({ status: __classPrivateFieldGet(this, _DescendantSession_status, \"f\"),\n canSave: __classPrivateFieldGet(this, _DescendantSession_status, \"f\") === 'editing' && issues.length === 0, issues, error: __classPrivateFieldGet(this, _DescendantSession_error, \"f\") });\n }\n subscribe(listener) {\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_assertOpen).call(this);\n __classPrivateFieldGet(this, _DescendantSession_listeners, \"f\").add(listener);\n return () => { __classPrivateFieldGet(this, _DescendantSession_listeners, \"f\").delete(listener); };\n }\n async save() {\n if (__classPrivateFieldGet(this, _DescendantSession_status, \"f\") === 'saving')\n return { status: 'busy' };\n if (__classPrivateFieldGet(this, _DescendantSession_status, \"f\") !== 'editing')\n return { status: 'closed' };\n __classPrivateFieldSet(this, _DescendantSession_status, 'saving', \"f\");\n __classPrivateFieldSet(this, _DescendantSession_error, undefined, \"f\");\n for (const record of __classPrivateFieldGet(this, _DescendantSession_records, \"f\").values())\n record.issues = [];\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_notify).call(this);\n try {\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_assertSaving).call(this);\n const prepared = new Map();\n for (const record of __classPrivateFieldGet(this, _DescendantSession_records, \"f\").values()) {\n try {\n const result = isPreparedEditor(record.definition)\n ? capturePreparedSave(record.definition, cloneJson(record.draft), record.snapshot) : undefined;\n if (result)\n prepared.set(record.snapshot.blockId, result);\n const issues = result ? (result.kind === 'invalid' ? result.issues : [])\n : await abortable(record.definition.validate(cloneJson(record.draft), record.snapshot), __classPrivateFieldGet(this, _DescendantSession_abort, \"f\").signal);\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_assertSaving).call(this);\n record.issues = copyIssues(issues);\n }\n catch (cause) {\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_assertSaving).call(this);\n throw new DescendantNodeError(record.descriptor.reference, record.descriptor.inputPath, cause);\n }\n }\n const issues = this.getState().issues;\n if (issues.length)\n return { status: 'invalid', issues };\n const changes = [];\n const destinations = new Set();\n for (const record of __classPrivateFieldGet(this, _DescendantSession_records, \"f\").values()) {\n try {\n const result = prepared.get(record.snapshot.blockId);\n const patch = (result === null || result === void 0 ? void 0 : result.kind) === 'ready' ? result.changes\n : record.definition.createPatch(cloneJson(record.draft), record.snapshot);\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_assertSaving).call(this);\n if (!Array.isArray(patch))\n throw new TypeError('createPatch() must return an array.');\n for (const change of patch) {\n if (!change || !record.definition.editableArguments.includes(change.argument) || !isLiteral(change.value)) {\n throw new TypeError('Patch contains an invalid or disallowed argument.');\n }\n const destination = JSON.stringify([record.snapshot.blockId, change.argument]);\n if (destinations.has(destination))\n throw new TypeError('Duplicate subtree write destination.');\n destinations.add(destination);\n const slot = Object.hasOwn(record.snapshot.arguments, change.argument)\n ? record.snapshot.arguments[change.argument] : undefined;\n if ((slot === null || slot === void 0 ? void 0 : slot.kind) !== 'literal')\n throw new TypeError('Only existing literal arguments can be changed.');\n if (slot.value !== change.value)\n changes.push(Object.freeze({\n blockId: record.snapshot.blockId, argument: change.argument, value: change.value\n }));\n }\n }\n catch (cause) {\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_assertSaving).call(this);\n throw new DescendantNodeError(record.descriptor.reference, record.descriptor.inputPath, cause);\n }\n }\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_assertSaving).call(this);\n const live = __classPrivateFieldGet(this, _DescendantSession_host, \"f\").readSubtree(this.reference);\n let matches = false;\n if (live) {\n try {\n matches = sameSubtree(__classPrivateFieldGet(this, _DescendantSession_snapshot, \"f\"), captureSubtree(live, this.reference, __classPrivateFieldGet(this, _DescendantSession_limits, \"f\")).snapshot);\n }\n catch ( /* A malformed current graph is also a conflict with the captured scope. */_a) { /* A malformed current graph is also a conflict with the captured scope. */ }\n }\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_assertSaving).call(this);\n if (!matches)\n throw new BlockEditorConflictError('The subtree changed or is no longer editable.');\n if (changes.length) {\n __classPrivateFieldSet(this, _DescendantSession_committing, true, \"f\");\n await abortable(__classPrivateFieldGet(this, _DescendantSession_host, \"f\").commitSubtree(Object.freeze({\n expected: __classPrivateFieldGet(this, _DescendantSession_snapshot, \"f\"), changes: Object.freeze(changes), signal: __classPrivateFieldGet(this, _DescendantSession_abort, \"f\").signal\n })), __classPrivateFieldGet(this, _DescendantSession_abort, \"f\").signal);\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_assertSaving).call(this);\n }\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_finish).call(this, 'saved');\n return { status: 'saved', changed: changes.length > 0 };\n }\n catch (error) {\n if (!__classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_isOpen).call(this))\n return __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_closedSaveResult).call(this);\n __classPrivateFieldSet(this, _DescendantSession_error, error, \"f\");\n return error instanceof BlockEditorConflictError ? { status: 'conflict', error } : { status: 'failed', error };\n }\n finally {\n __classPrivateFieldSet(this, _DescendantSession_committing, false, \"f\");\n if (__classPrivateFieldGet(this, _DescendantSession_status, \"f\") === 'saving') {\n __classPrivateFieldSet(this, _DescendantSession_status, 'editing', \"f\");\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_notify).call(this);\n }\n }\n }\n /** Validation may be cancelled; an already dispatched commit must finish atomically. */\n cancel() {\n if (!__classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_isOpen).call(this) || __classPrivateFieldGet(this, _DescendantSession_committing, \"f\"))\n return false;\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_finish).call(this, 'cancelled');\n return true;\n }\n dispose() {\n if (__classPrivateFieldGet(this, _DescendantSession_committing, \"f\") && __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_isOpen).call(this))\n return false;\n if (__classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_isOpen).call(this))\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_finish).call(this, 'disposed');\n return true;\n }\n /** The host must observe the abort signal before any deferred write. */\n invalidate(reason = new BlockEditorConflictError('The subtree session was invalidated.')) {\n if (!__classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_isOpen).call(this))\n return false;\n __classPrivateFieldSet(this, _DescendantSession_error, reason, \"f\");\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_finish).call(this, 'invalidated');\n return true;\n }\n}\n_DescendantSession_snapshot = new WeakMap(), _DescendantSession_host = new WeakMap(), _DescendantSession_limits = new WeakMap(), _DescendantSession_lookup = new WeakMap(), _DescendantSession_bindings = new WeakMap(), _DescendantSession_records = new WeakMap(), _DescendantSession_nodes = new WeakMap(), _DescendantSession_listeners = new WeakMap(), _DescendantSession_detach = new WeakMap(), _DescendantSession_abort = new WeakMap(), _DescendantSession_status = new WeakMap(), _DescendantSession_committing = new WeakMap(), _DescendantSession_error = new WeakMap(), _DescendantSession_instances = new WeakSet(), _DescendantSession_createRecord = function _DescendantSession_createRecord(descriptor, definition, snapshot) {\n const view = new EditorView();\n const listeners = new Set();\n const editor = Object.freeze({\n reference: descriptor.reference,\n getDraft: () => { __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_assertOpen).call(this); return cloneJson(record.draft); },\n setDraft: (draft) => {\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_assertEditable).call(this);\n record.draft = copyDraft(draft);\n record.issues = [];\n __classPrivateFieldSet(this, _DescendantSession_error, undefined, \"f\");\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_notify).call(this, record);\n },\n setValidationIssues: (issues) => {\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_assertEditable).call(this);\n record.issues = copyIssues(issues);\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_notify).call(this, record);\n },\n getState: () => Object.freeze({\n status: __classPrivateFieldGet(this, _DescendantSession_status, \"f\") === 'invalidated' ? 'disposed' : __classPrivateFieldGet(this, _DescendantSession_status, \"f\"),\n canSave: __classPrivateFieldGet(this, _DescendantSession_status, \"f\") === 'editing' && record.issues.length === 0,\n issues: record.issues, error: __classPrivateFieldGet(this, _DescendantSession_error, \"f\")\n }),\n subscribe: (listener) => {\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_assertOpen).call(this);\n listeners.add(listener);\n return () => { listeners.delete(listener); };\n },\n mount: (container) => view.mount(container, definition.mount, editor)\n });\n const record = { descriptor, definition, snapshot, view, listeners, editor,\n draft: copyDraft(definition.read(snapshot)), issues: [] };\n return record;\n}, _DescendantSession_isOpen = function _DescendantSession_isOpen() { return __classPrivateFieldGet(this, _DescendantSession_status, \"f\") === 'editing' || __classPrivateFieldGet(this, _DescendantSession_status, \"f\") === 'saving'; }, _DescendantSession_closedSaveResult = function _DescendantSession_closedSaveResult() {\n return __classPrivateFieldGet(this, _DescendantSession_status, \"f\") === 'invalidated' ? { status: 'invalidated' } : { status: 'closed' };\n}, _DescendantSession_assertOpen = function _DescendantSession_assertOpen() { if (!__classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_isOpen).call(this))\n throw new Error('The session is closed.'); }, _DescendantSession_assertEditable = function _DescendantSession_assertEditable() { if (__classPrivateFieldGet(this, _DescendantSession_status, \"f\") !== 'editing')\n throw new Error('The session is not editable.'); }, _DescendantSession_bindingsCurrent = function _DescendantSession_bindingsCurrent() {\n return [...__classPrivateFieldGet(this, _DescendantSession_bindings, \"f\")].every(([opcode, definition]) => __classPrivateFieldGet(this, _DescendantSession_lookup, \"f\").call(this, opcode) === definition);\n}, _DescendantSession_checkBindings = function _DescendantSession_checkBindings() {\n if (!__classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_bindingsCurrent).call(this))\n throw new BlockEditorConflictError('An editor registration changed.');\n}, _DescendantSession_assertSaving = function _DescendantSession_assertSaving() {\n if (__classPrivateFieldGet(this, _DescendantSession_status, \"f\") !== 'saving')\n throw new Error('The save was cancelled or invalidated.');\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_checkBindings).call(this);\n}, _DescendantSession_notify = function _DescendantSession_notify(record) {\n if (record)\n observe(record.listeners);\n else\n for (const node of __classPrivateFieldGet(this, _DescendantSession_records, \"f\").values())\n observe(node.listeners);\n observe(__classPrivateFieldGet(this, _DescendantSession_listeners, \"f\"));\n}, _DescendantSession_watch = function _DescendantSession_watch(subscribe) {\n const detach = subscribe();\n if (typeof detach !== 'function')\n throw new TypeError('Invalidation subscriptions must return a cleanup function.');\n if (__classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_isOpen).call(this))\n __classPrivateFieldGet(this, _DescendantSession_detach, \"f\").add(detach);\n else\n detach();\n}, _DescendantSession_finish = function _DescendantSession_finish(status) {\n __classPrivateFieldSet(this, _DescendantSession_status, status, \"f\");\n __classPrivateFieldGet(this, _DescendantSession_abort, \"f\").abort(__classPrivateFieldGet(this, _DescendantSession_error, \"f\"));\n __classPrivateFieldGet(this, _DescendantSession_instances, \"m\", _DescendantSession_notify).call(this);\n for (const record of __classPrivateFieldGet(this, _DescendantSession_records, \"f\").values()) {\n try {\n record.view.unmount();\n }\n catch (error) {\n report(error);\n }\n record.draft = {};\n record.issues = [];\n record.listeners.clear();\n }\n for (const detach of __classPrivateFieldGet(this, _DescendantSession_detach, \"f\")) {\n try {\n detach();\n }\n catch (error) {\n report(error);\n }\n }\n __classPrivateFieldGet(this, _DescendantSession_detach, \"f\").clear();\n __classPrivateFieldGet(this, _DescendantSession_listeners, \"f\").clear();\n};\nimport { isPreparedEditor, capturePreparedSave } from './prepared-save.js';\n", "var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _EditorRegistry_instances, _EditorRegistry_editors, _EditorRegistry_opcodes, _EditorRegistry_fixedDeclarations, _EditorRegistry_changes, _EditorRegistry_register, _EditorRegistry_notifyChanges;\nimport { captureReference, captureSnapshot } from './data.js';\nimport { EditorSession } from './session.js';\nimport { DescendantSession } from './descendants.js';\nimport { supportsDescendantEditing } from './descendant-types.js';\nimport { captureSubtree, descendantLimits } from './subtree.js';\nimport { EDITOR_API_VERSION } from './types.js';\nimport { isPreparedEditor } from './prepared-save.js';\nimport { isFixedInputEditor, captureFixedInputEditorDefinition } from './fixed-input-editor.js';\nimport { captureFixedInputDeclaration, captureFixedSnapshot } from './fixed-input-snapshot.js';\nimport { supportsFixedInputEditing } from './fixed-input-types.js';\nexport class EditorRegistry {\n constructor() {\n _EditorRegistry_instances.add(this);\n _EditorRegistry_editors.set(this, new Map());\n _EditorRegistry_opcodes.set(this, new Map());\n _EditorRegistry_fixedDeclarations.set(this, new Map());\n _EditorRegistry_changes.set(this, new Set());\n }\n register(definition) {\n if (isFixedInputEditor(definition))\n throw new TypeError('Fixed input editors require registerFixed().');\n if (isPreparedEditor(definition))\n throw new TypeError('Prepared editors require registerPrepared().');\n return __classPrivateFieldGet(this, _EditorRegistry_instances, \"m\", _EditorRegistry_register).call(this, definition);\n }\n registerPrepared(definition) {\n if (!isPreparedEditor(definition) || typeof definition.prepareSave !== 'function') {\n throw new TypeError('Expected a prepared source editor.');\n }\n return __classPrivateFieldGet(this, _EditorRegistry_instances, \"m\", _EditorRegistry_register).call(this, definition);\n }\n registerFixed(definition) {\n return __classPrivateFieldGet(this, _EditorRegistry_instances, \"m\", _EditorRegistry_register).call(this, captureFixedInputEditorDefinition(definition));\n }\n resolve(opcode) {\n const entry = __classPrivateFieldGet(this, _EditorRegistry_opcodes, \"f\").get(opcode);\n if (!entry)\n return undefined;\n return Object.freeze({\n apiVersion: entry.apiVersion, extensionId: entry.extensionId, editorId: entry.editorId,\n opcodes: entry.opcodes, editableArguments: entry.editableArguments\n });\n }\n /** Stable, callback-free authority for this exact registration, never caller metadata. */\n resolveFixed(opcode) {\n const entry = __classPrivateFieldGet(this, _EditorRegistry_opcodes, \"f\").get(opcode);\n return entry ? __classPrivateFieldGet(this, _EditorRegistry_fixedDeclarations, \"f\").get(entry) : undefined;\n }\n open(reference, host) {\n const capturedReference = captureReference(reference);\n const live = host.readBlock(capturedReference);\n if (!live)\n return undefined;\n const entry = __classPrivateFieldGet(this, _EditorRegistry_opcodes, \"f\").get(live.opcode);\n if (!entry) {\n // Preserve legacy snapshot validation even when no editor is registered.\n captureSnapshot(live, capturedReference);\n return undefined;\n }\n if (isFixedInputEditor(entry)) {\n if (!supportsFixedInputEditing(host))\n return undefined;\n const fixed = host.fixedInputs.readBlock(capturedReference, entry);\n if (!fixed || fixed.opcode !== live.opcode)\n return undefined;\n const snapshot = captureFixedSnapshot(fixed, capturedReference, entry);\n return new EditorSession(entry, snapshot, host, () => __classPrivateFieldGet(this, _EditorRegistry_opcodes, \"f\").get(snapshot.opcode) === entry, listener => {\n __classPrivateFieldGet(this, _EditorRegistry_changes, \"f\").add(listener);\n return () => { __classPrivateFieldGet(this, _EditorRegistry_changes, \"f\").delete(listener); };\n });\n }\n const snapshot = captureSnapshot(live, capturedReference);\n return new EditorSession(entry, snapshot, host, isPreparedEditor(entry)\n ? () => __classPrivateFieldGet(this, _EditorRegistry_opcodes, \"f\").get(snapshot.opcode) === entry : undefined);\n }\n openDescendants(reference, host, limits) {\n if (!supportsDescendantEditing(host))\n return undefined;\n const port = host.descendants;\n const capturedReference = captureReference(reference);\n const resolvedLimits = descendantLimits(limits);\n const live = port.readSubtree(capturedReference);\n if (!live)\n return undefined;\n const captured = captureSubtree(live, capturedReference, resolvedLimits);\n const root = __classPrivateFieldGet(this, _EditorRegistry_opcodes, \"f\").get(captured.snapshot.nodes[0].block.opcode);\n if (!root || isFixedInputEditor(root))\n return undefined;\n return new DescendantSession(captured, port, opcode => {\n const entry = __classPrivateFieldGet(this, _EditorRegistry_opcodes, \"f\").get(opcode);\n return entry && !isFixedInputEditor(entry) ? entry : undefined;\n }, listener => {\n __classPrivateFieldGet(this, _EditorRegistry_changes, \"f\").add(listener);\n return () => { __classPrivateFieldGet(this, _EditorRegistry_changes, \"f\").delete(listener); };\n }, resolvedLimits);\n }\n}\n_EditorRegistry_editors = new WeakMap(), _EditorRegistry_opcodes = new WeakMap(), _EditorRegistry_fixedDeclarations = new WeakMap(), _EditorRegistry_changes = new WeakMap(), _EditorRegistry_instances = new WeakSet(), _EditorRegistry_register = function _EditorRegistry_register(definition) {\n if (definition.apiVersion !== EDITOR_API_VERSION)\n throw new TypeError('Unsupported editor API version.');\n if (!/^[a-z0-9]+$/i.test(definition.extensionId) ||\n !/^[a-z0-9][a-z0-9._-]*$/i.test(definition.editorId)) {\n throw new TypeError('Invalid extension ID or editor ID.');\n }\n if (!Array.isArray(definition.opcodes) || definition.opcodes.length === 0 ||\n new Set(definition.opcodes).size !== definition.opcodes.length ||\n definition.opcodes.some(opcode => typeof opcode !== 'string' ||\n !opcode.startsWith(`${definition.extensionId}_`) || opcode === `${definition.extensionId}_`)) {\n throw new TypeError('Expected distinct full opcodes belonging to the extension.');\n }\n if (!Array.isArray(definition.editableArguments) ||\n new Set(definition.editableArguments).size !== definition.editableArguments.length ||\n definition.editableArguments.some(name => typeof name !== 'string' || !name)) {\n throw new TypeError('Expected distinct editable argument names.');\n }\n if (typeof definition.read !== 'function' || typeof definition.validate !== 'function' ||\n typeof definition.createPatch !== 'function' ||\n (definition.mount !== undefined && typeof definition.mount !== 'function')) {\n throw new TypeError('Invalid editor callbacks.');\n }\n const key = JSON.stringify([definition.extensionId, definition.editorId]);\n if (__classPrivateFieldGet(this, _EditorRegistry_editors, \"f\").has(key) || definition.opcodes.some(opcode => __classPrivateFieldGet(this, _EditorRegistry_opcodes, \"f\").has(opcode))) {\n throw new Error('The editor ID or an opcode is already registered.');\n }\n const entry = Object.freeze({\n ...definition,\n opcodes: Object.freeze([...definition.opcodes]),\n editableArguments: Object.freeze([...definition.editableArguments])\n });\n if (isFixedInputEditor(entry))\n __classPrivateFieldGet(this, _EditorRegistry_fixedDeclarations, \"f\").set(entry, captureFixedInputDeclaration(entry));\n __classPrivateFieldGet(this, _EditorRegistry_editors, \"f\").set(key, entry);\n for (const opcode of entry.opcodes)\n __classPrivateFieldGet(this, _EditorRegistry_opcodes, \"f\").set(opcode, entry);\n __classPrivateFieldGet(this, _EditorRegistry_instances, \"m\", _EditorRegistry_notifyChanges).call(this);\n return () => {\n if (__classPrivateFieldGet(this, _EditorRegistry_editors, \"f\").get(key) !== entry)\n return;\n __classPrivateFieldGet(this, _EditorRegistry_editors, \"f\").delete(key);\n for (const opcode of entry.opcodes)\n __classPrivateFieldGet(this, _EditorRegistry_opcodes, \"f\").delete(opcode);\n __classPrivateFieldGet(this, _EditorRegistry_fixedDeclarations, \"f\").delete(entry);\n __classPrivateFieldGet(this, _EditorRegistry_instances, \"m\", _EditorRegistry_notifyChanges).call(this);\n };\n}, _EditorRegistry_notifyChanges = function _EditorRegistry_notifyChanges() {\n for (const listener of [...__classPrivateFieldGet(this, _EditorRegistry_changes, \"f\")])\n listener();\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["names", "text", "dependencies", "value", "input", "fail", "names", "fail", "names", "names", "dependencies", "diagnostic", "_a", "value", "binding", "object", "__classPrivateFieldSet", "__classPrivateFieldGet", "freeze", "_EditorSession_saveFixed", "_EditorSession_prepareChanges", "_EditorSession_copyIssues", "_EditorSession_copyDraft", "_EditorSession_assertOpen", "_EditorSession_finish", "_EditorSession_notify", "_EditorSession_reportObserverError", "__classPrivateFieldSet", "__classPrivateFieldGet", "record", "issues", "_DescendantSession_createRecord", "_DescendantSession_isOpen", "_DescendantSession_closedSaveResult", "_DescendantSession_assertOpen", "_DescendantSession_assertEditable", "_DescendantSession_bindingsCurrent", "_DescendantSession_checkBindings", "_DescendantSession_assertSaving", "_DescendantSession_notify", "_DescendantSession_watch", "_DescendantSession_finish", "__classPrivateFieldGet", "snapshot", "_EditorRegistry_register", "_EditorRegistry_notifyChanges"]
7
+ }