@carbonenginejs/runtime 0.1.0-alpha.1 → 0.1.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/global/model/CjsModel.js +3 -1
- package/dist/global/model/CjsModel.js.map +1 -1
- package/dist/global/model/document/CjsDocumentHydrator.js +5 -1
- package/dist/global/model/document/CjsDocumentHydrator.js.map +1 -1
- package/dist/global/schema/CjsSchema.js +100 -2
- package/dist/global/schema/CjsSchema.js.map +1 -1
- package/dist/global/schema/hydration.js +16 -0
- package/dist/global/schema/hydration.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/resource/CjsResMan.js +177 -4
- package/dist/resource/CjsResMan.js.map +1 -1
- package/dist/resource/format/CjsBlueReader.js +8 -1
- package/dist/resource/format/CjsBlueReader.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +23 -5
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
- package/dist/resource/index.js +2 -0
- package/dist/resource/index.js.map +1 -1
- package/dist/resource/texture/SolidColorTextureConstructor.js +46 -0
- package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -0
- package/dist/resource/texture/TriTextureRes.js +43 -0
- package/dist/resource/texture/TriTextureRes.js.map +1 -1
- package/dist/resource/texture/index.js +2 -0
- package/dist/resource/texture/index.js.map +1 -1
- package/dist/resource/texture/solidColorTexture.js +111 -0
- package/dist/resource/texture/solidColorTexture.js.map +1 -0
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +19 -8
- package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
- package/dist/trinity/eve/child/EveChildMesh.js +17 -3
- package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
- package/dist/trinity/eve/locator/EveLocatorSets.js +12 -3
- package/dist/trinity/eve/locator/EveLocatorSets.js.map +1 -1
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +15 -2
- package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
- package/dist/trinity/eve/spaceObject/IEveSpaceObject2ParentData.js +44 -52
- package/dist/trinity/eve/spaceObject/IEveSpaceObject2ParentData.js.map +1 -1
- package/docs/resource/concepts/resource-lifecycle.md +10 -8
- package/docs/resource/formats/geometry-interchange.md +50 -0
- package/docs/resource/formats/webgl/decl-io.md +241 -397
- package/docs/resource/formats/webgl/memory-structured.md +91 -128
- package/docs/resource/formats/webgl/texture-sample.md +306 -469
- package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +54 -85
- package/docs/resource/reference/classes/texture.md +11 -1
- package/docs/resource/reference/motherlode-cache.md +24 -11
- package/docs/resource/reference/queues.md +23 -1
- package/docs/trinityal/reference/classes/dropped.md +11 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsModel.js","sources":["../../../../src/global/model/CjsModel.js"],"sourcesContent":["import { coerceCarbonMathInto, coerceCarbonTypedArrayInto, exportCarbonValue, normalizeCarbonValue } from \"../schema/types/index.js\";\r\nimport { CJS_MODEL_BRAND, CjsSchema } from \"../schema/index.js\";\r\nimport { getRuntimeState } from \"../compose/runtimeState.js\";\r\nimport { CjsModelState } from \"./CjsModelState.js\";\r\nimport { CjsEventEmitter } from \"./CjsEventEmitter.js\";\r\n\r\n/**\r\n * The cross-copy brand this class stamps on every instance.\r\n *\r\n * Defined by CjsSchema and applied here. The predicate that reads it lives\r\n * there too, as `CjsSchema.isModelInstance`, because CjsModel imports CjsSchema\r\n * and the reverse is impossible — so the schema side is the only side both a\r\n * consumer and this class can reach. See its declaration for why a symbol is\r\n * what survives two copies of this package in one realm.\r\n */\r\n\r\n/**\r\n * Reports whether a value is already a live model, including one constructed by\r\n * a different copy of this package.\r\n *\r\n * Retained as the function form of `CjsSchema.isModelInstance`, which is the\r\n * spelling to prefer in new code: it is reachable from anything holding the\r\n * schema, including through `CjsModel.schema`, without importing the model\r\n * layer to ask a question about it.\r\n *\r\n * @param {*} value Candidate value.\r\n * @returns {boolean} True when the value is a live `CjsModel`.\r\n */\r\nexport function isModelInstance(value)\r\n{\r\n return CjsSchema.isModelInstance(value);\r\n}\r\n\r\nconst MAX_UPDATE_PASSES = 32;\r\nconst CHILD_COLLECTION_KINDS = new Set([ \"array\", \"list\" ]);\r\nconst CHILD_LIST_EVENT = {\r\n UNLOAD_START: 0x07,\r\n INSERTED: 0x08,\r\n REMOVED: 0x09\r\n};\r\n\r\n/**\r\n * Shared base for schema-backed CarbonEngineJS runtime classes.\r\n *\r\n * Source fields are exported; runtime caches and bookkeeping are not.\r\n */\r\nexport class CjsModel extends CjsEventEmitter\r\n{\r\n /**\r\n * Identifies this class as a schema-backed model.\r\n *\r\n * Declared statically so CjsSchema can recognise a model class from a field\r\n * declaration alone, without importing CjsModel - which it cannot do, since\r\n * this module already imports CjsSchema. Mirrors `CjsResource.isResource`.\r\n */\r\n static isModel = true;\r\n\r\n /**\r\n * Instance-side counterpart of `isModel`, readable across package copies.\r\n *\r\n * On the prototype rather than per instance, so it costs nothing per object\r\n * and cannot be enumerated into exported values.\r\n */\r\n get [CJS_MODEL_BRAND]()\r\n {\r\n return true;\r\n }\r\n\r\n /**\r\n * Creates a schema-backed model with initialized runtime state.\r\n */\r\n constructor()\r\n {\r\n super();\r\n const className = CjsSchema.getClassName(this.constructor);\r\n if (!className)\r\n {\r\n throw new TypeError(\"CjsModel subclasses require an explicit CjsSchema className.\");\r\n }\r\n initializeModelState(this);\r\n }\r\n\r\n /**\r\n * Exports the model's schema fields to a new plain object.\r\n *\r\n * @param {object} [options={}]\r\n * @returns {object}\r\n */\r\n GetValues(options = {})\r\n {\r\n return CjsModel.get(this, {}, options);\r\n }\r\n\r\n /**\r\n * Applies a plain value bag through the canonical schema-backed setter.\r\n *\r\n * @param {object} [values={}]\r\n * @param {object} [options={}]\r\n * @returns {Set<string>|boolean} The changed fields, or a boolean result.\r\n */\r\n SetValues(values = {}, options = {})\r\n {\r\n return CjsModel.set(this, values, options);\r\n }\r\n\r\n /**\r\n * Copies the exported fields of another model into this model.\r\n *\r\n * @param {CjsModel} value\r\n * @param {object} [options={}]\r\n * @returns {CjsModel} This model.\r\n */\r\n Copy(value, options = {})\r\n {\r\n return CjsModel.copy(this, value, options);\r\n }\r\n\r\n /**\r\n * Constructs a new model of this instance's class from its schema values.\r\n *\r\n * @param {object} [options={}]\r\n * @returns {CjsModel}\r\n */\r\n Clone(options = {})\r\n {\r\n return this.constructor.clone(this, options);\r\n }\r\n\r\n /**\r\n * Deep-merges ordered value sources and applies the result once.\r\n *\r\n * Plain objects merge recursively; arrays, typed arrays, and other values\r\n * replace the preceding value.\r\n *\r\n * @param {Array<Object|CjsModel>} [values=[]]\r\n * @param {object} [options={}]\r\n * @returns {Set<string>|boolean} The result returned by {@link CjsModel.set}.\r\n */\r\n Merge(values = [], options = {})\r\n {\r\n return CjsModel.merge(this, values, options);\r\n }\r\n\r\n /**\r\n * Constructs one item from a schema-backed child collection's declared\r\n * item type, then adds it through the ordinary child-mutation path.\r\n *\r\n * Domain classes expose named factories such as `CreateAttachment`; this\r\n * programmatic helper keeps property-string mutation out of their instance\r\n * API.\r\n *\r\n * @param {CjsModel} target Owning model instance.\r\n * @param {string} property Schema `array` or `list` field name.\r\n * @param {object} [values={}] Plain child values.\r\n * @param {object} [options={}] Hydration and mutation options.\r\n * @returns {*} The constructed and added child.\r\n */\r\n static createChild(target, property, values = {}, options = {})\r\n {\r\n const { field } = getChildCollection(target, property);\r\n const imported = importSourceValue([ values ], field, {\r\n ...options,\r\n ownerConstructor: target.constructor\r\n });\r\n const child = imported[0];\r\n\r\n assertChildObject(child, field.name);\r\n CjsModel.addChild(target, field.name, child, options);\r\n return child;\r\n }\r\n\r\n /**\r\n * Appends an existing object to a schema-backed child collection.\r\n *\r\n * The mutation invokes Carbon-shaped `OnListModified` when present,\r\n * records the field's declared flag/rebuild consequences, emits one\r\n * `childadded` event, and settles the parent unless suppressed by options.\r\n *\r\n * @param {CjsModel} target Owning model instance.\r\n * @param {string} property Schema `array` or `list` field name.\r\n * @param {object} child Existing child object.\r\n * @param {object} [options={}]\r\n * @returns {object} The appended child.\r\n */\r\n static addChild(target, property, child, options = {})\r\n {\r\n const { field, collection } = getChildCollection(target, property);\r\n\r\n assertChildObject(child, field.name);\r\n assertChildCallback(options.onAdded, \"onAdded\");\r\n\r\n const index = collection.length;\r\n collection.push(child);\r\n recordChildMutation(target, field, options);\r\n notifyListModified(target, CHILD_LIST_EVENT.INSERTED, index, 0, child, collection);\r\n\r\n const payload = createChildEventPayload(target, field.name, child, index, options);\r\n invokeChildCallback(options.onAdded, target, payload, \"onAdded\");\r\n emitChildEvent(target, \"childadded\", payload, options);\r\n settleChildMutation(target, field, options);\r\n return child;\r\n }\r\n\r\n /**\r\n * Detaches the first matching object from a schema-backed child collection.\r\n * Removal never destroys the child.\r\n *\r\n * @param {CjsModel} target Owning model instance.\r\n * @param {string} property Schema `array` or `list` field name.\r\n * @param {object} child Existing child object.\r\n * @param {object} [options={}]\r\n * @returns {boolean} Whether the child was present and removed.\r\n */\r\n static removeChild(target, property, child, options = {})\r\n {\r\n const { field, collection } = getChildCollection(target, property);\r\n const index = collection.indexOf(child);\r\n\r\n if (index === -1) return false;\r\n assertChildCallback(options.onRemoved, \"onRemoved\");\r\n\r\n collection.splice(index, 1);\r\n recordChildMutation(target, field, options);\r\n notifyListModified(target, CHILD_LIST_EVENT.REMOVED, index, 0, child, collection);\r\n\r\n const payload = createChildEventPayload(target, field.name, child, index, options);\r\n invokeChildCallback(options.onRemoved, target, payload, \"onRemoved\");\r\n emitChildEvent(target, \"childremoved\", payload, options);\r\n settleChildMutation(target, field, options);\r\n return true;\r\n }\r\n\r\n /**\r\n * Removes a child and then performs an explicit deletion action.\r\n *\r\n * `options.delete` owns domain-specific teardown when supplied. Without\r\n * that explicit hook the child is detached and left to ordinary\r\n * JavaScript lifetime management. Deletion emits both `childremoved` and\r\n * `childdeleted`.\r\n *\r\n * @param {CjsModel} target Owning model instance.\r\n * @param {string} property Schema `array` or `list` field name.\r\n * @param {object} child Existing child object.\r\n * @param {object} [options={}]\r\n * @param {Function} [options.delete] Explicit child teardown callback.\r\n * @returns {boolean} Whether the child was present and deleted.\r\n */\r\n static deleteChild(target, property, child, options = {})\r\n {\r\n const { field, collection } = getChildCollection(target, property);\r\n const index = collection.indexOf(child);\r\n\r\n if (index === -1) return false;\r\n\r\n if (options.delete !== undefined && typeof options.delete !== \"function\")\r\n {\r\n throw new TypeError(\"CjsModel child delete option must be a function.\");\r\n }\r\n assertChildCallback(options.onDeleted, \"onDeleted\");\r\n\r\n CjsModel.removeChild(target, field.name, child, { ...options, skipUpdate: true });\r\n\r\n if (typeof options.delete === \"function\")\r\n {\r\n options.delete.call(target, child, options);\r\n }\r\n\r\n const payload = createChildEventPayload(target, field.name, child, index, options);\r\n invokeChildCallback(options.onDeleted, target, payload, \"onDeleted\");\r\n emitChildEvent(target, \"childdeleted\", payload, options);\r\n settleChildMutation(target, field, options);\r\n return true;\r\n }\r\n\r\n /**\r\n * Detaches every object from a schema-backed child collection without\r\n * destroying the children.\r\n *\r\n * Carbon-shaped `OnListModified` receives its unload-start callback while\r\n * the collection is still populated. The public domain method decides\r\n * whether clearing or per-child deletion is appropriate.\r\n *\r\n * @param {CjsModel} target Owning model instance.\r\n * @param {string} property Schema `array` or `list` field name.\r\n * @param {object} [options={}]\r\n * @returns {boolean} Whether any children were cleared.\r\n */\r\n static clearChildren(target, property, options = {})\r\n {\r\n const { field, collection } = getChildCollection(target, property);\r\n const count = collection.length;\r\n\r\n if (!count) return false;\r\n assertChildCallback(options.onCleared, \"onCleared\");\r\n\r\n recordChildMutation(target, field, options);\r\n notifyListModified(target, CHILD_LIST_EVENT.UNLOAD_START, 0, 0, null, collection);\r\n collection.length = 0;\r\n\r\n const payload = {\r\n property: field.name,\r\n count,\r\n source: options.source ?? target\r\n };\r\n invokeChildCallback(options.onCleared, target, payload, \"onCleared\");\r\n emitChildEvent(target, \"childrencleared\", payload, options);\r\n settleChildMutation(target, field, options);\r\n return true;\r\n }\r\n\r\n /**\r\n * Applies pending changes: drives the OnModified hook until the model\r\n * settles, clears the dirty mark, and emits one final modified event.\r\n *\r\n * Calling this IS the \"I made changes, apply please\" contract: it always\r\n * runs at least one hook pass, dirty or not, so direct/untracked\r\n * mutations (the cooperative-pipeline reality) can be applied\r\n * explicitly. Class Update/per-frame methods typically gate on\r\n * `__state.IsDirty()` before calling.\r\n *\r\n * @param {object} [options={}]\r\n * @param {string|Iterable<string>} [options.property] Fields the caller changed directly; their declared flag/rebuild tokens are added first.\r\n * @param {string|Iterable<string>} [options.properties] Alias of `property`.\r\n * @param {*} [options.source=this] Origin forwarded to the hook and event (binding feedback control).\r\n * @param {boolean} [options.skipEvents=false] Prevents the final modified event.\r\n * @returns {boolean} False when the hook rejected the update (dirty is retained).\r\n * @throws {Error} If local changes do not settle within the update-pass limit.\r\n */\r\n UpdateValues(options = {})\r\n {\r\n addExplicitUpdateProperties(this, options.property ?? options.properties);\r\n if (this.__state.updating) return true;\r\n\r\n const source = options.source ?? this;\r\n this.__state.updating = true;\r\n\r\n try\r\n {\r\n for (let pass = 0; ; pass++)\r\n {\r\n if (pass >= MAX_UPDATE_PASSES)\r\n {\r\n throw new Error(`${CjsSchema.getClassName(this.constructor)}.UpdateValues exceeded ${MAX_UPDATE_PASSES} local settle passes.`);\r\n }\r\n\r\n this.__state.dirty = false;\r\n\r\n if (this.OnModified({ ...options, source }) === false)\r\n {\r\n this.__state.dirty = true;\r\n return false;\r\n }\r\n\r\n if (!this.__state.dirty) break;\r\n }\r\n }\r\n catch (err)\r\n {\r\n this.__state.dirty = true;\r\n throw err;\r\n }\r\n finally\r\n {\r\n this.__state.updating = false;\r\n }\r\n\r\n if (options.skipEvents !== true && this.__state.suppressEvents === 0)\r\n {\r\n this.EmitEvent(\"modified\", this, { source });\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * The settle hook: reproduces the meaningful consequences of the\r\n * corresponding Carbon INotify::OnModified implementation.\r\n *\r\n * Invoked only by UpdateValues. Receives the mutation options bag\r\n * (source, caller context, skipEvents, ...). There is no changed-property\r\n * list - the pipeline is cooperative and cannot guarantee one - so\r\n * overrides are written broad-safe: consult own state, compare cached\r\n * derivations, and rely on `__state.flags`/`__state.rebuild` tokens for\r\n * targeted signals. Returning `false` rejects the update and retains the\r\n * dirty mark.\r\n *\r\n * @param {object} [options={}]\r\n * @returns {boolean} Whether the update may complete.\r\n */\r\n OnModified(options = {})\r\n {\r\n return true;\r\n }\r\n\r\n /**\r\n * Visits this model and its schema-backed child models without revisiting cycles.\r\n *\r\n * In pre-order traversal, returning `false` prunes that model's descendants.\r\n * Visitor return values are ignored in post-order traversal.\r\n *\r\n * @param {function(CjsModel): (boolean|void)} visitor\r\n * @param {object} [options={}]\r\n * @param {Set<CjsModel>} [options.visited] Existing cycle-detection set.\r\n * @param {\"pre\"|\"post\"} [options.order=\"pre\"]\r\n * @param {boolean} [options.reverse=false] Reverses field and list-item order.\r\n * @param {boolean} [options.ownedOnly=false] Traverses only owned relationships.\r\n * @returns {CjsModel} This model.\r\n * @throws {TypeError} If `visitor` is not a function.\r\n */\r\n Traverse(visitor, options = {})\r\n {\r\n if (typeof visitor !== \"function\")\r\n {\r\n throw new TypeError(\"CjsModel.Traverse requires a visitor function.\");\r\n }\r\n\r\n const visited = options.visited instanceof Set ? options.visited : new Set();\r\n const order = options.order === \"post\" ? \"post\" : \"pre\";\r\n const reverse = options.reverse === true;\r\n\r\n const visit = model =>\r\n {\r\n if (!(model instanceof CjsModel) || visited.has(model)) return;\r\n visited.add(model);\r\n\r\n let descend = true;\r\n if (order === \"pre\") descend = visitor(model) !== false;\r\n\r\n if (descend)\r\n {\r\n // Only the fields declared to hold child models, precomputed per\r\n // class - not every field, type-tested per value per visit.\r\n const children = CjsSchema.getSchema(model.constructor).children;\r\n const start = reverse ? children.length - 1 : 0;\r\n const end = reverse ? -1 : children.length;\r\n const step = reverse ? -1 : 1;\r\n\r\n for (let i = start; i !== end; i += step)\r\n {\r\n const child = children[i];\r\n if (options.ownedOnly === true && !child.owned) continue;\r\n const value = model[child.name];\r\n\r\n if (Array.isArray(value))\r\n {\r\n const itemStart = reverse ? value.length - 1 : 0;\r\n const itemEnd = reverse ? -1 : value.length;\r\n for (let j = itemStart; j !== itemEnd; j += step) visit(value[j]);\r\n }\r\n else\r\n {\r\n visit(value);\r\n }\r\n }\r\n }\r\n\r\n if (order === \"post\") visitor(model);\r\n };\r\n\r\n visit(this);\r\n return this;\r\n }\r\n\r\n /**\r\n * Collects unique resources reported by this model graph into an array.\r\n *\r\n * Every model in the graph is visited: reporting resources does not hide a\r\n * model's descendants, because an under-reported dependency set would let\r\n * readiness checks pass while a child's resources were still loading.\r\n *\r\n * Resources held in schema fields are collected automatically - they are\r\n * already declared, as `@type.objectRef(\"TriGeometryRes\")` and friends, so\r\n * restating them in a hook would be the hand-written relay chain this\r\n * traversal exists to replace.\r\n *\r\n * `OnGetResources()` is the escape hatch for resources a model holds\r\n * outside its schema, such as private fields. It takes no arguments and\r\n * always returns an iterable of resources - never a bare resource and never\r\n * nothing. Most models do not implement it.\r\n *\r\n * @param {Array<*>} [out=[]] Output array, whose contents are replaced.\r\n * @returns {Array<*>} The supplied output array.\r\n */\r\n GetResources(out = [])\r\n {\r\n const resources = new Set();\r\n\r\n this.Traverse(model =>\r\n {\r\n for (const field of CjsSchema.getSchema(model.constructor).resources)\r\n {\r\n const value = model[field.name];\r\n if (Array.isArray(value))\r\n {\r\n for (const item of value) AddResource(resources, item);\r\n }\r\n else\r\n {\r\n AddResource(resources, value);\r\n }\r\n }\r\n\r\n if (typeof model.OnGetResources === \"function\")\r\n {\r\n AddResources(resources, model.OnGetResources());\r\n }\r\n return true;\r\n });\r\n\r\n out.length = 0;\r\n out.push(...resources);\r\n return out;\r\n }\r\n\r\n /**\r\n * Marks the model as changed; the next settle applies it.\r\n *\r\n * The cooperative-pipeline contract: anything mutating outside\r\n * `SetValues` (direct writes, Object.assign, reader adapters) owes this\r\n * call or an explicit `UpdateValues()`.\r\n *\r\n * @returns {CjsModel} This model.\r\n */\r\n MarkDirty()\r\n {\r\n this.__state.MarkDirty();\r\n return this;\r\n }\r\n\r\n /**\r\n * Clears the dirty mark without settling. Rarely correct outside tests\r\n * and teardown - the settle clears it itself.\r\n *\r\n * @returns {CjsModel} This model.\r\n */\r\n ClearDirty()\r\n {\r\n this.__state.ClearDirty();\r\n return this;\r\n }\r\n\r\n /**\r\n * Checks whether a settle is owed.\r\n *\r\n * @returns {boolean}\r\n */\r\n IsDirty()\r\n {\r\n return this.__state.IsDirty();\r\n }\r\n\r\n /**\r\n * Gets the shared schema registry and decorator facade.\r\n *\r\n * @returns {typeof CjsSchema}\r\n */\r\n static get schema()\r\n {\r\n return CjsSchema;\r\n }\r\n\r\n /**\r\n * Exports a model's schema fields into an output object.\r\n *\r\n * All options default off, leaving the plain output identical to the\r\n * historical shape. Options propagate recursively to nested models.\r\n *\r\n * @param {CjsModel} value\r\n * @param {object} [out={}]\r\n * @param {object} [options={}]\r\n * @param {boolean} [options.persistOnly] Exports only persisted fields.\r\n * @param {boolean} [options.typeTags] Emits `_type` only where the concrete\r\n * class is not derivable from the declared field type (the root and\r\n * polymorphic slots).\r\n * @param {boolean} [options.forceTypeTags] Emits `_type` on every model.\r\n * @param {boolean} [options.refs] Tracks shared models: repeats export as\r\n * `{ _ref }` and their first occurrence carries `_id`. Also guards\r\n * against cyclic graphs.\r\n * @param {boolean} [options.forceIDs] Emits `_id` on every model.\r\n * @param {boolean} [options.keyedLists] Exports a list as a name-keyed\r\n * object when every item is a model with a unique non-empty `name`;\r\n * the redundant item `name` field is dropped in that form. Empty\r\n * lists stay arrays.\r\n * @param {string} [options.enumFormat] Enum-backed field emission:\r\n * \"values\" (default, numeric), \"names\" (exact member-name strings),\r\n * or \"identity\" (`[name, \"OwnerClass.EnumName\"]` tuples). Unknown\r\n * numeric values export as raw numbers in every mode.\r\n * @returns {object} The supplied output object.\r\n * @throws {TypeError} If the source or output target is invalid.\r\n */\r\n static get(value, out = {}, options = {})\r\n {\r\n if (!(value instanceof CjsModel))\r\n {\r\n throw new TypeError(\"CjsModel.get requires a CjsModel source.\");\r\n }\r\n\r\n if (!out || typeof out !== \"object\" || Array.isArray(out) || ArrayBuffer.isView(out))\r\n {\r\n throw new TypeError(\"CjsModel.get requires an object output target.\");\r\n }\r\n\r\n if (!hasAdvancedExportOptions(options))\r\n {\r\n for (const field of getModelFields(value))\r\n {\r\n out[field.name] = exportSourceValue(value[field.name], options);\r\n }\r\n\r\n return out;\r\n }\r\n\r\n return exportModelInto(value, out, null, options, createExportContext(value, options));\r\n }\r\n\r\n /**\r\n * Applies schema-backed values to a model and processes resulting updates.\r\n *\r\n * Reserved metadata keys are honored, never treated as fields: a string\r\n * `values._type` must name the target's class or one of its base classes;\r\n * `values._id` registers the target for `{ _ref }` resolution; a\r\n * `{ _ref }` incoming field value resolves to the registered instance\r\n * (shared identity) and throws when the id never resolves.\r\n *\r\n * @param {CjsModel} out\r\n * @param {object} [values={}]\r\n * @param {object} [options={}]\r\n * @param {boolean} [options.markDirty=true] Tracks changed properties and notification flags.\r\n * @param {boolean} [options.notify=true] Tracks schema notification flags.\r\n * @param {boolean} [options.skipUpdate=false] Leaves dirty changes unsettled.\r\n * @param {boolean} [options.skipEvents=false] Suppresses direct modified events.\r\n * @param {boolean} [options.returnBoolean=false] Returns a boolean instead of changed fields.\r\n * @param {*} [options.source=out] Origin included in update callbacks and events.\r\n * @returns {Set<string>|boolean} Changed fields, or a boolean result.\r\n * @throws {TypeError} If the target is not a model.\r\n */\r\n static set(out, values = {}, options = {})\r\n {\r\n if (!(out instanceof CjsModel))\r\n {\r\n throw new TypeError(\"CjsModel.set requires a CjsModel target.\");\r\n }\r\n\r\n if (!values || typeof values !== \"object\") return false;\r\n\r\n if (typeof values._type === \"string\")\r\n {\r\n assertTargetTypeMatches(out, values._type, options);\r\n }\r\n\r\n // One import operation context is shared across the whole call tree so\r\n // `_id` registrations and `{ _ref }` resolutions see the same identity\r\n // table. The outermost call owns finalization of forward references.\r\n const ownsImportContext = !options.importContext;\r\n const importOptions = {\r\n ...options,\r\n importContext: options.importContext ?? createImportContext(),\r\n ownerConstructor: out.constructor\r\n };\r\n\r\n if (values._id !== undefined && values._id !== null)\r\n {\r\n importOptions.importContext.register(values._id, out);\r\n }\r\n\r\n const enumTranslations = validateEnumInputs(out, values);\r\n\r\n const changed = new Set();\r\n for (const field of getModelFields(out))\r\n {\r\n if (!isWritableModelField(field)) continue;\r\n\r\n const key = findIncomingKey(values, field);\r\n if (key !== null)\r\n {\r\n const oldValue = out[field.name];\r\n const incoming = enumTranslations.has(field.name) ? enumTranslations.get(field.name) : values[key];\r\n\r\n let didChange;\r\n if (isReferenceValue(incoming))\r\n {\r\n didChange = applyIncomingReference(out, field, incoming, importOptions);\r\n }\r\n else\r\n {\r\n // Registered struct fields have value semantics. Constructors may\r\n // install their canonical struct instance up front; populate that\r\n // instance rather than replacing it with an imported object.\r\n const structChanged = applyIncomingStructInPlace(oldValue, incoming, field, importOptions);\r\n\r\n if (structChanged !== null)\r\n {\r\n didChange = field.io?.always === true || structChanged;\r\n }\r\n else\r\n {\r\n // Fast path: a math field with an existing compatible typed array\r\n // is coerced IN PLACE (no allocation, buffer reference preserved).\r\n // A declared typedArray field reuses its target the same way when\r\n // the type and the incoming length already match - those are the\r\n // big buffers, and they allocated on every write until 2026-09-08.\r\n const mathChanged = coerceCarbonMathInto(oldValue, incoming, field)\r\n ?? coerceCarbonTypedArrayInto(oldValue, incoming, field);\r\n\r\n if (mathChanged !== null)\r\n {\r\n didChange = field.io?.always === true || mathChanged;\r\n }\r\n else\r\n {\r\n const newValue = importSourceValue(incoming, field, importOptions);\r\n didChange = field.io?.always === true || !areEquivalentSourceValues(oldValue, newValue);\r\n if (didChange) out[field.name] = newValue;\r\n }\r\n }\r\n }\r\n\r\n if (didChange)\r\n {\r\n changed.add(field.name);\r\n if (options.markDirty !== false)\r\n {\r\n out.__state.dirty = true;\r\n // Write-time token adds: the knowledge of WHICH field\r\n // changed lives here, so declared consequences land\r\n // here (props are not tracked in state).\r\n if (options.notify !== false)\r\n {\r\n addDeclaredFieldTokens(out, field);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (ownsImportContext)\r\n {\r\n importOptions.importContext.finalize();\r\n importOptions.importContext.initializeCreated(importOptions);\r\n }\r\n\r\n if (changed.size && options.markDirty === false)\r\n {\r\n if (options.skipUpdate !== true && options.skipEvents !== true && out.__state.suppressEvents === 0)\r\n {\r\n out.EmitEvent(\"modified\", out, createModifiedPayload(changed, options.source ?? out));\r\n }\r\n }\r\n else if (changed.size && options.skipUpdate !== true && !out.__state.updating)\r\n {\r\n out.UpdateValues(options);\r\n }\r\n\r\n return options.returnBoolean === true ? changed.size > 0 : changed.size ? changed : false;\r\n }\r\n\r\n /**\r\n * Copies all exported fields from one model into another.\r\n *\r\n * @param {CjsModel} out\r\n * @param {CjsModel} value\r\n * @param {object} [options={}]\r\n * @returns {CjsModel} The target model.\r\n * @throws {TypeError} If either argument is not a model.\r\n */\r\n static copy(out, value, options = {})\r\n {\r\n if (!(out instanceof CjsModel))\r\n {\r\n throw new TypeError(\"CjsModel.copy requires a CjsModel target.\");\r\n }\r\n\r\n if (!(value instanceof CjsModel))\r\n {\r\n throw new TypeError(\"CjsModel.copy requires a CjsModel source.\");\r\n }\r\n\r\n CjsModel.set(out, CjsModel.get(value, {}, options), options);\r\n return out;\r\n }\r\n\r\n /**\r\n * Deep-merges ordered value sources and applies the result with one set call.\r\n *\r\n * @param {CjsModel} out\r\n * @param {Array<object|CjsModel>} [values=[]]\r\n * @param {object} [options={}]\r\n * @returns {Set<string>|boolean} The result returned by {@link CjsModel.set}.\r\n * @throws {TypeError} If the target, source array, or options are invalid.\r\n */\r\n static merge(out, values = [], options = {})\r\n {\r\n if (!(out instanceof CjsModel))\r\n {\r\n throw new TypeError(\"CjsModel.merge requires a CjsModel target.\");\r\n }\r\n\r\n if (!Array.isArray(values))\r\n {\r\n throw new TypeError(\"CjsModel.merge requires an array of value sources.\");\r\n }\r\n\r\n if (!options || typeof options !== \"object\" || Array.isArray(options) || ArrayBuffer.isView(options))\r\n {\r\n throw new TypeError(\"CjsModel.merge requires an options object.\");\r\n }\r\n\r\n const merged = {};\r\n for (const value of values) mergeValueBag(merged, value, options);\r\n return CjsModel.set(out, merged, options);\r\n }\r\n\r\n /**\r\n * Constructs, populates, initializes, and cleans an owned model graph.\r\n *\r\n * The invoked constructor must support zero arguments. Initial population\r\n * suppresses updates and events; owned children initialize before parents.\r\n *\r\n * A string `values._type` selects the concrete constructor: it must name\r\n * this class or a registered subclass, otherwise a TypeError is thrown. A\r\n * `values._id` registers the instance in the import operation context\r\n * before any field descends, so `{ _ref }` values elsewhere in the same\r\n * operation — including cycles and self-references — resolve to this\r\n * instance. The outermost call finalizes forward references before\r\n * initialization; an unresolved `_ref` throws.\r\n *\r\n * @param {object} [values={}]\r\n * @param {object} [options={}]\r\n * @returns {CjsModel} An instance of the invoked model constructor.\r\n * @throws {Error} If any owned model explicitly fails initialization.\r\n */\r\n static from(values = {}, options = {})\r\n {\r\n if (isReferenceValue(values))\r\n {\r\n throw new TypeError(`${CjsSchema.getClassName(this) || this.name}.from cannot construct from a { _ref } value; references resolve only inside the owning import operation.`);\r\n }\r\n\r\n if (values && typeof values === \"object\" && typeof values._type === \"string\")\r\n {\r\n const Constructor = resolveRegisteredModelClass(values._type, options);\r\n if (Constructor !== this)\r\n {\r\n if (!(Constructor.prototype instanceof this))\r\n {\r\n throw new TypeError(`_type \"${values._type}\" is not ${CjsSchema.getClassName(this) || this.name} or one of its registered subclasses.`);\r\n }\r\n return Constructor.from(values, options);\r\n }\r\n }\r\n\r\n const ownsImportContext = !options.importContext;\r\n const importOptions = ownsImportContext\r\n ? { ...options, importContext: createImportContext() }\r\n : options;\r\n\r\n const result = new this();\r\n\r\n importOptions.importContext.registerCreated(result);\r\n\r\n // Register-before-descent: the instance is visible to `_ref` lookups\r\n // before its own fields import, so back-references and cycles work.\r\n if (values && typeof values === \"object\" && values._id !== undefined && values._id !== null)\r\n {\r\n importOptions.importContext.register(values._id, result);\r\n }\r\n\r\n result.__state.suppressEvents++;\r\n try\r\n {\r\n result.SetValues(values, {\r\n ...importOptions,\r\n skipEvents: true,\r\n skipUpdate: true\r\n });\r\n\r\n if (ownsImportContext)\r\n {\r\n importOptions.importContext.finalize();\r\n importOptions.importContext.initializeCreated({\r\n ...importOptions,\r\n initChildren: true\r\n });\r\n }\r\n }\r\n finally\r\n {\r\n result.__state.suppressEvents--;\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Constructs a model from another model-like value or a raw value bag.\r\n *\r\n * @param {CjsModel|object|null} value\r\n * @param {object} [options={}]\r\n * @returns {CjsModel} An instance of the invoked model constructor.\r\n */\r\n static clone(value, options = {})\r\n {\r\n if (!value || typeof value.GetValues !== \"function\")\r\n {\r\n return this.from(value || {}, options);\r\n }\r\n\r\n return this.from(value.GetValues(options), options);\r\n }\r\n\r\n}\r\n\r\nCjsSchema.define(CjsModel, { className: \"CjsModel\" });\r\n\r\nexport const carbon = CjsSchema.carbon;\r\nexport { CjsSchema };\r\nexport const impl = CjsSchema.impl;\r\nexport const io = CjsSchema.io;\r\nexport const jessica = CjsSchema.jessica;\r\nexport const schema = CjsSchema;\r\nexport const type = CjsSchema.type;\r\n\r\nfunction mergeValueBag(out, value, options = {})\r\n{\r\n const source = value instanceof CjsModel ? CjsModel.get(value, {}, options) : value;\r\n if (!isPlainRecord(source)) return out;\r\n\r\n for (const [key, incoming] of Object.entries(source))\r\n {\r\n if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") continue;\r\n\r\n const normalized = incoming instanceof CjsModel ? CjsModel.get(incoming, {}, options) : incoming;\r\n if (isPlainRecord(normalized))\r\n {\r\n if (!isPlainRecord(out[key])) out[key] = {};\r\n mergeValueBag(out[key], normalized, options);\r\n }\r\n else\r\n {\r\n out[key] = normalized;\r\n }\r\n }\r\n return out;\r\n}\r\n\r\nfunction isPlainRecord(value)\r\n{\r\n if (!value || typeof value !== \"object\" || Array.isArray(value) || ArrayBuffer.isView(value)) return false;\r\n const prototype = Object.getPrototypeOf(value);\r\n return prototype === Object.prototype || prototype === null;\r\n}\r\n\r\nfunction getModelFields(target)\r\n{\r\n const schema = CjsSchema.getSchema(target.constructor);\r\n return schema.fields.map(schemaFieldToModelField);\r\n}\r\n\r\nfunction initializeModelState(target)\r\n{\r\n // Models own their runtime-state shape: __state is a CjsModelState,\r\n // created at construction before anything else (the event emitter's\r\n // lazily-added `events` map lives on the same instance as an expando).\r\n const existing = getRuntimeState(target);\r\n if (existing instanceof CjsModelState) return existing;\r\n if (existing)\r\n {\r\n throw new TypeError(\"CjsModel requires __state to be a CjsModelState.\");\r\n }\r\n\r\n const state = new CjsModelState();\r\n Object.defineProperty(target, \"__state\", {\r\n value: state,\r\n enumerable: false,\r\n configurable: false,\r\n writable: false\r\n });\r\n return state;\r\n}\r\n\r\nfunction initializeOwnedGraph(root, options = {})\r\n{\r\n root.Traverse(value =>\r\n {\r\n value.__state.suppressEvents++;\r\n\r\n try\r\n {\r\n if (value.__state instanceof CjsModelState)\r\n {\r\n // Construction: everything is new, so every declared consequence\r\n // applies - all flag/rebuild tokens are added, and the object is\r\n // marked for one settle.\r\n addAllDeclaredTokens(value);\r\n value.__state.dirty = true;\r\n }\r\n\r\n // Initialize arguments belong to the class's Carbon/adapted contract.\r\n // Owned-graph traversal is coordinated here and must not occupy arg 0.\r\n // A conforming Initialize performs its own final\r\n // UpdateValues({ skipEvents: true }), leaving nothing dirty.\r\n if (typeof value.Initialize === \"function\")\r\n {\r\n if (value.Initialize() === false)\r\n {\r\n throw new Error(`${CjsSchema.getClassName(value.constructor)}.from initialization failed.`);\r\n }\r\n }\r\n\r\n // Settle anything Initialize did not (including the no-Initialize\r\n // case): the one construction settle, events suppressed.\r\n if (value.__state instanceof CjsModelState && value.__state.dirty)\r\n {\r\n value.UpdateValues({\r\n ...options,\r\n source: options.source ?? value,\r\n skipEvents: true\r\n });\r\n }\r\n }\r\n finally\r\n {\r\n value.__state.suppressEvents--;\r\n }\r\n }, {\r\n order: \"post\",\r\n reverse: true,\r\n ownedOnly: true,\r\n visited: options.visited\r\n });\r\n return root;\r\n}\r\n\r\nfunction AddResource(target, value)\r\n{\r\n if (value?.isResource === true) target.add(value);\r\n}\r\n\r\n\r\nfunction AddResources(target, values)\r\n{\r\n if (typeof values === \"string\" || typeof values?.[Symbol.iterator] !== \"function\")\r\n {\r\n throw new TypeError(\"CjsModel.OnGetResources must return an iterable of resources.\");\r\n }\r\n\r\n // Empty slots are the model's own unset fields, not a contract violation.\r\n for (const value of values)\r\n {\r\n if (value !== null && value !== undefined) target.add(value);\r\n }\r\n}\r\n\r\nfunction schemaFieldToModelField(field)\r\n{\r\n return {\r\n ...field,\r\n jsType: field.type || field.jsType || null\r\n };\r\n}\r\n\r\nfunction isWritableModelField(field)\r\n{\r\n const io = field?.io;\r\n if (!io) return true;\r\n if (io.write || io.persist || io.persistOnly) return true;\r\n if (io.read && !io.write) return false;\r\n return true;\r\n}\r\n\r\nfunction findIncomingKey(values, field)\r\n{\r\n for (const key of incomingKeyCandidates(field))\r\n {\r\n if (Object.prototype.hasOwnProperty.call(values, key)) return key;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction incomingKeyCandidates(field)\r\n{\r\n const aliases = field.aliases === undefined\r\n ? field.alias === undefined ? [] : [field.alias]\r\n : Array.isArray(field.aliases) ? field.aliases : [field.aliases];\r\n return [field.name, ...aliases].filter(value => typeof value === \"string\" && value.length);\r\n}\r\n\r\nfunction getChildCollection(target, property)\r\n{\r\n if (!(target instanceof CjsModel))\r\n {\r\n throw new TypeError(\"CjsModel child collection target must be a CjsModel instance.\");\r\n }\r\n\r\n if (typeof property !== \"string\" || !property)\r\n {\r\n throw new TypeError(\"CjsModel child collection property must be a non-empty string.\");\r\n }\r\n\r\n const field = CjsSchema.getField(target.constructor, property);\r\n if (!field)\r\n {\r\n throw new TypeError(`${CjsSchema.getClassName(target.constructor)} has no schema field named ${JSON.stringify(property)}.`);\r\n }\r\n\r\n const fieldType = field.type || field.jsType;\r\n if (!CHILD_COLLECTION_KINDS.has(fieldType?.kind))\r\n {\r\n throw new TypeError(`${field.name} must be a schema array or list child collection.`);\r\n }\r\n\r\n const collection = target[field.name];\r\n if (!Array.isArray(collection))\r\n {\r\n throw new TypeError(`${field.name} must contain an ordinary JavaScript Array.`);\r\n }\r\n\r\n return { field, collection };\r\n}\r\n\r\nfunction assertChildObject(child, property)\r\n{\r\n if (!child || typeof child !== \"object\" || Array.isArray(child) || ArrayBuffer.isView(child))\r\n {\r\n throw new TypeError(`${property} requires a non-null child object.`);\r\n }\r\n}\r\n\r\nfunction assertChildCallback(callback, optionName)\r\n{\r\n if (callback !== undefined && callback !== null && typeof callback !== \"function\")\r\n {\r\n throw new TypeError(`CjsModel child ${optionName} option must be a function.`);\r\n }\r\n}\r\n\r\nfunction recordChildMutation(target, field, options)\r\n{\r\n if (options.markDirty === false) return;\r\n target.__state.dirty = true;\r\n if (options.notify !== false) addDeclaredFieldTokens(target, field);\r\n}\r\n\r\nfunction notifyListModified(target, event, index, secondIndex, child, collection)\r\n{\r\n if (typeof target.OnListModified === \"function\")\r\n {\r\n target.OnListModified(event, index, secondIndex, child, collection);\r\n }\r\n}\r\n\r\nfunction createChildEventPayload(target, property, child, index, options)\r\n{\r\n return {\r\n property,\r\n child,\r\n index,\r\n source: options.source ?? target\r\n };\r\n}\r\n\r\nfunction invokeChildCallback(callback, target, payload, optionName)\r\n{\r\n if (callback === undefined || callback === null) return;\r\n assertChildCallback(callback, optionName);\r\n callback.call(target, payload);\r\n}\r\n\r\nfunction emitChildEvent(target, eventName, payload, options)\r\n{\r\n if (options.skipEvents !== true && target.__state.suppressEvents === 0)\r\n {\r\n target.EmitEvent(eventName, target, payload);\r\n }\r\n}\r\n\r\nfunction settleChildMutation(target, field, options)\r\n{\r\n if (options.skipUpdate === true) return;\r\n\r\n if (options.markDirty === false)\r\n {\r\n if (options.skipEvents !== true && target.__state.suppressEvents === 0)\r\n {\r\n target.EmitEvent(\"modified\", target, createModifiedPayload(\r\n new Set([ field.name ]),\r\n options.source ?? target\r\n ));\r\n }\r\n return;\r\n }\r\n\r\n if (!target.__state.updating) target.UpdateValues(options);\r\n}\r\n\r\n// Adds one field's declared @io.flag / @io.rebuild tokens to their stores.\r\n// Duplicate adds are no-ops (Sets). Nothing in the model layer ever clears\r\n// these stores - getters clear flags, work methods clear rebuild tokens.\r\nfunction addDeclaredFieldTokens(target, field)\r\n{\r\n const io = field?.io;\r\n if (!io) return;\r\n if (io.flag) for (const token of io.flag) target.__state.flags.add(token);\r\n if (io.rebuild) for (const token of io.rebuild) target.__state.rebuild.add(token);\r\n}\r\n\r\n// Construction / broad invalidation: every declared token applies.\r\nfunction addAllDeclaredTokens(target)\r\n{\r\n const fields = CjsSchema.getSchema(target.constructor)?.fields || [];\r\n for (const field of fields) addDeclaredFieldTokens(target, field);\r\n}\r\n\r\n// Direct-mutation courtesy: a caller that knows which fields it touched\r\n// (bindings) passes them so declared consequences stay precise.\r\nfunction addExplicitUpdateProperties(target, properties)\r\n{\r\n if (properties === null || properties === undefined) return;\r\n target.__state.dirty = true;\r\n for (const property of typeof properties === \"string\" ? [properties] : properties)\r\n {\r\n const field = CjsSchema.getField(target.constructor, property);\r\n if (field) addDeclaredFieldTokens(target, field);\r\n }\r\n}\r\n\r\nfunction createModifiedPayload(properties, source)\r\n{\r\n return {\r\n properties: new Set(properties),\r\n source\r\n };\r\n}\r\n\r\nfunction areEquivalentSourceValues(a, b)\r\n{\r\n if (Object.is(a, b)) return true;\r\n\r\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b))\r\n {\r\n if (a.constructor !== b.constructor || a.length !== b.length) return false;\r\n for (let i = 0; i < a.length; i++)\r\n {\r\n if (!Object.is(a[i], b[i])) return false;\r\n }\r\n return true;\r\n }\r\n\r\n if (Array.isArray(a) && Array.isArray(b))\r\n {\r\n if (a.length !== b.length) return false;\r\n for (let i = 0; i < a.length; i++)\r\n {\r\n if (!areEquivalentSourceValues(a[i], b[i])) return false;\r\n }\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\n/**\r\n * Exports a source-shaped field value while preserving reference and enum\r\n * policy.\r\n */\r\nexport function exportSourceValue(value, options = {})\r\n{\r\n if (value instanceof CjsModel) return value.GetValues(options);\r\n return exportCarbonValue(value);\r\n}\r\n\r\nfunction hasAdvancedExportOptions(options)\r\n{\r\n return !!(options && (options.persistOnly || options.typeTags || options.forceTypeTags\r\n || options.refs || options.forceIDs || options.keyedLists\r\n || (options.enumFormat && options.enumFormat !== \"values\")));\r\n}\r\n\r\n// Enum-aware value handling: @schema.enum(\"X\") resolves through the owning\r\n// class's PascalCase static `Constructor.X`, lazily and leaf-first.\r\nconst ENUM_REVERSE_CACHE = new WeakMap();\r\n\r\nfunction resolveEnumStaticForField(Constructor, field)\r\n{\r\n const name = field?.enum?.enumType;\r\n if (!name) return null;\r\n const members = Constructor?.[name];\r\n if (!members || typeof members !== \"object\") return null;\r\n return { name, members };\r\n}\r\n\r\nfunction enumMemberName(members, value)\r\n{\r\n let reverse = ENUM_REVERSE_CACHE.get(members);\r\n if (!reverse)\r\n {\r\n reverse = new Map();\r\n for (const key of Object.keys(members))\r\n {\r\n // Duplicate values: first-declared key wins.\r\n if (!reverse.has(members[key])) reverse.set(members[key], key);\r\n }\r\n ENUM_REVERSE_CACHE.set(members, reverse);\r\n }\r\n return reverse.get(value);\r\n}\r\n\r\nfunction enumIdentity(Constructor, name)\r\n{\r\n let current = Constructor;\r\n while (typeof current === \"function\")\r\n {\r\n if (Object.hasOwn(current, name))\r\n {\r\n return `${CjsSchema.getClassName(current) || current.name}.${name}`;\r\n }\r\n current = Object.getPrototypeOf(current);\r\n }\r\n return `${CjsSchema.getClassName(Constructor) || Constructor.name}.${name}`;\r\n}\r\n\r\n// Returns the validated numeric member value, or undefined when the input is\r\n// not a member. Accepts numeric values, exact member-name strings, and arrays\r\n// (element 0 only, so identity tuples round-trip).\r\nfunction translateEnumInput(value, members)\r\n{\r\n if (Array.isArray(value))\r\n {\r\n if (!value.length) return undefined;\r\n return translateEnumInput(value[0], members);\r\n }\r\n if (typeof value === \"string\")\r\n {\r\n return Object.hasOwn(members, value) ? members[value] : undefined;\r\n }\r\n if (typeof value === \"number\")\r\n {\r\n return enumMemberName(members, value) === undefined ? undefined : value;\r\n }\r\n return undefined;\r\n}\r\n\r\n// Atomic pre-validation: every enum-backed incoming value is checked before\r\n// any mutation; one TypeError reports every invalid property.\r\nfunction validateEnumInputs(out, values)\r\n{\r\n const translations = new Map();\r\n let issues = null;\r\n for (const field of getModelFields(out))\r\n {\r\n if (!isWritableModelField(field)) continue;\r\n const key = findIncomingKey(values, field);\r\n if (key === null) continue;\r\n const spec = resolveEnumStaticForField(out.constructor, field);\r\n if (!spec) continue;\r\n const raw = values[key];\r\n if (raw === null || raw === undefined || raw instanceof CjsModel) continue;\r\n const translated = translateEnumInput(raw, spec.members);\r\n if (translated === undefined)\r\n {\r\n issues = issues || [];\r\n issues.push(`${field.name}: ${JSON.stringify(raw)} is not a member of ${enumIdentity(out.constructor, spec.name)}`);\r\n }\r\n else\r\n {\r\n translations.set(field.name, translated);\r\n }\r\n }\r\n if (issues)\r\n {\r\n throw new TypeError(`Invalid enum values for ${CjsSchema.getClassName(out.constructor) || \"model\"} - ${issues.join(\"; \")}`);\r\n }\r\n return translations;\r\n}\r\n\r\nfunction exportEnumFieldValue(value, spec, Constructor, options)\r\n{\r\n if (typeof value !== \"number\") return value;\r\n const memberName = enumMemberName(spec.members, value);\r\n if (memberName === undefined) return value;\r\n if (options.enumFormat === \"names\") return memberName;\r\n return [memberName, enumIdentity(Constructor, spec.name)];\r\n}\r\n\r\nfunction isPersistedModelField(field)\r\n{\r\n const io = field?.io;\r\n return !!(io && (io.persist || io.persistOnly));\r\n}\r\n\r\nfunction declaredExportClassName(fieldType)\r\n{\r\n if (!fieldType) return null;\r\n if (typeof fieldType === \"string\") return fieldType;\r\n if (fieldType.kind === \"array\" || fieldType.kind === \"list\")\r\n {\r\n const item = fieldType.itemType ?? null;\r\n return typeof item === \"string\" ? item : item?.className ?? null;\r\n }\r\n return fieldType.className ?? null;\r\n}\r\n\r\nfunction createExportContext(root, options)\r\n{\r\n if (!options.refs && !options.forceIDs) return null;\r\n\r\n let nextId = 1;\r\n const idByModel = new Map();\r\n const context = {\r\n emitted: new Set(),\r\n idByModel,\r\n getId(model)\r\n {\r\n let id = idByModel.get(model);\r\n if (id === undefined)\r\n {\r\n id = nextId++;\r\n idByModel.set(model, id);\r\n }\r\n return id;\r\n }\r\n };\r\n\r\n if (options.refs)\r\n {\r\n // Pre-count occurrences so only genuinely shared models receive ids.\r\n const counts = new Map();\r\n (function walk(value)\r\n {\r\n if (Array.isArray(value))\r\n {\r\n for (const item of value) walk(item);\r\n return;\r\n }\r\n if (!(value instanceof CjsModel)) return;\r\n const count = (counts.get(value) ?? 0) + 1;\r\n counts.set(value, count);\r\n if (count > 1) return;\r\n for (const field of getModelFields(value))\r\n {\r\n if (options.persistOnly && !isPersistedModelField(field)) continue;\r\n walk(value[field.name]);\r\n }\r\n })(root);\r\n for (const [model, count] of counts)\r\n {\r\n if (count > 1) idByModel.set(model, nextId++);\r\n }\r\n }\r\n\r\n return context;\r\n}\r\n\r\nfunction exportModelInto(model, out, declaredClassName, options, context)\r\n{\r\n if (context)\r\n {\r\n context.emitted.add(model);\r\n }\r\n\r\n const className = CjsSchema.getClassName(model.constructor);\r\n if (options.forceTypeTags || (options.typeTags && className && className !== declaredClassName))\r\n {\r\n out._type = className;\r\n }\r\n if (context && (options.forceIDs || context.idByModel.has(model)))\r\n {\r\n out._id = context.getId(model);\r\n }\r\n\r\n // Field metadata is per-copy for the same reason the class name is, and\r\n // when it is missing the loop below simply exports nothing — a model that\r\n // silently becomes an empty object rather than failing. The model itself\r\n // always knows its own schema, so the export is delegated to the copy that\r\n // declared it. `_type` and `_id` are already resolved above and are kept:\r\n // identity belongs to the graph being written, not to the model's own view\r\n // of itself.\r\n const fields = getModelFields(model);\r\n if (!fields.length && typeof model.GetValues === \"function\")\r\n {\r\n return Object.assign(out, model.GetValues(options), out);\r\n }\r\n\r\n const enumMode = options.enumFormat && options.enumFormat !== \"values\";\r\n for (const field of fields)\r\n {\r\n if (options.persistOnly && !isPersistedModelField(field)) continue;\r\n if (enumMode)\r\n {\r\n const spec = resolveEnumStaticForField(model.constructor, field);\r\n if (spec)\r\n {\r\n out[field.name] = exportEnumFieldValue(model[field.name], spec, model.constructor, options);\r\n continue;\r\n }\r\n }\r\n out[field.name] = exportAdvancedValue(\r\n model[field.name],\r\n declaredExportClassName(field.jsType || field.type || null),\r\n options,\r\n context\r\n );\r\n }\r\n\r\n return out;\r\n}\r\n\r\nfunction exportAdvancedValue(value, declaredClassName, options, context)\r\n{\r\n // Branded, for the same reason as the import side: a cross-copy model that\r\n // fails this test is exported as an anonymous field bag, losing both its\r\n // `_type` and its place in the shared-identity table.\r\n if (isModelInstance(value))\r\n {\r\n if (context && options.refs && context.emitted.has(value))\r\n {\r\n return { _ref: context.getId(value) };\r\n }\r\n return exportModelInto(value, {}, declaredClassName, options, context);\r\n }\r\n if (Array.isArray(value))\r\n {\r\n if (options.keyedLists)\r\n {\r\n const keyed = exportKeyedList(value, declaredClassName, options, context);\r\n if (keyed) return keyed;\r\n }\r\n return value.map(item => exportAdvancedValue(item, declaredClassName, options, context));\r\n }\r\n return exportCarbonValue(value);\r\n}\r\n\r\nfunction exportKeyedList(list, declaredClassName, options, context)\r\n{\r\n if (!list.length) return null;\r\n\r\n const seen = new Set();\r\n for (const item of list)\r\n {\r\n if (!(item instanceof CjsModel)) return null;\r\n const name = item.name;\r\n if (typeof name !== \"string\" || name === \"\" || seen.has(name)) return null;\r\n seen.add(name);\r\n }\r\n\r\n const out = {};\r\n for (const item of list)\r\n {\r\n const exported = exportAdvancedValue(item, declaredClassName, options, context);\r\n if (exported && typeof exported === \"object\" && exported._ref === undefined)\r\n {\r\n delete exported.name;\r\n }\r\n out[item.name] = exported;\r\n }\r\n return out;\r\n}\r\n\r\n/** Imports a source-shaped field value according to schema and reference policy. */\r\nexport function importSourceValue(value, field = null, options = {})\r\n{\r\n // Branded rather than `instanceof`: a live model handed over by a sibling\r\n // package is still a live model, and the alternative here is not an error\r\n // but a silent copy into a plain object further down.\r\n if (isModelInstance(value)) return value;\r\n\r\n if (isReferenceValue(value))\r\n {\r\n const resolved = resolveIncomingReference(value, options);\r\n if (resolved instanceof CjsPendingReference)\r\n {\r\n throw new TypeError(`Forward { _ref: ${JSON.stringify(value._ref)} } cannot be deferred in this position.`);\r\n }\r\n return resolved;\r\n }\r\n\r\n const schemaType = getSchemaType(options.ownerConstructor, field?.name);\r\n const declaredClassName = getSchemaClassName(schemaType, options);\r\n if (value && typeof value === \"object\" && !isModelInstance(value) && !Array.isArray(value) && !ArrayBuffer.isView(value))\r\n {\r\n // A registered `_type` selects the concrete class in singular\r\n // schema-typed positions. Carbon contracts may be declared through\r\n // interface names with no runtime inheritance, so the declared name\r\n // is a fallback, not a constraint the concrete class must extend.\r\n const explicitClassName = isSingularSchemaKind(schemaType) && typeof value._type === \"string\"\r\n ? getSchemaClassName(value._type, options)\r\n : null;\r\n const className = explicitClassName || declaredClassName;\r\n if (className)\r\n {\r\n return createModelValue(className, value, options);\r\n }\r\n }\r\n\r\n if ((schemaType?.kind === \"array\" || schemaType?.kind === \"list\") && schemaType.itemType && Array.isArray(value))\r\n {\r\n const itemClassName = getSchemaClassName(schemaType.itemType, options);\r\n const result = [];\r\n for (let i = 0; i < value.length; i++)\r\n {\r\n const item = value[i];\r\n if (isReferenceValue(item))\r\n {\r\n result.push(importReferenceInto(item, options, result, i));\r\n continue;\r\n }\r\n if (!item || typeof item !== \"object\" || item instanceof CjsModel || ArrayBuffer.isView(item))\r\n {\r\n result.push(importSourceValue(item, null, options));\r\n continue;\r\n }\r\n\r\n const explicitClassName = typeof item._type === \"string\"\r\n ? getSchemaClassName(item._type, options)\r\n : null;\r\n if (explicitClassName)\r\n {\r\n result.push(createModelValue(explicitClassName, item, options));\r\n continue;\r\n }\r\n\r\n result.push(itemClassName\r\n ? createModelValue(itemClassName, item, options)\r\n : importSourceValue(item, null, options));\r\n }\r\n return result;\r\n }\r\n\r\n // List fields also accept name-keyed object maps for unique-named items;\r\n // the map is a wholesale list replacement, mirroring array semantics.\r\n const effectiveType = field?.jsType || field?.type || schemaType;\r\n if ((effectiveType?.kind === \"array\" || effectiveType?.kind === \"list\")\r\n && value && typeof value === \"object\" && !Array.isArray(value) && !ArrayBuffer.isView(value))\r\n {\r\n return importListMapValue(value, effectiveType, options);\r\n }\r\n\r\n if (field) return normalizeCarbonValue(value, field);\r\n if (ArrayBuffer.isView(value)) return normalizeCarbonValue(value, { jsType: { kind: \"typedArray\", js: value.constructor.name } });\r\n if (typeof value === \"bigint\") return value;\r\n if (Array.isArray(value))\r\n {\r\n const result = [];\r\n for (let i = 0; i < value.length; i++)\r\n {\r\n const item = value[i];\r\n result.push(isReferenceValue(item)\r\n ? importReferenceInto(item, options, result, i)\r\n : importSourceValue(item, null, options));\r\n }\r\n return result;\r\n }\r\n if (value && typeof value === \"object\" && !(value instanceof CjsModel))\r\n {\r\n const result = {};\r\n for (const [key, item] of Object.entries(value))\r\n {\r\n result[key] = isReferenceValue(item)\r\n ? importReferenceInto(item, options, result, key)\r\n : importSourceValue(item, null, options);\r\n }\r\n return result;\r\n }\r\n return value;\r\n}\r\n\r\nfunction applyIncomingStructInPlace(current, incoming, field, options)\r\n{\r\n const schemaType = getSchemaType(options.ownerConstructor, field?.name) || field?.type || field?.jsType;\r\n if (schemaType?.kind !== \"struct\" || !(current instanceof CjsModel)) return null;\r\n if (incoming === null || incoming === undefined) return false;\r\n if (typeof incoming !== \"object\" || Array.isArray(incoming) || ArrayBuffer.isView(incoming))\r\n {\r\n throw new TypeError(`${field.name} requires an object value for registered struct ${schemaType.className || \"unknown\"}.`);\r\n }\r\n\r\n const values = incoming instanceof CjsModel ? incoming.GetValues() : incoming;\r\n const changed = current.SetValues(values, options);\r\n return changed instanceof Set ? changed.size > 0 : changed === true;\r\n}\r\n\r\nfunction importListMapValue(value, schemaType, options)\r\n{\r\n const itemClassName = schemaType.itemType ? getSchemaClassName(schemaType.itemType, options) : null;\r\n const result = [];\r\n for (const key of Object.keys(value))\r\n {\r\n const item = value[key];\r\n if (item === undefined || item === null) continue;\r\n\r\n if (item instanceof CjsModel)\r\n {\r\n if (typeof item.name === \"string\" && item.name === \"\")\r\n {\r\n item.SetValues({ name: key });\r\n }\r\n result.push(item);\r\n continue;\r\n }\r\n\r\n if (isReferenceValue(item))\r\n {\r\n // Shared items keep their own name; the map key is not restamped\r\n // onto an instance owned by another position in the graph.\r\n result.push(importReferenceInto(item, options, result, result.length));\r\n continue;\r\n }\r\n\r\n if (typeof item !== \"object\" || Array.isArray(item) || ArrayBuffer.isView(item))\r\n {\r\n throw new TypeError(`List field maps require object or model values; \"${key}\" cannot become a list item.`);\r\n }\r\n\r\n const explicitClassName = typeof item._type === \"string\"\r\n ? getSchemaClassName(item._type, options)\r\n : null;\r\n const className = explicitClassName || itemClassName;\r\n if (!className)\r\n {\r\n throw new TypeError(`List field maps cannot resolve a model class for \"${key}\".`);\r\n }\r\n\r\n const values = item.name === undefined ? { ...item, name: key } : item;\r\n result.push(createModelValue(className, values, options));\r\n }\r\n return result;\r\n}\r\n\r\nfunction getSchemaType(Constructor, fieldName)\r\n{\r\n if (!Constructor || !fieldName) return null;\r\n return CjsSchema.getField(Constructor, fieldName)?.type || null;\r\n}\r\n\r\nfunction getSchemaClassName(schemaType, options = {})\r\n{\r\n if (!schemaType) return null;\r\n if (typeof schemaType === \"string\")\r\n {\r\n const Schema = options.registry || CjsModel.schema;\r\n return Schema.GetConstructor(schemaType) ? schemaType : null;\r\n }\r\n if (schemaType.kind === \"model\")\r\n {\r\n return schemaType.className || null;\r\n }\r\n if (schemaType.kind === \"objectRef\" || schemaType.kind === \"struct\")\r\n {\r\n const Schema = options.registry || CjsModel.schema;\r\n return schemaType.className && Schema.GetConstructor(schemaType.className)\r\n ? schemaType.className\r\n : null;\r\n }\r\n return null;\r\n}\r\n\r\nfunction createModelValue(className, values, options)\r\n{\r\n const Schema = options.registry || CjsModel.schema;\r\n const Constructor = Schema.GetConstructor(className);\r\n if (!Constructor)\r\n {\r\n throw new TypeError(`No CjsModel class is registered for schema type ${className}.`);\r\n }\r\n // Branded, so a class registered from a sibling package is accepted. The\r\n // check still rejects a genuinely unrelated class; it just no longer\r\n // rejects a real model for having been declared elsewhere.\r\n if (Constructor !== CjsModel && !isModelInstance(Constructor.prototype))\r\n {\r\n throw new TypeError(`Registered schema type ${className} is not a CjsModel.`);\r\n }\r\n if (typeof Constructor.from !== \"function\")\r\n {\r\n throw new TypeError(`Registered CjsModel ${className} does not provide from().`);\r\n }\r\n return Constructor.from(values, options);\r\n}\r\n\r\n// --- Import operation context: `_id`/`_ref` identity across one call tree ---\r\n\r\n/** Represents one unresolved model reference during a single import operation. */\r\nclass CjsPendingReference\r\n{\r\n\r\n /**\r\n * Creates a deferred reference placeholder for a not-yet-resolved model\r\n * identifier.\r\n */\r\n constructor(id, expectedClassName = null)\r\n {\r\n this.id = id;\r\n this.expectedClassName = expectedClassName;\r\n }\r\n\r\n}\r\n\r\nfunction createImportContext()\r\n{\r\n const byId = new Map();\r\n const created = [];\r\n const pending = [];\r\n return {\r\n byId,\r\n registerCreated(instance)\r\n {\r\n created.push(instance);\r\n },\r\n register(id, instance)\r\n {\r\n const existing = byId.get(id);\r\n if (existing === instance) return;\r\n if (existing !== undefined)\r\n {\r\n throw new TypeError(`Duplicate _id ${JSON.stringify(id)} in imported values.`);\r\n }\r\n byId.set(id, instance);\r\n },\r\n defer(id, assign)\r\n {\r\n pending.push({ id, assign });\r\n },\r\n finalize()\r\n {\r\n const unresolved = new Set();\r\n for (const entry of pending)\r\n {\r\n const instance = byId.get(entry.id);\r\n if (instance === undefined)\r\n {\r\n unresolved.add(entry.id);\r\n continue;\r\n }\r\n entry.assign(instance);\r\n }\r\n pending.length = 0;\r\n if (unresolved.size)\r\n {\r\n throw new TypeError(`Unresolved _ref ids: ${Array.from(unresolved, id => JSON.stringify(id)).join(\", \")}. Every { _ref } must match a { _id } in the same import operation.`);\r\n }\r\n },\r\n initializeCreated(options)\r\n {\r\n const visited = new Set();\r\n\r\n for (let index = created.length - 1; index >= 0; index--)\r\n {\r\n initializeOwnedGraph(created[index], { ...options, visited });\r\n }\r\n\r\n created.length = 0;\r\n }\r\n };\r\n}\r\n\r\nfunction isReferenceValue(value)\r\n{\r\n return !!value && typeof value === \"object\" && !Array.isArray(value)\r\n && !ArrayBuffer.isView(value) && !(value instanceof CjsModel)\r\n && value._ref !== undefined;\r\n}\r\n\r\n// Resolves a `{ _ref }` immediately when the target is registered, or returns\r\n// a CjsPendingReference for the finalize pass (forward references). Resolved\r\n// references assign like direct instances: no declared-type constraint, since\r\n// Carbon contracts may be declared through interface names that have no\r\n// runtime inheritance relationship with the concrete class.\r\nfunction resolveIncomingReference(value, options)\r\n{\r\n const id = value._ref;\r\n const context = options.importContext;\r\n if (!context)\r\n {\r\n throw new TypeError(`Cannot resolve { _ref: ${JSON.stringify(id)} } outside an import operation; import the graph through SetValues/from so identity is tracked.`);\r\n }\r\n const resolved = context.byId.get(id);\r\n if (resolved === undefined) return new CjsPendingReference(id);\r\n return resolved;\r\n}\r\n\r\n// Resolves a reference into a container slot, deferring forward references to\r\n// the owning operation's finalize pass. Deferred slots hold null until then.\r\nfunction importReferenceInto(value, options, target, key)\r\n{\r\n const resolved = resolveIncomingReference(value, options);\r\n if (resolved instanceof CjsPendingReference)\r\n {\r\n options.importContext.defer(resolved.id, instance =>\r\n {\r\n target[key] = instance;\r\n });\r\n return null;\r\n }\r\n return resolved;\r\n}\r\n\r\n// Applies a `{ _ref }` incoming value to a model field, returning whether the\r\n// field changed. Forward references keep the current value until finalize.\r\nfunction applyIncomingReference(out, field, incoming, options)\r\n{\r\n const fieldName = field.name;\r\n const resolved = resolveIncomingReference(incoming, options);\r\n\r\n if (resolved instanceof CjsPendingReference)\r\n {\r\n options.importContext.defer(resolved.id, instance =>\r\n {\r\n out[fieldName] = instance;\r\n });\r\n return true;\r\n }\r\n\r\n if (field.io?.always !== true && Object.is(out[fieldName], resolved)) return false;\r\n out[fieldName] = resolved;\r\n return true;\r\n}\r\n\r\nfunction resolveRegisteredModelClass(typeName, options = {})\r\n{\r\n const Schema = options.registry || CjsModel.schema;\r\n const Constructor = Schema.GetConstructor(typeName);\r\n if (!Constructor)\r\n {\r\n throw new TypeError(`No CjsModel class is registered for _type \"${typeName}\".`);\r\n }\r\n return Constructor;\r\n}\r\n\r\nfunction isSingularSchemaKind(schemaType)\r\n{\r\n if (!schemaType) return false;\r\n if (typeof schemaType === \"string\") return true;\r\n return schemaType.kind !== \"array\" && schemaType.kind !== \"list\"\r\n && schemaType.kind !== \"map\" && schemaType.kind !== \"set\";\r\n}\r\n\r\nfunction assertTargetTypeMatches(out, typeName, options = {})\r\n{\r\n const Constructor = resolveRegisteredModelClass(typeName, options);\r\n if (!(out instanceof Constructor))\r\n {\r\n throw new TypeError(`Values with _type \"${typeName}\" cannot apply to a ${CjsSchema.getClassName(out.constructor) || \"model\"} target.`);\r\n }\r\n}\r\n\r\n// The transport API lives on CjsSchema - everything is called through the\r\n// schema (operator direction, 2026-09-05) - and the model layer installs the\r\n// implementation here at load, because layering forbids schema importing\r\n// model. Dispatch:\r\n// - a model target takes the full validated path (typed coercion, identity,\r\n// dirty/settle/events);\r\n// - a non-model class carrying its own SetValues/GetValues convention (the\r\n// CjsFormat family) is delegated to it, per the reader ruling that\r\n// population goes through SetValues;\r\n// - a plain decorated class without either goes through the schema layer's\r\n// state-free transport (landed 2026-09-08), which is coercion, the\r\n// writability gate and a changed set - the reader's half, with the editing\r\n// contract left to the model path.\r\n// CjsSchema.from is the whole-bag deserializer: resolve, build, apply, then\r\n// call the class-owned Initialize when it exists (ruled 2026-09-05).\r\nCjsSchema.registerValuesService({\r\n getValues(target, out = {}, options = {})\r\n {\r\n if (CjsSchema.isModelInstance(target)) return CjsModel.get(target, out, options);\r\n if (target && typeof target.GetValues === \"function\") return target.GetValues(options);\r\n return CjsSchema.getValuesFromSchema(target, out, options);\r\n },\r\n setValues(target, values = {}, options = {})\r\n {\r\n if (CjsSchema.isModelInstance(target)) return CjsModel.set(target, values, options);\r\n if (target && typeof target.SetValues === \"function\") return target.SetValues(values, options);\r\n return CjsSchema.setValuesFromSchema(target, values, options);\r\n },\r\n from(className, values = {}, options = {})\r\n {\r\n const name = typeof className === \"string\" ? className.trim() : \"\";\r\n const Constructor = CjsSchema.GetConstructor(name);\r\n if (!Constructor)\r\n {\r\n throw new TypeError(`CjsSchema.from has no class registered for \"${String(className)}\".`);\r\n }\r\n if (typeof Constructor.from === \"function\") return Constructor.from(values, options);\r\n\r\n const instance = new Constructor();\r\n this.setValues(instance, values, options);\r\n if (typeof instance.Initialize === \"function\") instance.Initialize(options);\r\n return instance;\r\n }\r\n});\r\n"],"names":["isModelInstance","value","CjsSchema","MAX_UPDATE_PASSES","CHILD_COLLECTION_KINDS","Set","CHILD_LIST_EVENT","UNLOAD_START","INSERTED","REMOVED","CjsModel","CjsEventEmitter","isModel","CJS_MODEL_BRAND","constructor","className","getClassName","TypeError","initializeModelState","GetValues","options","get","SetValues","values","set","Copy","copy","Clone","clone","Merge","merge","createChild","target","property","field","getChildCollection","imported","importSourceValue","ownerConstructor","child","assertChildObject","name","addChild","collection","assertChildCallback","onAdded","index","length","push","recordChildMutation","notifyListModified","payload","createChildEventPayload","invokeChildCallback","emitChildEvent","settleChildMutation","removeChild","indexOf","onRemoved","splice","deleteChild","delete","undefined","onDeleted","skipUpdate","call","clearChildren","count","onCleared","source","UpdateValues","addExplicitUpdateProperties","properties","__state","updating","pass","Error","dirty","OnModified","err","skipEvents","suppressEvents","EmitEvent","Traverse","visitor","visited","order","reverse","visit","model","has","add","descend","children","getSchema","start","end","step","i","ownedOnly","owned","Array","isArray","itemStart","itemEnd","j","GetResources","out","resources","item","AddResource","OnGetResources","AddResources","MarkDirty","ClearDirty","IsDirty","schema","ArrayBuffer","isView","hasAdvancedExportOptions","getModelFields","exportSourceValue","exportModelInto","createExportContext","_type","assertTargetTypeMatches","ownsImportContext","importContext","importOptions","createImportContext","_id","register","enumTranslations","validateEnumInputs","changed","isWritableModelField","key","findIncomingKey","oldValue","incoming","didChange","isReferenceValue","applyIncomingReference","structChanged","applyIncomingStructInPlace","io","always","mathChanged","coerceCarbonMathInto","coerceCarbonTypedArrayInto","newValue","areEquivalentSourceValues","markDirty","notify","addDeclaredFieldTokens","finalize","initializeCreated","size","createModifiedPayload","returnBoolean","merged","mergeValueBag","from","Constructor","resolveRegisteredModelClass","prototype","result","registerCreated","initChildren","define","carbon","impl","jessica","type","isPlainRecord","Object","entries","normalized","getPrototypeOf","fields","map","schemaFieldToModelField","existing","getRuntimeState","CjsModelState","state","defineProperty","enumerable","configurable","writable","initializeOwnedGraph","root","addAllDeclaredTokens","Initialize","isResource","Symbol","iterator","jsType","write","persist","persistOnly","read","incomingKeyCandidates","hasOwnProperty","aliases","alias","filter","getField","JSON","stringify","fieldType","kind","callback","optionName","event","secondIndex","OnListModified","eventName","flag","token","flags","rebuild","a","b","is","exportCarbonValue","typeTags","forceTypeTags","refs","forceIDs","keyedLists","enumFormat","ENUM_REVERSE_CACHE","WeakMap","resolveEnumStaticForField","enum","enumType","members","enumMemberName","Map","keys","enumIdentity","current","hasOwn","translateEnumInput","translations","issues","spec","raw","translated","join","exportEnumFieldValue","memberName","isPersistedModelField","declaredExportClassName","itemType","nextId","idByModel","context","emitted","getId","id","counts","walk","declaredClassName","assign","enumMode","exportAdvancedValue","_ref","keyed","exportKeyedList","list","seen","exported","resolved","resolveIncomingReference","CjsPendingReference","schemaType","getSchemaType","getSchemaClassName","explicitClassName","isSingularSchemaKind","createModelValue","itemClassName","importReferenceInto","effectiveType","importListMapValue","normalizeCarbonValue","js","fieldName","Schema","registry","GetConstructor","expectedClassName","byId","created","pending","instance","defer","unresolved","entry","typeName","registerValuesService","getValues","getValuesFromSchema","setValues","setValuesFromSchema","trim","String"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CjsModel.js","sources":["../../../../src/global/model/CjsModel.js"],"sourcesContent":["import { coerceCarbonMathInto, coerceCarbonTypedArrayInto, exportCarbonValue, normalizeCarbonValue } from \"../schema/types/index.js\";\r\nimport { CJS_MODEL_BRAND, CjsSchema } from \"../schema/index.js\";\r\nimport { getRuntimeState } from \"../compose/runtimeState.js\";\r\nimport { CjsModelState } from \"./CjsModelState.js\";\r\nimport { CjsEventEmitter } from \"./CjsEventEmitter.js\";\r\n\r\n/**\r\n * The cross-copy brand this class stamps on every instance.\r\n *\r\n * Defined by CjsSchema and applied here. The predicate that reads it lives\r\n * there too, as `CjsSchema.isModelInstance`, because CjsModel imports CjsSchema\r\n * and the reverse is impossible — so the schema side is the only side both a\r\n * consumer and this class can reach. See its declaration for why a symbol is\r\n * what survives two copies of this package in one realm.\r\n */\r\n\r\n/**\r\n * Reports whether a value is already a live model, including one constructed by\r\n * a different copy of this package.\r\n *\r\n * Retained as the function form of `CjsSchema.isModelInstance`, which is the\r\n * spelling to prefer in new code: it is reachable from anything holding the\r\n * schema, including through `CjsModel.schema`, without importing the model\r\n * layer to ask a question about it.\r\n *\r\n * @param {*} value Candidate value.\r\n * @returns {boolean} True when the value is a live `CjsModel`.\r\n */\r\nexport function isModelInstance(value)\r\n{\r\n return CjsSchema.isModelInstance(value);\r\n}\r\n\r\nconst MAX_UPDATE_PASSES = 32;\r\nconst CHILD_COLLECTION_KINDS = new Set([ \"array\", \"list\" ]);\r\nconst CHILD_LIST_EVENT = {\r\n UNLOAD_START: 0x07,\r\n INSERTED: 0x08,\r\n REMOVED: 0x09\r\n};\r\n\r\n/**\r\n * Shared base for schema-backed CarbonEngineJS runtime classes.\r\n *\r\n * Source fields are exported; runtime caches and bookkeeping are not.\r\n */\r\nexport class CjsModel extends CjsEventEmitter\r\n{\r\n /**\r\n * Identifies this class as a schema-backed model.\r\n *\r\n * Declared statically so CjsSchema can recognise a model class from a field\r\n * declaration alone, without importing CjsModel - which it cannot do, since\r\n * this module already imports CjsSchema. Mirrors `CjsResource.isResource`.\r\n */\r\n static isModel = true;\r\n\r\n /**\r\n * Instance-side counterpart of `isModel`, readable across package copies.\r\n *\r\n * On the prototype rather than per instance, so it costs nothing per object\r\n * and cannot be enumerated into exported values.\r\n */\r\n get [CJS_MODEL_BRAND]()\r\n {\r\n return true;\r\n }\r\n\r\n /**\r\n * Creates a schema-backed model with initialized runtime state.\r\n */\r\n constructor()\r\n {\r\n super();\r\n const className = CjsSchema.getClassName(this.constructor);\r\n if (!className)\r\n {\r\n throw new TypeError(\"CjsModel subclasses require an explicit CjsSchema className.\");\r\n }\r\n initializeModelState(this);\r\n }\r\n\r\n /**\r\n * Exports the model's schema fields to a new plain object.\r\n *\r\n * @param {object} [options={}]\r\n * @returns {object}\r\n */\r\n GetValues(options = {})\r\n {\r\n return CjsModel.get(this, {}, options);\r\n }\r\n\r\n /**\r\n * Applies a plain value bag through the canonical schema-backed setter.\r\n *\r\n * @param {object} [values={}]\r\n * @param {object} [options={}]\r\n * @returns {Set<string>|boolean} The changed fields, or a boolean result.\r\n */\r\n SetValues(values = {}, options = {})\r\n {\r\n return CjsModel.set(this, values, options);\r\n }\r\n\r\n /**\r\n * Copies the exported fields of another model into this model.\r\n *\r\n * @param {CjsModel} value\r\n * @param {object} [options={}]\r\n * @returns {CjsModel} This model.\r\n */\r\n Copy(value, options = {})\r\n {\r\n return CjsModel.copy(this, value, options);\r\n }\r\n\r\n /**\r\n * Constructs a new model of this instance's class from its schema values.\r\n *\r\n * @param {object} [options={}]\r\n * @returns {CjsModel}\r\n */\r\n Clone(options = {})\r\n {\r\n return this.constructor.clone(this, options);\r\n }\r\n\r\n /**\r\n * Deep-merges ordered value sources and applies the result once.\r\n *\r\n * Plain objects merge recursively; arrays, typed arrays, and other values\r\n * replace the preceding value.\r\n *\r\n * @param {Array<Object|CjsModel>} [values=[]]\r\n * @param {object} [options={}]\r\n * @returns {Set<string>|boolean} The result returned by {@link CjsModel.set}.\r\n */\r\n Merge(values = [], options = {})\r\n {\r\n return CjsModel.merge(this, values, options);\r\n }\r\n\r\n /**\r\n * Constructs one item from a schema-backed child collection's declared\r\n * item type, then adds it through the ordinary child-mutation path.\r\n *\r\n * Domain classes expose named factories such as `CreateAttachment`; this\r\n * programmatic helper keeps property-string mutation out of their instance\r\n * API.\r\n *\r\n * @param {CjsModel} target Owning model instance.\r\n * @param {string} property Schema `array` or `list` field name.\r\n * @param {object} [values={}] Plain child values.\r\n * @param {object} [options={}] Hydration and mutation options.\r\n * @returns {*} The constructed and added child.\r\n */\r\n static createChild(target, property, values = {}, options = {})\r\n {\r\n const { field } = getChildCollection(target, property);\r\n const imported = importSourceValue([ values ], field, {\r\n ...options,\r\n ownerConstructor: target.constructor\r\n });\r\n const child = imported[0];\r\n\r\n assertChildObject(child, field.name);\r\n CjsModel.addChild(target, field.name, child, options);\r\n return child;\r\n }\r\n\r\n /**\r\n * Appends an existing object to a schema-backed child collection.\r\n *\r\n * The mutation invokes Carbon-shaped `OnListModified` when present,\r\n * records the field's declared flag/rebuild consequences, emits one\r\n * `childadded` event, and settles the parent unless suppressed by options.\r\n *\r\n * @param {CjsModel} target Owning model instance.\r\n * @param {string} property Schema `array` or `list` field name.\r\n * @param {object} child Existing child object.\r\n * @param {object} [options={}]\r\n * @returns {object} The appended child.\r\n */\r\n static addChild(target, property, child, options = {})\r\n {\r\n const { field, collection } = getChildCollection(target, property);\r\n\r\n assertChildObject(child, field.name);\r\n assertChildCallback(options.onAdded, \"onAdded\");\r\n\r\n const index = collection.length;\r\n collection.push(child);\r\n recordChildMutation(target, field, options);\r\n notifyListModified(target, CHILD_LIST_EVENT.INSERTED, index, 0, child, collection);\r\n\r\n const payload = createChildEventPayload(target, field.name, child, index, options);\r\n invokeChildCallback(options.onAdded, target, payload, \"onAdded\");\r\n emitChildEvent(target, \"childadded\", payload, options);\r\n settleChildMutation(target, field, options);\r\n return child;\r\n }\r\n\r\n /**\r\n * Detaches the first matching object from a schema-backed child collection.\r\n * Removal never destroys the child.\r\n *\r\n * @param {CjsModel} target Owning model instance.\r\n * @param {string} property Schema `array` or `list` field name.\r\n * @param {object} child Existing child object.\r\n * @param {object} [options={}]\r\n * @returns {boolean} Whether the child was present and removed.\r\n */\r\n static removeChild(target, property, child, options = {})\r\n {\r\n const { field, collection } = getChildCollection(target, property);\r\n const index = collection.indexOf(child);\r\n\r\n if (index === -1) return false;\r\n assertChildCallback(options.onRemoved, \"onRemoved\");\r\n\r\n collection.splice(index, 1);\r\n recordChildMutation(target, field, options);\r\n notifyListModified(target, CHILD_LIST_EVENT.REMOVED, index, 0, child, collection);\r\n\r\n const payload = createChildEventPayload(target, field.name, child, index, options);\r\n invokeChildCallback(options.onRemoved, target, payload, \"onRemoved\");\r\n emitChildEvent(target, \"childremoved\", payload, options);\r\n settleChildMutation(target, field, options);\r\n return true;\r\n }\r\n\r\n /**\r\n * Removes a child and then performs an explicit deletion action.\r\n *\r\n * `options.delete` owns domain-specific teardown when supplied. Without\r\n * that explicit hook the child is detached and left to ordinary\r\n * JavaScript lifetime management. Deletion emits both `childremoved` and\r\n * `childdeleted`.\r\n *\r\n * @param {CjsModel} target Owning model instance.\r\n * @param {string} property Schema `array` or `list` field name.\r\n * @param {object} child Existing child object.\r\n * @param {object} [options={}]\r\n * @param {Function} [options.delete] Explicit child teardown callback.\r\n * @returns {boolean} Whether the child was present and deleted.\r\n */\r\n static deleteChild(target, property, child, options = {})\r\n {\r\n const { field, collection } = getChildCollection(target, property);\r\n const index = collection.indexOf(child);\r\n\r\n if (index === -1) return false;\r\n\r\n if (options.delete !== undefined && typeof options.delete !== \"function\")\r\n {\r\n throw new TypeError(\"CjsModel child delete option must be a function.\");\r\n }\r\n assertChildCallback(options.onDeleted, \"onDeleted\");\r\n\r\n CjsModel.removeChild(target, field.name, child, { ...options, skipUpdate: true });\r\n\r\n if (typeof options.delete === \"function\")\r\n {\r\n options.delete.call(target, child, options);\r\n }\r\n\r\n const payload = createChildEventPayload(target, field.name, child, index, options);\r\n invokeChildCallback(options.onDeleted, target, payload, \"onDeleted\");\r\n emitChildEvent(target, \"childdeleted\", payload, options);\r\n settleChildMutation(target, field, options);\r\n return true;\r\n }\r\n\r\n /**\r\n * Detaches every object from a schema-backed child collection without\r\n * destroying the children.\r\n *\r\n * Carbon-shaped `OnListModified` receives its unload-start callback while\r\n * the collection is still populated. The public domain method decides\r\n * whether clearing or per-child deletion is appropriate.\r\n *\r\n * @param {CjsModel} target Owning model instance.\r\n * @param {string} property Schema `array` or `list` field name.\r\n * @param {object} [options={}]\r\n * @returns {boolean} Whether any children were cleared.\r\n */\r\n static clearChildren(target, property, options = {})\r\n {\r\n const { field, collection } = getChildCollection(target, property);\r\n const count = collection.length;\r\n\r\n if (!count) return false;\r\n assertChildCallback(options.onCleared, \"onCleared\");\r\n\r\n recordChildMutation(target, field, options);\r\n notifyListModified(target, CHILD_LIST_EVENT.UNLOAD_START, 0, 0, null, collection);\r\n collection.length = 0;\r\n\r\n const payload = {\r\n property: field.name,\r\n count,\r\n source: options.source ?? target\r\n };\r\n invokeChildCallback(options.onCleared, target, payload, \"onCleared\");\r\n emitChildEvent(target, \"childrencleared\", payload, options);\r\n settleChildMutation(target, field, options);\r\n return true;\r\n }\r\n\r\n /**\r\n * Applies pending changes: drives the OnModified hook until the model\r\n * settles, clears the dirty mark, and emits one final modified event.\r\n *\r\n * Calling this IS the \"I made changes, apply please\" contract: it always\r\n * runs at least one hook pass, dirty or not, so direct/untracked\r\n * mutations (the cooperative-pipeline reality) can be applied\r\n * explicitly. Class Update/per-frame methods typically gate on\r\n * `__state.IsDirty()` before calling.\r\n *\r\n * @param {object} [options={}]\r\n * @param {string|Iterable<string>} [options.property] Fields the caller changed directly; their declared flag/rebuild tokens are added first.\r\n * @param {string|Iterable<string>} [options.properties] Alias of `property`.\r\n * @param {*} [options.source=this] Origin forwarded to the hook and event (binding feedback control).\r\n * @param {boolean} [options.skipEvents=false] Prevents the final modified event.\r\n * @returns {boolean} False when the hook rejected the update (dirty is retained).\r\n * @throws {Error} If local changes do not settle within the update-pass limit.\r\n */\r\n UpdateValues(options = {})\r\n {\r\n addExplicitUpdateProperties(this, options.property ?? options.properties);\r\n if (this.__state.updating) return true;\r\n\r\n const source = options.source ?? this;\r\n this.__state.updating = true;\r\n\r\n try\r\n {\r\n for (let pass = 0; ; pass++)\r\n {\r\n if (pass >= MAX_UPDATE_PASSES)\r\n {\r\n throw new Error(`${CjsSchema.getClassName(this.constructor)}.UpdateValues exceeded ${MAX_UPDATE_PASSES} local settle passes.`);\r\n }\r\n\r\n this.__state.dirty = false;\r\n\r\n if (this.OnModified({ ...options, source }) === false)\r\n {\r\n this.__state.dirty = true;\r\n return false;\r\n }\r\n\r\n if (!this.__state.dirty) break;\r\n }\r\n }\r\n catch (err)\r\n {\r\n this.__state.dirty = true;\r\n throw err;\r\n }\r\n finally\r\n {\r\n this.__state.updating = false;\r\n }\r\n\r\n if (options.skipEvents !== true && this.__state.suppressEvents === 0)\r\n {\r\n this.EmitEvent(\"modified\", this, { source });\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * The settle hook: reproduces the meaningful consequences of the\r\n * corresponding Carbon INotify::OnModified implementation.\r\n *\r\n * Invoked only by UpdateValues. Receives the mutation options bag\r\n * (source, caller context, skipEvents, ...). There is no changed-property\r\n * list - the pipeline is cooperative and cannot guarantee one - so\r\n * overrides are written broad-safe: consult own state, compare cached\r\n * derivations, and rely on `__state.flags`/`__state.rebuild` tokens for\r\n * targeted signals. Returning `false` rejects the update and retains the\r\n * dirty mark.\r\n *\r\n * @param {object} [options={}]\r\n * @returns {boolean} Whether the update may complete.\r\n */\r\n OnModified(options = {})\r\n {\r\n return true;\r\n }\r\n\r\n /**\r\n * Visits this model and its schema-backed child models without revisiting cycles.\r\n *\r\n * In pre-order traversal, returning `false` prunes that model's descendants.\r\n * Visitor return values are ignored in post-order traversal.\r\n *\r\n * @param {function(CjsModel): (boolean|void)} visitor\r\n * @param {object} [options={}]\r\n * @param {Set<CjsModel>} [options.visited] Existing cycle-detection set.\r\n * @param {\"pre\"|\"post\"} [options.order=\"pre\"]\r\n * @param {boolean} [options.reverse=false] Reverses field and list-item order.\r\n * @param {boolean} [options.ownedOnly=false] Traverses only owned relationships.\r\n * @returns {CjsModel} This model.\r\n * @throws {TypeError} If `visitor` is not a function.\r\n */\r\n Traverse(visitor, options = {})\r\n {\r\n if (typeof visitor !== \"function\")\r\n {\r\n throw new TypeError(\"CjsModel.Traverse requires a visitor function.\");\r\n }\r\n\r\n const visited = options.visited instanceof Set ? options.visited : new Set();\r\n const order = options.order === \"post\" ? \"post\" : \"pre\";\r\n const reverse = options.reverse === true;\r\n\r\n const visit = model =>\r\n {\r\n if (!(model instanceof CjsModel) || visited.has(model)) return;\r\n visited.add(model);\r\n\r\n let descend = true;\r\n if (order === \"pre\") descend = visitor(model) !== false;\r\n\r\n if (descend)\r\n {\r\n // Only the fields declared to hold child models, precomputed per\r\n // class - not every field, type-tested per value per visit.\r\n const children = CjsSchema.getSchema(model.constructor).children;\r\n const start = reverse ? children.length - 1 : 0;\r\n const end = reverse ? -1 : children.length;\r\n const step = reverse ? -1 : 1;\r\n\r\n for (let i = start; i !== end; i += step)\r\n {\r\n const child = children[i];\r\n if (options.ownedOnly === true && !child.owned) continue;\r\n const value = model[child.name];\r\n\r\n if (Array.isArray(value))\r\n {\r\n const itemStart = reverse ? value.length - 1 : 0;\r\n const itemEnd = reverse ? -1 : value.length;\r\n for (let j = itemStart; j !== itemEnd; j += step) visit(value[j]);\r\n }\r\n else\r\n {\r\n visit(value);\r\n }\r\n }\r\n }\r\n\r\n if (order === \"post\") visitor(model);\r\n };\r\n\r\n visit(this);\r\n return this;\r\n }\r\n\r\n /**\r\n * Collects unique resources reported by this model graph into an array.\r\n *\r\n * Every model in the graph is visited: reporting resources does not hide a\r\n * model's descendants, because an under-reported dependency set would let\r\n * readiness checks pass while a child's resources were still loading.\r\n *\r\n * Resources held in schema fields are collected automatically - they are\r\n * already declared, as `@type.objectRef(\"TriGeometryRes\")` and friends, so\r\n * restating them in a hook would be the hand-written relay chain this\r\n * traversal exists to replace.\r\n *\r\n * `OnGetResources()` is the escape hatch for resources a model holds\r\n * outside its schema, such as private fields. It takes no arguments and\r\n * always returns an iterable of resources - never a bare resource and never\r\n * nothing. Most models do not implement it.\r\n *\r\n * @param {Array<*>} [out=[]] Output array, whose contents are replaced.\r\n * @returns {Array<*>} The supplied output array.\r\n */\r\n GetResources(out = [])\r\n {\r\n const resources = new Set();\r\n\r\n this.Traverse(model =>\r\n {\r\n for (const field of CjsSchema.getSchema(model.constructor).resources)\r\n {\r\n const value = model[field.name];\r\n if (Array.isArray(value))\r\n {\r\n for (const item of value) AddResource(resources, item);\r\n }\r\n else\r\n {\r\n AddResource(resources, value);\r\n }\r\n }\r\n\r\n if (typeof model.OnGetResources === \"function\")\r\n {\r\n AddResources(resources, model.OnGetResources());\r\n }\r\n return true;\r\n });\r\n\r\n out.length = 0;\r\n out.push(...resources);\r\n return out;\r\n }\r\n\r\n /**\r\n * Marks the model as changed; the next settle applies it.\r\n *\r\n * The cooperative-pipeline contract: anything mutating outside\r\n * `SetValues` (direct writes, Object.assign, reader adapters) owes this\r\n * call or an explicit `UpdateValues()`.\r\n *\r\n * @returns {CjsModel} This model.\r\n */\r\n MarkDirty()\r\n {\r\n this.__state.MarkDirty();\r\n return this;\r\n }\r\n\r\n /**\r\n * Clears the dirty mark without settling. Rarely correct outside tests\r\n * and teardown - the settle clears it itself.\r\n *\r\n * @returns {CjsModel} This model.\r\n */\r\n ClearDirty()\r\n {\r\n this.__state.ClearDirty();\r\n return this;\r\n }\r\n\r\n /**\r\n * Checks whether a settle is owed.\r\n *\r\n * @returns {boolean}\r\n */\r\n IsDirty()\r\n {\r\n return this.__state.IsDirty();\r\n }\r\n\r\n /**\r\n * Gets the shared schema registry and decorator facade.\r\n *\r\n * @returns {typeof CjsSchema}\r\n */\r\n static get schema()\r\n {\r\n return CjsSchema;\r\n }\r\n\r\n /**\r\n * Exports a model's schema fields into an output object.\r\n *\r\n * All options default off, leaving the plain output identical to the\r\n * historical shape. Options propagate recursively to nested models.\r\n *\r\n * @param {CjsModel} value\r\n * @param {object} [out={}]\r\n * @param {object} [options={}]\r\n * @param {boolean} [options.persistOnly] Exports only persisted fields.\r\n * @param {boolean} [options.typeTags] Emits `_type` only where the concrete\r\n * class is not derivable from the declared field type (the root and\r\n * polymorphic slots).\r\n * @param {boolean} [options.forceTypeTags] Emits `_type` on every model.\r\n * @param {boolean} [options.refs] Tracks shared models: repeats export as\r\n * `{ _ref }` and their first occurrence carries `_id`. Also guards\r\n * against cyclic graphs.\r\n * @param {boolean} [options.forceIDs] Emits `_id` on every model.\r\n * @param {boolean} [options.keyedLists] Exports a list as a name-keyed\r\n * object when every item is a model with a unique non-empty `name`;\r\n * the redundant item `name` field is dropped in that form. Empty\r\n * lists stay arrays.\r\n * @param {string} [options.enumFormat] Enum-backed field emission:\r\n * \"values\" (default, numeric), \"names\" (exact member-name strings),\r\n * or \"identity\" (`[name, \"OwnerClass.EnumName\"]` tuples). Unknown\r\n * numeric values export as raw numbers in every mode.\r\n * @returns {object} The supplied output object.\r\n * @throws {TypeError} If the source or output target is invalid.\r\n */\r\n static get(value, out = {}, options = {})\r\n {\r\n if (!(value instanceof CjsModel))\r\n {\r\n throw new TypeError(\"CjsModel.get requires a CjsModel source.\");\r\n }\r\n\r\n if (!out || typeof out !== \"object\" || Array.isArray(out) || ArrayBuffer.isView(out))\r\n {\r\n throw new TypeError(\"CjsModel.get requires an object output target.\");\r\n }\r\n\r\n if (!hasAdvancedExportOptions(options))\r\n {\r\n for (const field of getModelFields(value))\r\n {\r\n out[field.name] = exportSourceValue(value[field.name], options);\r\n }\r\n\r\n return out;\r\n }\r\n\r\n return exportModelInto(value, out, null, options, createExportContext(value, options));\r\n }\r\n\r\n /**\r\n * Applies schema-backed values to a model and processes resulting updates.\r\n *\r\n * Reserved metadata keys are honored, never treated as fields: a string\r\n * `values._type` must name the target's class or one of its base classes;\r\n * `values._id` registers the target for `{ _ref }` resolution; a\r\n * `{ _ref }` incoming field value resolves to the registered instance\r\n * (shared identity) and throws when the id never resolves.\r\n *\r\n * @param {CjsModel} out\r\n * @param {object} [values={}]\r\n * @param {object} [options={}]\r\n * @param {boolean} [options.markDirty=true] Tracks changed properties and notification flags.\r\n * @param {boolean} [options.notify=true] Tracks schema notification flags.\r\n * @param {boolean} [options.skipUpdate=false] Leaves dirty changes unsettled.\r\n * @param {boolean} [options.skipEvents=false] Suppresses direct modified events.\r\n * @param {boolean} [options.returnBoolean=false] Returns a boolean instead of changed fields.\r\n * @param {*} [options.source=out] Origin included in update callbacks and events.\r\n * @returns {Set<string>|boolean} Changed fields, or a boolean result.\r\n * @throws {TypeError} If the target is not a model.\r\n */\r\n static set(out, values = {}, options = {})\r\n {\r\n if (!(out instanceof CjsModel))\r\n {\r\n throw new TypeError(\"CjsModel.set requires a CjsModel target.\");\r\n }\r\n\r\n if (!CjsSchema.assertValues(values, \"CjsModel.set\")) return false;\r\n\r\n if (typeof values._type === \"string\")\r\n {\r\n assertTargetTypeMatches(out, values._type, options);\r\n }\r\n\r\n // One import operation context is shared across the whole call tree so\r\n // `_id` registrations and `{ _ref }` resolutions see the same identity\r\n // table. The outermost call owns finalization of forward references.\r\n const ownsImportContext = !options.importContext;\r\n const importOptions = {\r\n ...options,\r\n importContext: options.importContext ?? createImportContext(),\r\n ownerConstructor: out.constructor\r\n };\r\n\r\n if (values._id !== undefined && values._id !== null)\r\n {\r\n importOptions.importContext.register(values._id, out);\r\n }\r\n\r\n const enumTranslations = validateEnumInputs(out, values);\r\n\r\n const changed = new Set();\r\n for (const field of getModelFields(out))\r\n {\r\n if (!isWritableModelField(field)) continue;\r\n\r\n const key = findIncomingKey(values, field);\r\n if (key !== null)\r\n {\r\n const oldValue = out[field.name];\r\n const incoming = enumTranslations.has(field.name) ? enumTranslations.get(field.name) : values[key];\r\n\r\n let didChange;\r\n if (isReferenceValue(incoming))\r\n {\r\n didChange = applyIncomingReference(out, field, incoming, importOptions);\r\n }\r\n else\r\n {\r\n // Registered struct fields have value semantics. Constructors may\r\n // install their canonical struct instance up front; populate that\r\n // instance rather than replacing it with an imported object.\r\n const structChanged = applyIncomingStructInPlace(oldValue, incoming, field, importOptions);\r\n\r\n if (structChanged !== null)\r\n {\r\n didChange = field.io?.always === true || structChanged;\r\n }\r\n else\r\n {\r\n // Fast path: a math field with an existing compatible typed array\r\n // is coerced IN PLACE (no allocation, buffer reference preserved).\r\n // A declared typedArray field reuses its target the same way when\r\n // the type and the incoming length already match - those are the\r\n // big buffers, and they allocated on every write until 2026-09-08.\r\n const mathChanged = coerceCarbonMathInto(oldValue, incoming, field)\r\n ?? coerceCarbonTypedArrayInto(oldValue, incoming, field);\r\n\r\n if (mathChanged !== null)\r\n {\r\n didChange = field.io?.always === true || mathChanged;\r\n }\r\n else\r\n {\r\n const newValue = importSourceValue(incoming, field, importOptions);\r\n didChange = field.io?.always === true || !areEquivalentSourceValues(oldValue, newValue);\r\n if (didChange) out[field.name] = newValue;\r\n }\r\n }\r\n }\r\n\r\n if (didChange)\r\n {\r\n changed.add(field.name);\r\n if (options.markDirty !== false)\r\n {\r\n out.__state.dirty = true;\r\n // Write-time token adds: the knowledge of WHICH field\r\n // changed lives here, so declared consequences land\r\n // here (props are not tracked in state).\r\n if (options.notify !== false)\r\n {\r\n addDeclaredFieldTokens(out, field);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (ownsImportContext)\r\n {\r\n importOptions.importContext.finalize();\r\n importOptions.importContext.initializeCreated(importOptions);\r\n }\r\n\r\n if (changed.size && options.markDirty === false)\r\n {\r\n if (options.skipUpdate !== true && options.skipEvents !== true && out.__state.suppressEvents === 0)\r\n {\r\n out.EmitEvent(\"modified\", out, createModifiedPayload(changed, options.source ?? out));\r\n }\r\n }\r\n else if (changed.size && options.skipUpdate !== true && !out.__state.updating)\r\n {\r\n out.UpdateValues(options);\r\n }\r\n\r\n return options.returnBoolean === true ? changed.size > 0 : changed.size ? changed : false;\r\n }\r\n\r\n /**\r\n * Copies all exported fields from one model into another.\r\n *\r\n * @param {CjsModel} out\r\n * @param {CjsModel} value\r\n * @param {object} [options={}]\r\n * @returns {CjsModel} The target model.\r\n * @throws {TypeError} If either argument is not a model.\r\n */\r\n static copy(out, value, options = {})\r\n {\r\n if (!(out instanceof CjsModel))\r\n {\r\n throw new TypeError(\"CjsModel.copy requires a CjsModel target.\");\r\n }\r\n\r\n if (!(value instanceof CjsModel))\r\n {\r\n throw new TypeError(\"CjsModel.copy requires a CjsModel source.\");\r\n }\r\n\r\n CjsModel.set(out, CjsModel.get(value, {}, options), options);\r\n return out;\r\n }\r\n\r\n /**\r\n * Deep-merges ordered value sources and applies the result with one set call.\r\n *\r\n * @param {CjsModel} out\r\n * @param {Array<object|CjsModel>} [values=[]]\r\n * @param {object} [options={}]\r\n * @returns {Set<string>|boolean} The result returned by {@link CjsModel.set}.\r\n * @throws {TypeError} If the target, source array, or options are invalid.\r\n */\r\n static merge(out, values = [], options = {})\r\n {\r\n if (!(out instanceof CjsModel))\r\n {\r\n throw new TypeError(\"CjsModel.merge requires a CjsModel target.\");\r\n }\r\n\r\n if (!Array.isArray(values))\r\n {\r\n throw new TypeError(\"CjsModel.merge requires an array of value sources.\");\r\n }\r\n\r\n if (!options || typeof options !== \"object\" || Array.isArray(options) || ArrayBuffer.isView(options))\r\n {\r\n throw new TypeError(\"CjsModel.merge requires an options object.\");\r\n }\r\n\r\n const merged = {};\r\n for (const value of values) mergeValueBag(merged, value, options);\r\n return CjsModel.set(out, merged, options);\r\n }\r\n\r\n /**\r\n * Constructs, populates, initializes, and cleans an owned model graph.\r\n *\r\n * The invoked constructor must support zero arguments. Initial population\r\n * suppresses updates and events; owned children initialize before parents.\r\n *\r\n * A string `values._type` selects the concrete constructor: it must name\r\n * this class or a registered subclass, otherwise a TypeError is thrown. A\r\n * `values._id` registers the instance in the import operation context\r\n * before any field descends, so `{ _ref }` values elsewhere in the same\r\n * operation — including cycles and self-references — resolve to this\r\n * instance. The outermost call finalizes forward references before\r\n * initialization; an unresolved `_ref` throws.\r\n *\r\n * @param {object} [values={}]\r\n * @param {object} [options={}]\r\n * @returns {CjsModel} An instance of the invoked model constructor.\r\n * @throws {Error} If any owned model explicitly fails initialization.\r\n */\r\n static from(values = {}, options = {})\r\n {\r\n // null still means \"no values\": a default instance, as before.\r\n if (!CjsSchema.assertValues(values, \"CjsModel.from\")) values = {};\r\n\r\n if (isReferenceValue(values))\r\n {\r\n throw new TypeError(`${CjsSchema.getClassName(this) || this.name}.from cannot construct from a { _ref } value; references resolve only inside the owning import operation.`);\r\n }\r\n\r\n if (values && typeof values === \"object\" && typeof values._type === \"string\")\r\n {\r\n const Constructor = resolveRegisteredModelClass(values._type, options);\r\n if (Constructor !== this)\r\n {\r\n if (!(Constructor.prototype instanceof this))\r\n {\r\n throw new TypeError(`_type \"${values._type}\" is not ${CjsSchema.getClassName(this) || this.name} or one of its registered subclasses.`);\r\n }\r\n return Constructor.from(values, options);\r\n }\r\n }\r\n\r\n const ownsImportContext = !options.importContext;\r\n const importOptions = ownsImportContext\r\n ? { ...options, importContext: createImportContext() }\r\n : options;\r\n\r\n const result = new this();\r\n\r\n importOptions.importContext.registerCreated(result);\r\n\r\n // Register-before-descent: the instance is visible to `_ref` lookups\r\n // before its own fields import, so back-references and cycles work.\r\n if (values && typeof values === \"object\" && values._id !== undefined && values._id !== null)\r\n {\r\n importOptions.importContext.register(values._id, result);\r\n }\r\n\r\n result.__state.suppressEvents++;\r\n try\r\n {\r\n result.SetValues(values, {\r\n ...importOptions,\r\n skipEvents: true,\r\n skipUpdate: true\r\n });\r\n\r\n if (ownsImportContext)\r\n {\r\n importOptions.importContext.finalize();\r\n importOptions.importContext.initializeCreated({\r\n ...importOptions,\r\n initChildren: true\r\n });\r\n }\r\n }\r\n finally\r\n {\r\n result.__state.suppressEvents--;\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Constructs a model from another model-like value or a raw value bag.\r\n *\r\n * @param {CjsModel|object|null} value\r\n * @param {object} [options={}]\r\n * @returns {CjsModel} An instance of the invoked model constructor.\r\n */\r\n static clone(value, options = {})\r\n {\r\n if (!value || typeof value.GetValues !== \"function\")\r\n {\r\n return this.from(value || {}, options);\r\n }\r\n\r\n return this.from(value.GetValues(options), options);\r\n }\r\n\r\n}\r\n\r\nCjsSchema.define(CjsModel, { className: \"CjsModel\" });\r\n\r\nexport const carbon = CjsSchema.carbon;\r\nexport { CjsSchema };\r\nexport const impl = CjsSchema.impl;\r\nexport const io = CjsSchema.io;\r\nexport const jessica = CjsSchema.jessica;\r\nexport const schema = CjsSchema;\r\nexport const type = CjsSchema.type;\r\n\r\nfunction mergeValueBag(out, value, options = {})\r\n{\r\n const source = value instanceof CjsModel ? CjsModel.get(value, {}, options) : value;\r\n if (!isPlainRecord(source)) return out;\r\n\r\n for (const [key, incoming] of Object.entries(source))\r\n {\r\n if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") continue;\r\n\r\n const normalized = incoming instanceof CjsModel ? CjsModel.get(incoming, {}, options) : incoming;\r\n if (isPlainRecord(normalized))\r\n {\r\n if (!isPlainRecord(out[key])) out[key] = {};\r\n mergeValueBag(out[key], normalized, options);\r\n }\r\n else\r\n {\r\n out[key] = normalized;\r\n }\r\n }\r\n return out;\r\n}\r\n\r\nfunction isPlainRecord(value)\r\n{\r\n if (!value || typeof value !== \"object\" || Array.isArray(value) || ArrayBuffer.isView(value)) return false;\r\n const prototype = Object.getPrototypeOf(value);\r\n return prototype === Object.prototype || prototype === null;\r\n}\r\n\r\nfunction getModelFields(target)\r\n{\r\n const schema = CjsSchema.getSchema(target.constructor);\r\n return schema.fields.map(schemaFieldToModelField);\r\n}\r\n\r\nfunction initializeModelState(target)\r\n{\r\n // Models own their runtime-state shape: __state is a CjsModelState,\r\n // created at construction before anything else (the event emitter's\r\n // lazily-added `events` map lives on the same instance as an expando).\r\n const existing = getRuntimeState(target);\r\n if (existing instanceof CjsModelState) return existing;\r\n if (existing)\r\n {\r\n throw new TypeError(\"CjsModel requires __state to be a CjsModelState.\");\r\n }\r\n\r\n const state = new CjsModelState();\r\n Object.defineProperty(target, \"__state\", {\r\n value: state,\r\n enumerable: false,\r\n configurable: false,\r\n writable: false\r\n });\r\n return state;\r\n}\r\n\r\nfunction initializeOwnedGraph(root, options = {})\r\n{\r\n root.Traverse(value =>\r\n {\r\n value.__state.suppressEvents++;\r\n\r\n try\r\n {\r\n if (value.__state instanceof CjsModelState)\r\n {\r\n // Construction: everything is new, so every declared consequence\r\n // applies - all flag/rebuild tokens are added, and the object is\r\n // marked for one settle.\r\n addAllDeclaredTokens(value);\r\n value.__state.dirty = true;\r\n }\r\n\r\n // Initialize arguments belong to the class's Carbon/adapted contract.\r\n // Owned-graph traversal is coordinated here and must not occupy arg 0.\r\n // A conforming Initialize performs its own final\r\n // UpdateValues({ skipEvents: true }), leaving nothing dirty.\r\n if (typeof value.Initialize === \"function\")\r\n {\r\n if (value.Initialize() === false)\r\n {\r\n throw new Error(`${CjsSchema.getClassName(value.constructor)}.from initialization failed.`);\r\n }\r\n }\r\n\r\n // Settle anything Initialize did not (including the no-Initialize\r\n // case): the one construction settle, events suppressed.\r\n if (value.__state instanceof CjsModelState && value.__state.dirty)\r\n {\r\n value.UpdateValues({\r\n ...options,\r\n source: options.source ?? value,\r\n skipEvents: true\r\n });\r\n }\r\n }\r\n finally\r\n {\r\n value.__state.suppressEvents--;\r\n }\r\n }, {\r\n order: \"post\",\r\n reverse: true,\r\n ownedOnly: true,\r\n visited: options.visited\r\n });\r\n return root;\r\n}\r\n\r\nfunction AddResource(target, value)\r\n{\r\n if (value?.isResource === true) target.add(value);\r\n}\r\n\r\n\r\nfunction AddResources(target, values)\r\n{\r\n if (typeof values === \"string\" || typeof values?.[Symbol.iterator] !== \"function\")\r\n {\r\n throw new TypeError(\"CjsModel.OnGetResources must return an iterable of resources.\");\r\n }\r\n\r\n // Empty slots are the model's own unset fields, not a contract violation.\r\n for (const value of values)\r\n {\r\n if (value !== null && value !== undefined) target.add(value);\r\n }\r\n}\r\n\r\nfunction schemaFieldToModelField(field)\r\n{\r\n return {\r\n ...field,\r\n jsType: field.type || field.jsType || null\r\n };\r\n}\r\n\r\nfunction isWritableModelField(field)\r\n{\r\n const io = field?.io;\r\n if (!io) return true;\r\n if (io.write || io.persist || io.persistOnly) return true;\r\n if (io.read && !io.write) return false;\r\n return true;\r\n}\r\n\r\nfunction findIncomingKey(values, field)\r\n{\r\n for (const key of incomingKeyCandidates(field))\r\n {\r\n if (Object.prototype.hasOwnProperty.call(values, key)) return key;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction incomingKeyCandidates(field)\r\n{\r\n const aliases = field.aliases === undefined\r\n ? field.alias === undefined ? [] : [field.alias]\r\n : Array.isArray(field.aliases) ? field.aliases : [field.aliases];\r\n return [field.name, ...aliases].filter(value => typeof value === \"string\" && value.length);\r\n}\r\n\r\nfunction getChildCollection(target, property)\r\n{\r\n if (!(target instanceof CjsModel))\r\n {\r\n throw new TypeError(\"CjsModel child collection target must be a CjsModel instance.\");\r\n }\r\n\r\n if (typeof property !== \"string\" || !property)\r\n {\r\n throw new TypeError(\"CjsModel child collection property must be a non-empty string.\");\r\n }\r\n\r\n const field = CjsSchema.getField(target.constructor, property);\r\n if (!field)\r\n {\r\n throw new TypeError(`${CjsSchema.getClassName(target.constructor)} has no schema field named ${JSON.stringify(property)}.`);\r\n }\r\n\r\n const fieldType = field.type || field.jsType;\r\n if (!CHILD_COLLECTION_KINDS.has(fieldType?.kind))\r\n {\r\n throw new TypeError(`${field.name} must be a schema array or list child collection.`);\r\n }\r\n\r\n const collection = target[field.name];\r\n if (!Array.isArray(collection))\r\n {\r\n throw new TypeError(`${field.name} must contain an ordinary JavaScript Array.`);\r\n }\r\n\r\n return { field, collection };\r\n}\r\n\r\nfunction assertChildObject(child, property)\r\n{\r\n if (!child || typeof child !== \"object\" || Array.isArray(child) || ArrayBuffer.isView(child))\r\n {\r\n throw new TypeError(`${property} requires a non-null child object.`);\r\n }\r\n}\r\n\r\nfunction assertChildCallback(callback, optionName)\r\n{\r\n if (callback !== undefined && callback !== null && typeof callback !== \"function\")\r\n {\r\n throw new TypeError(`CjsModel child ${optionName} option must be a function.`);\r\n }\r\n}\r\n\r\nfunction recordChildMutation(target, field, options)\r\n{\r\n if (options.markDirty === false) return;\r\n target.__state.dirty = true;\r\n if (options.notify !== false) addDeclaredFieldTokens(target, field);\r\n}\r\n\r\nfunction notifyListModified(target, event, index, secondIndex, child, collection)\r\n{\r\n if (typeof target.OnListModified === \"function\")\r\n {\r\n target.OnListModified(event, index, secondIndex, child, collection);\r\n }\r\n}\r\n\r\nfunction createChildEventPayload(target, property, child, index, options)\r\n{\r\n return {\r\n property,\r\n child,\r\n index,\r\n source: options.source ?? target\r\n };\r\n}\r\n\r\nfunction invokeChildCallback(callback, target, payload, optionName)\r\n{\r\n if (callback === undefined || callback === null) return;\r\n assertChildCallback(callback, optionName);\r\n callback.call(target, payload);\r\n}\r\n\r\nfunction emitChildEvent(target, eventName, payload, options)\r\n{\r\n if (options.skipEvents !== true && target.__state.suppressEvents === 0)\r\n {\r\n target.EmitEvent(eventName, target, payload);\r\n }\r\n}\r\n\r\nfunction settleChildMutation(target, field, options)\r\n{\r\n if (options.skipUpdate === true) return;\r\n\r\n if (options.markDirty === false)\r\n {\r\n if (options.skipEvents !== true && target.__state.suppressEvents === 0)\r\n {\r\n target.EmitEvent(\"modified\", target, createModifiedPayload(\r\n new Set([ field.name ]),\r\n options.source ?? target\r\n ));\r\n }\r\n return;\r\n }\r\n\r\n if (!target.__state.updating) target.UpdateValues(options);\r\n}\r\n\r\n// Adds one field's declared @io.flag / @io.rebuild tokens to their stores.\r\n// Duplicate adds are no-ops (Sets). Nothing in the model layer ever clears\r\n// these stores - getters clear flags, work methods clear rebuild tokens.\r\nfunction addDeclaredFieldTokens(target, field)\r\n{\r\n const io = field?.io;\r\n if (!io) return;\r\n if (io.flag) for (const token of io.flag) target.__state.flags.add(token);\r\n if (io.rebuild) for (const token of io.rebuild) target.__state.rebuild.add(token);\r\n}\r\n\r\n// Construction / broad invalidation: every declared token applies.\r\nfunction addAllDeclaredTokens(target)\r\n{\r\n const fields = CjsSchema.getSchema(target.constructor)?.fields || [];\r\n for (const field of fields) addDeclaredFieldTokens(target, field);\r\n}\r\n\r\n// Direct-mutation courtesy: a caller that knows which fields it touched\r\n// (bindings) passes them so declared consequences stay precise.\r\nfunction addExplicitUpdateProperties(target, properties)\r\n{\r\n if (properties === null || properties === undefined) return;\r\n target.__state.dirty = true;\r\n for (const property of typeof properties === \"string\" ? [properties] : properties)\r\n {\r\n const field = CjsSchema.getField(target.constructor, property);\r\n if (field) addDeclaredFieldTokens(target, field);\r\n }\r\n}\r\n\r\nfunction createModifiedPayload(properties, source)\r\n{\r\n return {\r\n properties: new Set(properties),\r\n source\r\n };\r\n}\r\n\r\nfunction areEquivalentSourceValues(a, b)\r\n{\r\n if (Object.is(a, b)) return true;\r\n\r\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b))\r\n {\r\n if (a.constructor !== b.constructor || a.length !== b.length) return false;\r\n for (let i = 0; i < a.length; i++)\r\n {\r\n if (!Object.is(a[i], b[i])) return false;\r\n }\r\n return true;\r\n }\r\n\r\n if (Array.isArray(a) && Array.isArray(b))\r\n {\r\n if (a.length !== b.length) return false;\r\n for (let i = 0; i < a.length; i++)\r\n {\r\n if (!areEquivalentSourceValues(a[i], b[i])) return false;\r\n }\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n\r\n/**\r\n * Exports a source-shaped field value while preserving reference and enum\r\n * policy.\r\n */\r\nexport function exportSourceValue(value, options = {})\r\n{\r\n if (value instanceof CjsModel) return value.GetValues(options);\r\n return exportCarbonValue(value);\r\n}\r\n\r\nfunction hasAdvancedExportOptions(options)\r\n{\r\n return !!(options && (options.persistOnly || options.typeTags || options.forceTypeTags\r\n || options.refs || options.forceIDs || options.keyedLists\r\n || (options.enumFormat && options.enumFormat !== \"values\")));\r\n}\r\n\r\n// Enum-aware value handling: @schema.enum(\"X\") resolves through the owning\r\n// class's PascalCase static `Constructor.X`, lazily and leaf-first.\r\nconst ENUM_REVERSE_CACHE = new WeakMap();\r\n\r\nfunction resolveEnumStaticForField(Constructor, field)\r\n{\r\n const name = field?.enum?.enumType;\r\n if (!name) return null;\r\n const members = Constructor?.[name];\r\n if (!members || typeof members !== \"object\") return null;\r\n return { name, members };\r\n}\r\n\r\nfunction enumMemberName(members, value)\r\n{\r\n let reverse = ENUM_REVERSE_CACHE.get(members);\r\n if (!reverse)\r\n {\r\n reverse = new Map();\r\n for (const key of Object.keys(members))\r\n {\r\n // Duplicate values: first-declared key wins.\r\n if (!reverse.has(members[key])) reverse.set(members[key], key);\r\n }\r\n ENUM_REVERSE_CACHE.set(members, reverse);\r\n }\r\n return reverse.get(value);\r\n}\r\n\r\nfunction enumIdentity(Constructor, name)\r\n{\r\n let current = Constructor;\r\n while (typeof current === \"function\")\r\n {\r\n if (Object.hasOwn(current, name))\r\n {\r\n return `${CjsSchema.getClassName(current) || current.name}.${name}`;\r\n }\r\n current = Object.getPrototypeOf(current);\r\n }\r\n return `${CjsSchema.getClassName(Constructor) || Constructor.name}.${name}`;\r\n}\r\n\r\n// Returns the validated numeric member value, or undefined when the input is\r\n// not a member. Accepts numeric values, exact member-name strings, and arrays\r\n// (element 0 only, so identity tuples round-trip).\r\nfunction translateEnumInput(value, members)\r\n{\r\n if (Array.isArray(value))\r\n {\r\n if (!value.length) return undefined;\r\n return translateEnumInput(value[0], members);\r\n }\r\n if (typeof value === \"string\")\r\n {\r\n return Object.hasOwn(members, value) ? members[value] : undefined;\r\n }\r\n if (typeof value === \"number\")\r\n {\r\n return enumMemberName(members, value) === undefined ? undefined : value;\r\n }\r\n return undefined;\r\n}\r\n\r\n// Atomic pre-validation: every enum-backed incoming value is checked before\r\n// any mutation; one TypeError reports every invalid property.\r\nfunction validateEnumInputs(out, values)\r\n{\r\n const translations = new Map();\r\n let issues = null;\r\n for (const field of getModelFields(out))\r\n {\r\n if (!isWritableModelField(field)) continue;\r\n const key = findIncomingKey(values, field);\r\n if (key === null) continue;\r\n const spec = resolveEnumStaticForField(out.constructor, field);\r\n if (!spec) continue;\r\n const raw = values[key];\r\n if (raw === null || raw === undefined || raw instanceof CjsModel) continue;\r\n const translated = translateEnumInput(raw, spec.members);\r\n if (translated === undefined)\r\n {\r\n issues = issues || [];\r\n issues.push(`${field.name}: ${JSON.stringify(raw)} is not a member of ${enumIdentity(out.constructor, spec.name)}`);\r\n }\r\n else\r\n {\r\n translations.set(field.name, translated);\r\n }\r\n }\r\n if (issues)\r\n {\r\n throw new TypeError(`Invalid enum values for ${CjsSchema.getClassName(out.constructor) || \"model\"} - ${issues.join(\"; \")}`);\r\n }\r\n return translations;\r\n}\r\n\r\nfunction exportEnumFieldValue(value, spec, Constructor, options)\r\n{\r\n if (typeof value !== \"number\") return value;\r\n const memberName = enumMemberName(spec.members, value);\r\n if (memberName === undefined) return value;\r\n if (options.enumFormat === \"names\") return memberName;\r\n return [memberName, enumIdentity(Constructor, spec.name)];\r\n}\r\n\r\nfunction isPersistedModelField(field)\r\n{\r\n const io = field?.io;\r\n return !!(io && (io.persist || io.persistOnly));\r\n}\r\n\r\nfunction declaredExportClassName(fieldType)\r\n{\r\n if (!fieldType) return null;\r\n if (typeof fieldType === \"string\") return fieldType;\r\n if (fieldType.kind === \"array\" || fieldType.kind === \"list\")\r\n {\r\n const item = fieldType.itemType ?? null;\r\n return typeof item === \"string\" ? item : item?.className ?? null;\r\n }\r\n return fieldType.className ?? null;\r\n}\r\n\r\nfunction createExportContext(root, options)\r\n{\r\n if (!options.refs && !options.forceIDs) return null;\r\n\r\n let nextId = 1;\r\n const idByModel = new Map();\r\n const context = {\r\n emitted: new Set(),\r\n idByModel,\r\n getId(model)\r\n {\r\n let id = idByModel.get(model);\r\n if (id === undefined)\r\n {\r\n id = nextId++;\r\n idByModel.set(model, id);\r\n }\r\n return id;\r\n }\r\n };\r\n\r\n if (options.refs)\r\n {\r\n // Pre-count occurrences so only genuinely shared models receive ids.\r\n const counts = new Map();\r\n (function walk(value)\r\n {\r\n if (Array.isArray(value))\r\n {\r\n for (const item of value) walk(item);\r\n return;\r\n }\r\n if (!(value instanceof CjsModel)) return;\r\n const count = (counts.get(value) ?? 0) + 1;\r\n counts.set(value, count);\r\n if (count > 1) return;\r\n for (const field of getModelFields(value))\r\n {\r\n if (options.persistOnly && !isPersistedModelField(field)) continue;\r\n walk(value[field.name]);\r\n }\r\n })(root);\r\n for (const [model, count] of counts)\r\n {\r\n if (count > 1) idByModel.set(model, nextId++);\r\n }\r\n }\r\n\r\n return context;\r\n}\r\n\r\nfunction exportModelInto(model, out, declaredClassName, options, context)\r\n{\r\n if (context)\r\n {\r\n context.emitted.add(model);\r\n }\r\n\r\n const className = CjsSchema.getClassName(model.constructor);\r\n if (options.forceTypeTags || (options.typeTags && className && className !== declaredClassName))\r\n {\r\n out._type = className;\r\n }\r\n if (context && (options.forceIDs || context.idByModel.has(model)))\r\n {\r\n out._id = context.getId(model);\r\n }\r\n\r\n // Field metadata is per-copy for the same reason the class name is, and\r\n // when it is missing the loop below simply exports nothing — a model that\r\n // silently becomes an empty object rather than failing. The model itself\r\n // always knows its own schema, so the export is delegated to the copy that\r\n // declared it. `_type` and `_id` are already resolved above and are kept:\r\n // identity belongs to the graph being written, not to the model's own view\r\n // of itself.\r\n const fields = getModelFields(model);\r\n if (!fields.length && typeof model.GetValues === \"function\")\r\n {\r\n return Object.assign(out, model.GetValues(options), out);\r\n }\r\n\r\n const enumMode = options.enumFormat && options.enumFormat !== \"values\";\r\n for (const field of fields)\r\n {\r\n if (options.persistOnly && !isPersistedModelField(field)) continue;\r\n if (enumMode)\r\n {\r\n const spec = resolveEnumStaticForField(model.constructor, field);\r\n if (spec)\r\n {\r\n out[field.name] = exportEnumFieldValue(model[field.name], spec, model.constructor, options);\r\n continue;\r\n }\r\n }\r\n out[field.name] = exportAdvancedValue(\r\n model[field.name],\r\n declaredExportClassName(field.jsType || field.type || null),\r\n options,\r\n context\r\n );\r\n }\r\n\r\n return out;\r\n}\r\n\r\nfunction exportAdvancedValue(value, declaredClassName, options, context)\r\n{\r\n // Branded, for the same reason as the import side: a cross-copy model that\r\n // fails this test is exported as an anonymous field bag, losing both its\r\n // `_type` and its place in the shared-identity table.\r\n if (isModelInstance(value))\r\n {\r\n if (context && options.refs && context.emitted.has(value))\r\n {\r\n return { _ref: context.getId(value) };\r\n }\r\n return exportModelInto(value, {}, declaredClassName, options, context);\r\n }\r\n if (Array.isArray(value))\r\n {\r\n if (options.keyedLists)\r\n {\r\n const keyed = exportKeyedList(value, declaredClassName, options, context);\r\n if (keyed) return keyed;\r\n }\r\n return value.map(item => exportAdvancedValue(item, declaredClassName, options, context));\r\n }\r\n return exportCarbonValue(value);\r\n}\r\n\r\nfunction exportKeyedList(list, declaredClassName, options, context)\r\n{\r\n if (!list.length) return null;\r\n\r\n const seen = new Set();\r\n for (const item of list)\r\n {\r\n if (!(item instanceof CjsModel)) return null;\r\n const name = item.name;\r\n if (typeof name !== \"string\" || name === \"\" || seen.has(name)) return null;\r\n seen.add(name);\r\n }\r\n\r\n const out = {};\r\n for (const item of list)\r\n {\r\n const exported = exportAdvancedValue(item, declaredClassName, options, context);\r\n if (exported && typeof exported === \"object\" && exported._ref === undefined)\r\n {\r\n delete exported.name;\r\n }\r\n out[item.name] = exported;\r\n }\r\n return out;\r\n}\r\n\r\n/** Imports a source-shaped field value according to schema and reference policy. */\r\nexport function importSourceValue(value, field = null, options = {})\r\n{\r\n // Branded rather than `instanceof`: a live model handed over by a sibling\r\n // package is still a live model, and the alternative here is not an error\r\n // but a silent copy into a plain object further down.\r\n if (isModelInstance(value)) return value;\r\n\r\n if (isReferenceValue(value))\r\n {\r\n const resolved = resolveIncomingReference(value, options);\r\n if (resolved instanceof CjsPendingReference)\r\n {\r\n throw new TypeError(`Forward { _ref: ${JSON.stringify(value._ref)} } cannot be deferred in this position.`);\r\n }\r\n return resolved;\r\n }\r\n\r\n const schemaType = getSchemaType(options.ownerConstructor, field?.name);\r\n const declaredClassName = getSchemaClassName(schemaType, options);\r\n if (value && typeof value === \"object\" && !isModelInstance(value) && !Array.isArray(value) && !ArrayBuffer.isView(value))\r\n {\r\n // A registered `_type` selects the concrete class in singular\r\n // schema-typed positions. Carbon contracts may be declared through\r\n // interface names with no runtime inheritance, so the declared name\r\n // is a fallback, not a constraint the concrete class must extend.\r\n const explicitClassName = isSingularSchemaKind(schemaType) && typeof value._type === \"string\"\r\n ? getSchemaClassName(value._type, options)\r\n : null;\r\n const className = explicitClassName || declaredClassName;\r\n if (className)\r\n {\r\n return createModelValue(className, value, options);\r\n }\r\n }\r\n\r\n if ((schemaType?.kind === \"array\" || schemaType?.kind === \"list\") && schemaType.itemType && Array.isArray(value))\r\n {\r\n const itemClassName = getSchemaClassName(schemaType.itemType, options);\r\n const result = [];\r\n for (let i = 0; i < value.length; i++)\r\n {\r\n const item = value[i];\r\n if (isReferenceValue(item))\r\n {\r\n result.push(importReferenceInto(item, options, result, i));\r\n continue;\r\n }\r\n if (!item || typeof item !== \"object\" || item instanceof CjsModel || ArrayBuffer.isView(item))\r\n {\r\n result.push(importSourceValue(item, null, options));\r\n continue;\r\n }\r\n\r\n const explicitClassName = typeof item._type === \"string\"\r\n ? getSchemaClassName(item._type, options)\r\n : null;\r\n if (explicitClassName)\r\n {\r\n result.push(createModelValue(explicitClassName, item, options));\r\n continue;\r\n }\r\n\r\n result.push(itemClassName\r\n ? createModelValue(itemClassName, item, options)\r\n : importSourceValue(item, null, options));\r\n }\r\n return result;\r\n }\r\n\r\n // List fields also accept name-keyed object maps for unique-named items;\r\n // the map is a wholesale list replacement, mirroring array semantics.\r\n const effectiveType = field?.jsType || field?.type || schemaType;\r\n if ((effectiveType?.kind === \"array\" || effectiveType?.kind === \"list\")\r\n && value && typeof value === \"object\" && !Array.isArray(value) && !ArrayBuffer.isView(value))\r\n {\r\n return importListMapValue(value, effectiveType, options);\r\n }\r\n\r\n if (field) return normalizeCarbonValue(value, field);\r\n if (ArrayBuffer.isView(value)) return normalizeCarbonValue(value, { jsType: { kind: \"typedArray\", js: value.constructor.name } });\r\n if (typeof value === \"bigint\") return value;\r\n if (Array.isArray(value))\r\n {\r\n const result = [];\r\n for (let i = 0; i < value.length; i++)\r\n {\r\n const item = value[i];\r\n result.push(isReferenceValue(item)\r\n ? importReferenceInto(item, options, result, i)\r\n : importSourceValue(item, null, options));\r\n }\r\n return result;\r\n }\r\n if (value && typeof value === \"object\" && !(value instanceof CjsModel))\r\n {\r\n const result = {};\r\n for (const [key, item] of Object.entries(value))\r\n {\r\n result[key] = isReferenceValue(item)\r\n ? importReferenceInto(item, options, result, key)\r\n : importSourceValue(item, null, options);\r\n }\r\n return result;\r\n }\r\n return value;\r\n}\r\n\r\nfunction applyIncomingStructInPlace(current, incoming, field, options)\r\n{\r\n const schemaType = getSchemaType(options.ownerConstructor, field?.name) || field?.type || field?.jsType;\r\n if (schemaType?.kind !== \"struct\" || !(current instanceof CjsModel)) return null;\r\n if (incoming === null || incoming === undefined) return false;\r\n if (typeof incoming !== \"object\" || Array.isArray(incoming) || ArrayBuffer.isView(incoming))\r\n {\r\n throw new TypeError(`${field.name} requires an object value for registered struct ${schemaType.className || \"unknown\"}.`);\r\n }\r\n\r\n const values = incoming instanceof CjsModel ? incoming.GetValues() : incoming;\r\n const changed = current.SetValues(values, options);\r\n return changed instanceof Set ? changed.size > 0 : changed === true;\r\n}\r\n\r\nfunction importListMapValue(value, schemaType, options)\r\n{\r\n const itemClassName = schemaType.itemType ? getSchemaClassName(schemaType.itemType, options) : null;\r\n const result = [];\r\n for (const key of Object.keys(value))\r\n {\r\n const item = value[key];\r\n if (item === undefined || item === null) continue;\r\n\r\n if (item instanceof CjsModel)\r\n {\r\n if (typeof item.name === \"string\" && item.name === \"\")\r\n {\r\n item.SetValues({ name: key });\r\n }\r\n result.push(item);\r\n continue;\r\n }\r\n\r\n if (isReferenceValue(item))\r\n {\r\n // Shared items keep their own name; the map key is not restamped\r\n // onto an instance owned by another position in the graph.\r\n result.push(importReferenceInto(item, options, result, result.length));\r\n continue;\r\n }\r\n\r\n if (typeof item !== \"object\" || Array.isArray(item) || ArrayBuffer.isView(item))\r\n {\r\n throw new TypeError(`List field maps require object or model values; \"${key}\" cannot become a list item.`);\r\n }\r\n\r\n const explicitClassName = typeof item._type === \"string\"\r\n ? getSchemaClassName(item._type, options)\r\n : null;\r\n const className = explicitClassName || itemClassName;\r\n if (!className)\r\n {\r\n throw new TypeError(`List field maps cannot resolve a model class for \"${key}\".`);\r\n }\r\n\r\n const values = item.name === undefined ? { ...item, name: key } : item;\r\n result.push(createModelValue(className, values, options));\r\n }\r\n return result;\r\n}\r\n\r\nfunction getSchemaType(Constructor, fieldName)\r\n{\r\n if (!Constructor || !fieldName) return null;\r\n return CjsSchema.getField(Constructor, fieldName)?.type || null;\r\n}\r\n\r\nfunction getSchemaClassName(schemaType, options = {})\r\n{\r\n if (!schemaType) return null;\r\n if (typeof schemaType === \"string\")\r\n {\r\n const Schema = options.registry || CjsModel.schema;\r\n return Schema.GetConstructor(schemaType) ? schemaType : null;\r\n }\r\n if (schemaType.kind === \"model\")\r\n {\r\n return schemaType.className || null;\r\n }\r\n if (schemaType.kind === \"objectRef\" || schemaType.kind === \"struct\")\r\n {\r\n const Schema = options.registry || CjsModel.schema;\r\n return schemaType.className && Schema.GetConstructor(schemaType.className)\r\n ? schemaType.className\r\n : null;\r\n }\r\n return null;\r\n}\r\n\r\nfunction createModelValue(className, values, options)\r\n{\r\n const Schema = options.registry || CjsModel.schema;\r\n const Constructor = Schema.GetConstructor(className);\r\n if (!Constructor)\r\n {\r\n throw new TypeError(`No CjsModel class is registered for schema type ${className}.`);\r\n }\r\n // Branded, so a class registered from a sibling package is accepted. The\r\n // check still rejects a genuinely unrelated class; it just no longer\r\n // rejects a real model for having been declared elsewhere.\r\n if (Constructor !== CjsModel && !isModelInstance(Constructor.prototype))\r\n {\r\n throw new TypeError(`Registered schema type ${className} is not a CjsModel.`);\r\n }\r\n if (typeof Constructor.from !== \"function\")\r\n {\r\n throw new TypeError(`Registered CjsModel ${className} does not provide from().`);\r\n }\r\n return Constructor.from(values, options);\r\n}\r\n\r\n// --- Import operation context: `_id`/`_ref` identity across one call tree ---\r\n\r\n/** Represents one unresolved model reference during a single import operation. */\r\nclass CjsPendingReference\r\n{\r\n\r\n /**\r\n * Creates a deferred reference placeholder for a not-yet-resolved model\r\n * identifier.\r\n */\r\n constructor(id, expectedClassName = null)\r\n {\r\n this.id = id;\r\n this.expectedClassName = expectedClassName;\r\n }\r\n\r\n}\r\n\r\nfunction createImportContext()\r\n{\r\n const byId = new Map();\r\n const created = [];\r\n const pending = [];\r\n return {\r\n byId,\r\n registerCreated(instance)\r\n {\r\n created.push(instance);\r\n },\r\n register(id, instance)\r\n {\r\n const existing = byId.get(id);\r\n if (existing === instance) return;\r\n if (existing !== undefined)\r\n {\r\n throw new TypeError(`Duplicate _id ${JSON.stringify(id)} in imported values.`);\r\n }\r\n byId.set(id, instance);\r\n },\r\n defer(id, assign)\r\n {\r\n pending.push({ id, assign });\r\n },\r\n finalize()\r\n {\r\n const unresolved = new Set();\r\n for (const entry of pending)\r\n {\r\n const instance = byId.get(entry.id);\r\n if (instance === undefined)\r\n {\r\n unresolved.add(entry.id);\r\n continue;\r\n }\r\n entry.assign(instance);\r\n }\r\n pending.length = 0;\r\n if (unresolved.size)\r\n {\r\n throw new TypeError(`Unresolved _ref ids: ${Array.from(unresolved, id => JSON.stringify(id)).join(\", \")}. Every { _ref } must match a { _id } in the same import operation.`);\r\n }\r\n },\r\n initializeCreated(options)\r\n {\r\n const visited = new Set();\r\n\r\n for (let index = created.length - 1; index >= 0; index--)\r\n {\r\n initializeOwnedGraph(created[index], { ...options, visited });\r\n }\r\n\r\n created.length = 0;\r\n }\r\n };\r\n}\r\n\r\nfunction isReferenceValue(value)\r\n{\r\n return !!value && typeof value === \"object\" && !Array.isArray(value)\r\n && !ArrayBuffer.isView(value) && !(value instanceof CjsModel)\r\n && value._ref !== undefined;\r\n}\r\n\r\n// Resolves a `{ _ref }` immediately when the target is registered, or returns\r\n// a CjsPendingReference for the finalize pass (forward references). Resolved\r\n// references assign like direct instances: no declared-type constraint, since\r\n// Carbon contracts may be declared through interface names that have no\r\n// runtime inheritance relationship with the concrete class.\r\nfunction resolveIncomingReference(value, options)\r\n{\r\n const id = value._ref;\r\n const context = options.importContext;\r\n if (!context)\r\n {\r\n throw new TypeError(`Cannot resolve { _ref: ${JSON.stringify(id)} } outside an import operation; import the graph through SetValues/from so identity is tracked.`);\r\n }\r\n const resolved = context.byId.get(id);\r\n if (resolved === undefined) return new CjsPendingReference(id);\r\n return resolved;\r\n}\r\n\r\n// Resolves a reference into a container slot, deferring forward references to\r\n// the owning operation's finalize pass. Deferred slots hold null until then.\r\nfunction importReferenceInto(value, options, target, key)\r\n{\r\n const resolved = resolveIncomingReference(value, options);\r\n if (resolved instanceof CjsPendingReference)\r\n {\r\n options.importContext.defer(resolved.id, instance =>\r\n {\r\n target[key] = instance;\r\n });\r\n return null;\r\n }\r\n return resolved;\r\n}\r\n\r\n// Applies a `{ _ref }` incoming value to a model field, returning whether the\r\n// field changed. Forward references keep the current value until finalize.\r\nfunction applyIncomingReference(out, field, incoming, options)\r\n{\r\n const fieldName = field.name;\r\n const resolved = resolveIncomingReference(incoming, options);\r\n\r\n if (resolved instanceof CjsPendingReference)\r\n {\r\n options.importContext.defer(resolved.id, instance =>\r\n {\r\n out[fieldName] = instance;\r\n });\r\n return true;\r\n }\r\n\r\n if (field.io?.always !== true && Object.is(out[fieldName], resolved)) return false;\r\n out[fieldName] = resolved;\r\n return true;\r\n}\r\n\r\nfunction resolveRegisteredModelClass(typeName, options = {})\r\n{\r\n const Schema = options.registry || CjsModel.schema;\r\n const Constructor = Schema.GetConstructor(typeName);\r\n if (!Constructor)\r\n {\r\n throw new TypeError(`No CjsModel class is registered for _type \"${typeName}\".`);\r\n }\r\n return Constructor;\r\n}\r\n\r\nfunction isSingularSchemaKind(schemaType)\r\n{\r\n if (!schemaType) return false;\r\n if (typeof schemaType === \"string\") return true;\r\n return schemaType.kind !== \"array\" && schemaType.kind !== \"list\"\r\n && schemaType.kind !== \"map\" && schemaType.kind !== \"set\";\r\n}\r\n\r\nfunction assertTargetTypeMatches(out, typeName, options = {})\r\n{\r\n const Constructor = resolveRegisteredModelClass(typeName, options);\r\n if (!(out instanceof Constructor))\r\n {\r\n throw new TypeError(`Values with _type \"${typeName}\" cannot apply to a ${CjsSchema.getClassName(out.constructor) || \"model\"} target.`);\r\n }\r\n}\r\n\r\n// The transport API lives on CjsSchema - everything is called through the\r\n// schema (operator direction, 2026-09-05) - and the model layer installs the\r\n// implementation here at load, because layering forbids schema importing\r\n// model. Dispatch:\r\n// - a model target takes the full validated path (typed coercion, identity,\r\n// dirty/settle/events);\r\n// - a non-model class carrying its own SetValues/GetValues convention (the\r\n// CjsFormat family) is delegated to it, per the reader ruling that\r\n// population goes through SetValues;\r\n// - a plain decorated class without either goes through the schema layer's\r\n// state-free transport (landed 2026-09-08), which is coercion, the\r\n// writability gate and a changed set - the reader's half, with the editing\r\n// contract left to the model path.\r\n// CjsSchema.from is the whole-bag deserializer: resolve, build, apply, then\r\n// call the class-owned Initialize when it exists (ruled 2026-09-05).\r\nCjsSchema.registerValuesService({\r\n getValues(target, out = {}, options = {})\r\n {\r\n if (CjsSchema.isModelInstance(target)) return CjsModel.get(target, out, options);\r\n if (target && typeof target.GetValues === \"function\") return target.GetValues(options);\r\n return CjsSchema.getValuesFromSchema(target, out, options);\r\n },\r\n setValues(target, values = {}, options = {})\r\n {\r\n if (CjsSchema.isModelInstance(target)) return CjsModel.set(target, values, options);\r\n if (target && typeof target.SetValues === \"function\") return target.SetValues(values, options);\r\n return CjsSchema.setValuesFromSchema(target, values, options);\r\n },\r\n from(className, values = {}, options = {})\r\n {\r\n const name = typeof className === \"string\" ? className.trim() : \"\";\r\n const Constructor = CjsSchema.GetConstructor(name);\r\n if (!Constructor)\r\n {\r\n throw new TypeError(`CjsSchema.from has no class registered for \"${String(className)}\".`);\r\n }\r\n if (typeof Constructor.from === \"function\") return Constructor.from(values, options);\r\n\r\n const instance = new Constructor();\r\n this.setValues(instance, values, options);\r\n if (typeof instance.Initialize === \"function\") instance.Initialize(options);\r\n return instance;\r\n }\r\n});\r\n"],"names":["isModelInstance","value","CjsSchema","MAX_UPDATE_PASSES","CHILD_COLLECTION_KINDS","Set","CHILD_LIST_EVENT","UNLOAD_START","INSERTED","REMOVED","CjsModel","CjsEventEmitter","isModel","CJS_MODEL_BRAND","constructor","className","getClassName","TypeError","initializeModelState","GetValues","options","get","SetValues","values","set","Copy","copy","Clone","clone","Merge","merge","createChild","target","property","field","getChildCollection","imported","importSourceValue","ownerConstructor","child","assertChildObject","name","addChild","collection","assertChildCallback","onAdded","index","length","push","recordChildMutation","notifyListModified","payload","createChildEventPayload","invokeChildCallback","emitChildEvent","settleChildMutation","removeChild","indexOf","onRemoved","splice","deleteChild","delete","undefined","onDeleted","skipUpdate","call","clearChildren","count","onCleared","source","UpdateValues","addExplicitUpdateProperties","properties","__state","updating","pass","Error","dirty","OnModified","err","skipEvents","suppressEvents","EmitEvent","Traverse","visitor","visited","order","reverse","visit","model","has","add","descend","children","getSchema","start","end","step","i","ownedOnly","owned","Array","isArray","itemStart","itemEnd","j","GetResources","out","resources","item","AddResource","OnGetResources","AddResources","MarkDirty","ClearDirty","IsDirty","schema","ArrayBuffer","isView","hasAdvancedExportOptions","getModelFields","exportSourceValue","exportModelInto","createExportContext","assertValues","_type","assertTargetTypeMatches","ownsImportContext","importContext","importOptions","createImportContext","_id","register","enumTranslations","validateEnumInputs","changed","isWritableModelField","key","findIncomingKey","oldValue","incoming","didChange","isReferenceValue","applyIncomingReference","structChanged","applyIncomingStructInPlace","io","always","mathChanged","coerceCarbonMathInto","coerceCarbonTypedArrayInto","newValue","areEquivalentSourceValues","markDirty","notify","addDeclaredFieldTokens","finalize","initializeCreated","size","createModifiedPayload","returnBoolean","merged","mergeValueBag","from","Constructor","resolveRegisteredModelClass","prototype","result","registerCreated","initChildren","define","carbon","impl","jessica","type","isPlainRecord","Object","entries","normalized","getPrototypeOf","fields","map","schemaFieldToModelField","existing","getRuntimeState","CjsModelState","state","defineProperty","enumerable","configurable","writable","initializeOwnedGraph","root","addAllDeclaredTokens","Initialize","isResource","Symbol","iterator","jsType","write","persist","persistOnly","read","incomingKeyCandidates","hasOwnProperty","aliases","alias","filter","getField","JSON","stringify","fieldType","kind","callback","optionName","event","secondIndex","OnListModified","eventName","flag","token","flags","rebuild","a","b","is","exportCarbonValue","typeTags","forceTypeTags","refs","forceIDs","keyedLists","enumFormat","ENUM_REVERSE_CACHE","WeakMap","resolveEnumStaticForField","enum","enumType","members","enumMemberName","Map","keys","enumIdentity","current","hasOwn","translateEnumInput","translations","issues","spec","raw","translated","join","exportEnumFieldValue","memberName","isPersistedModelField","declaredExportClassName","itemType","nextId","idByModel","context","emitted","getId","id","counts","walk","declaredClassName","assign","enumMode","exportAdvancedValue","_ref","keyed","exportKeyedList","list","seen","exported","resolved","resolveIncomingReference","CjsPendingReference","schemaType","getSchemaType","getSchemaClassName","explicitClassName","isSingularSchemaKind","createModelValue","itemClassName","importReferenceInto","effectiveType","importListMapValue","normalizeCarbonValue","js","fieldName","Schema","registry","GetConstructor","expectedClassName","byId","created","pending","instance","defer","unresolved","entry","typeName","registerValuesService","getValues","getValuesFromSchema","setValues","setValuesFromSchema","trim","String"],"mappings":"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"}
|