@carbonenginejs/runtime 0.1.0-alpha.1 → 0.1.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/global/schema/CjsSchema.js +20 -2
- package/dist/global/schema/CjsSchema.js.map +1 -1
- package/dist/global/schema/hydration.js +14 -0
- package/dist/global/schema/hydration.js.map +1 -1
- package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +17 -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/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +54 -85
- package/docs/trinityal/reference/classes/dropped.md +11 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CjsSchema.js","sources":["../../../../src/global/schema/CjsSchema.js"],"sourcesContent":["import {\r\n coerceCarbonMathInto,\r\n coerceCarbonTypedArrayInto,\r\n defaultValueForCarbonField,\r\n exportCarbonValue,\r\n normalizeCarbonValue\r\n} from \"./types/carbonTypes.js\";\r\nimport { composeNotifyDecorator } from \"../compose/notify.js\";\r\nimport { cast, composeInterfaceDecorator } from \"../compose/interface.js\";\r\nimport { composeValuesDecorator, createValuesTransport } from \"../compose/values.js\";\r\n\r\n\r\nconst CLASS_SCHEMA = new WeakMap();\r\n\r\n// Exported schemas, memoized per class. SCHEMA_GENERATION is bumped by every\r\n// metadata definition (see getOrCreateClassSchema), which is what makes a stale\r\n// memo detectable without tracking which subclasses a base class change reaches.\r\nconst SCHEMA_EXPORTS = new WeakMap();\r\nconst DEFAULT_EXPORTS = new WeakMap();\r\nconst FIELD_INITIAL_DEFAULTS = new WeakMap();\r\nconst FIELD_DECLARATION_METADATA = new WeakMap();\r\nlet SCHEMA_GENERATION = 0;\r\n\r\nconst CONSTRUCTOR_BY_NAME = new Map();\r\nconst ENUM_SCHEMA_BY_NAME = new Map();\r\nconst ENUM_SCHEMA_BY_OBJECT = new WeakMap();\r\nconst STAGE3_FIELD_METADATA = Symbol(\"carbonenginejs.schema.stage3Fields\");\r\n\r\n// Declared here rather than beside describeDecorator: the CjsSchema class body\r\n// builds every decorator namespace in its static initializer, which runs before\r\n// any const declared after the class is initialized.\r\nconst DECORATOR_METADATA = Symbol(\"carbonenginejs.schema.decoratorMetadata\");\r\n\r\nexport const CJS_ENUM_NAME = Symbol.for(\"carbonenginejs.enum.name\");\r\n\r\n/**\r\n * Cross-copy carrier for a declared class name.\r\n *\r\n * Schema metadata lives in a `WeakMap` keyed by constructor, which is private\r\n * to whichever copy of this file created it. Applications can install or\r\n * bundle multiple runtime copies, so a class declared by another copy is\r\n * invisible to `getClassName` here — it returns null for a perfectly\r\n * well-declared class.\r\n *\r\n * That null is not inert. `_type` is emitted only when a class name is known,\r\n * so a cross-copy model exports with no type tag and the values graph silently\r\n * stops being able to rebuild it. Stamping the name on the constructor under a\r\n * global-registry symbol makes the identity survive the boundary, exactly as\r\n * `carbonenginejs.model` does for instances.\r\n */\r\nexport const CJS_CLASS_NAME = Symbol.for(\"carbonenginejs.className\");\r\n\r\n/**\r\n * Cross-copy brand for \"this object is already a live CjsModel\".\r\n *\r\n * Declared here rather than in CjsModel, even though CjsModel is what applies\r\n * it, because the dependency runs one way only: CjsModel imports CjsSchema and\r\n * the reverse is impossible. A predicate that reads a symbol needs no access to\r\n * the class, so the question can be answered from this side of the edge and the\r\n * answer becomes available to every consumer that has the schema.\r\n *\r\n * `value instanceof CjsModel` answers a narrower question than it appears to:\r\n * it asks whether the value came from THIS copy of the runtime package. When an\r\n * application contains multiple copies, a model handed over by another copy\r\n * fails the test while being a perfectly good model.\r\n *\r\n * `Symbol.for` resolves through the global registry, which is one registry per\r\n * realm no matter how many copies of this file are loaded — the same reason\r\n * `carbonenginejs.type` and `carbonenginejs.enum.name` already use it.\r\n */\r\nexport const CJS_MODEL_BRAND = Symbol.for(\"carbonenginejs.model\");\r\n\r\n/**\r\n * Reusable schema/decorator metadata surface.\r\n *\r\n * Decorators are namespace-scoped so consumers can export only the parts they\r\n * understand. The functions support stage-3 field decorators and direct tool\r\n * registration through decorateField().\r\n */\r\nexport class CjsSchema\r\n{\r\n /** Registers complete reviewed schema metadata for a constructor. */\r\n static define(Constructor, definition = {})\r\n {\r\n defineClassMetadata(Constructor, normalizeClassDefinition(Constructor, definition));\r\n return this;\r\n }\r\n\r\n /**\r\n * Creates a field decorator that binds the field to a registered enum\r\n * identity.\r\n */\r\n static enum(values)\r\n {\r\n return fieldDecorator(\"enum\", normalizeEnumDefinition(values));\r\n }\r\n\r\n /** Registers enum identity, members, and optional source metadata. */\r\n static defineEnum(values, definition = {})\r\n {\r\n defineEnumMetadata(values, normalizeEnumSchema(values, definition));\r\n return this;\r\n }\r\n\r\n /** Applies field schema metadata without requiring decorator syntax. */\r\n static decorateField(Constructor, fieldName, ...decorators)\r\n {\r\n for (const decorator of decorators)\r\n {\r\n decorator(Constructor.prototype, fieldName);\r\n }\r\n return Constructor;\r\n }\r\n\r\n /** Applies method provenance metadata without requiring decorator syntax. */\r\n /**\r\n * Carbon's `dynamic_cast`: returns the value when it implements the\r\n * contract, otherwise null. See `compose/interface.js` for why this exists\r\n * and what it deliberately does not do.\r\n *\r\n * @param {*} value\r\n * @param {Function} Contract\r\n * @returns {*} `value` or `null`.\r\n */\r\n static cast(value, Contract)\r\n {\r\n return cast(value, Contract);\r\n }\r\n\r\n /**\r\n * Applies method decorators imperatively, for code built without decorator syntax.\r\n *\r\n * @param {Function} Constructor The class owning the method.\r\n * @param {string} methodName The method's name.\r\n * @param {...Function} decorators The decorators, applied in order.\r\n * @returns {Function} `Constructor`.\r\n */\r\n static decorateMethod(Constructor, methodName, ...decorators)\r\n {\r\n for (const decorator of decorators)\r\n {\r\n decorator(Constructor.prototype, methodName);\r\n }\r\n return Constructor;\r\n }\r\n\r\n /** Registers one field definition on a constructor's schema. */\r\n static defineField(Constructor, fieldName, namespace, value)\r\n {\r\n defineFieldMetadata(Constructor, fieldName, namespace, value);\r\n return this;\r\n }\r\n\r\n /** Registers one method definition on a constructor's schema. */\r\n static defineMethod(Constructor, methodName, namespace, value)\r\n {\r\n defineMethodMetadata(Constructor, methodName, namespace, value);\r\n return this;\r\n }\r\n\r\n /** Returns resolved schema metadata for a named field. */\r\n static getField(Constructor, fieldName)\r\n {\r\n return getEffectiveFields(Constructor).find(field => field.name === fieldName) || null;\r\n }\r\n\r\n /**\r\n * Excludes named inherited fields from the decorated class's schema surface.\r\n */\r\n static hideInherited(fieldNames)\r\n {\r\n return hiddenInheritedFieldsDecorator(normalizeHiddenInheritedFields(fieldNames));\r\n }\r\n\r\n /**\r\n * Checks whether a field is hidden from a class by its inheritance chain.\r\n */\r\n static isFieldHidden(Constructor, fieldName)\r\n {\r\n return getHiddenInheritedFieldNames(Constructor).has(fieldName);\r\n }\r\n\r\n /** Returns resolved provenance metadata for a named method. */\r\n static getMethod(Constructor, methodName)\r\n {\r\n const schema = CLASS_SCHEMA.get(Constructor);\r\n return schema?.methodsByName.get(methodName) || null;\r\n }\r\n\r\n /** Returns the explicit stable serialized name registered for a constructor. */\r\n static getClassName(Constructor)\r\n {\r\n let current = Constructor;\r\n while (typeof current === \"function\")\r\n {\r\n // The local metadata is authoritative wherever it exists, including\r\n // when it deliberately declares no name. The cross-copy brand is\r\n // consulted ONLY for a class this copy has never seen at all --\r\n // otherwise it would answer for local classes whose absence of a\r\n // name is itself the declared answer.\r\n const local = CLASS_SCHEMA.get(current);\r\n const className = local\r\n ? (local.className || null)\r\n : (Object.hasOwn(current, CJS_CLASS_NAME) ? current[CJS_CLASS_NAME] : null);\r\n if (className)\r\n {\r\n return current !== Constructor && className === \"CjsModel\" ? null : className;\r\n }\r\n current = Object.getPrototypeOf(current);\r\n }\r\n return null;\r\n }\r\n\r\n /** Returns the registered schema family for a constructor. */\r\n static getClassFamily(Constructor)\r\n {\r\n let current = Constructor;\r\n while (typeof current === \"function\")\r\n {\r\n const family = CLASS_SCHEMA.get(current)?.family || null;\r\n if (family) return family;\r\n current = Object.getPrototypeOf(current);\r\n }\r\n return null;\r\n }\r\n\r\n /** Returns this constructor's own reviewed purpose without inheriting it. */\r\n static getClassPurpose(Constructor)\r\n {\r\n return CLASS_SCHEMA.get(Constructor)?.purpose || null;\r\n }\r\n\r\n /**\r\n * Reports whether a value is a live model, including one constructed by a\r\n * different copy of this package.\r\n *\r\n * Prefer this to `value instanceof CjsModel` anywhere the answer decides\r\n * between ALIASING and COPYING, or admits and rejects. Getting it wrong\r\n * there does not throw: it silently substitutes a plain object for a live\r\n * instance, or rejects a real model for having been declared elsewhere.\r\n *\r\n * @param {*} value Candidate value.\r\n * @returns {boolean} True when the value is a live model from any copy.\r\n */\r\n static isModelInstance(value)\r\n {\r\n return !!value && typeof value === \"object\" && value[CJS_MODEL_BRAND] === true;\r\n }\r\n\r\n /**\r\n * Every declared class name on a constructor's chain, nearest first.\r\n *\r\n * Read per level from local metadata where this copy has it and from the\r\n * cross-copy stamp where it does not, so the ancestry of a class registered\r\n * by a sibling package is still readable. Unnamed levels are skipped rather\r\n * than ending the walk: an intermediate class with no schema declaration is\r\n * ordinary, and its named ancestors still apply.\r\n *\r\n * @param {Function} Constructor Class to inspect.\r\n * @returns {string[]} Declared names from the class up to its root.\r\n */\r\n static getClassNames(Constructor)\r\n {\r\n const names = [];\r\n let current = Constructor;\r\n while (typeof current === \"function\")\r\n {\r\n const local = CLASS_SCHEMA.get(current);\r\n const className = local\r\n ? (local.className || null)\r\n : (Object.hasOwn(current, CJS_CLASS_NAME) ? current[CJS_CLASS_NAME] : null);\r\n if (className && !names.includes(className)) names.push(className);\r\n current = Object.getPrototypeOf(current);\r\n }\r\n return names;\r\n }\r\n\r\n /**\r\n * Reports whether a value is an instance of the class declared as `name`,\r\n * or of any class descending from it — across package copies.\r\n *\r\n * This is the cross-copy replacement for `value instanceof SomeClass`, and\r\n * the reason it is worth having is that the obvious implementation is wrong.\r\n * Resolving the name through GetConstructor and testing `instanceof` against\r\n * the result reintroduces the identity comparison this exists to avoid: the\r\n * registry may hold a sibling's constructor, and then a perfectly good local\r\n * instance fails. So the check never compares constructor identity at all.\r\n * It reads the declared names up the value's own prototype chain, which are\r\n * stamped rather than derived and therefore survive the copy boundary.\r\n *\r\n * A consequence worth relying on: this does not consult the constructor\r\n * registry, so it is unaffected by the flat-map collision where two families\r\n * register the same class name and the later one wins.\r\n *\r\n * @param {string} name Declared class name to test against.\r\n * @param {*} value Candidate value.\r\n * @returns {boolean} True when the value descends from that declared class.\r\n */\r\n static isInstanceOf(name, value)\r\n {\r\n if (typeof name !== \"string\" || !name.trim()) return false;\r\n if (!value || typeof value !== \"object\") return false;\r\n return this.getClassNames(value.constructor).includes(name.trim());\r\n }\r\n\r\n /** Registers a constructor under an explicit serialized class name. */\r\n static SetConstructor(name, Constructor)\r\n {\r\n if (typeof name !== \"string\" || !name.trim())\r\n {\r\n throw new TypeError(\"CjsSchema.SetConstructor requires a non-empty name.\");\r\n }\r\n if (typeof Constructor !== \"function\")\r\n {\r\n throw new TypeError(`CjsSchema constructor ${name.trim()} must be a function.`);\r\n }\r\n\r\n CONSTRUCTOR_BY_NAME.set(name.trim(), Constructor);\r\n // Buckets resolve class references by name, so a late registration\r\n // changes how already-built schemas should have been bucketed.\r\n SCHEMA_GENERATION += 1;\r\n return this;\r\n }\r\n\r\n /** Returns the constructor registered for a serialized class name. */\r\n static GetConstructor(name)\r\n {\r\n if (typeof name !== \"string\" || !name.trim()) return null;\r\n return CONSTRUCTOR_BY_NAME.get(name.trim()) || null;\r\n }\r\n\r\n /**\r\n * The installed values-transport implementation.\r\n *\r\n * The transport API lives HERE - everything is called through the schema\r\n * (operator direction, 2026-09-05) - while the implementation currently\r\n * still lives in the model layer, which registers itself at load. Layering\r\n * forbids the reverse import (schema never imports model), so this is a\r\n * composition seam: the physical relocation of the transport bodies is the\r\n * facade migration's work, and changes nothing for callers of these\r\n * statics.\r\n */\r\n static #valuesService = null;\r\n\r\n /**\r\n * Installs the values-transport implementation.\r\n *\r\n * Called once by the model layer at module load. A second registration\r\n * replaces the first, which only module duplication could cause.\r\n *\r\n * @param {{getValues: Function, setValues: Function, From: Function}} service\r\n * @returns {typeof CjsSchema}\r\n */\r\n static registerValuesService(service)\r\n {\r\n if (!service || typeof service.getValues !== \"function\" || typeof service.setValues !== \"function\" || typeof service.from !== \"function\")\r\n {\r\n throw new TypeError(\"CjsSchema.registerValuesService requires getValues, setValues and from functions.\");\r\n }\r\n CjsSchema.#valuesService = service;\r\n return this;\r\n }\r\n\r\n /**\r\n * The registered values service, or a thrown explanation of what to import.\r\n *\r\n * @param {string} method The calling method's name, for the message.\r\n * @returns {object} The values service.\r\n */\r\n static #requireValuesService(method)\r\n {\r\n if (!CjsSchema.#valuesService)\r\n {\r\n throw new Error(`CjsSchema.${method} requires the values service; import the model layer before calling it.`);\r\n }\r\n return CjsSchema.#valuesService;\r\n }\r\n\r\n /**\r\n * Exports a target's schema fields to a plain object.\r\n *\r\n * @param {object} target A schema-backed instance.\r\n * @param {object} [out={}] Caller-owned output object.\r\n * @param {object} [options={}] Export options (refs, typeTags, ...).\r\n * @returns {object} The exported values.\r\n */\r\n static getValues(target, out = {}, options = {})\r\n {\r\n // Without the model layer the state-free transport still answers for a\r\n // decorated class, which is what lets a reader work with only the\r\n // schema layer loaded - hydration.js states that as its whole reason\r\n // for calling SetValues directly rather than through here.\r\n const service = CjsSchema.#valuesService;\r\n return service\r\n ? service.getValues(target, out, options)\r\n : CjsSchema.getValuesFromSchema(target, out, options);\r\n }\r\n\r\n /**\r\n * Applies a plain value bag to a target through its validated setter.\r\n *\r\n * @param {object} target A schema-backed instance.\r\n * @param {object} [values={}] Incoming values.\r\n * @param {object} [options={}] Population options.\r\n * @returns {Set<string>|boolean} Changed fields, or a boolean result.\r\n */\r\n static setValues(target, values = {}, options = {})\r\n {\r\n const service = CjsSchema.#valuesService;\r\n return service\r\n ? service.setValues(target, values, options)\r\n : CjsSchema.setValuesFromSchema(target, values, options);\r\n }\r\n\r\n /**\r\n * The state-free transport, for a decorated class carrying no SetValues.\r\n *\r\n * Coercion, the writability gate and a changed set - the reader's half.\r\n * The dirty flag, the settle loop, the modified event and child mutation\r\n * are the EDITING contract and stay with the model path.\r\n *\r\n * Registered as the values service's third arm, which threw by name until\r\n * this existed. Also what `@compose.values` installs.\r\n */\r\n static #statelessTransport = createValuesTransport({\r\n GetFields: Constructor => getEffectiveFields(Constructor),\r\n Export: (value, field, options) => exportCarbonValue(value, field.type, options),\r\n Import: (value, field) => normalizeCarbonValue(value, field.type),\r\n CoerceInto: (current, incoming, field) =>\r\n coerceCarbonMathInto(current, incoming, field.type)\r\n ?? coerceCarbonTypedArrayInto(current, incoming, field.type),\r\n IsEquivalent: (a, b) => a === b\r\n });\r\n\r\n /** Reads declared fields off any decorated class, without a model base. */\r\n static getValuesFromSchema(target, out = {}, options = {})\r\n {\r\n return CjsSchema.#statelessTransport.getValues(target, out, options);\r\n }\r\n\r\n /** Writes declared fields onto any decorated class, without a model base. */\r\n static setValuesFromSchema(target, values = {}, options = {})\r\n {\r\n return CjsSchema.#statelessTransport.setValues(target, values, options);\r\n }\r\n\r\n /**\r\n * Constructs a registered class from a plain values bag.\r\n *\r\n * The deserializer: resolves the class by name, builds it, applies the\r\n * values, and calls the class-owned Initialize when one exists.\r\n *\r\n * @param {string} className The registered class name.\r\n * @param {object} [values={}] Values to apply.\r\n * @param {object} [options={}] Population options.\r\n * @returns {object} The constructed instance.\r\n */\r\n static from(className, values = {}, options = {})\r\n {\r\n return CjsSchema.#requireValuesService(\"from\").from(className, values, options);\r\n }\r\n\r\n /** Returns the stable registered name for an enum object. */\r\n static getEnumName(values)\r\n {\r\n if (typeof values === \"string\") return values;\r\n return values && typeof values === \"object\"\r\n ? ENUM_SCHEMA_BY_OBJECT.get(values)?.name || values[CJS_ENUM_NAME] || values.Source?.name || values.name || null\r\n : null;\r\n }\r\n\r\n /** Returns registered enum metadata by name or enum object. */\r\n static getEnum(values)\r\n {\r\n const name = CjsSchema.getEnumName(values);\r\n return name ? ENUM_SCHEMA_BY_NAME.get(name) || null : null;\r\n }\r\n\r\n /**\r\n * Return the exported schema for a class.\r\n *\r\n * The schema is the precomputed answer - collapsing the inheritance\r\n * lineage and merging metadata - so building it per call would defeat its\r\n * purpose. Callers traverse model graphs and ask once per node, so this is\r\n * memoized per class and rebuilt only when class metadata is defined.\r\n *\r\n * Namespace-filtered exports are not memoized: they are a projection of the\r\n * full schema requested by tooling, not the hot read path.\r\n *\r\n * The result is shared, not copied - treat it as read-only. It is not\r\n * frozen: deep-cloning and freezing every field on the way out cost far\r\n * more than the mistakes it guarded against.\r\n *\r\n * @param {Function} Constructor\r\n * @param {object} [options={}]\r\n * @param {string|Array<string>} [options.namespaces] Restricts exported metadata namespaces.\r\n * @returns {CjsClassInfo} Shared per-class record.\r\n */\r\n static getSchema(Constructor, options = {})\r\n {\r\n const namespaces = normalizeNamespaces(options.namespaces);\r\n if (namespaces) return buildClassInfo(Constructor, namespaces);\r\n\r\n const memo = SCHEMA_EXPORTS.get(Constructor);\r\n if (memo && memo.generation === SCHEMA_GENERATION) return memo.schema;\r\n\r\n const schema = buildClassInfo(Constructor, null);\r\n SCHEMA_EXPORTS.set(Constructor, { generation: SCHEMA_GENERATION, schema });\r\n return schema;\r\n }\r\n\r\n /**\r\n * Returns a fresh plain-values copy of one schema class's declared defaults.\r\n *\r\n * Decorated field initializers record their value before the constructor\r\n * body can turn it into instance state (an audio game-object ID, for\r\n * example). When no instance has exposed those initializers yet, the class\r\n * is constructed once with zero arguments to trigger them. This never calls\r\n * CjsModel.from, SetValues, Initialize, UpdateValues, or another lifecycle\r\n * hook.\r\n *\r\n * The canonical template is cached by constructor and kept immutable. A\r\n * caller always receives a copy so it cannot poison later expansions.\r\n *\r\n * @param {Function|string} ConstructorOrName Constructor or registered class name.\r\n * @returns {object} A self-describing plain model-values template.\r\n */\r\n static getDefaults(ConstructorOrName)\r\n {\r\n return cloneDefaultValue(getDefaultsTemplate(ConstructorOrName));\r\n }\r\n\r\n /**\r\n * Expands a sparse, self-describing model-values graph with schema defaults.\r\n *\r\n * Authored values win. Authored collections replace default collections;\r\n * structs merge recursively; `_id` and `_ref` pass through unchanged. The\r\n * operation is plain-data-only after each class's lazy default template has\r\n * been captured and never constructs or initializes the authored graph.\r\n *\r\n * @param {object} values Sparse self-describing model values.\r\n * @returns {object} A new default-expanded plain-values graph.\r\n */\r\n static applyDefaults(values)\r\n {\r\n if (!isPlainObject(values))\r\n {\r\n throw new TypeError(\"CjsSchema.applyDefaults requires a plain model-values object.\");\r\n }\r\n if (typeof values._type !== \"string\" || !values._type.trim())\r\n {\r\n throw new TypeError(\"CjsSchema.applyDefaults requires a root _type.\");\r\n }\r\n return expandDefaultValue(values, null, undefined, \"$root\");\r\n }\r\n\r\n\r\n static type = Object.freeze({\r\n array: itemType => fieldDecorator(\"type\", { kind: \"array\", itemType }),\r\n boolean: fieldDecorator(\"type\", { kind: \"boolean\" }),\r\n color: fieldDecorator(\"type\", { kind: \"color\" }),\r\n define: definition => classDefinitionDecorator(definition),\r\n expression: fieldDecorator(\"type\", { kind: \"expression\", js: \"string\" }),\r\n float32: fieldDecorator(\"type\", { kind: \"float32\" }),\r\n float64: fieldDecorator(\"type\", { kind: \"float64\" }),\r\n int8: fieldDecorator(\"type\", { kind: \"int8\" }),\r\n int16: fieldDecorator(\"type\", { kind: \"int16\" }),\r\n int32: fieldDecorator(\"type\", { kind: \"int32\" }),\r\n int64: fieldDecorator(\"type\", { kind: \"int64\" }),\r\n list: itemType => fieldDecorator(\"type\", { kind: \"list\", itemType }),\r\n mat3: fieldDecorator(\"type\", { kind: \"mat3\" }),\r\n mat4: fieldDecorator(\"type\", { kind: \"mat4\" }),\r\n map: valueType => fieldDecorator(\"type\", { kind: \"map\", valueType }),\r\n model: className => fieldDecorator(\"type\", { kind: \"model\", className }),\r\n objectRef: className => fieldDecorator(\"type\", { kind: \"objectRef\", className }),\r\n path: fieldDecorator(\"type\", { kind: \"path\" }),\r\n quat: fieldDecorator(\"type\", { kind: \"quat\" }),\r\n rawStruct: className => fieldDecorator(\"type\", { kind: \"rawStruct\", className }),\r\n set: itemType => fieldDecorator(\"type\", { kind: \"set\", itemType }),\r\n string: fieldDecorator(\"type\", { kind: \"string\" }),\r\n struct: className => fieldDecorator(\"type\", { kind: \"struct\", className }),\r\n typedArray: arrayType => fieldDecorator(\"type\", { kind: \"typedArray\", arrayType }),\r\n uint8: fieldDecorator(\"type\", { kind: \"uint8\" }),\r\n uint16: fieldDecorator(\"type\", { kind: \"uint16\" }),\r\n uint32: fieldDecorator(\"type\", { kind: \"uint32\" }),\r\n uint64: fieldDecorator(\"type\", { kind: \"uint64\" }),\r\n unknown: fieldDecorator(\"type\", { kind: \"unknown\" }),\r\n vec2: fieldDecorator(\"type\", { kind: \"vec2\" }),\r\n vec3: fieldDecorator(\"type\", { kind: \"vec3\" }),\r\n vec4: fieldDecorator(\"type\", { kind: \"vec4\" }),\r\n\r\n // An enum names the vocabulary a field's values are drawn from, which\r\n // is part of its type - it belongs here beside int32 and string rather\r\n // than under a separate namespace. define and hideInherited show this\r\n // namespace already carries class decorators as well as field ones.\r\n enum: values => fieldDecorator(\"enum\", normalizeEnumDefinition(values)),\r\n\r\n /**\r\n * Hides named inherited fields from a subclass's schema, for a subclass\r\n * that genuinely does not carry part of its parent's shape.\r\n */\r\n hideInherited: fieldNames => hiddenInheritedFieldsDecorator(normalizeHiddenInheritedFields(fieldNames))\r\n });\r\n\r\n static io = Object.freeze({\r\n always: fieldDecorator(\"io\", { always: true }),\r\n notify: fieldDecorator(\"io\", { notify: true }),\r\n owned: fieldDecorator(\"io\", { ownership: \"owned\" }),\r\n persist: fieldDecorator(\"io\", { read: true, write: true, persist: true }),\r\n persistOnly: fieldDecorator(\"io\", { persist: true, persistOnly: true }),\r\n read: fieldDecorator(\"io\", { read: true }),\r\n readwrite: fieldDecorator(\"io\", { read: true, write: true }),\r\n reference: fieldDecorator(\"io\", { ownership: \"reference\" }),\r\n // Declares the lazy-invalidation token(s) a change to this field\r\n // implies (\"bounds is stale\"). Added to __state.flags at write time;\r\n // cleared ONLY by the getter that recomputes the derived value.\r\n flag: (...tokens) => fieldDecorator(\"io\", { flag: tokens.flat().map(String) }),\r\n // Declares the rebuild requirement token(s) a change to this field\r\n // implies (\"vertices need rebuilding\"). Added to __state.rebuild at\r\n // write time; cleared ONLY by the specific work method that succeeds\r\n // (typically driven from Update / per-frame passes).\r\n rebuild: (...tokens) => fieldDecorator(\"io\", { rebuild: tokens.flat().map(String) }),\r\n write: fieldDecorator(\"io\", { write: true })\r\n });\r\n\r\n // Composition decorators: type/io/carbon/impl/jessica DESCRIBE, compose\r\n // INSTALLS (design record, direction item 11). All three are live; the\r\n // migration of existing classes onto them is separate work.\r\n static compose = Object.freeze({\r\n notify: composeNotifyDecorator,\r\n interface: Contract => composeInterfaceDecorator(\r\n Contract,\r\n (Constructor, name) => CjsSchema.decorateMethod(Constructor, name, CjsSchema.impl.abstract)),\r\n values: composeValuesDecorator(CjsSchema.#statelessTransport)\r\n });\r\n\r\n static jessica = Object.freeze({\r\n group: name => fieldDecorator(\"jessica\", { group: name }),\r\n hidden: fieldDecorator(\"jessica\", { hidden: true }),\r\n readOnly: fieldDecorator(\"jessica\", { readOnly: true }),\r\n widget: name => fieldDecorator(\"jessica\", { widget: name })\r\n });\r\n\r\n // impl decorators apply to methods AND fields: a promoted/diverging field\r\n // (e.g. a Carbon-hidden authored value exposed for values interchange) is\r\n // an implementation decision, so it carries impl.adapted/impl.custom +\r\n // impl.reason just like a diverging method. carbon.* stays factual\r\n // provenance and remains method-only.\r\n static impl = Object.freeze({\r\n abstract: memberDecorator(\"impl\", { abstract: true, status: \"abstract\" }),\r\n adapted: memberDecorator(\"impl\", { adapted: true, status: \"adapted\" }),\r\n custom: memberDecorator(\"impl\", { custom: true, status: \"custom\" }),\r\n implemented: memberDecorator(\"impl\", { implemented: true, status: \"implemented\" }),\r\n noop: memberDecorator(\"impl\", { noop: true, status: \"noop\" }),\r\n notImplemented: memberDecorator(\"impl\", { notImplemented: true, status: \"notImplemented\" }),\r\n notSupported: memberDecorator(\"impl\", { notSupported: true, status: \"notSupported\" }),\r\n note: text => memberDecorator(\"impl\", { note: String(text) }),\r\n reason: text => memberDecorator(\"impl\", { reason: String(text) })\r\n });\r\n\r\n static carbon = Object.freeze({\r\n method: methodDecorator(\"carbon\", { method: true }),\r\n renamed: originalName => {\r\n if (typeof originalName !== \"string\" || !originalName.trim())\r\n {\r\n throw new TypeError(\"CjsSchema.carbon.renamed requires a non-empty original method name.\");\r\n }\r\n return methodDecorator(\"carbon\", {\r\n method: true,\r\n renamed: true,\r\n originalName: originalName.trim()\r\n });\r\n },\r\n contextual: tiers => {\r\n const list = Array.isArray(tiers) ? tiers : [tiers];\r\n const normalized = [];\r\n for (const tier of list)\r\n {\r\n if (typeof tier !== \"string\" || !tier.trim())\r\n {\r\n continue;\r\n }\r\n normalized.push(tier.trim());\r\n }\r\n if (!normalized.length)\r\n {\r\n throw new TypeError(\"CjsSchema.carbon.contextual requires at least one context tier name.\");\r\n }\r\n const base = methodDecorator(\"carbon\", {\r\n method: true,\r\n contextual: true,\r\n contextTiers: normalized\r\n });\r\n const described = getDecoratorMetadata(base);\r\n return describeDecorator(function contextualMethodDecorator(targetOrValue, contextOrMethodName)\r\n {\r\n // Contextual methods are validated context-first at decoration\r\n // time: the first declared parameter must be the frame context.\r\n if (contextOrMethodName && typeof contextOrMethodName === \"object\")\r\n {\r\n assertContextFirstMethod(targetOrValue, contextOrMethodName.name);\r\n }\r\n else if (targetOrValue && contextOrMethodName)\r\n {\r\n assertContextFirstMethod(targetOrValue[contextOrMethodName], contextOrMethodName);\r\n }\r\n return base(targetOrValue, contextOrMethodName);\r\n }, described.namespace, described.value);\r\n }\r\n });\r\n\r\n static components = createComponentsNamespace();\r\n}\r\n\r\nfunction captureFieldInitialDefault(Constructor, fieldName, initialValue, declarationMetadata = null)\r\n{\r\n if (typeof Constructor !== \"function\") return;\r\n\r\n let fields = FIELD_INITIAL_DEFAULTS.get(Constructor);\r\n if (!fields)\r\n {\r\n fields = new Map();\r\n FIELD_INITIAL_DEFAULTS.set(Constructor, fields);\r\n }\r\n const existing = fields.get(fieldName);\r\n if (existing)\r\n {\r\n const ownDeclaration = FIELD_DECLARATION_METADATA.get(Constructor)?.get(fieldName);\r\n const replacesInheritedDefault = ownDeclaration &&\r\n declarationMetadata === ownDeclaration &&\r\n existing.declarationMetadata !== ownDeclaration;\r\n if (!replacesInheritedDefault) return;\r\n }\r\n\r\n try\r\n {\r\n fields.set(fieldName, {\r\n value: deepFreezeDefaultValue(snapshotSchemaDefault(initialValue)),\r\n declarationMetadata\r\n });\r\n }\r\n catch (err)\r\n {\r\n // Schema capture must never make ordinary class construction fail. The\r\n // explicit defaults request reports the unsupported value instead.\r\n fields.set(fieldName, {\r\n error: err instanceof Error ? err.message : String(err),\r\n declarationMetadata\r\n });\r\n }\r\n DEFAULT_EXPORTS.delete(Constructor);\r\n}\r\n\r\nfunction getDefaultsTemplate(ConstructorOrName)\r\n{\r\n const Constructor = resolveDefaultsConstructor(ConstructorOrName);\r\n const memo = DEFAULT_EXPORTS.get(Constructor);\r\n if (memo && memo.generation === SCHEMA_GENERATION) return memo.defaults;\r\n\r\n let fields = getEffectiveFields(Constructor);\r\n let captured = FIELD_INITIAL_DEFAULTS.get(Constructor);\r\n let instance = null;\r\n\r\n if (fields.some(field => !captured?.has(field.name)))\r\n {\r\n try\r\n {\r\n // A bare constructor runs JavaScript field/constructor setup only.\r\n // The CjsModel initialization lifecycle is driven by from(), not by\r\n // `new`, and is deliberately absent from this operation.\r\n instance = new Constructor();\r\n }\r\n catch (err)\r\n {\r\n const className = CjsSchema.getClassName(Constructor) || Constructor.name || \"<anonymous>\";\r\n throw new TypeError(\r\n `CjsSchema.getDefaults could not construct ${className} with zero arguments: ` +\r\n `${err instanceof Error ? err.message : String(err)}`,\r\n { cause: err }\r\n );\r\n }\r\n fields = getEffectiveFields(Constructor);\r\n captured = FIELD_INITIAL_DEFAULTS.get(Constructor);\r\n }\r\n\r\n const className = CjsSchema.getClassName(Constructor);\r\n if (!className)\r\n {\r\n throw new TypeError(\"CjsSchema.getDefaults requires a constructor with an explicit className.\");\r\n }\r\n\r\n const defaults = { _type: className };\r\n for (const field of fields)\r\n {\r\n const entry = captured?.get(field.name);\r\n let value;\r\n let hasValue = false;\r\n\r\n if (entry?.error)\r\n {\r\n throw new TypeError(\r\n `CjsSchema.getDefaults could not capture ${className}.${field.name}: ${entry.error}`\r\n );\r\n }\r\n if (entry && Object.hasOwn(entry, \"value\"))\r\n {\r\n value = cloneDefaultValue(entry.value);\r\n hasValue = true;\r\n }\r\n else if (instance)\r\n {\r\n value = snapshotSchemaDefault(instance[field.name]);\r\n // Directly registered schema accessors are explicit declarations\r\n // too. Their getter is the only authoritative default source even\r\n // though the property lives on the prototype rather than as an\r\n // own field (for example two Blue names sharing one color buffer).\r\n hasValue = field.name in instance;\r\n }\r\n\r\n if (!hasValue)\r\n {\r\n value = snapshotSchemaDefault(defaultValueForCarbonField(field));\r\n }\r\n defaults[field.name] = value;\r\n }\r\n\r\n const frozen = deepFreezeDefaultValue(defaults);\r\n DEFAULT_EXPORTS.set(Constructor, {\r\n generation: SCHEMA_GENERATION,\r\n defaults: frozen\r\n });\r\n return frozen;\r\n}\r\n\r\nfunction resolveDefaultsConstructor(ConstructorOrName)\r\n{\r\n if (typeof ConstructorOrName === \"function\") return ConstructorOrName;\r\n if (typeof ConstructorOrName !== \"string\" || !ConstructorOrName.trim())\r\n {\r\n throw new TypeError(\"CjsSchema.getDefaults requires a constructor or registered class name.\");\r\n }\r\n\r\n const className = ConstructorOrName.trim();\r\n const Constructor = CjsSchema.GetConstructor(className);\r\n if (!Constructor)\r\n {\r\n throw new TypeError(`No CjsSchema constructor is registered for _type \"${className}\".`);\r\n }\r\n return Constructor;\r\n}\r\n\r\nfunction snapshotSchemaDefault(value, active = new WeakSet())\r\n{\r\n if (value === null || value === undefined) return value;\r\n if (typeof value === \"bigint\") return value.toString();\r\n if (typeof value !== \"object\") return value;\r\n if (ArrayBuffer.isView(value))\r\n {\r\n return Array.from(value, item => typeof item === \"bigint\" ? item.toString() : item);\r\n }\r\n if (active.has(value))\r\n {\r\n throw new TypeError(\"cyclic class defaults are not JSON-compatible\");\r\n }\r\n\r\n active.add(value);\r\n try\r\n {\r\n if (Array.isArray(value))\r\n {\r\n return value.map(item => snapshotSchemaDefault(item, active));\r\n }\r\n if (value instanceof Map)\r\n {\r\n return Object.fromEntries(Array.from(value.entries(), ([key, item]) => [\r\n String(key),\r\n snapshotSchemaDefault(item, active)\r\n ]));\r\n }\r\n if (value instanceof Set)\r\n {\r\n return Array.from(value, item => snapshotSchemaDefault(item, active));\r\n }\r\n\r\n const Constructor = value.constructor;\r\n const className = typeof Constructor === \"function\"\r\n ? CjsSchema.getClassName(Constructor)\r\n : null;\r\n if (className)\r\n {\r\n const result = { _type: className };\r\n const captured = FIELD_INITIAL_DEFAULTS.get(Constructor);\r\n for (const field of getEffectiveFields(Constructor))\r\n {\r\n const entry = captured?.get(field.name);\r\n if (entry?.error)\r\n {\r\n throw new TypeError(`${className}.${field.name}: ${entry.error}`);\r\n }\r\n\r\n let fieldValue = entry && Object.hasOwn(entry, \"value\")\r\n ? cloneDefaultValue(entry.value)\r\n : value[field.name];\r\n if (fieldValue === undefined)\r\n {\r\n fieldValue = defaultValueForCarbonField(field);\r\n }\r\n result[field.name] = snapshotSchemaDefault(fieldValue, active);\r\n }\r\n return result;\r\n }\r\n\r\n const result = {};\r\n for (const [key, item] of Object.entries(value))\r\n {\r\n result[key] = snapshotSchemaDefault(item, active);\r\n }\r\n return result;\r\n }\r\n finally\r\n {\r\n active.delete(value);\r\n }\r\n}\r\n\r\nfunction expandDefaultValue(value, declaredType, defaultValue, path)\r\n{\r\n if (value === null || value === undefined) return value;\r\n if (typeof value === \"bigint\") return value.toString();\r\n if (typeof value !== \"object\") return value;\r\n if (ArrayBuffer.isView(value))\r\n {\r\n return Array.from(value, item => typeof item === \"bigint\" ? item.toString() : item);\r\n }\r\n\r\n const kind = declaredType?.kind || null;\r\n const itemType = declaredType?.itemType || null;\r\n if (Array.isArray(value))\r\n {\r\n return value.map((item, index) => expandDefaultValue(\r\n item,\r\n kind === \"list\" || kind === \"array\" || kind === \"set\" ? itemType : null,\r\n undefined,\r\n `${path}[${index}]`\r\n ));\r\n }\r\n if (value instanceof Set)\r\n {\r\n return Array.from(value, (item, index) => expandDefaultValue(\r\n item,\r\n itemType,\r\n undefined,\r\n `${path}[${index}]`\r\n ));\r\n }\r\n if (value instanceof Map)\r\n {\r\n const result = {};\r\n for (const [key, item] of value)\r\n {\r\n result[String(key)] = expandDefaultValue(\r\n item,\r\n declaredType?.valueType || null,\r\n undefined,\r\n `${path}.${String(key)}`\r\n );\r\n }\r\n return result;\r\n }\r\n\r\n if (Object.hasOwn(value, \"_ref\"))\r\n {\r\n return cloneDefaultValue(value);\r\n }\r\n\r\n if (typeof value._type === \"string\" && value._type.trim())\r\n {\r\n const Constructor = CjsSchema.GetConstructor(value._type.trim());\r\n if (!Constructor)\r\n {\r\n throw new TypeError(`${path} names unknown _type \"${value._type.trim()}\".`);\r\n }\r\n return expandSchemaObject(value, Constructor, path);\r\n }\r\n\r\n if ((kind === \"list\" || kind === \"array\" || kind === \"set\") && isPlainObject(value))\r\n {\r\n return Object.fromEntries(Object.entries(value).map(([key, item]) => [\r\n key,\r\n expandDefaultValue(item, itemType, undefined, `${path}.${key}`)\r\n ]));\r\n }\r\n if (kind === \"map\" && isPlainObject(value))\r\n {\r\n return Object.fromEntries(Object.entries(value).map(([key, item]) => [\r\n key,\r\n expandDefaultValue(item, declaredType?.valueType || null, undefined, `${path}.${key}`)\r\n ]));\r\n }\r\n\r\n const declaredClass = resolveDeclaredConstructor(declaredType);\r\n if (declaredClass)\r\n {\r\n return expandSchemaObject(value, declaredClass, path);\r\n }\r\n\r\n if (isPlainObject(defaultValue))\r\n {\r\n return mergePlainDefaults(defaultValue, value, path);\r\n }\r\n\r\n const result = {};\r\n for (const [key, item] of Object.entries(value))\r\n {\r\n result[key] = expandDefaultValue(item, null, undefined, `${path}.${key}`);\r\n }\r\n return result;\r\n}\r\n\r\nfunction expandSchemaObject(values, Constructor, path)\r\n{\r\n if (!isPlainObject(values))\r\n {\r\n throw new TypeError(`${path} must be a plain object.`);\r\n }\r\n\r\n const result = cloneDefaultValue(getDefaultsTemplate(Constructor));\r\n const schema = CjsSchema.getSchema(Constructor);\r\n for (const [key, item] of Object.entries(values))\r\n {\r\n if (key === \"_type\" || key === \"_id\" || key === \"_ref\")\r\n {\r\n result[key] = cloneDefaultValue(item);\r\n continue;\r\n }\r\n\r\n const field = schema.byName.get(key);\r\n result[key] = expandDefaultValue(\r\n item,\r\n field?.type || null,\r\n result[key],\r\n `${path}.${key}`\r\n );\r\n }\r\n return result;\r\n}\r\n\r\nfunction resolveDeclaredConstructor(type)\r\n{\r\n let className = null;\r\n if (typeof type === \"string\")\r\n {\r\n className = type;\r\n }\r\n else if (type && typeof type === \"object\")\r\n {\r\n if ([\"model\", \"objectRef\", \"struct\"].includes(type.kind))\r\n {\r\n className = type.className || null;\r\n }\r\n }\r\n return className ? CjsSchema.GetConstructor(className) : null;\r\n}\r\n\r\nfunction mergePlainDefaults(defaults, values, path)\r\n{\r\n const result = cloneDefaultValue(defaults);\r\n for (const [key, item] of Object.entries(values))\r\n {\r\n result[key] = expandDefaultValue(item, null, result[key], `${path}.${key}`);\r\n }\r\n return result;\r\n}\r\n\r\nfunction cloneDefaultValue(value)\r\n{\r\n if (value === null || value === undefined) return value;\r\n if (Array.isArray(value)) return value.map(cloneDefaultValue);\r\n if (value && typeof value === \"object\")\r\n {\r\n return Object.fromEntries(Object.entries(value).map(([key, item]) => [\r\n key,\r\n cloneDefaultValue(item)\r\n ]));\r\n }\r\n return value;\r\n}\r\n\r\nfunction deepFreezeDefaultValue(value, seen = new WeakSet())\r\n{\r\n if (!value || typeof value !== \"object\" || seen.has(value)) return value;\r\n seen.add(value);\r\n for (const item of Object.values(value)) deepFreezeDefaultValue(item, seen);\r\n return value;\r\n}\r\n\r\nfunction createComponentsNamespace()\r\n{\r\n const components = definition => fieldDecorator(\"components\", normalizeComponentDefinition(definition));\r\n Object.defineProperties(components, {\r\n get: { value: getComponentValue },\r\n indices: { value: getComponentIndices },\r\n set: { value: setComponentValue }\r\n });\r\n return components;\r\n}\r\n\r\n// Every decorator carries the namespace and value it would install. That is\r\n// what lets one vocabulary serve both forms: `type.uint32` applied as a\r\n// decorator, and `type.uint32` written as data in a CjsSchema.define() member.\r\n// Without it the object form would need its own spelling of every namespace\r\n// value, and two spellings of `impl.adapted` will eventually disagree.\r\nfunction describeDecorator(decorator, namespace, value)\r\n{\r\n Object.defineProperty(decorator, DECORATOR_METADATA, {\r\n value: { namespace, value }\r\n });\r\n return decorator;\r\n}\r\n\r\n/**\r\n * The namespace/value a decorator installs, or null when it is not one.\r\n *\r\n * @param {*} candidate Possible decorator.\r\n * @returns {{namespace:string, value:*}|null} Installed metadata.\r\n */\r\nfunction getDecoratorMetadata(candidate)\r\n{\r\n return typeof candidate === \"function\" ? candidate[DECORATOR_METADATA] || null : null;\r\n}\r\n\r\nfunction fieldDecorator(namespace, value)\r\n{\r\n return describeDecorator(function schemaFieldDecorator(targetOrValue, contextOrFieldName)\r\n {\r\n if (contextOrFieldName && typeof contextOrFieldName === \"object\")\r\n {\r\n const context = contextOrFieldName;\r\n if (context.kind !== \"field\") throw new TypeError(\"CjsSchema decorators only support class fields.\");\r\n recordStage3FieldMetadata(context, namespace, value);\r\n\r\n // The class decorator replays the Stage-3 metadata recorded above, so\r\n // schema inspection works before the first instance is constructed.\r\n // Keep both runtime initializers as fallbacks: addInitializer covers\r\n // spec-compliant runtimes, while the returned field initializer covers\r\n // runtimes that do not fire field-decorator addInitializer. All paths\r\n // register the same metadata idempotently through mergeNamespace.\r\n context.addInitializer(function initializeSchemaField()\r\n {\r\n defineFieldMetadata(this.constructor, context.name, namespace, value);\r\n });\r\n\r\n return function initializeSchemaFieldValue(initialValue)\r\n {\r\n defineFieldMetadata(this.constructor, context.name, namespace, value);\r\n captureFieldInitialDefault(\r\n this.constructor,\r\n context.name,\r\n initialValue,\r\n context.metadata\r\n );\r\n return initialValue;\r\n };\r\n }\r\n\r\n const Constructor = targetOrValue?.constructor;\r\n if (!Constructor || !contextOrFieldName)\r\n {\r\n throw new TypeError(\"CjsSchema field decorators require a class field target.\");\r\n }\r\n\r\n defineFieldMetadata(Constructor, contextOrFieldName, namespace, value);\r\n }, namespace, value);\r\n}\r\n\r\nfunction classDefinitionDecorator(definition)\r\n{\r\n return function schemaClassDefinitionDecorator(value, context)\r\n {\r\n if (context && typeof context === \"object\")\r\n {\r\n if (context.kind !== \"class\") throw new TypeError(\"CjsSchema type.define only supports classes.\");\r\n registerStage3FieldMetadata(value, context.metadata);\r\n defineClassMetadata(value, normalizeClassDefinition(value, definition));\r\n return;\r\n }\r\n\r\n if (typeof value !== \"function\")\r\n {\r\n throw new TypeError(\"CjsSchema type.define requires a class constructor.\");\r\n }\r\n\r\n defineClassMetadata(value, normalizeClassDefinition(value, definition));\r\n };\r\n}\r\n\r\nfunction hiddenInheritedFieldsDecorator(fieldNames)\r\n{\r\n return function schemaHiddenInheritedFieldsDecorator(value, context)\r\n {\r\n if (context && typeof context === \"object\")\r\n {\r\n if (context.kind !== \"class\") throw new TypeError(\"CjsSchema.hideInherited only supports classes.\");\r\n registerStage3FieldMetadata(value, context.metadata);\r\n }\r\n else if (typeof value !== \"function\")\r\n {\r\n throw new TypeError(\"CjsSchema.hideInherited requires a class constructor.\");\r\n }\r\n\r\n defineHiddenInheritedFields(value, fieldNames);\r\n };\r\n}\r\n\r\nconst CONTEXT_FIRST_PARAMETER = /^\\(?\\s*_?(context|updateContext)\\b/;\r\n\r\nfunction assertContextFirstMethod(fn, methodName)\r\n{\r\n if (typeof fn !== \"function\")\r\n {\r\n return;\r\n }\r\n const source = String(fn);\r\n const parameterList = source.slice(source.indexOf(\"(\"));\r\n if (fn.length < 1 || !CONTEXT_FIRST_PARAMETER.test(parameterList))\r\n {\r\n throw new TypeError(\r\n `CjsSchema.carbon.contextual method \"${String(methodName)}\" must be context-first ` +\r\n \"(first parameter named context or updateContext).\"\r\n );\r\n }\r\n}\r\n\r\nfunction methodDecorator(namespace, value)\r\n{\r\n return describeDecorator(function schemaMethodDecorator(targetOrValue, contextOrMethodName)\r\n {\r\n if (contextOrMethodName && typeof contextOrMethodName === \"object\")\r\n {\r\n const context = contextOrMethodName;\r\n if (context.kind !== \"method\") throw new TypeError(\"CjsSchema method decorators only support class methods.\");\r\n\r\n context.addInitializer(function initializeSchemaMethod()\r\n {\r\n const Constructor = context.static ? this : this.constructor;\r\n defineMethodMetadata(Constructor, context.name, namespace, value);\r\n });\r\n return;\r\n }\r\n\r\n const Constructor = targetOrValue?.constructor;\r\n if (!Constructor || !contextOrMethodName)\r\n {\r\n throw new TypeError(\"CjsSchema method decorators require a class method target.\");\r\n }\r\n\r\n defineMethodMetadata(Constructor, contextOrMethodName, namespace, value);\r\n }, namespace, value);\r\n}\r\n\r\nfunction memberDecorator(namespace, value)\r\n{\r\n const forMethods = methodDecorator(namespace, value);\r\n const forFields = fieldDecorator(namespace, value);\r\n return describeDecorator(function schemaMemberDecorator(targetOrValue, contextOrMemberName)\r\n {\r\n if (contextOrMemberName && typeof contextOrMemberName === \"object\")\r\n {\r\n return contextOrMemberName.kind === \"field\"\r\n ? forFields(targetOrValue, contextOrMemberName)\r\n : forMethods(targetOrValue, contextOrMemberName);\r\n }\r\n\r\n // Legacy (non-2023-11) path: a method target resolves to a function\r\n // on the prototype; anything else is treated as a field.\r\n return targetOrValue && contextOrMemberName && typeof targetOrValue[contextOrMemberName] === \"function\"\r\n ? forMethods(targetOrValue, contextOrMemberName)\r\n : forFields(targetOrValue, contextOrMemberName);\r\n }, namespace, value);\r\n}\r\n\r\nfunction defineFieldMetadata(Constructor, fieldName, namespace, value)\r\n{\r\n defineMemberMetadata(Constructor, \"fields\", \"fieldsByName\", fieldName, namespace, value);\r\n}\r\n\r\nfunction defineClassMetadata(Constructor, definition)\r\n{\r\n const schema = getOrCreateClassSchema(Constructor);\r\n if (definition.className)\r\n {\r\n schema.className = definition.className;\r\n // Non-enumerable and own-property, so it neither pollutes exported\r\n // values nor is mistaken for an inherited name further down the chain.\r\n Object.defineProperty(Constructor, CJS_CLASS_NAME, {\r\n value: definition.className,\r\n configurable: true\r\n });\r\n }\r\n if (definition.family) schema.family = definition.family;\r\n if (definition.purpose) schema.purpose = definition.purpose;\r\n if (definition.sourceClass) schema.sourceClass = definition.sourceClass;\r\n if (definition.carbon) schema.carbon = definition.carbon;\r\n if (definition.modelledOn) schema.modelledOn = definition.modelledOn;\r\n if (definition.aliases) schema.aliases = [...definition.aliases];\r\n\r\n for (const field of definition.fields || [])\r\n {\r\n defineManualMemberMetadata(Constructor, \"fields\", field);\r\n }\r\n\r\n for (const method of definition.methods || [])\r\n {\r\n defineManualMemberMetadata(Constructor, \"methods\", method);\r\n }\r\n\r\n registerClassMetadata(Constructor, schema);\r\n}\r\n\r\nfunction defineManualMemberMetadata(Constructor, memberType, definition)\r\n{\r\n const define = memberType === \"methods\" ? defineMethodMetadata : defineFieldMetadata;\r\n for (const [namespace, value] of Object.entries(definition))\r\n {\r\n if (namespace === \"name\") continue;\r\n define(Constructor, definition.name, namespace, value);\r\n }\r\n}\r\n\r\nfunction defineMethodMetadata(Constructor, methodName, namespace, value)\r\n{\r\n defineMemberMetadata(Constructor, \"methods\", \"methodsByName\", methodName, namespace, value);\r\n}\r\n\r\nfunction defineMemberMetadata(Constructor, listKey, mapKey, name, namespace, value)\r\n{\r\n const schema = getOrCreateClassSchema(Constructor);\r\n let item = schema[mapKey].get(name);\r\n\r\n if (!item)\r\n {\r\n item = { name };\r\n schema[listKey].push(item);\r\n schema[mapKey].set(name, item);\r\n }\r\n\r\n item[namespace] = mergeNamespace(item[namespace], value);\r\n}\r\n\r\nfunction defineHiddenInheritedFields(Constructor, fieldNames)\r\n{\r\n if (typeof Constructor !== \"function\")\r\n {\r\n throw new TypeError(\"CjsSchema.hideInherited requires a class constructor.\");\r\n }\r\n\r\n const Parent = Object.getPrototypeOf(Constructor);\r\n const inheritedFields = new Set(getEffectiveFields(Parent).map(field => field.name));\r\n // Declared name only: Constructor.name does not survive minification, and a\r\n // mangled name in an error reads as a real one and sends you chasing it.\r\n const className = CLASS_SCHEMA.get(Constructor)?.className || \"<undeclared>\";\r\n\r\n for (const fieldName of fieldNames)\r\n {\r\n if (!inheritedFields.has(fieldName))\r\n {\r\n throw new TypeError(\r\n `CjsSchema.hideInherited cannot hide \"${fieldName}\" on ${className}: ` +\r\n \"the parent schema does not expose that field.\"\r\n );\r\n }\r\n }\r\n\r\n const schema = getOrCreateClassSchema(Constructor);\r\n for (const fieldName of fieldNames)\r\n {\r\n schema.hiddenInherited.add(fieldName);\r\n }\r\n}\r\n\r\nfunction getEffectiveFields(Constructor)\r\n{\r\n const ordered = [];\r\n const byName = new Map();\r\n const hidden = new Set();\r\n\r\n for (const current of getSchemaLineage(Constructor))\r\n {\r\n const schema = CLASS_SCHEMA.get(current);\r\n for (const field of schema?.fields || [])\r\n {\r\n const existing = byName.get(field.name);\r\n if (existing)\r\n {\r\n mergeMemberMetadata(existing, field);\r\n }\r\n else\r\n {\r\n const merged = mergeMemberMetadata({ name: field.name }, field);\r\n ordered.push(merged);\r\n byName.set(field.name, merged);\r\n }\r\n }\r\n\r\n for (const fieldName of schema?.hiddenInherited || [])\r\n {\r\n hidden.add(fieldName);\r\n }\r\n }\r\n\r\n return ordered.filter(field => !hidden.has(field.name));\r\n}\r\n\r\nfunction getHiddenInheritedFieldNames(Constructor)\r\n{\r\n const hidden = new Set();\r\n for (const current of getSchemaLineage(Constructor))\r\n {\r\n for (const fieldName of CLASS_SCHEMA.get(current)?.hiddenInherited || [])\r\n {\r\n hidden.add(fieldName);\r\n }\r\n }\r\n return hidden;\r\n}\r\n\r\nfunction getSchemaLineage(Constructor)\r\n{\r\n const lineage = [];\r\n let current = Constructor;\r\n while (typeof current === \"function\")\r\n {\r\n if (CLASS_SCHEMA.has(current)) lineage.push(current);\r\n current = Object.getPrototypeOf(current);\r\n }\r\n return lineage.reverse();\r\n}\r\n\r\nfunction mergeMemberMetadata(target, source)\r\n{\r\n for (const [namespace, value] of Object.entries(source))\r\n {\r\n if (namespace === \"name\") continue;\r\n target[namespace] = mergeNamespace(target[namespace], value);\r\n }\r\n return target;\r\n}\r\n\r\n/**\r\n * The per-class record `getSchema()` returns - the `Be::ClassInfo` analog,\r\n * named CjsClassInfo (audit ruling 8, 2026-09-05). A typedef rather than an\r\n * exported class: the record is shared read-only data consumed by tooling as\r\n * plain JSON; promote to a real class only if facade-era accessors earn it.\r\n *\r\n * @typedef {object} CjsClassInfo\r\n * @property {string|null} className Registered serialized class name.\r\n * @property {Array<object>} fields Resolved field metadata, declaration order.\r\n * @property {Array<object>} [methods] Method provenance metadata.\r\n * @property {string} [family] Registered schema family.\r\n */\r\nfunction buildClassInfo(Constructor, namespaces)\r\n{\r\n const schema = CLASS_SCHEMA.get(Constructor);\r\n const fields = [];\r\n const methods = [];\r\n\r\n for (const field of getEffectiveFields(Constructor))\r\n {\r\n fields.push(enrichEnumField(exportField(field, namespaces), Constructor));\r\n }\r\n\r\n // KNOWN DEFECT: methods are read from this class only, while fields resolve\r\n // through the whole lineage above. A subclass therefore reports no inherited\r\n // methods, and the decorated form hides that behind a second bug that\r\n // cancels it out: method decorators register through addInitializer, where\r\n // `this.constructor` is the *instance's* class, so constructing one\r\n // Tr2LightProfileRes writes CjsResource's methods onto Tr2LightProfileRes.\r\n // Which class owns which methods then depends on construction order, and\r\n // before any instance exists a class reports no methods at all.\r\n //\r\n // Declaring metadata as data (CjsSchema.define fields/methods) registers on\r\n // the declaring class at module load, so it is deterministic - and it makes\r\n // the missing inheritance visible rather than accidentally papered over.\r\n //\r\n // Left unfixed deliberately: nothing reads .methods off a runtime schema\r\n // today (tools-core classTool parses source documents, not these), and the\r\n // fix - walking the lineage here as getEffectiveFields does - changes\r\n // exported schemas for every decorator-using class in the org.\r\n for (const method of schema?.methods || [])\r\n {\r\n methods.push(exportField(method, namespaces));\r\n }\r\n\r\n const result = {\r\n className: CjsSchema.getClassName(Constructor),\r\n fields\r\n };\r\n\r\n const family = schema?.family || CjsSchema.getClassFamily(Constructor);\r\n if (family)\r\n {\r\n result.family = family;\r\n }\r\n\r\n if (schema?.purpose)\r\n {\r\n result.purpose = schema.purpose;\r\n }\r\n\r\n if (schema?.sourceClass && schema.sourceClass !== result.className)\r\n {\r\n result.sourceClass = schema.sourceClass;\r\n }\r\n\r\n if (schema?.carbon)\r\n {\r\n result.carbon = schema.carbon;\r\n }\r\n\r\n if (schema?.modelledOn)\r\n {\r\n result.modelledOn = schema.modelledOn;\r\n }\r\n\r\n if (schema?.aliases?.length)\r\n {\r\n result.aliases = [ ...schema.aliases ];\r\n }\r\n\r\n if (methods.length) result.methods = methods;\r\n\r\n addSchemaBuckets(result);\r\n return result;\r\n}\r\n\r\n\r\n// Kinds that hold many values rather than one. `map` and `set` are included\r\n// because they are iterable collections of the referenced class, same as a list.\r\nconst MANY_KINDS = new Set([ \"list\", \"array\", \"set\", \"map\" ]);\r\n\r\n// Kinds that can hold a child model. Bucketing on the KIND rather than on a\r\n// resolvable class reference keeps traversal conservative: `type.struct(Class)`\r\n// drops the reference during normalization, and a raw defineField may omit the\r\n// item type, so requiring a reference would silently stop visiting those.\r\n// Scalar and math kinds are excluded, which is where the saving comes from.\r\nconst MODEL_KINDS = new Set([\r\n \"struct\", \"model\", \"rawStruct\", \"objectRef\", \"unknown\",\r\n \"list\", \"array\", \"set\", \"map\"\r\n]);\r\n\r\n\r\n/**\r\n * Precompute the answers consumers would otherwise recompute per traversal.\r\n *\r\n * Graph walks ask the same two questions of every node - which fields hold\r\n * child models, which hold resources - and answering them by scanning the field\r\n * list and type-testing each value costs more than the walk itself. The class\r\n * cannot change without rebuilding its schema, so this is solved once.\r\n */\r\nfunction addSchemaBuckets(schema)\r\n{\r\n const byName = new Map();\r\n const children = [];\r\n const resources = [];\r\n\r\n for (const field of schema.fields)\r\n {\r\n byName.set(field.name, field);\r\n\r\n const type = field.type;\r\n // An undeclared field could hold anything, so it stays traversable.\r\n const kind = type?.kind;\r\n if (kind && !MODEL_KINDS.has(kind)) continue;\r\n\r\n const entry = { name: field.name, many: MANY_KINDS.has(kind) };\r\n\r\n if (type && resolveFieldClass(type)?.isResource === true)\r\n {\r\n resources.push(entry);\r\n continue;\r\n }\r\n\r\n entry.owned = field.io?.ownership === \"owned\";\r\n children.push(entry);\r\n }\r\n\r\n schema.byName = byName;\r\n schema.children = children;\r\n schema.resources = resources;\r\n}\r\n\r\n\r\n// Only string references survive normalization - type.struct(SomeClass) drops\r\n// the reference entirely - so a field can only be bucketed when it names a\r\n// class. The one field in the tree that named nothing was a missing\r\n// declaration, not a deliberate escape.\r\nfunction resolveFieldClass(type)\r\n{\r\n const ref = type.className || type.itemType || type.valueType;\r\n return typeof ref === \"string\" && ref ? CONSTRUCTOR_BY_NAME.get(ref) || null : null;\r\n}\r\n\r\n\r\nfunction getOrCreateClassSchema(Constructor)\r\n{\r\n // The only route by which class metadata is mutated, and therefore the only\r\n // place exported schemas can go stale. A single global counter rather than\r\n // per-class invalidation because a base class change invalidates every\r\n // subclass, and lineage is not tracked in reverse.\r\n SCHEMA_GENERATION += 1;\r\n\r\n let schema = CLASS_SCHEMA.get(Constructor);\r\n if (!schema)\r\n {\r\n schema = {\r\n className: null,\r\n family: null,\r\n purpose: null,\r\n sourceClass: null,\r\n carbon: null,\r\n modelledOn: null,\r\n aliases: null,\r\n fields: [],\r\n fieldsByName: new Map(),\r\n hiddenInherited: new Set(),\r\n methods: [],\r\n methodsByName: new Map()\r\n };\r\n CLASS_SCHEMA.set(Constructor, schema);\r\n }\r\n return schema;\r\n}\r\n\r\nfunction normalizeHiddenInheritedFields(fieldNames)\r\n{\r\n if (!Array.isArray(fieldNames) || !fieldNames.length)\r\n {\r\n throw new TypeError(\"CjsSchema.hideInherited requires a non-empty array of field names.\");\r\n }\r\n\r\n const normalized = fieldNames.map((fieldName, index) =>\r\n {\r\n if (typeof fieldName !== \"string\" || !fieldName.trim())\r\n {\r\n throw new TypeError(`CjsSchema.hideInherited fieldNames[${index}] must be a non-empty string.`);\r\n }\r\n return fieldName.trim();\r\n });\r\n\r\n return [...new Set(normalized)];\r\n}\r\n\r\nfunction recordStage3FieldMetadata(context, namespace, value)\r\n{\r\n const metadata = context?.metadata;\r\n if (!metadata || typeof metadata !== \"object\") return;\r\n\r\n let fields;\r\n if (Object.prototype.hasOwnProperty.call(metadata, STAGE3_FIELD_METADATA))\r\n {\r\n fields = metadata[STAGE3_FIELD_METADATA];\r\n }\r\n else\r\n {\r\n fields = [];\r\n Object.defineProperty(metadata, STAGE3_FIELD_METADATA, {\r\n configurable: false,\r\n enumerable: false,\r\n value: fields,\r\n writable: false\r\n });\r\n }\r\n\r\n fields.push({\r\n name: context.name,\r\n namespace,\r\n value\r\n });\r\n}\r\n\r\nfunction registerStage3FieldMetadata(Constructor, metadata)\r\n{\r\n if (!metadata || typeof metadata !== \"object\") return;\r\n if (!Object.prototype.hasOwnProperty.call(metadata, STAGE3_FIELD_METADATA)) return;\r\n\r\n let declarations = FIELD_DECLARATION_METADATA.get(Constructor);\r\n if (!declarations)\r\n {\r\n declarations = new Map();\r\n FIELD_DECLARATION_METADATA.set(Constructor, declarations);\r\n }\r\n for (const field of metadata[STAGE3_FIELD_METADATA])\r\n {\r\n declarations.set(field.name, metadata);\r\n defineFieldMetadata(Constructor, field.name, field.namespace, field.value);\r\n }\r\n}\r\n\r\nfunction normalizeClassDefinition(Constructor, definition)\r\n{\r\n if (typeof definition === \"string\")\r\n {\r\n definition = { className: definition };\r\n }\r\n\r\n const result = { ...(definition || {}) };\r\n if (typeof result.className !== \"string\" || !result.className.trim())\r\n {\r\n throw new TypeError(\"CjsSchema.define requires an explicit non-empty className.\");\r\n }\r\n result.className = result.className.trim();\r\n if (result.purpose !== undefined && result.purpose !== null)\r\n {\r\n if (typeof result.purpose !== \"string\" || !result.purpose.trim())\r\n {\r\n throw new TypeError(\"CjsSchema.define purpose must be a non-empty string when provided.\");\r\n }\r\n result.purpose = result.purpose.trim().replace(/\\s+/g, \" \");\r\n if (result.purpose.includes(\"*/\"))\r\n {\r\n throw new TypeError(\"CjsSchema.define purpose cannot close a JSDoc comment.\");\r\n }\r\n }\r\n // REPLICATES AND MODELLED ON ARE DIFFERENT CLAIMS, and only the first can\r\n // be checked. `carbon` names a class this one REPLICATES: same contract,\r\n // method for method, so a parity check may hold us to its whole surface.\r\n // `modelledOn` names a class this one TOOK ITS SHAPE FROM and does not\r\n // replicate - `CjsWebgpuWorkQueue` is modelled on `MetalWorkQueue`, whose\r\n // 113 methods are the entire command recorder against our 27, because the\r\n // rest of that surface lives on the pipeline, the resource set and the\r\n // render context here. Declaring the second as the first would report 101\r\n // absences as debt; declaring nothing leaves the class unchecked and its\r\n // provenance unrecorded.\r\n //\r\n // NEITHER IS `sourceClass`, which is SERIALIZATION identity - the name a\r\n // document calls this class on the wire (`CjsLightData`'s `\"LightData\"`).\r\n // A donor is not a wire name: writing `MetalWorkQueue` there would tell\r\n // dehydration the class serializes under that name.\r\n for (const [ key, what ] of [ [ \"carbon\", \"replicates\" ], [ \"modelledOn\", \"is modelled on\" ] ])\r\n {\r\n if (result[key] === undefined || result[key] === null) continue;\r\n\r\n if (typeof result[key] !== \"string\" || !result[key].trim())\r\n {\r\n throw new TypeError(`CjsSchema.define ${key} must be a non-empty Carbon class name when provided.`);\r\n }\r\n\r\n result[key] = result[key].trim();\r\n void what;\r\n }\r\n\r\n if (result.carbon && result.modelledOn)\r\n {\r\n throw new TypeError(\r\n \"CjsSchema.define takes carbon or modelledOn, not both: a class either replicates its \"\r\n + \"donor's contract or is modelled on it, and the two are different claims.\"\r\n );\r\n }\r\n\r\n if (!result.sourceClass && result.className) result.sourceClass = result.className;\r\n const aliases = [\r\n ...(result.aliases === undefined ? [] : Array.isArray(result.aliases) ? result.aliases : [result.aliases]),\r\n ...(result.alias === undefined ? [] : Array.isArray(result.alias) ? result.alias : [result.alias])\r\n ].filter(alias => typeof alias === \"string\" && alias.trim()).map(alias => alias.trim())\r\n .filter(alias => alias !== result.className);\r\n result.aliases = aliases.length ? [...new Set(aliases)] : null;\r\n result.fields = normalizeManualMembers(result.fields, \"fields\");\r\n result.methods = normalizeManualMembers(result.methods, \"methods\");\r\n delete result.alias;\r\n return result;\r\n}\r\n\r\n/**\r\n * Normalize a definition's `fields`/`methods` into internal member records.\r\n *\r\n * Two spellings are accepted. A name-keyed object is the one to write:\r\n * declaration order is key order, which is what drives GetValues() export\r\n * order, and the name appears once rather than as a property of its own record.\r\n * The array of `{name, ...}` records predates it and still parses, because it\r\n * is what the internal schema stores.\r\n *\r\n * @param {object|Array<object>|null} members Declared members.\r\n * @param {string} memberType Either \"fields\" or \"methods\", for messages.\r\n * @returns {Array<object>} Internal member records.\r\n */\r\nfunction normalizeManualMembers(members, memberType)\r\n{\r\n if (members === undefined || members === null) return [];\r\n\r\n if (Array.isArray(members))\r\n {\r\n return members.map((member, index) =>\r\n {\r\n if (!isPlainObject(member) || typeof member.name !== \"string\" || !member.name.trim())\r\n {\r\n throw new TypeError(`CjsSchema.define ${memberType}[${index}] requires a non-empty name.`);\r\n }\r\n const { name, ...namespaces } = member;\r\n return normalizeManualMember(name.trim(), namespaces, memberType);\r\n });\r\n }\r\n\r\n if (!isPlainObject(members))\r\n {\r\n throw new TypeError(\r\n `CjsSchema.define ${memberType} must be a name-keyed object or an array of named records.`\r\n );\r\n }\r\n\r\n return Object.entries(members).map(([ name, definition ]) =>\r\n {\r\n if (!name.trim())\r\n {\r\n throw new TypeError(`CjsSchema.define ${memberType} requires a non-empty name.`);\r\n }\r\n return normalizeManualMember(name.trim(), definition, memberType);\r\n });\r\n}\r\n\r\n/**\r\n * Collapse one member's declaration into a namespace map.\r\n *\r\n * A declaration is a decorator, a namespace object, or an array mixing both.\r\n * Decorators are accepted as data so the object form reuses the vocabulary the\r\n * decorators already define rather than restating it: `impl.adapted` written\r\n * twice in two spellings is two things that can disagree.\r\n *\r\n * @param {string} name Member name.\r\n * @param {*} definition Declared metadata.\r\n * @param {string} memberType Either \"fields\" or \"methods\", for messages.\r\n * @returns {object} Internal member record.\r\n */\r\nfunction normalizeManualMember(name, definition, memberType)\r\n{\r\n const member = { name };\r\n\r\n for (const entry of Array.isArray(definition) ? definition : [ definition ])\r\n {\r\n if (entry === undefined || entry === null) continue;\r\n\r\n const decorator = getDecoratorMetadata(entry);\r\n if (decorator)\r\n {\r\n member[decorator.namespace] = mergeNamespace(member[decorator.namespace], decorator.value);\r\n continue;\r\n }\r\n\r\n if (!isPlainObject(entry))\r\n {\r\n throw new TypeError(\r\n `CjsSchema.define ${memberType} \"${name}\" accepts schema decorators, ` +\r\n \"namespace objects, or an array of them.\"\r\n );\r\n }\r\n\r\n for (const [ namespace, value ] of Object.entries(entry))\r\n {\r\n member[namespace] = mergeNamespace(member[namespace], value);\r\n }\r\n }\r\n\r\n return member;\r\n}\r\n\r\nfunction registerClassMetadata(Constructor, schema)\r\n{\r\n if (!Constructor || !schema?.className) return;\r\n\r\n CjsSchema.SetConstructor(schema.className, Constructor);\r\n\r\n for (const alias of schema.aliases || [])\r\n {\r\n CjsSchema.SetConstructor(alias, Constructor);\r\n }\r\n}\r\n\r\nfunction defineEnumMetadata(values, schema)\r\n{\r\n if (!values || typeof values !== \"object\" || !schema?.name) return;\r\n\r\n ENUM_SCHEMA_BY_NAME.set(schema.name, schema);\r\n ENUM_SCHEMA_BY_OBJECT.set(values, schema);\r\n\r\n if (Object.isExtensible(values) && !Object.prototype.hasOwnProperty.call(values, CJS_ENUM_NAME))\r\n {\r\n Object.defineProperty(values, CJS_ENUM_NAME, {\r\n value: schema.name\r\n });\r\n }\r\n}\r\n\r\nfunction normalizeEnumSchema(values, definition)\r\n{\r\n const type = values?.Type || values;\r\n const members = Array.isArray(definition.members)\r\n ? definition.members.map(member => ({ ...member }))\r\n : [];\r\n const result = {\r\n name: definition.name || values?.[CJS_ENUM_NAME] || values?.Source?.name || values?.name || null,\r\n type,\r\n members\r\n };\r\n\r\n if (definition.source) result.source = definition.source;\r\n if (definition.family) result.family = definition.family;\r\n if (definition.line !== undefined && definition.line !== null) result.line = definition.line;\r\n\r\n return result;\r\n}\r\n\r\nfunction normalizeEnumDefinition(values)\r\n{\r\n if (typeof values === \"string\")\r\n {\r\n return { enumType: values };\r\n }\r\n\r\n const type = values?.Type || (isPlainObject(values) ? values : null);\r\n if (type && typeof type === \"object\")\r\n {\r\n const result = {\r\n values: type\r\n };\r\n const enumType = CjsSchema.getEnumName(values);\r\n if (enumType) result.enumType = enumType;\r\n return result;\r\n }\r\n\r\n return { values };\r\n}\r\n\r\nfunction normalizeComponentDefinition(definition)\r\n{\r\n if (!isPlainObject(definition))\r\n {\r\n throw new TypeError(\"CjsSchema.components requires a plain object definition.\");\r\n }\r\n\r\n return Object.fromEntries(Object.entries(definition).map(([swizzle, value]) => [\r\n normalizeSwizzle(swizzle),\r\n normalizeComponentEntry(value)\r\n ]));\r\n}\r\n\r\nfunction normalizeComponentEntry(value)\r\n{\r\n if (typeof value === \"string\") return { name: value };\r\n if (isPlainObject(value)) return cloneSchemaValue(value);\r\n return value;\r\n}\r\n\r\nfunction getComponentValue(value, swizzle)\r\n{\r\n const indices = getComponentIndices(swizzle);\r\n if (indices.length === 1) return value?.[indices[0]];\r\n return indices.map(index => value?.[index]);\r\n}\r\n\r\nfunction setComponentValue(target, swizzle, value)\r\n{\r\n if (!target)\r\n {\r\n throw new TypeError(\"CjsSchema.components.set requires a target vector.\");\r\n }\r\n\r\n const indices = getComponentIndices(swizzle);\r\n if (indices.length === 1)\r\n {\r\n target[indices[0]] = value;\r\n return target;\r\n }\r\n\r\n if (!value || typeof value[Symbol.iterator] !== \"function\")\r\n {\r\n throw new TypeError(`CjsSchema.components.set requires an iterable value for '${swizzle}'.`);\r\n }\r\n\r\n let offset = 0;\r\n for (const item of value)\r\n {\r\n if (offset >= indices.length) break;\r\n target[indices[offset++]] = item;\r\n }\r\n\r\n if (offset !== indices.length)\r\n {\r\n throw new RangeError(`CjsSchema.components.set expected ${indices.length} values for '${swizzle}' but received ${offset}.`);\r\n }\r\n\r\n return target;\r\n}\r\n\r\nfunction getComponentIndices(swizzle)\r\n{\r\n return [...normalizeSwizzle(swizzle)].map(componentIndex);\r\n}\r\n\r\nfunction normalizeSwizzle(swizzle)\r\n{\r\n const text = String(swizzle || \"\").trim().toLowerCase();\r\n if (!text)\r\n {\r\n throw new TypeError(\"Component swizzle cannot be empty.\");\r\n }\r\n\r\n for (const char of text)\r\n {\r\n componentIndex(char);\r\n }\r\n\r\n return text;\r\n}\r\n\r\nfunction componentIndex(char)\r\n{\r\n switch (char)\r\n {\r\n case \"x\":\r\n case \"r\":\r\n case \"0\":\r\n return 0;\r\n case \"y\":\r\n case \"g\":\r\n case \"1\":\r\n return 1;\r\n case \"z\":\r\n case \"b\":\r\n case \"2\":\r\n return 2;\r\n case \"w\":\r\n case \"a\":\r\n case \"3\":\r\n return 3;\r\n default:\r\n throw new RangeError(`Unsupported component '${char}'.`);\r\n }\r\n}\r\n\r\nfunction mergeNamespace(existing, value)\r\n{\r\n if (isPlainObject(existing) && isPlainObject(value)) return { ...existing, ...value };\r\n return value;\r\n}\r\n\r\n// Resolves @schema.enum(\"X\") through the owning class's PascalCase static so\r\n// exported schemas are self-describing: adds the class-scoped identity and a\r\n// reference to the frozen member map when the static resolves.\r\nfunction enrichEnumField(exported, Constructor)\r\n{\r\n const enumType = exported?.enum?.enumType;\r\n if (!enumType) return exported;\r\n const members = Constructor?.[enumType];\r\n if (!members || typeof members !== \"object\") return exported;\r\n\r\n let owner = Constructor;\r\n let current = Constructor;\r\n while (typeof current === \"function\")\r\n {\r\n if (Object.prototype.hasOwnProperty.call(current, enumType))\r\n {\r\n owner = current;\r\n break;\r\n }\r\n current = Object.getPrototypeOf(current);\r\n }\r\n\r\n return {\r\n ...exported,\r\n enum: {\r\n ...exported.enum,\r\n identity: `${CjsSchema.getClassName(owner) || owner.name}.${enumType}`,\r\n members\r\n }\r\n };\r\n}\r\n\r\nfunction exportField(field, namespaces)\r\n{\r\n const result = {\r\n name: field.name\r\n };\r\n\r\n for (const [key, value] of Object.entries(field))\r\n {\r\n if (key === \"name\") continue;\r\n if (namespaces && !namespaces.has(key)) continue;\r\n result[key] = value;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction normalizeNamespaces(namespaces)\r\n{\r\n if (!namespaces) return null;\r\n return new Set(Array.isArray(namespaces) ? namespaces : [namespaces]);\r\n}\r\n\r\nfunction cloneSchemaValue(value)\r\n{\r\n if (Array.isArray(value)) return value.map(cloneSchemaValue);\r\n if (isPlainObject(value)) return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, cloneSchemaValue(item)]));\r\n return value;\r\n}\r\n\r\nfunction isPlainObject(value)\r\n{\r\n return Boolean(value) && typeof value === \"object\" && Object.getPrototypeOf(value) === Object.prototype;\r\n}\r\n"],"names":["CLASS_SCHEMA","WeakMap","SCHEMA_EXPORTS","DEFAULT_EXPORTS","FIELD_INITIAL_DEFAULTS","FIELD_DECLARATION_METADATA","SCHEMA_GENERATION","CONSTRUCTOR_BY_NAME","Map","ENUM_SCHEMA_BY_NAME","ENUM_SCHEMA_BY_OBJECT","STAGE3_FIELD_METADATA","Symbol","DECORATOR_METADATA","CJS_ENUM_NAME","for","CJS_CLASS_NAME","CJS_MODEL_BRAND","CjsSchema","define","Constructor","definition","defineClassMetadata","normalizeClassDefinition","enum","values","fieldDecorator","normalizeEnumDefinition","defineEnum","defineEnumMetadata","normalizeEnumSchema","decorateField","fieldName","decorators","decorator","prototype","cast","value","Contract","decorateMethod","methodName","defineField","namespace","defineFieldMetadata","defineMethod","defineMethodMetadata","getField","getEffectiveFields","find","field","name","hideInherited","fieldNames","hiddenInheritedFieldsDecorator","normalizeHiddenInheritedFields","isFieldHidden","getHiddenInheritedFieldNames","has","getMethod","schema","get","methodsByName","getClassName","current","local","className","Object","hasOwn","getPrototypeOf","getClassFamily","family","getClassPurpose","purpose","isModelInstance","getClassNames","names","includes","push","isInstanceOf","trim","constructor","SetConstructor","TypeError","set","GetConstructor","registerValuesService","service","getValues","setValues","from","#requireValuesService","method","Error","target","out","options","getValuesFromSchema","setValuesFromSchema","createValuesTransport","GetFields","Export","exportCarbonValue","type","Import","normalizeCarbonValue","CoerceInto","incoming","coerceCarbonMathInto","coerceCarbonTypedArrayInto","IsEquivalent","a","b","getEnumName","Source","getEnum","getSchema","namespaces","normalizeNamespaces","buildClassInfo","memo","generation","getDefaults","ConstructorOrName","cloneDefaultValue","getDefaultsTemplate","applyDefaults","isPlainObject","_type","expandDefaultValue","undefined","freeze","array","itemType","kind","boolean","color","classDefinitionDecorator","expression","js","float32","float64","int8","int16","int32","int64","list","mat3","mat4","map","valueType","model","objectRef","path","quat","rawStruct","string","struct","typedArray","arrayType","uint8","uint16","uint32","uint64","unknown","vec2","vec3","vec4","io","always","notify","owned","ownership","persist","read","write","persistOnly","readwrite","reference","flag","tokens","flat","String","rebuild","compose","composeNotifyDecorator","interface","composeInterfaceDecorator","impl","abstract","composeValuesDecorator","jessica","group","hidden","readOnly","widget","memberDecorator","status","adapted","custom","implemented","noop","notImplemented","notSupported","note","text","reason","carbon","methodDecorator","renamed","originalName","contextual","tiers","Array","isArray","normalized","tier","length","base","contextTiers","described","getDecoratorMetadata","describeDecorator","contextualMethodDecorator","targetOrValue","contextOrMethodName","assertContextFirstMethod","components","createComponentsNamespace","captureFieldInitialDefault","initialValue","declarationMetadata","fields","existing","ownDeclaration","replacesInheritedDefault","deepFreezeDefaultValue","snapshotSchemaDefault","err","error","message","delete","resolveDefaultsConstructor","defaults","captured","instance","some","cause","entry","hasValue","defaultValueForCarbonField","frozen","active","WeakSet","toString","ArrayBuffer","isView","item","add","fromEntries","entries","key","Set","result","fieldValue","declaredType","defaultValue","index","expandSchemaObject","declaredClass","resolveDeclaredConstructor","mergePlainDefaults","byName","seen","normalizeComponentDefinition","defineProperties","getComponentValue","indices","getComponentIndices","setComponentValue","defineProperty","candidate","schemaFieldDecorator","contextOrFieldName","context","recordStage3FieldMetadata","addInitializer","initializeSchemaField","initializeSchemaFieldValue","metadata","schemaClassDefinitionDecorator","registerStage3FieldMetadata","schemaHiddenInheritedFieldsDecorator","defineHiddenInheritedFields","CONTEXT_FIRST_PARAMETER","fn","source","parameterList","slice","indexOf","test","schemaMethodDecorator","initializeSchemaMethod","static","forMethods","forFields","schemaMemberDecorator","contextOrMemberName","defineMemberMetadata","getOrCreateClassSchema","configurable","sourceClass","modelledOn","aliases","defineManualMemberMetadata","methods","registerClassMetadata","memberType","listKey","mapKey","mergeNamespace","Parent","inheritedFields","hiddenInherited","ordered","getSchemaLineage","mergeMemberMetadata","merged","filter","lineage","reverse","enrichEnumField","exportField","addSchemaBuckets","MANY_KINDS","MODEL_KINDS","children","resources","many","resolveFieldClass","isResource","ref","fieldsByName","hasOwnProperty","call","enumerable","writable","declarations","replace","what","alias","normalizeManualMembers","members","member","normalizeManualMember","isExtensible","Type","line","enumType","swizzle","normalizeSwizzle","normalizeComponentEntry","cloneSchemaValue","iterator","offset","RangeError","componentIndex","toLowerCase","char","exported","owner","identity","Boolean"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CjsSchema.js","sources":["../../../../src/global/schema/CjsSchema.js"],"sourcesContent":["import {\r\n cloneCarbonValue,\r\n coerceCarbonMathInto,\r\n coerceCarbonTypedArrayInto,\r\n defaultValueForCarbonField,\r\n exportCarbonValue,\r\n normalizeCarbonValue\r\n} from \"./types/carbonTypes.js\";\r\nimport { composeNotifyDecorator } from \"../compose/notify.js\";\r\nimport { cast, composeInterfaceDecorator } from \"../compose/interface.js\";\r\nimport { composeValuesDecorator, createValuesTransport } from \"../compose/values.js\";\r\n\r\n\r\nconst CLASS_SCHEMA = new WeakMap();\r\n\r\n// Exported schemas, memoized per class. SCHEMA_GENERATION is bumped by every\r\n// metadata definition (see getOrCreateClassSchema), which is what makes a stale\r\n// memo detectable without tracking which subclasses a base class change reaches.\r\nconst SCHEMA_EXPORTS = new WeakMap();\r\nconst DEFAULT_EXPORTS = new WeakMap();\r\nconst FIELD_INITIAL_DEFAULTS = new WeakMap();\r\nconst FIELD_DECLARATION_METADATA = new WeakMap();\r\nlet SCHEMA_GENERATION = 0;\r\n\r\nconst CONSTRUCTOR_BY_NAME = new Map();\r\nconst ENUM_SCHEMA_BY_NAME = new Map();\r\nconst ENUM_SCHEMA_BY_OBJECT = new WeakMap();\r\nconst STAGE3_FIELD_METADATA = Symbol(\"carbonenginejs.schema.stage3Fields\");\r\n\r\n// Declared here rather than beside describeDecorator: the CjsSchema class body\r\n// builds every decorator namespace in its static initializer, which runs before\r\n// any const declared after the class is initialized.\r\nconst DECORATOR_METADATA = Symbol(\"carbonenginejs.schema.decoratorMetadata\");\r\n\r\nexport const CJS_ENUM_NAME = Symbol.for(\"carbonenginejs.enum.name\");\r\n\r\n/**\r\n * Cross-copy carrier for a declared class name.\r\n *\r\n * Schema metadata lives in a `WeakMap` keyed by constructor, which is private\r\n * to whichever copy of this file created it. Applications can install or\r\n * bundle multiple runtime copies, so a class declared by another copy is\r\n * invisible to `getClassName` here — it returns null for a perfectly\r\n * well-declared class.\r\n *\r\n * That null is not inert. `_type` is emitted only when a class name is known,\r\n * so a cross-copy model exports with no type tag and the values graph silently\r\n * stops being able to rebuild it. Stamping the name on the constructor under a\r\n * global-registry symbol makes the identity survive the boundary, exactly as\r\n * `carbonenginejs.model` does for instances.\r\n */\r\nexport const CJS_CLASS_NAME = Symbol.for(\"carbonenginejs.className\");\r\n\r\n/**\r\n * Cross-copy brand for \"this object is already a live CjsModel\".\r\n *\r\n * Declared here rather than in CjsModel, even though CjsModel is what applies\r\n * it, because the dependency runs one way only: CjsModel imports CjsSchema and\r\n * the reverse is impossible. A predicate that reads a symbol needs no access to\r\n * the class, so the question can be answered from this side of the edge and the\r\n * answer becomes available to every consumer that has the schema.\r\n *\r\n * `value instanceof CjsModel` answers a narrower question than it appears to:\r\n * it asks whether the value came from THIS copy of the runtime package. When an\r\n * application contains multiple copies, a model handed over by another copy\r\n * fails the test while being a perfectly good model.\r\n *\r\n * `Symbol.for` resolves through the global registry, which is one registry per\r\n * realm no matter how many copies of this file are loaded — the same reason\r\n * `carbonenginejs.type` and `carbonenginejs.enum.name` already use it.\r\n */\r\nexport const CJS_MODEL_BRAND = Symbol.for(\"carbonenginejs.model\");\r\n\r\n/**\r\n * Reusable schema/decorator metadata surface.\r\n *\r\n * Decorators are namespace-scoped so consumers can export only the parts they\r\n * understand. The functions support stage-3 field decorators and direct tool\r\n * registration through decorateField().\r\n */\r\nexport class CjsSchema\r\n{\r\n /** Registers complete reviewed schema metadata for a constructor. */\r\n static define(Constructor, definition = {})\r\n {\r\n defineClassMetadata(Constructor, normalizeClassDefinition(Constructor, definition));\r\n return this;\r\n }\r\n\r\n /**\r\n * Creates a field decorator that binds the field to a registered enum\r\n * identity.\r\n */\r\n static enum(values)\r\n {\r\n return fieldDecorator(\"enum\", normalizeEnumDefinition(values));\r\n }\r\n\r\n /** Registers enum identity, members, and optional source metadata. */\r\n static defineEnum(values, definition = {})\r\n {\r\n defineEnumMetadata(values, normalizeEnumSchema(values, definition));\r\n return this;\r\n }\r\n\r\n /** Applies field schema metadata without requiring decorator syntax. */\r\n static decorateField(Constructor, fieldName, ...decorators)\r\n {\r\n for (const decorator of decorators)\r\n {\r\n decorator(Constructor.prototype, fieldName);\r\n }\r\n return Constructor;\r\n }\r\n\r\n /** Applies method provenance metadata without requiring decorator syntax. */\r\n /**\r\n * Carbon's `dynamic_cast`: returns the value when it implements the\r\n * contract, otherwise null. See `compose/interface.js` for why this exists\r\n * and what it deliberately does not do.\r\n *\r\n * @param {*} value\r\n * @param {Function} Contract\r\n * @returns {*} `value` or `null`.\r\n */\r\n static cast(value, Contract)\r\n {\r\n return cast(value, Contract);\r\n }\r\n\r\n /**\r\n * Applies method decorators imperatively, for code built without decorator syntax.\r\n *\r\n * @param {Function} Constructor The class owning the method.\r\n * @param {string} methodName The method's name.\r\n * @param {...Function} decorators The decorators, applied in order.\r\n * @returns {Function} `Constructor`.\r\n */\r\n static decorateMethod(Constructor, methodName, ...decorators)\r\n {\r\n for (const decorator of decorators)\r\n {\r\n decorator(Constructor.prototype, methodName);\r\n }\r\n return Constructor;\r\n }\r\n\r\n /** Registers one field definition on a constructor's schema. */\r\n static defineField(Constructor, fieldName, namespace, value)\r\n {\r\n defineFieldMetadata(Constructor, fieldName, namespace, value);\r\n return this;\r\n }\r\n\r\n /** Registers one method definition on a constructor's schema. */\r\n static defineMethod(Constructor, methodName, namespace, value)\r\n {\r\n defineMethodMetadata(Constructor, methodName, namespace, value);\r\n return this;\r\n }\r\n\r\n /** Returns resolved schema metadata for a named field. */\r\n static getField(Constructor, fieldName)\r\n {\r\n return getEffectiveFields(Constructor).find(field => field.name === fieldName) || null;\r\n }\r\n\r\n /**\r\n * Excludes named inherited fields from the decorated class's schema surface.\r\n */\r\n static hideInherited(fieldNames)\r\n {\r\n return hiddenInheritedFieldsDecorator(normalizeHiddenInheritedFields(fieldNames));\r\n }\r\n\r\n /**\r\n * Checks whether a field is hidden from a class by its inheritance chain.\r\n */\r\n static isFieldHidden(Constructor, fieldName)\r\n {\r\n return getHiddenInheritedFieldNames(Constructor).has(fieldName);\r\n }\r\n\r\n /** Returns resolved provenance metadata for a named method. */\r\n static getMethod(Constructor, methodName)\r\n {\r\n const schema = CLASS_SCHEMA.get(Constructor);\r\n return schema?.methodsByName.get(methodName) || null;\r\n }\r\n\r\n /** Returns the explicit stable serialized name registered for a constructor. */\r\n static getClassName(Constructor)\r\n {\r\n let current = Constructor;\r\n while (typeof current === \"function\")\r\n {\r\n // The local metadata is authoritative wherever it exists, including\r\n // when it deliberately declares no name. The cross-copy brand is\r\n // consulted ONLY for a class this copy has never seen at all --\r\n // otherwise it would answer for local classes whose absence of a\r\n // name is itself the declared answer.\r\n const local = CLASS_SCHEMA.get(current);\r\n const className = local\r\n ? (local.className || null)\r\n : (Object.hasOwn(current, CJS_CLASS_NAME) ? current[CJS_CLASS_NAME] : null);\r\n if (className)\r\n {\r\n return current !== Constructor && className === \"CjsModel\" ? null : className;\r\n }\r\n current = Object.getPrototypeOf(current);\r\n }\r\n return null;\r\n }\r\n\r\n /** Returns the registered schema family for a constructor. */\r\n static getClassFamily(Constructor)\r\n {\r\n let current = Constructor;\r\n while (typeof current === \"function\")\r\n {\r\n const family = CLASS_SCHEMA.get(current)?.family || null;\r\n if (family) return family;\r\n current = Object.getPrototypeOf(current);\r\n }\r\n return null;\r\n }\r\n\r\n /** Returns this constructor's own reviewed purpose without inheriting it. */\r\n static getClassPurpose(Constructor)\r\n {\r\n return CLASS_SCHEMA.get(Constructor)?.purpose || null;\r\n }\r\n\r\n /**\r\n * Reports whether a value is a live model, including one constructed by a\r\n * different copy of this package.\r\n *\r\n * Prefer this to `value instanceof CjsModel` anywhere the answer decides\r\n * between ALIASING and COPYING, or admits and rejects. Getting it wrong\r\n * there does not throw: it silently substitutes a plain object for a live\r\n * instance, or rejects a real model for having been declared elsewhere.\r\n *\r\n * @param {*} value Candidate value.\r\n * @returns {boolean} True when the value is a live model from any copy.\r\n */\r\n static isModelInstance(value)\r\n {\r\n return !!value && typeof value === \"object\" && value[CJS_MODEL_BRAND] === true;\r\n }\r\n\r\n /**\r\n * Every declared class name on a constructor's chain, nearest first.\r\n *\r\n * Read per level from local metadata where this copy has it and from the\r\n * cross-copy stamp where it does not, so the ancestry of a class registered\r\n * by a sibling package is still readable. Unnamed levels are skipped rather\r\n * than ending the walk: an intermediate class with no schema declaration is\r\n * ordinary, and its named ancestors still apply.\r\n *\r\n * @param {Function} Constructor Class to inspect.\r\n * @returns {string[]} Declared names from the class up to its root.\r\n */\r\n static getClassNames(Constructor)\r\n {\r\n const names = [];\r\n let current = Constructor;\r\n while (typeof current === \"function\")\r\n {\r\n const local = CLASS_SCHEMA.get(current);\r\n const className = local\r\n ? (local.className || null)\r\n : (Object.hasOwn(current, CJS_CLASS_NAME) ? current[CJS_CLASS_NAME] : null);\r\n if (className && !names.includes(className)) names.push(className);\r\n current = Object.getPrototypeOf(current);\r\n }\r\n return names;\r\n }\r\n\r\n /**\r\n * Reports whether a value is an instance of the class declared as `name`,\r\n * or of any class descending from it — across package copies.\r\n *\r\n * This is the cross-copy replacement for `value instanceof SomeClass`, and\r\n * the reason it is worth having is that the obvious implementation is wrong.\r\n * Resolving the name through GetConstructor and testing `instanceof` against\r\n * the result reintroduces the identity comparison this exists to avoid: the\r\n * registry may hold a sibling's constructor, and then a perfectly good local\r\n * instance fails. So the check never compares constructor identity at all.\r\n * It reads the declared names up the value's own prototype chain, which are\r\n * stamped rather than derived and therefore survive the copy boundary.\r\n *\r\n * A consequence worth relying on: this does not consult the constructor\r\n * registry, so it is unaffected by the flat-map collision where two families\r\n * register the same class name and the later one wins.\r\n *\r\n * @param {string} name Declared class name to test against.\r\n * @param {*} value Candidate value.\r\n * @returns {boolean} True when the value descends from that declared class.\r\n */\r\n static isInstanceOf(name, value)\r\n {\r\n if (typeof name !== \"string\" || !name.trim()) return false;\r\n if (!value || typeof value !== \"object\") return false;\r\n return this.getClassNames(value.constructor).includes(name.trim());\r\n }\r\n\r\n /** Registers a constructor under an explicit serialized class name. */\r\n static SetConstructor(name, Constructor)\r\n {\r\n if (typeof name !== \"string\" || !name.trim())\r\n {\r\n throw new TypeError(\"CjsSchema.SetConstructor requires a non-empty name.\");\r\n }\r\n if (typeof Constructor !== \"function\")\r\n {\r\n throw new TypeError(`CjsSchema constructor ${name.trim()} must be a function.`);\r\n }\r\n\r\n CONSTRUCTOR_BY_NAME.set(name.trim(), Constructor);\r\n // Buckets resolve class references by name, so a late registration\r\n // changes how already-built schemas should have been bucketed.\r\n SCHEMA_GENERATION += 1;\r\n return this;\r\n }\r\n\r\n /** Returns the constructor registered for a serialized class name. */\r\n static GetConstructor(name)\r\n {\r\n if (typeof name !== \"string\" || !name.trim()) return null;\r\n return CONSTRUCTOR_BY_NAME.get(name.trim()) || null;\r\n }\r\n\r\n /**\r\n * The installed values-transport implementation.\r\n *\r\n * The transport API lives HERE - everything is called through the schema\r\n * (operator direction, 2026-09-05) - while the implementation currently\r\n * still lives in the model layer, which registers itself at load. Layering\r\n * forbids the reverse import (schema never imports model), so this is a\r\n * composition seam: the physical relocation of the transport bodies is the\r\n * facade migration's work, and changes nothing for callers of these\r\n * statics.\r\n */\r\n static #valuesService = null;\r\n\r\n /**\r\n * Installs the values-transport implementation.\r\n *\r\n * Called once by the model layer at module load. A second registration\r\n * replaces the first, which only module duplication could cause.\r\n *\r\n * @param {{getValues: Function, setValues: Function, From: Function}} service\r\n * @returns {typeof CjsSchema}\r\n */\r\n static registerValuesService(service)\r\n {\r\n if (!service || typeof service.getValues !== \"function\" || typeof service.setValues !== \"function\" || typeof service.from !== \"function\")\r\n {\r\n throw new TypeError(\"CjsSchema.registerValuesService requires getValues, setValues and from functions.\");\r\n }\r\n CjsSchema.#valuesService = service;\r\n return this;\r\n }\r\n\r\n /**\r\n * The registered values service, or a thrown explanation of what to import.\r\n *\r\n * @param {string} method The calling method's name, for the message.\r\n * @returns {object} The values service.\r\n */\r\n static #requireValuesService(method)\r\n {\r\n if (!CjsSchema.#valuesService)\r\n {\r\n throw new Error(`CjsSchema.${method} requires the values service; import the model layer before calling it.`);\r\n }\r\n return CjsSchema.#valuesService;\r\n }\r\n\r\n /**\r\n * Exports a target's schema fields to a plain object.\r\n *\r\n * @param {object} target A schema-backed instance.\r\n * @param {object} [out={}] Caller-owned output object.\r\n * @param {object} [options={}] Export options (refs, typeTags, ...).\r\n * @returns {object} The exported values.\r\n */\r\n static getValues(target, out = {}, options = {})\r\n {\r\n // Without the model layer the state-free transport still answers for a\r\n // decorated class, which is what lets a reader work with only the\r\n // schema layer loaded - hydration.js states that as its whole reason\r\n // for calling SetValues directly rather than through here.\r\n const service = CjsSchema.#valuesService;\r\n return service\r\n ? service.getValues(target, out, options)\r\n : CjsSchema.getValuesFromSchema(target, out, options);\r\n }\r\n\r\n /**\r\n * Applies a plain value bag to a target through its validated setter.\r\n *\r\n * @param {object} target A schema-backed instance.\r\n * @param {object} [values={}] Incoming values.\r\n * @param {object} [options={}] Population options.\r\n * @returns {Set<string>|boolean} Changed fields, or a boolean result.\r\n */\r\n static setValues(target, values = {}, options = {})\r\n {\r\n const service = CjsSchema.#valuesService;\r\n return service\r\n ? service.setValues(target, values, options)\r\n : CjsSchema.setValuesFromSchema(target, values, options);\r\n }\r\n\r\n /**\r\n * The state-free transport, for a decorated class carrying no SetValues.\r\n *\r\n * Coercion, the writability gate and a changed set - the reader's half.\r\n * The dirty flag, the settle loop, the modified event and child mutation\r\n * are the EDITING contract and stay with the model path.\r\n *\r\n * Registered as the values service's third arm, which threw by name until\r\n * this existed. Also what `@compose.values` installs.\r\n */\r\n static #statelessTransport = createValuesTransport({\r\n GetFields: Constructor => getEffectiveFields(Constructor),\r\n Export: (value, field, options) => exportCarbonValue(value, field.type, options),\r\n // A live instance of a registered class is ALIASED, never copied - the\r\n // rule the model path applies through its brand (CjsModel.js, the\r\n // isModelInstance early return). A class off the base carries no brand,\r\n // so without this a reference field would receive a plain-object copy\r\n // and shared identity across the graph would silently split.\r\n Import: (value, field) =>\r\n {\r\n if (isLiveSchemaInstance(value)) return value;\r\n if (Array.isArray(value) && value.some(isLiveSchemaInstance))\r\n {\r\n return value.map(item => isLiveSchemaInstance(item) ? item : cloneCarbonValue(item));\r\n }\r\n return normalizeCarbonValue(value, field.type);\r\n },\r\n CoerceInto: (current, incoming, field) =>\r\n coerceCarbonMathInto(current, incoming, field.type)\r\n ?? coerceCarbonTypedArrayInto(current, incoming, field.type),\r\n IsEquivalent: (a, b) => a === b\r\n });\r\n\r\n /** Reads declared fields off any decorated class, without a model base. */\r\n static getValuesFromSchema(target, out = {}, options = {})\r\n {\r\n return CjsSchema.#statelessTransport.getValues(target, out, options);\r\n }\r\n\r\n /** Writes declared fields onto any decorated class, without a model base. */\r\n static setValuesFromSchema(target, values = {}, options = {})\r\n {\r\n return CjsSchema.#statelessTransport.setValues(target, values, options);\r\n }\r\n\r\n /**\r\n * Constructs a registered class from a plain values bag.\r\n *\r\n * The deserializer: resolves the class by name, builds it, applies the\r\n * values, and calls the class-owned Initialize when one exists.\r\n *\r\n * @param {string} className The registered class name.\r\n * @param {object} [values={}] Values to apply.\r\n * @param {object} [options={}] Population options.\r\n * @returns {object} The constructed instance.\r\n */\r\n static from(className, values = {}, options = {})\r\n {\r\n return CjsSchema.#requireValuesService(\"from\").from(className, values, options);\r\n }\r\n\r\n /** Returns the stable registered name for an enum object. */\r\n static getEnumName(values)\r\n {\r\n if (typeof values === \"string\") return values;\r\n return values && typeof values === \"object\"\r\n ? ENUM_SCHEMA_BY_OBJECT.get(values)?.name || values[CJS_ENUM_NAME] || values.Source?.name || values.name || null\r\n : null;\r\n }\r\n\r\n /** Returns registered enum metadata by name or enum object. */\r\n static getEnum(values)\r\n {\r\n const name = CjsSchema.getEnumName(values);\r\n return name ? ENUM_SCHEMA_BY_NAME.get(name) || null : null;\r\n }\r\n\r\n /**\r\n * Return the exported schema for a class.\r\n *\r\n * The schema is the precomputed answer - collapsing the inheritance\r\n * lineage and merging metadata - so building it per call would defeat its\r\n * purpose. Callers traverse model graphs and ask once per node, so this is\r\n * memoized per class and rebuilt only when class metadata is defined.\r\n *\r\n * Namespace-filtered exports are not memoized: they are a projection of the\r\n * full schema requested by tooling, not the hot read path.\r\n *\r\n * The result is shared, not copied - treat it as read-only. It is not\r\n * frozen: deep-cloning and freezing every field on the way out cost far\r\n * more than the mistakes it guarded against.\r\n *\r\n * @param {Function} Constructor\r\n * @param {object} [options={}]\r\n * @param {string|Array<string>} [options.namespaces] Restricts exported metadata namespaces.\r\n * @returns {CjsClassInfo} Shared per-class record.\r\n */\r\n static getSchema(Constructor, options = {})\r\n {\r\n const namespaces = normalizeNamespaces(options.namespaces);\r\n if (namespaces) return buildClassInfo(Constructor, namespaces);\r\n\r\n const memo = SCHEMA_EXPORTS.get(Constructor);\r\n if (memo && memo.generation === SCHEMA_GENERATION) return memo.schema;\r\n\r\n const schema = buildClassInfo(Constructor, null);\r\n SCHEMA_EXPORTS.set(Constructor, { generation: SCHEMA_GENERATION, schema });\r\n return schema;\r\n }\r\n\r\n /**\r\n * Returns a fresh plain-values copy of one schema class's declared defaults.\r\n *\r\n * Decorated field initializers record their value before the constructor\r\n * body can turn it into instance state (an audio game-object ID, for\r\n * example). When no instance has exposed those initializers yet, the class\r\n * is constructed once with zero arguments to trigger them. This never calls\r\n * CjsModel.from, SetValues, Initialize, UpdateValues, or another lifecycle\r\n * hook.\r\n *\r\n * The canonical template is cached by constructor and kept immutable. A\r\n * caller always receives a copy so it cannot poison later expansions.\r\n *\r\n * @param {Function|string} ConstructorOrName Constructor or registered class name.\r\n * @returns {object} A self-describing plain model-values template.\r\n */\r\n static getDefaults(ConstructorOrName)\r\n {\r\n return cloneDefaultValue(getDefaultsTemplate(ConstructorOrName));\r\n }\r\n\r\n /**\r\n * Expands a sparse, self-describing model-values graph with schema defaults.\r\n *\r\n * Authored values win. Authored collections replace default collections;\r\n * structs merge recursively; `_id` and `_ref` pass through unchanged. The\r\n * operation is plain-data-only after each class's lazy default template has\r\n * been captured and never constructs or initializes the authored graph.\r\n *\r\n * @param {object} values Sparse self-describing model values.\r\n * @returns {object} A new default-expanded plain-values graph.\r\n */\r\n static applyDefaults(values)\r\n {\r\n if (!isPlainObject(values))\r\n {\r\n throw new TypeError(\"CjsSchema.applyDefaults requires a plain model-values object.\");\r\n }\r\n if (typeof values._type !== \"string\" || !values._type.trim())\r\n {\r\n throw new TypeError(\"CjsSchema.applyDefaults requires a root _type.\");\r\n }\r\n return expandDefaultValue(values, null, undefined, \"$root\");\r\n }\r\n\r\n\r\n static type = Object.freeze({\r\n array: itemType => fieldDecorator(\"type\", { kind: \"array\", itemType }),\r\n boolean: fieldDecorator(\"type\", { kind: \"boolean\" }),\r\n color: fieldDecorator(\"type\", { kind: \"color\" }),\r\n define: definition => classDefinitionDecorator(definition),\r\n expression: fieldDecorator(\"type\", { kind: \"expression\", js: \"string\" }),\r\n float32: fieldDecorator(\"type\", { kind: \"float32\" }),\r\n float64: fieldDecorator(\"type\", { kind: \"float64\" }),\r\n int8: fieldDecorator(\"type\", { kind: \"int8\" }),\r\n int16: fieldDecorator(\"type\", { kind: \"int16\" }),\r\n int32: fieldDecorator(\"type\", { kind: \"int32\" }),\r\n int64: fieldDecorator(\"type\", { kind: \"int64\" }),\r\n list: itemType => fieldDecorator(\"type\", { kind: \"list\", itemType }),\r\n mat3: fieldDecorator(\"type\", { kind: \"mat3\" }),\r\n mat4: fieldDecorator(\"type\", { kind: \"mat4\" }),\r\n map: valueType => fieldDecorator(\"type\", { kind: \"map\", valueType }),\r\n model: className => fieldDecorator(\"type\", { kind: \"model\", className }),\r\n objectRef: className => fieldDecorator(\"type\", { kind: \"objectRef\", className }),\r\n path: fieldDecorator(\"type\", { kind: \"path\" }),\r\n quat: fieldDecorator(\"type\", { kind: \"quat\" }),\r\n rawStruct: className => fieldDecorator(\"type\", { kind: \"rawStruct\", className }),\r\n set: itemType => fieldDecorator(\"type\", { kind: \"set\", itemType }),\r\n string: fieldDecorator(\"type\", { kind: \"string\" }),\r\n struct: className => fieldDecorator(\"type\", { kind: \"struct\", className }),\r\n typedArray: arrayType => fieldDecorator(\"type\", { kind: \"typedArray\", arrayType }),\r\n uint8: fieldDecorator(\"type\", { kind: \"uint8\" }),\r\n uint16: fieldDecorator(\"type\", { kind: \"uint16\" }),\r\n uint32: fieldDecorator(\"type\", { kind: \"uint32\" }),\r\n uint64: fieldDecorator(\"type\", { kind: \"uint64\" }),\r\n unknown: fieldDecorator(\"type\", { kind: \"unknown\" }),\r\n vec2: fieldDecorator(\"type\", { kind: \"vec2\" }),\r\n vec3: fieldDecorator(\"type\", { kind: \"vec3\" }),\r\n vec4: fieldDecorator(\"type\", { kind: \"vec4\" }),\r\n\r\n // An enum names the vocabulary a field's values are drawn from, which\r\n // is part of its type - it belongs here beside int32 and string rather\r\n // than under a separate namespace. define and hideInherited show this\r\n // namespace already carries class decorators as well as field ones.\r\n enum: values => fieldDecorator(\"enum\", normalizeEnumDefinition(values)),\r\n\r\n /**\r\n * Hides named inherited fields from a subclass's schema, for a subclass\r\n * that genuinely does not carry part of its parent's shape.\r\n */\r\n hideInherited: fieldNames => hiddenInheritedFieldsDecorator(normalizeHiddenInheritedFields(fieldNames))\r\n });\r\n\r\n static io = Object.freeze({\r\n always: fieldDecorator(\"io\", { always: true }),\r\n notify: fieldDecorator(\"io\", { notify: true }),\r\n owned: fieldDecorator(\"io\", { ownership: \"owned\" }),\r\n persist: fieldDecorator(\"io\", { read: true, write: true, persist: true }),\r\n persistOnly: fieldDecorator(\"io\", { persist: true, persistOnly: true }),\r\n read: fieldDecorator(\"io\", { read: true }),\r\n readwrite: fieldDecorator(\"io\", { read: true, write: true }),\r\n reference: fieldDecorator(\"io\", { ownership: \"reference\" }),\r\n // Declares the lazy-invalidation token(s) a change to this field\r\n // implies (\"bounds is stale\"). Added to __state.flags at write time;\r\n // cleared ONLY by the getter that recomputes the derived value.\r\n flag: (...tokens) => fieldDecorator(\"io\", { flag: tokens.flat().map(String) }),\r\n // Declares the rebuild requirement token(s) a change to this field\r\n // implies (\"vertices need rebuilding\"). Added to __state.rebuild at\r\n // write time; cleared ONLY by the specific work method that succeeds\r\n // (typically driven from Update / per-frame passes).\r\n rebuild: (...tokens) => fieldDecorator(\"io\", { rebuild: tokens.flat().map(String) }),\r\n write: fieldDecorator(\"io\", { write: true })\r\n });\r\n\r\n // Composition decorators: type/io/carbon/impl/jessica DESCRIBE, compose\r\n // INSTALLS (design record, direction item 11). All three are live; the\r\n // migration of existing classes onto them is separate work.\r\n static compose = Object.freeze({\r\n notify: composeNotifyDecorator,\r\n interface: Contract => composeInterfaceDecorator(\r\n Contract,\r\n (Constructor, name) => CjsSchema.decorateMethod(Constructor, name, CjsSchema.impl.abstract)),\r\n values: composeValuesDecorator(CjsSchema.#statelessTransport)\r\n });\r\n\r\n static jessica = Object.freeze({\r\n group: name => fieldDecorator(\"jessica\", { group: name }),\r\n hidden: fieldDecorator(\"jessica\", { hidden: true }),\r\n readOnly: fieldDecorator(\"jessica\", { readOnly: true }),\r\n widget: name => fieldDecorator(\"jessica\", { widget: name })\r\n });\r\n\r\n // impl decorators apply to methods AND fields: a promoted/diverging field\r\n // (e.g. a Carbon-hidden authored value exposed for values interchange) is\r\n // an implementation decision, so it carries impl.adapted/impl.custom +\r\n // impl.reason just like a diverging method. carbon.* stays factual\r\n // provenance and remains method-only.\r\n static impl = Object.freeze({\r\n abstract: memberDecorator(\"impl\", { abstract: true, status: \"abstract\" }),\r\n adapted: memberDecorator(\"impl\", { adapted: true, status: \"adapted\" }),\r\n custom: memberDecorator(\"impl\", { custom: true, status: \"custom\" }),\r\n implemented: memberDecorator(\"impl\", { implemented: true, status: \"implemented\" }),\r\n noop: memberDecorator(\"impl\", { noop: true, status: \"noop\" }),\r\n notImplemented: memberDecorator(\"impl\", { notImplemented: true, status: \"notImplemented\" }),\r\n notSupported: memberDecorator(\"impl\", { notSupported: true, status: \"notSupported\" }),\r\n note: text => memberDecorator(\"impl\", { note: String(text) }),\r\n reason: text => memberDecorator(\"impl\", { reason: String(text) })\r\n });\r\n\r\n static carbon = Object.freeze({\r\n method: methodDecorator(\"carbon\", { method: true }),\r\n renamed: originalName => {\r\n if (typeof originalName !== \"string\" || !originalName.trim())\r\n {\r\n throw new TypeError(\"CjsSchema.carbon.renamed requires a non-empty original method name.\");\r\n }\r\n return methodDecorator(\"carbon\", {\r\n method: true,\r\n renamed: true,\r\n originalName: originalName.trim()\r\n });\r\n },\r\n contextual: tiers => {\r\n const list = Array.isArray(tiers) ? tiers : [tiers];\r\n const normalized = [];\r\n for (const tier of list)\r\n {\r\n if (typeof tier !== \"string\" || !tier.trim())\r\n {\r\n continue;\r\n }\r\n normalized.push(tier.trim());\r\n }\r\n if (!normalized.length)\r\n {\r\n throw new TypeError(\"CjsSchema.carbon.contextual requires at least one context tier name.\");\r\n }\r\n const base = methodDecorator(\"carbon\", {\r\n method: true,\r\n contextual: true,\r\n contextTiers: normalized\r\n });\r\n const described = getDecoratorMetadata(base);\r\n return describeDecorator(function contextualMethodDecorator(targetOrValue, contextOrMethodName)\r\n {\r\n // Contextual methods are validated context-first at decoration\r\n // time: the first declared parameter must be the frame context.\r\n if (contextOrMethodName && typeof contextOrMethodName === \"object\")\r\n {\r\n assertContextFirstMethod(targetOrValue, contextOrMethodName.name);\r\n }\r\n else if (targetOrValue && contextOrMethodName)\r\n {\r\n assertContextFirstMethod(targetOrValue[contextOrMethodName], contextOrMethodName);\r\n }\r\n return base(targetOrValue, contextOrMethodName);\r\n }, described.namespace, described.value);\r\n }\r\n });\r\n\r\n static components = createComponentsNamespace();\r\n}\r\n\r\nfunction captureFieldInitialDefault(Constructor, fieldName, initialValue, declarationMetadata = null)\r\n{\r\n if (typeof Constructor !== \"function\") return;\r\n\r\n let fields = FIELD_INITIAL_DEFAULTS.get(Constructor);\r\n if (!fields)\r\n {\r\n fields = new Map();\r\n FIELD_INITIAL_DEFAULTS.set(Constructor, fields);\r\n }\r\n const existing = fields.get(fieldName);\r\n if (existing)\r\n {\r\n const ownDeclaration = FIELD_DECLARATION_METADATA.get(Constructor)?.get(fieldName);\r\n const replacesInheritedDefault = ownDeclaration &&\r\n declarationMetadata === ownDeclaration &&\r\n existing.declarationMetadata !== ownDeclaration;\r\n if (!replacesInheritedDefault) return;\r\n }\r\n\r\n try\r\n {\r\n fields.set(fieldName, {\r\n value: deepFreezeDefaultValue(snapshotSchemaDefault(initialValue)),\r\n declarationMetadata\r\n });\r\n }\r\n catch (err)\r\n {\r\n // Schema capture must never make ordinary class construction fail. The\r\n // explicit defaults request reports the unsupported value instead.\r\n fields.set(fieldName, {\r\n error: err instanceof Error ? err.message : String(err),\r\n declarationMetadata\r\n });\r\n }\r\n DEFAULT_EXPORTS.delete(Constructor);\r\n}\r\n\r\nfunction getDefaultsTemplate(ConstructorOrName)\r\n{\r\n const Constructor = resolveDefaultsConstructor(ConstructorOrName);\r\n const memo = DEFAULT_EXPORTS.get(Constructor);\r\n if (memo && memo.generation === SCHEMA_GENERATION) return memo.defaults;\r\n\r\n let fields = getEffectiveFields(Constructor);\r\n let captured = FIELD_INITIAL_DEFAULTS.get(Constructor);\r\n let instance = null;\r\n\r\n if (fields.some(field => !captured?.has(field.name)))\r\n {\r\n try\r\n {\r\n // A bare constructor runs JavaScript field/constructor setup only.\r\n // The CjsModel initialization lifecycle is driven by from(), not by\r\n // `new`, and is deliberately absent from this operation.\r\n instance = new Constructor();\r\n }\r\n catch (err)\r\n {\r\n const className = CjsSchema.getClassName(Constructor) || Constructor.name || \"<anonymous>\";\r\n throw new TypeError(\r\n `CjsSchema.getDefaults could not construct ${className} with zero arguments: ` +\r\n `${err instanceof Error ? err.message : String(err)}`,\r\n { cause: err }\r\n );\r\n }\r\n fields = getEffectiveFields(Constructor);\r\n captured = FIELD_INITIAL_DEFAULTS.get(Constructor);\r\n }\r\n\r\n const className = CjsSchema.getClassName(Constructor);\r\n if (!className)\r\n {\r\n throw new TypeError(\"CjsSchema.getDefaults requires a constructor with an explicit className.\");\r\n }\r\n\r\n const defaults = { _type: className };\r\n for (const field of fields)\r\n {\r\n const entry = captured?.get(field.name);\r\n let value;\r\n let hasValue = false;\r\n\r\n if (entry?.error)\r\n {\r\n throw new TypeError(\r\n `CjsSchema.getDefaults could not capture ${className}.${field.name}: ${entry.error}`\r\n );\r\n }\r\n if (entry && Object.hasOwn(entry, \"value\"))\r\n {\r\n value = cloneDefaultValue(entry.value);\r\n hasValue = true;\r\n }\r\n else if (instance)\r\n {\r\n value = snapshotSchemaDefault(instance[field.name]);\r\n // Directly registered schema accessors are explicit declarations\r\n // too. Their getter is the only authoritative default source even\r\n // though the property lives on the prototype rather than as an\r\n // own field (for example two Blue names sharing one color buffer).\r\n hasValue = field.name in instance;\r\n }\r\n\r\n if (!hasValue)\r\n {\r\n value = snapshotSchemaDefault(defaultValueForCarbonField(field));\r\n }\r\n defaults[field.name] = value;\r\n }\r\n\r\n const frozen = deepFreezeDefaultValue(defaults);\r\n DEFAULT_EXPORTS.set(Constructor, {\r\n generation: SCHEMA_GENERATION,\r\n defaults: frozen\r\n });\r\n return frozen;\r\n}\r\n\r\nfunction resolveDefaultsConstructor(ConstructorOrName)\r\n{\r\n if (typeof ConstructorOrName === \"function\") return ConstructorOrName;\r\n if (typeof ConstructorOrName !== \"string\" || !ConstructorOrName.trim())\r\n {\r\n throw new TypeError(\"CjsSchema.getDefaults requires a constructor or registered class name.\");\r\n }\r\n\r\n const className = ConstructorOrName.trim();\r\n const Constructor = CjsSchema.GetConstructor(className);\r\n if (!Constructor)\r\n {\r\n throw new TypeError(`No CjsSchema constructor is registered for _type \"${className}\".`);\r\n }\r\n return Constructor;\r\n}\r\n\r\nfunction snapshotSchemaDefault(value, active = new WeakSet())\r\n{\r\n if (value === null || value === undefined) return value;\r\n if (typeof value === \"bigint\") return value.toString();\r\n if (typeof value !== \"object\") return value;\r\n if (ArrayBuffer.isView(value))\r\n {\r\n return Array.from(value, item => typeof item === \"bigint\" ? item.toString() : item);\r\n }\r\n if (active.has(value))\r\n {\r\n throw new TypeError(\"cyclic class defaults are not JSON-compatible\");\r\n }\r\n\r\n active.add(value);\r\n try\r\n {\r\n if (Array.isArray(value))\r\n {\r\n return value.map(item => snapshotSchemaDefault(item, active));\r\n }\r\n if (value instanceof Map)\r\n {\r\n return Object.fromEntries(Array.from(value.entries(), ([key, item]) => [\r\n String(key),\r\n snapshotSchemaDefault(item, active)\r\n ]));\r\n }\r\n if (value instanceof Set)\r\n {\r\n return Array.from(value, item => snapshotSchemaDefault(item, active));\r\n }\r\n\r\n const Constructor = value.constructor;\r\n const className = typeof Constructor === \"function\"\r\n ? CjsSchema.getClassName(Constructor)\r\n : null;\r\n if (className)\r\n {\r\n const result = { _type: className };\r\n const captured = FIELD_INITIAL_DEFAULTS.get(Constructor);\r\n for (const field of getEffectiveFields(Constructor))\r\n {\r\n const entry = captured?.get(field.name);\r\n if (entry?.error)\r\n {\r\n throw new TypeError(`${className}.${field.name}: ${entry.error}`);\r\n }\r\n\r\n let fieldValue = entry && Object.hasOwn(entry, \"value\")\r\n ? cloneDefaultValue(entry.value)\r\n : value[field.name];\r\n if (fieldValue === undefined)\r\n {\r\n fieldValue = defaultValueForCarbonField(field);\r\n }\r\n result[field.name] = snapshotSchemaDefault(fieldValue, active);\r\n }\r\n return result;\r\n }\r\n\r\n const result = {};\r\n for (const [key, item] of Object.entries(value))\r\n {\r\n result[key] = snapshotSchemaDefault(item, active);\r\n }\r\n return result;\r\n }\r\n finally\r\n {\r\n active.delete(value);\r\n }\r\n}\r\n\r\nfunction expandDefaultValue(value, declaredType, defaultValue, path)\r\n{\r\n if (value === null || value === undefined) return value;\r\n if (typeof value === \"bigint\") return value.toString();\r\n if (typeof value !== \"object\") return value;\r\n if (ArrayBuffer.isView(value))\r\n {\r\n return Array.from(value, item => typeof item === \"bigint\" ? item.toString() : item);\r\n }\r\n\r\n const kind = declaredType?.kind || null;\r\n const itemType = declaredType?.itemType || null;\r\n if (Array.isArray(value))\r\n {\r\n return value.map((item, index) => expandDefaultValue(\r\n item,\r\n kind === \"list\" || kind === \"array\" || kind === \"set\" ? itemType : null,\r\n undefined,\r\n `${path}[${index}]`\r\n ));\r\n }\r\n if (value instanceof Set)\r\n {\r\n return Array.from(value, (item, index) => expandDefaultValue(\r\n item,\r\n itemType,\r\n undefined,\r\n `${path}[${index}]`\r\n ));\r\n }\r\n if (value instanceof Map)\r\n {\r\n const result = {};\r\n for (const [key, item] of value)\r\n {\r\n result[String(key)] = expandDefaultValue(\r\n item,\r\n declaredType?.valueType || null,\r\n undefined,\r\n `${path}.${String(key)}`\r\n );\r\n }\r\n return result;\r\n }\r\n\r\n if (Object.hasOwn(value, \"_ref\"))\r\n {\r\n return cloneDefaultValue(value);\r\n }\r\n\r\n if (typeof value._type === \"string\" && value._type.trim())\r\n {\r\n const Constructor = CjsSchema.GetConstructor(value._type.trim());\r\n if (!Constructor)\r\n {\r\n throw new TypeError(`${path} names unknown _type \"${value._type.trim()}\".`);\r\n }\r\n return expandSchemaObject(value, Constructor, path);\r\n }\r\n\r\n if ((kind === \"list\" || kind === \"array\" || kind === \"set\") && isPlainObject(value))\r\n {\r\n return Object.fromEntries(Object.entries(value).map(([key, item]) => [\r\n key,\r\n expandDefaultValue(item, itemType, undefined, `${path}.${key}`)\r\n ]));\r\n }\r\n if (kind === \"map\" && isPlainObject(value))\r\n {\r\n return Object.fromEntries(Object.entries(value).map(([key, item]) => [\r\n key,\r\n expandDefaultValue(item, declaredType?.valueType || null, undefined, `${path}.${key}`)\r\n ]));\r\n }\r\n\r\n const declaredClass = resolveDeclaredConstructor(declaredType);\r\n if (declaredClass)\r\n {\r\n return expandSchemaObject(value, declaredClass, path);\r\n }\r\n\r\n if (isPlainObject(defaultValue))\r\n {\r\n return mergePlainDefaults(defaultValue, value, path);\r\n }\r\n\r\n const result = {};\r\n for (const [key, item] of Object.entries(value))\r\n {\r\n result[key] = expandDefaultValue(item, null, undefined, `${path}.${key}`);\r\n }\r\n return result;\r\n}\r\n\r\nfunction expandSchemaObject(values, Constructor, path)\r\n{\r\n if (!isPlainObject(values))\r\n {\r\n throw new TypeError(`${path} must be a plain object.`);\r\n }\r\n\r\n const result = cloneDefaultValue(getDefaultsTemplate(Constructor));\r\n const schema = CjsSchema.getSchema(Constructor);\r\n for (const [key, item] of Object.entries(values))\r\n {\r\n if (key === \"_type\" || key === \"_id\" || key === \"_ref\")\r\n {\r\n result[key] = cloneDefaultValue(item);\r\n continue;\r\n }\r\n\r\n const field = schema.byName.get(key);\r\n result[key] = expandDefaultValue(\r\n item,\r\n field?.type || null,\r\n result[key],\r\n `${path}.${key}`\r\n );\r\n }\r\n return result;\r\n}\r\n\r\nfunction resolveDeclaredConstructor(type)\r\n{\r\n let className = null;\r\n if (typeof type === \"string\")\r\n {\r\n className = type;\r\n }\r\n else if (type && typeof type === \"object\")\r\n {\r\n if ([\"model\", \"objectRef\", \"struct\"].includes(type.kind))\r\n {\r\n className = type.className || null;\r\n }\r\n }\r\n return className ? CjsSchema.GetConstructor(className) : null;\r\n}\r\n\r\nfunction mergePlainDefaults(defaults, values, path)\r\n{\r\n const result = cloneDefaultValue(defaults);\r\n for (const [key, item] of Object.entries(values))\r\n {\r\n result[key] = expandDefaultValue(item, null, result[key], `${path}.${key}`);\r\n }\r\n return result;\r\n}\r\n\r\nfunction cloneDefaultValue(value)\r\n{\r\n if (value === null || value === undefined) return value;\r\n if (Array.isArray(value)) return value.map(cloneDefaultValue);\r\n if (value && typeof value === \"object\")\r\n {\r\n return Object.fromEntries(Object.entries(value).map(([key, item]) => [\r\n key,\r\n cloneDefaultValue(item)\r\n ]));\r\n }\r\n return value;\r\n}\r\n\r\nfunction deepFreezeDefaultValue(value, seen = new WeakSet())\r\n{\r\n if (!value || typeof value !== \"object\" || seen.has(value)) return value;\r\n seen.add(value);\r\n for (const item of Object.values(value)) deepFreezeDefaultValue(item, seen);\r\n return value;\r\n}\r\n\r\nfunction createComponentsNamespace()\r\n{\r\n const components = definition => fieldDecorator(\"components\", normalizeComponentDefinition(definition));\r\n Object.defineProperties(components, {\r\n get: { value: getComponentValue },\r\n indices: { value: getComponentIndices },\r\n set: { value: setComponentValue }\r\n });\r\n return components;\r\n}\r\n\r\n// Every decorator carries the namespace and value it would install. That is\r\n// what lets one vocabulary serve both forms: `type.uint32` applied as a\r\n// decorator, and `type.uint32` written as data in a CjsSchema.define() member.\r\n// Without it the object form would need its own spelling of every namespace\r\n// value, and two spellings of `impl.adapted` will eventually disagree.\r\nfunction describeDecorator(decorator, namespace, value)\r\n{\r\n Object.defineProperty(decorator, DECORATOR_METADATA, {\r\n value: { namespace, value }\r\n });\r\n return decorator;\r\n}\r\n\r\n/**\r\n * The namespace/value a decorator installs, or null when it is not one.\r\n *\r\n * @param {*} candidate Possible decorator.\r\n * @returns {{namespace:string, value:*}|null} Installed metadata.\r\n */\r\nfunction getDecoratorMetadata(candidate)\r\n{\r\n return typeof candidate === \"function\" ? candidate[DECORATOR_METADATA] || null : null;\r\n}\r\n\r\nfunction fieldDecorator(namespace, value)\r\n{\r\n return describeDecorator(function schemaFieldDecorator(targetOrValue, contextOrFieldName)\r\n {\r\n if (contextOrFieldName && typeof contextOrFieldName === \"object\")\r\n {\r\n const context = contextOrFieldName;\r\n if (context.kind !== \"field\") throw new TypeError(\"CjsSchema decorators only support class fields.\");\r\n recordStage3FieldMetadata(context, namespace, value);\r\n\r\n // The class decorator replays the Stage-3 metadata recorded above, so\r\n // schema inspection works before the first instance is constructed.\r\n // Keep both runtime initializers as fallbacks: addInitializer covers\r\n // spec-compliant runtimes, while the returned field initializer covers\r\n // runtimes that do not fire field-decorator addInitializer. All paths\r\n // register the same metadata idempotently through mergeNamespace.\r\n context.addInitializer(function initializeSchemaField()\r\n {\r\n defineFieldMetadata(this.constructor, context.name, namespace, value);\r\n });\r\n\r\n return function initializeSchemaFieldValue(initialValue)\r\n {\r\n defineFieldMetadata(this.constructor, context.name, namespace, value);\r\n captureFieldInitialDefault(\r\n this.constructor,\r\n context.name,\r\n initialValue,\r\n context.metadata\r\n );\r\n return initialValue;\r\n };\r\n }\r\n\r\n const Constructor = targetOrValue?.constructor;\r\n if (!Constructor || !contextOrFieldName)\r\n {\r\n throw new TypeError(\"CjsSchema field decorators require a class field target.\");\r\n }\r\n\r\n defineFieldMetadata(Constructor, contextOrFieldName, namespace, value);\r\n }, namespace, value);\r\n}\r\n\r\nfunction classDefinitionDecorator(definition)\r\n{\r\n return function schemaClassDefinitionDecorator(value, context)\r\n {\r\n if (context && typeof context === \"object\")\r\n {\r\n if (context.kind !== \"class\") throw new TypeError(\"CjsSchema type.define only supports classes.\");\r\n registerStage3FieldMetadata(value, context.metadata);\r\n defineClassMetadata(value, normalizeClassDefinition(value, definition));\r\n return;\r\n }\r\n\r\n if (typeof value !== \"function\")\r\n {\r\n throw new TypeError(\"CjsSchema type.define requires a class constructor.\");\r\n }\r\n\r\n defineClassMetadata(value, normalizeClassDefinition(value, definition));\r\n };\r\n}\r\n\r\nfunction hiddenInheritedFieldsDecorator(fieldNames)\r\n{\r\n return function schemaHiddenInheritedFieldsDecorator(value, context)\r\n {\r\n if (context && typeof context === \"object\")\r\n {\r\n if (context.kind !== \"class\") throw new TypeError(\"CjsSchema.hideInherited only supports classes.\");\r\n registerStage3FieldMetadata(value, context.metadata);\r\n }\r\n else if (typeof value !== \"function\")\r\n {\r\n throw new TypeError(\"CjsSchema.hideInherited requires a class constructor.\");\r\n }\r\n\r\n defineHiddenInheritedFields(value, fieldNames);\r\n };\r\n}\r\n\r\nconst CONTEXT_FIRST_PARAMETER = /^\\(?\\s*_?(context|updateContext)\\b/;\r\n\r\nfunction assertContextFirstMethod(fn, methodName)\r\n{\r\n if (typeof fn !== \"function\")\r\n {\r\n return;\r\n }\r\n const source = String(fn);\r\n const parameterList = source.slice(source.indexOf(\"(\"));\r\n if (fn.length < 1 || !CONTEXT_FIRST_PARAMETER.test(parameterList))\r\n {\r\n throw new TypeError(\r\n `CjsSchema.carbon.contextual method \"${String(methodName)}\" must be context-first ` +\r\n \"(first parameter named context or updateContext).\"\r\n );\r\n }\r\n}\r\n\r\nfunction methodDecorator(namespace, value)\r\n{\r\n return describeDecorator(function schemaMethodDecorator(targetOrValue, contextOrMethodName)\r\n {\r\n if (contextOrMethodName && typeof contextOrMethodName === \"object\")\r\n {\r\n const context = contextOrMethodName;\r\n if (context.kind !== \"method\") throw new TypeError(\"CjsSchema method decorators only support class methods.\");\r\n\r\n context.addInitializer(function initializeSchemaMethod()\r\n {\r\n const Constructor = context.static ? this : this.constructor;\r\n defineMethodMetadata(Constructor, context.name, namespace, value);\r\n });\r\n return;\r\n }\r\n\r\n const Constructor = targetOrValue?.constructor;\r\n if (!Constructor || !contextOrMethodName)\r\n {\r\n throw new TypeError(\"CjsSchema method decorators require a class method target.\");\r\n }\r\n\r\n defineMethodMetadata(Constructor, contextOrMethodName, namespace, value);\r\n }, namespace, value);\r\n}\r\n\r\nfunction memberDecorator(namespace, value)\r\n{\r\n const forMethods = methodDecorator(namespace, value);\r\n const forFields = fieldDecorator(namespace, value);\r\n return describeDecorator(function schemaMemberDecorator(targetOrValue, contextOrMemberName)\r\n {\r\n if (contextOrMemberName && typeof contextOrMemberName === \"object\")\r\n {\r\n return contextOrMemberName.kind === \"field\"\r\n ? forFields(targetOrValue, contextOrMemberName)\r\n : forMethods(targetOrValue, contextOrMemberName);\r\n }\r\n\r\n // Legacy (non-2023-11) path: a method target resolves to a function\r\n // on the prototype; anything else is treated as a field.\r\n return targetOrValue && contextOrMemberName && typeof targetOrValue[contextOrMemberName] === \"function\"\r\n ? forMethods(targetOrValue, contextOrMemberName)\r\n : forFields(targetOrValue, contextOrMemberName);\r\n }, namespace, value);\r\n}\r\n\r\nfunction defineFieldMetadata(Constructor, fieldName, namespace, value)\r\n{\r\n defineMemberMetadata(Constructor, \"fields\", \"fieldsByName\", fieldName, namespace, value);\r\n}\r\n\r\nfunction defineClassMetadata(Constructor, definition)\r\n{\r\n const schema = getOrCreateClassSchema(Constructor);\r\n if (definition.className)\r\n {\r\n schema.className = definition.className;\r\n // Non-enumerable and own-property, so it neither pollutes exported\r\n // values nor is mistaken for an inherited name further down the chain.\r\n Object.defineProperty(Constructor, CJS_CLASS_NAME, {\r\n value: definition.className,\r\n configurable: true\r\n });\r\n }\r\n if (definition.family) schema.family = definition.family;\r\n if (definition.purpose) schema.purpose = definition.purpose;\r\n if (definition.sourceClass) schema.sourceClass = definition.sourceClass;\r\n if (definition.carbon) schema.carbon = definition.carbon;\r\n if (definition.modelledOn) schema.modelledOn = definition.modelledOn;\r\n if (definition.aliases) schema.aliases = [...definition.aliases];\r\n\r\n for (const field of definition.fields || [])\r\n {\r\n defineManualMemberMetadata(Constructor, \"fields\", field);\r\n }\r\n\r\n for (const method of definition.methods || [])\r\n {\r\n defineManualMemberMetadata(Constructor, \"methods\", method);\r\n }\r\n\r\n registerClassMetadata(Constructor, schema);\r\n}\r\n\r\nfunction defineManualMemberMetadata(Constructor, memberType, definition)\r\n{\r\n const define = memberType === \"methods\" ? defineMethodMetadata : defineFieldMetadata;\r\n for (const [namespace, value] of Object.entries(definition))\r\n {\r\n if (namespace === \"name\") continue;\r\n define(Constructor, definition.name, namespace, value);\r\n }\r\n}\r\n\r\nfunction defineMethodMetadata(Constructor, methodName, namespace, value)\r\n{\r\n defineMemberMetadata(Constructor, \"methods\", \"methodsByName\", methodName, namespace, value);\r\n}\r\n\r\nfunction defineMemberMetadata(Constructor, listKey, mapKey, name, namespace, value)\r\n{\r\n const schema = getOrCreateClassSchema(Constructor);\r\n let item = schema[mapKey].get(name);\r\n\r\n if (!item)\r\n {\r\n item = { name };\r\n schema[listKey].push(item);\r\n schema[mapKey].set(name, item);\r\n }\r\n\r\n item[namespace] = mergeNamespace(item[namespace], value);\r\n}\r\n\r\nfunction defineHiddenInheritedFields(Constructor, fieldNames)\r\n{\r\n if (typeof Constructor !== \"function\")\r\n {\r\n throw new TypeError(\"CjsSchema.hideInherited requires a class constructor.\");\r\n }\r\n\r\n const Parent = Object.getPrototypeOf(Constructor);\r\n const inheritedFields = new Set(getEffectiveFields(Parent).map(field => field.name));\r\n // Declared name only: Constructor.name does not survive minification, and a\r\n // mangled name in an error reads as a real one and sends you chasing it.\r\n const className = CLASS_SCHEMA.get(Constructor)?.className || \"<undeclared>\";\r\n\r\n for (const fieldName of fieldNames)\r\n {\r\n if (!inheritedFields.has(fieldName))\r\n {\r\n throw new TypeError(\r\n `CjsSchema.hideInherited cannot hide \"${fieldName}\" on ${className}: ` +\r\n \"the parent schema does not expose that field.\"\r\n );\r\n }\r\n }\r\n\r\n const schema = getOrCreateClassSchema(Constructor);\r\n for (const fieldName of fieldNames)\r\n {\r\n schema.hiddenInherited.add(fieldName);\r\n }\r\n}\r\n\r\n// A live instance of a registered class, from this copy or a sibling one -\r\n// getClassName reads the cross-copy stamp. Plain bags, arrays, typed arrays\r\n// and the reader's `{ _sourceClassName }` carriers all answer false.\r\nfunction isLiveSchemaInstance(value)\r\n{\r\n return !!value && typeof value === \"object\" && !Array.isArray(value) && !ArrayBuffer.isView(value)\r\n && CjsSchema.getClassName(value.constructor) !== null;\r\n}\r\n\r\nfunction getEffectiveFields(Constructor)\r\n{\r\n const ordered = [];\r\n const byName = new Map();\r\n const hidden = new Set();\r\n\r\n for (const current of getSchemaLineage(Constructor))\r\n {\r\n const schema = CLASS_SCHEMA.get(current);\r\n for (const field of schema?.fields || [])\r\n {\r\n const existing = byName.get(field.name);\r\n if (existing)\r\n {\r\n mergeMemberMetadata(existing, field);\r\n }\r\n else\r\n {\r\n const merged = mergeMemberMetadata({ name: field.name }, field);\r\n ordered.push(merged);\r\n byName.set(field.name, merged);\r\n }\r\n }\r\n\r\n for (const fieldName of schema?.hiddenInherited || [])\r\n {\r\n hidden.add(fieldName);\r\n }\r\n }\r\n\r\n return ordered.filter(field => !hidden.has(field.name));\r\n}\r\n\r\nfunction getHiddenInheritedFieldNames(Constructor)\r\n{\r\n const hidden = new Set();\r\n for (const current of getSchemaLineage(Constructor))\r\n {\r\n for (const fieldName of CLASS_SCHEMA.get(current)?.hiddenInherited || [])\r\n {\r\n hidden.add(fieldName);\r\n }\r\n }\r\n return hidden;\r\n}\r\n\r\nfunction getSchemaLineage(Constructor)\r\n{\r\n const lineage = [];\r\n let current = Constructor;\r\n while (typeof current === \"function\")\r\n {\r\n if (CLASS_SCHEMA.has(current)) lineage.push(current);\r\n current = Object.getPrototypeOf(current);\r\n }\r\n return lineage.reverse();\r\n}\r\n\r\nfunction mergeMemberMetadata(target, source)\r\n{\r\n for (const [namespace, value] of Object.entries(source))\r\n {\r\n if (namespace === \"name\") continue;\r\n target[namespace] = mergeNamespace(target[namespace], value);\r\n }\r\n return target;\r\n}\r\n\r\n/**\r\n * The per-class record `getSchema()` returns - the `Be::ClassInfo` analog,\r\n * named CjsClassInfo (audit ruling 8, 2026-09-05). A typedef rather than an\r\n * exported class: the record is shared read-only data consumed by tooling as\r\n * plain JSON; promote to a real class only if facade-era accessors earn it.\r\n *\r\n * @typedef {object} CjsClassInfo\r\n * @property {string|null} className Registered serialized class name.\r\n * @property {Array<object>} fields Resolved field metadata, declaration order.\r\n * @property {Array<object>} [methods] Method provenance metadata.\r\n * @property {string} [family] Registered schema family.\r\n */\r\nfunction buildClassInfo(Constructor, namespaces)\r\n{\r\n const schema = CLASS_SCHEMA.get(Constructor);\r\n const fields = [];\r\n const methods = [];\r\n\r\n for (const field of getEffectiveFields(Constructor))\r\n {\r\n fields.push(enrichEnumField(exportField(field, namespaces), Constructor));\r\n }\r\n\r\n // KNOWN DEFECT: methods are read from this class only, while fields resolve\r\n // through the whole lineage above. A subclass therefore reports no inherited\r\n // methods, and the decorated form hides that behind a second bug that\r\n // cancels it out: method decorators register through addInitializer, where\r\n // `this.constructor` is the *instance's* class, so constructing one\r\n // Tr2LightProfileRes writes CjsResource's methods onto Tr2LightProfileRes.\r\n // Which class owns which methods then depends on construction order, and\r\n // before any instance exists a class reports no methods at all.\r\n //\r\n // Declaring metadata as data (CjsSchema.define fields/methods) registers on\r\n // the declaring class at module load, so it is deterministic - and it makes\r\n // the missing inheritance visible rather than accidentally papered over.\r\n //\r\n // Left unfixed deliberately: nothing reads .methods off a runtime schema\r\n // today (tools-core classTool parses source documents, not these), and the\r\n // fix - walking the lineage here as getEffectiveFields does - changes\r\n // exported schemas for every decorator-using class in the org.\r\n for (const method of schema?.methods || [])\r\n {\r\n methods.push(exportField(method, namespaces));\r\n }\r\n\r\n const result = {\r\n className: CjsSchema.getClassName(Constructor),\r\n fields\r\n };\r\n\r\n const family = schema?.family || CjsSchema.getClassFamily(Constructor);\r\n if (family)\r\n {\r\n result.family = family;\r\n }\r\n\r\n if (schema?.purpose)\r\n {\r\n result.purpose = schema.purpose;\r\n }\r\n\r\n if (schema?.sourceClass && schema.sourceClass !== result.className)\r\n {\r\n result.sourceClass = schema.sourceClass;\r\n }\r\n\r\n if (schema?.carbon)\r\n {\r\n result.carbon = schema.carbon;\r\n }\r\n\r\n if (schema?.modelledOn)\r\n {\r\n result.modelledOn = schema.modelledOn;\r\n }\r\n\r\n if (schema?.aliases?.length)\r\n {\r\n result.aliases = [ ...schema.aliases ];\r\n }\r\n\r\n if (methods.length) result.methods = methods;\r\n\r\n addSchemaBuckets(result);\r\n return result;\r\n}\r\n\r\n\r\n// Kinds that hold many values rather than one. `map` and `set` are included\r\n// because they are iterable collections of the referenced class, same as a list.\r\nconst MANY_KINDS = new Set([ \"list\", \"array\", \"set\", \"map\" ]);\r\n\r\n// Kinds that can hold a child model. Bucketing on the KIND rather than on a\r\n// resolvable class reference keeps traversal conservative: `type.struct(Class)`\r\n// drops the reference during normalization, and a raw defineField may omit the\r\n// item type, so requiring a reference would silently stop visiting those.\r\n// Scalar and math kinds are excluded, which is where the saving comes from.\r\nconst MODEL_KINDS = new Set([\r\n \"struct\", \"model\", \"rawStruct\", \"objectRef\", \"unknown\",\r\n \"list\", \"array\", \"set\", \"map\"\r\n]);\r\n\r\n\r\n/**\r\n * Precompute the answers consumers would otherwise recompute per traversal.\r\n *\r\n * Graph walks ask the same two questions of every node - which fields hold\r\n * child models, which hold resources - and answering them by scanning the field\r\n * list and type-testing each value costs more than the walk itself. The class\r\n * cannot change without rebuilding its schema, so this is solved once.\r\n */\r\nfunction addSchemaBuckets(schema)\r\n{\r\n const byName = new Map();\r\n const children = [];\r\n const resources = [];\r\n\r\n for (const field of schema.fields)\r\n {\r\n byName.set(field.name, field);\r\n\r\n const type = field.type;\r\n // An undeclared field could hold anything, so it stays traversable.\r\n const kind = type?.kind;\r\n if (kind && !MODEL_KINDS.has(kind)) continue;\r\n\r\n const entry = { name: field.name, many: MANY_KINDS.has(kind) };\r\n\r\n if (type && resolveFieldClass(type)?.isResource === true)\r\n {\r\n resources.push(entry);\r\n continue;\r\n }\r\n\r\n entry.owned = field.io?.ownership === \"owned\";\r\n children.push(entry);\r\n }\r\n\r\n schema.byName = byName;\r\n schema.children = children;\r\n schema.resources = resources;\r\n}\r\n\r\n\r\n// Only string references survive normalization - type.struct(SomeClass) drops\r\n// the reference entirely - so a field can only be bucketed when it names a\r\n// class. The one field in the tree that named nothing was a missing\r\n// declaration, not a deliberate escape.\r\nfunction resolveFieldClass(type)\r\n{\r\n const ref = type.className || type.itemType || type.valueType;\r\n return typeof ref === \"string\" && ref ? CONSTRUCTOR_BY_NAME.get(ref) || null : null;\r\n}\r\n\r\n\r\nfunction getOrCreateClassSchema(Constructor)\r\n{\r\n // The only route by which class metadata is mutated, and therefore the only\r\n // place exported schemas can go stale. A single global counter rather than\r\n // per-class invalidation because a base class change invalidates every\r\n // subclass, and lineage is not tracked in reverse.\r\n SCHEMA_GENERATION += 1;\r\n\r\n let schema = CLASS_SCHEMA.get(Constructor);\r\n if (!schema)\r\n {\r\n schema = {\r\n className: null,\r\n family: null,\r\n purpose: null,\r\n sourceClass: null,\r\n carbon: null,\r\n modelledOn: null,\r\n aliases: null,\r\n fields: [],\r\n fieldsByName: new Map(),\r\n hiddenInherited: new Set(),\r\n methods: [],\r\n methodsByName: new Map()\r\n };\r\n CLASS_SCHEMA.set(Constructor, schema);\r\n }\r\n return schema;\r\n}\r\n\r\nfunction normalizeHiddenInheritedFields(fieldNames)\r\n{\r\n if (!Array.isArray(fieldNames) || !fieldNames.length)\r\n {\r\n throw new TypeError(\"CjsSchema.hideInherited requires a non-empty array of field names.\");\r\n }\r\n\r\n const normalized = fieldNames.map((fieldName, index) =>\r\n {\r\n if (typeof fieldName !== \"string\" || !fieldName.trim())\r\n {\r\n throw new TypeError(`CjsSchema.hideInherited fieldNames[${index}] must be a non-empty string.`);\r\n }\r\n return fieldName.trim();\r\n });\r\n\r\n return [...new Set(normalized)];\r\n}\r\n\r\nfunction recordStage3FieldMetadata(context, namespace, value)\r\n{\r\n const metadata = context?.metadata;\r\n if (!metadata || typeof metadata !== \"object\") return;\r\n\r\n let fields;\r\n if (Object.prototype.hasOwnProperty.call(metadata, STAGE3_FIELD_METADATA))\r\n {\r\n fields = metadata[STAGE3_FIELD_METADATA];\r\n }\r\n else\r\n {\r\n fields = [];\r\n Object.defineProperty(metadata, STAGE3_FIELD_METADATA, {\r\n configurable: false,\r\n enumerable: false,\r\n value: fields,\r\n writable: false\r\n });\r\n }\r\n\r\n fields.push({\r\n name: context.name,\r\n namespace,\r\n value\r\n });\r\n}\r\n\r\nfunction registerStage3FieldMetadata(Constructor, metadata)\r\n{\r\n if (!metadata || typeof metadata !== \"object\") return;\r\n if (!Object.prototype.hasOwnProperty.call(metadata, STAGE3_FIELD_METADATA)) return;\r\n\r\n let declarations = FIELD_DECLARATION_METADATA.get(Constructor);\r\n if (!declarations)\r\n {\r\n declarations = new Map();\r\n FIELD_DECLARATION_METADATA.set(Constructor, declarations);\r\n }\r\n for (const field of metadata[STAGE3_FIELD_METADATA])\r\n {\r\n declarations.set(field.name, metadata);\r\n defineFieldMetadata(Constructor, field.name, field.namespace, field.value);\r\n }\r\n}\r\n\r\nfunction normalizeClassDefinition(Constructor, definition)\r\n{\r\n if (typeof definition === \"string\")\r\n {\r\n definition = { className: definition };\r\n }\r\n\r\n const result = { ...(definition || {}) };\r\n if (typeof result.className !== \"string\" || !result.className.trim())\r\n {\r\n throw new TypeError(\"CjsSchema.define requires an explicit non-empty className.\");\r\n }\r\n result.className = result.className.trim();\r\n if (result.purpose !== undefined && result.purpose !== null)\r\n {\r\n if (typeof result.purpose !== \"string\" || !result.purpose.trim())\r\n {\r\n throw new TypeError(\"CjsSchema.define purpose must be a non-empty string when provided.\");\r\n }\r\n result.purpose = result.purpose.trim().replace(/\\s+/g, \" \");\r\n if (result.purpose.includes(\"*/\"))\r\n {\r\n throw new TypeError(\"CjsSchema.define purpose cannot close a JSDoc comment.\");\r\n }\r\n }\r\n // REPLICATES AND MODELLED ON ARE DIFFERENT CLAIMS, and only the first can\r\n // be checked. `carbon` names a class this one REPLICATES: same contract,\r\n // method for method, so a parity check may hold us to its whole surface.\r\n // `modelledOn` names a class this one TOOK ITS SHAPE FROM and does not\r\n // replicate - `CjsWebgpuWorkQueue` is modelled on `MetalWorkQueue`, whose\r\n // 113 methods are the entire command recorder against our 27, because the\r\n // rest of that surface lives on the pipeline, the resource set and the\r\n // render context here. Declaring the second as the first would report 101\r\n // absences as debt; declaring nothing leaves the class unchecked and its\r\n // provenance unrecorded.\r\n //\r\n // NEITHER IS `sourceClass`, which is SERIALIZATION identity - the name a\r\n // document calls this class on the wire (`CjsLightData`'s `\"LightData\"`).\r\n // A donor is not a wire name: writing `MetalWorkQueue` there would tell\r\n // dehydration the class serializes under that name.\r\n for (const [ key, what ] of [ [ \"carbon\", \"replicates\" ], [ \"modelledOn\", \"is modelled on\" ] ])\r\n {\r\n if (result[key] === undefined || result[key] === null) continue;\r\n\r\n if (typeof result[key] !== \"string\" || !result[key].trim())\r\n {\r\n throw new TypeError(`CjsSchema.define ${key} must be a non-empty Carbon class name when provided.`);\r\n }\r\n\r\n result[key] = result[key].trim();\r\n void what;\r\n }\r\n\r\n if (result.carbon && result.modelledOn)\r\n {\r\n throw new TypeError(\r\n \"CjsSchema.define takes carbon or modelledOn, not both: a class either replicates its \"\r\n + \"donor's contract or is modelled on it, and the two are different claims.\"\r\n );\r\n }\r\n\r\n if (!result.sourceClass && result.className) result.sourceClass = result.className;\r\n const aliases = [\r\n ...(result.aliases === undefined ? [] : Array.isArray(result.aliases) ? result.aliases : [result.aliases]),\r\n ...(result.alias === undefined ? [] : Array.isArray(result.alias) ? result.alias : [result.alias])\r\n ].filter(alias => typeof alias === \"string\" && alias.trim()).map(alias => alias.trim())\r\n .filter(alias => alias !== result.className);\r\n result.aliases = aliases.length ? [...new Set(aliases)] : null;\r\n result.fields = normalizeManualMembers(result.fields, \"fields\");\r\n result.methods = normalizeManualMembers(result.methods, \"methods\");\r\n delete result.alias;\r\n return result;\r\n}\r\n\r\n/**\r\n * Normalize a definition's `fields`/`methods` into internal member records.\r\n *\r\n * Two spellings are accepted. A name-keyed object is the one to write:\r\n * declaration order is key order, which is what drives GetValues() export\r\n * order, and the name appears once rather than as a property of its own record.\r\n * The array of `{name, ...}` records predates it and still parses, because it\r\n * is what the internal schema stores.\r\n *\r\n * @param {object|Array<object>|null} members Declared members.\r\n * @param {string} memberType Either \"fields\" or \"methods\", for messages.\r\n * @returns {Array<object>} Internal member records.\r\n */\r\nfunction normalizeManualMembers(members, memberType)\r\n{\r\n if (members === undefined || members === null) return [];\r\n\r\n if (Array.isArray(members))\r\n {\r\n return members.map((member, index) =>\r\n {\r\n if (!isPlainObject(member) || typeof member.name !== \"string\" || !member.name.trim())\r\n {\r\n throw new TypeError(`CjsSchema.define ${memberType}[${index}] requires a non-empty name.`);\r\n }\r\n const { name, ...namespaces } = member;\r\n return normalizeManualMember(name.trim(), namespaces, memberType);\r\n });\r\n }\r\n\r\n if (!isPlainObject(members))\r\n {\r\n throw new TypeError(\r\n `CjsSchema.define ${memberType} must be a name-keyed object or an array of named records.`\r\n );\r\n }\r\n\r\n return Object.entries(members).map(([ name, definition ]) =>\r\n {\r\n if (!name.trim())\r\n {\r\n throw new TypeError(`CjsSchema.define ${memberType} requires a non-empty name.`);\r\n }\r\n return normalizeManualMember(name.trim(), definition, memberType);\r\n });\r\n}\r\n\r\n/**\r\n * Collapse one member's declaration into a namespace map.\r\n *\r\n * A declaration is a decorator, a namespace object, or an array mixing both.\r\n * Decorators are accepted as data so the object form reuses the vocabulary the\r\n * decorators already define rather than restating it: `impl.adapted` written\r\n * twice in two spellings is two things that can disagree.\r\n *\r\n * @param {string} name Member name.\r\n * @param {*} definition Declared metadata.\r\n * @param {string} memberType Either \"fields\" or \"methods\", for messages.\r\n * @returns {object} Internal member record.\r\n */\r\nfunction normalizeManualMember(name, definition, memberType)\r\n{\r\n const member = { name };\r\n\r\n for (const entry of Array.isArray(definition) ? definition : [ definition ])\r\n {\r\n if (entry === undefined || entry === null) continue;\r\n\r\n const decorator = getDecoratorMetadata(entry);\r\n if (decorator)\r\n {\r\n member[decorator.namespace] = mergeNamespace(member[decorator.namespace], decorator.value);\r\n continue;\r\n }\r\n\r\n if (!isPlainObject(entry))\r\n {\r\n throw new TypeError(\r\n `CjsSchema.define ${memberType} \"${name}\" accepts schema decorators, ` +\r\n \"namespace objects, or an array of them.\"\r\n );\r\n }\r\n\r\n for (const [ namespace, value ] of Object.entries(entry))\r\n {\r\n member[namespace] = mergeNamespace(member[namespace], value);\r\n }\r\n }\r\n\r\n return member;\r\n}\r\n\r\nfunction registerClassMetadata(Constructor, schema)\r\n{\r\n if (!Constructor || !schema?.className) return;\r\n\r\n CjsSchema.SetConstructor(schema.className, Constructor);\r\n\r\n for (const alias of schema.aliases || [])\r\n {\r\n CjsSchema.SetConstructor(alias, Constructor);\r\n }\r\n}\r\n\r\nfunction defineEnumMetadata(values, schema)\r\n{\r\n if (!values || typeof values !== \"object\" || !schema?.name) return;\r\n\r\n ENUM_SCHEMA_BY_NAME.set(schema.name, schema);\r\n ENUM_SCHEMA_BY_OBJECT.set(values, schema);\r\n\r\n if (Object.isExtensible(values) && !Object.prototype.hasOwnProperty.call(values, CJS_ENUM_NAME))\r\n {\r\n Object.defineProperty(values, CJS_ENUM_NAME, {\r\n value: schema.name\r\n });\r\n }\r\n}\r\n\r\nfunction normalizeEnumSchema(values, definition)\r\n{\r\n const type = values?.Type || values;\r\n const members = Array.isArray(definition.members)\r\n ? definition.members.map(member => ({ ...member }))\r\n : [];\r\n const result = {\r\n name: definition.name || values?.[CJS_ENUM_NAME] || values?.Source?.name || values?.name || null,\r\n type,\r\n members\r\n };\r\n\r\n if (definition.source) result.source = definition.source;\r\n if (definition.family) result.family = definition.family;\r\n if (definition.line !== undefined && definition.line !== null) result.line = definition.line;\r\n\r\n return result;\r\n}\r\n\r\nfunction normalizeEnumDefinition(values)\r\n{\r\n if (typeof values === \"string\")\r\n {\r\n return { enumType: values };\r\n }\r\n\r\n const type = values?.Type || (isPlainObject(values) ? values : null);\r\n if (type && typeof type === \"object\")\r\n {\r\n const result = {\r\n values: type\r\n };\r\n const enumType = CjsSchema.getEnumName(values);\r\n if (enumType) result.enumType = enumType;\r\n return result;\r\n }\r\n\r\n return { values };\r\n}\r\n\r\nfunction normalizeComponentDefinition(definition)\r\n{\r\n if (!isPlainObject(definition))\r\n {\r\n throw new TypeError(\"CjsSchema.components requires a plain object definition.\");\r\n }\r\n\r\n return Object.fromEntries(Object.entries(definition).map(([swizzle, value]) => [\r\n normalizeSwizzle(swizzle),\r\n normalizeComponentEntry(value)\r\n ]));\r\n}\r\n\r\nfunction normalizeComponentEntry(value)\r\n{\r\n if (typeof value === \"string\") return { name: value };\r\n if (isPlainObject(value)) return cloneSchemaValue(value);\r\n return value;\r\n}\r\n\r\nfunction getComponentValue(value, swizzle)\r\n{\r\n const indices = getComponentIndices(swizzle);\r\n if (indices.length === 1) return value?.[indices[0]];\r\n return indices.map(index => value?.[index]);\r\n}\r\n\r\nfunction setComponentValue(target, swizzle, value)\r\n{\r\n if (!target)\r\n {\r\n throw new TypeError(\"CjsSchema.components.set requires a target vector.\");\r\n }\r\n\r\n const indices = getComponentIndices(swizzle);\r\n if (indices.length === 1)\r\n {\r\n target[indices[0]] = value;\r\n return target;\r\n }\r\n\r\n if (!value || typeof value[Symbol.iterator] !== \"function\")\r\n {\r\n throw new TypeError(`CjsSchema.components.set requires an iterable value for '${swizzle}'.`);\r\n }\r\n\r\n let offset = 0;\r\n for (const item of value)\r\n {\r\n if (offset >= indices.length) break;\r\n target[indices[offset++]] = item;\r\n }\r\n\r\n if (offset !== indices.length)\r\n {\r\n throw new RangeError(`CjsSchema.components.set expected ${indices.length} values for '${swizzle}' but received ${offset}.`);\r\n }\r\n\r\n return target;\r\n}\r\n\r\nfunction getComponentIndices(swizzle)\r\n{\r\n return [...normalizeSwizzle(swizzle)].map(componentIndex);\r\n}\r\n\r\nfunction normalizeSwizzle(swizzle)\r\n{\r\n const text = String(swizzle || \"\").trim().toLowerCase();\r\n if (!text)\r\n {\r\n throw new TypeError(\"Component swizzle cannot be empty.\");\r\n }\r\n\r\n for (const char of text)\r\n {\r\n componentIndex(char);\r\n }\r\n\r\n return text;\r\n}\r\n\r\nfunction componentIndex(char)\r\n{\r\n switch (char)\r\n {\r\n case \"x\":\r\n case \"r\":\r\n case \"0\":\r\n return 0;\r\n case \"y\":\r\n case \"g\":\r\n case \"1\":\r\n return 1;\r\n case \"z\":\r\n case \"b\":\r\n case \"2\":\r\n return 2;\r\n case \"w\":\r\n case \"a\":\r\n case \"3\":\r\n return 3;\r\n default:\r\n throw new RangeError(`Unsupported component '${char}'.`);\r\n }\r\n}\r\n\r\nfunction mergeNamespace(existing, value)\r\n{\r\n if (isPlainObject(existing) && isPlainObject(value)) return { ...existing, ...value };\r\n return value;\r\n}\r\n\r\n// Resolves @schema.enum(\"X\") through the owning class's PascalCase static so\r\n// exported schemas are self-describing: adds the class-scoped identity and a\r\n// reference to the frozen member map when the static resolves.\r\nfunction enrichEnumField(exported, Constructor)\r\n{\r\n const enumType = exported?.enum?.enumType;\r\n if (!enumType) return exported;\r\n const members = Constructor?.[enumType];\r\n if (!members || typeof members !== \"object\") return exported;\r\n\r\n let owner = Constructor;\r\n let current = Constructor;\r\n while (typeof current === \"function\")\r\n {\r\n if (Object.prototype.hasOwnProperty.call(current, enumType))\r\n {\r\n owner = current;\r\n break;\r\n }\r\n current = Object.getPrototypeOf(current);\r\n }\r\n\r\n return {\r\n ...exported,\r\n enum: {\r\n ...exported.enum,\r\n identity: `${CjsSchema.getClassName(owner) || owner.name}.${enumType}`,\r\n members\r\n }\r\n };\r\n}\r\n\r\nfunction exportField(field, namespaces)\r\n{\r\n const result = {\r\n name: field.name\r\n };\r\n\r\n for (const [key, value] of Object.entries(field))\r\n {\r\n if (key === \"name\") continue;\r\n if (namespaces && !namespaces.has(key)) continue;\r\n result[key] = value;\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction normalizeNamespaces(namespaces)\r\n{\r\n if (!namespaces) return null;\r\n return new Set(Array.isArray(namespaces) ? namespaces : [namespaces]);\r\n}\r\n\r\nfunction cloneSchemaValue(value)\r\n{\r\n if (Array.isArray(value)) return value.map(cloneSchemaValue);\r\n if (isPlainObject(value)) return Object.fromEntries(Object.entries(value).map(([key, item]) => [key, cloneSchemaValue(item)]));\r\n return value;\r\n}\r\n\r\nfunction isPlainObject(value)\r\n{\r\n return Boolean(value) && typeof value === \"object\" && Object.getPrototypeOf(value) === Object.prototype;\r\n}\r\n"],"names":["CLASS_SCHEMA","WeakMap","SCHEMA_EXPORTS","DEFAULT_EXPORTS","FIELD_INITIAL_DEFAULTS","FIELD_DECLARATION_METADATA","SCHEMA_GENERATION","CONSTRUCTOR_BY_NAME","Map","ENUM_SCHEMA_BY_NAME","ENUM_SCHEMA_BY_OBJECT","STAGE3_FIELD_METADATA","Symbol","DECORATOR_METADATA","CJS_ENUM_NAME","for","CJS_CLASS_NAME","CJS_MODEL_BRAND","CjsSchema","define","Constructor","definition","defineClassMetadata","normalizeClassDefinition","enum","values","fieldDecorator","normalizeEnumDefinition","defineEnum","defineEnumMetadata","normalizeEnumSchema","decorateField","fieldName","decorators","decorator","prototype","cast","value","Contract","decorateMethod","methodName","defineField","namespace","defineFieldMetadata","defineMethod","defineMethodMetadata","getField","getEffectiveFields","find","field","name","hideInherited","fieldNames","hiddenInheritedFieldsDecorator","normalizeHiddenInheritedFields","isFieldHidden","getHiddenInheritedFieldNames","has","getMethod","schema","get","methodsByName","getClassName","current","local","className","Object","hasOwn","getPrototypeOf","getClassFamily","family","getClassPurpose","purpose","isModelInstance","getClassNames","names","includes","push","isInstanceOf","trim","constructor","SetConstructor","TypeError","set","GetConstructor","registerValuesService","service","getValues","setValues","from","#requireValuesService","method","Error","target","out","options","getValuesFromSchema","setValuesFromSchema","createValuesTransport","GetFields","Export","exportCarbonValue","type","Import","isLiveSchemaInstance","Array","isArray","some","map","item","cloneCarbonValue","normalizeCarbonValue","CoerceInto","incoming","coerceCarbonMathInto","coerceCarbonTypedArrayInto","IsEquivalent","a","b","getEnumName","Source","getEnum","getSchema","namespaces","normalizeNamespaces","buildClassInfo","memo","generation","getDefaults","ConstructorOrName","cloneDefaultValue","getDefaultsTemplate","applyDefaults","isPlainObject","_type","expandDefaultValue","undefined","freeze","array","itemType","kind","boolean","color","classDefinitionDecorator","expression","js","float32","float64","int8","int16","int32","int64","list","mat3","mat4","valueType","model","objectRef","path","quat","rawStruct","string","struct","typedArray","arrayType","uint8","uint16","uint32","uint64","unknown","vec2","vec3","vec4","io","always","notify","owned","ownership","persist","read","write","persistOnly","readwrite","reference","flag","tokens","flat","String","rebuild","compose","composeNotifyDecorator","interface","composeInterfaceDecorator","impl","abstract","composeValuesDecorator","jessica","group","hidden","readOnly","widget","memberDecorator","status","adapted","custom","implemented","noop","notImplemented","notSupported","note","text","reason","carbon","methodDecorator","renamed","originalName","contextual","tiers","normalized","tier","length","base","contextTiers","described","getDecoratorMetadata","describeDecorator","contextualMethodDecorator","targetOrValue","contextOrMethodName","assertContextFirstMethod","components","createComponentsNamespace","captureFieldInitialDefault","initialValue","declarationMetadata","fields","existing","ownDeclaration","replacesInheritedDefault","deepFreezeDefaultValue","snapshotSchemaDefault","err","error","message","delete","resolveDefaultsConstructor","defaults","captured","instance","cause","entry","hasValue","defaultValueForCarbonField","frozen","active","WeakSet","toString","ArrayBuffer","isView","add","fromEntries","entries","key","Set","result","fieldValue","declaredType","defaultValue","index","expandSchemaObject","declaredClass","resolveDeclaredConstructor","mergePlainDefaults","byName","seen","normalizeComponentDefinition","defineProperties","getComponentValue","indices","getComponentIndices","setComponentValue","defineProperty","candidate","schemaFieldDecorator","contextOrFieldName","context","recordStage3FieldMetadata","addInitializer","initializeSchemaField","initializeSchemaFieldValue","metadata","schemaClassDefinitionDecorator","registerStage3FieldMetadata","schemaHiddenInheritedFieldsDecorator","defineHiddenInheritedFields","CONTEXT_FIRST_PARAMETER","fn","source","parameterList","slice","indexOf","test","schemaMethodDecorator","initializeSchemaMethod","static","forMethods","forFields","schemaMemberDecorator","contextOrMemberName","defineMemberMetadata","getOrCreateClassSchema","configurable","sourceClass","modelledOn","aliases","defineManualMemberMetadata","methods","registerClassMetadata","memberType","listKey","mapKey","mergeNamespace","Parent","inheritedFields","hiddenInherited","ordered","getSchemaLineage","mergeMemberMetadata","merged","filter","lineage","reverse","enrichEnumField","exportField","addSchemaBuckets","MANY_KINDS","MODEL_KINDS","children","resources","many","resolveFieldClass","isResource","ref","fieldsByName","hasOwnProperty","call","enumerable","writable","declarations","replace","what","alias","normalizeManualMembers","members","member","normalizeManualMember","isExtensible","Type","line","enumType","swizzle","normalizeSwizzle","normalizeComponentEntry","cloneSchemaValue","iterator","offset","RangeError","componentIndex","toLowerCase","char","exported","owner","identity","Boolean"],"mappings":"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"}
|