@carbonenginejs/runtime-resource 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/NOTICE +5 -3
  2. package/README.md +1 -1
  3. package/dist/CjsResourceSource.js +9 -0
  4. package/dist/CjsResourceSource.js.map +1 -1
  5. package/dist/format/CjsFormat.js +5 -0
  6. package/dist/format/CjsFormat.js.map +1 -1
  7. package/dist/formats/black/core/CjsBlackBinaryReader.js +4 -0
  8. package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -1
  9. package/dist/formats/black/core/CjsBlackPropertyReaders.js +5 -0
  10. package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
  11. package/dist/formats/black/core/CjsBlackSchemaRegistry.js +4 -0
  12. package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
  13. package/dist/formats/black/core/black-schema-v1-2026-07-23.json.js +4 -0
  14. package/dist/formats/black/core/black-schema-v1-2026-07-23.json.js.map +1 -0
  15. package/dist/formats/black/core/blackDefinitions.js +1 -1
  16. package/dist/formats/black/core/blackDefinitions.js.map +1 -1
  17. package/dist/formats/black/core/blackSchema.js +1 -1
  18. package/dist/formats/bnk/core/musicNodes.js +4 -0
  19. package/dist/formats/bnk/core/musicNodes.js.map +1 -1
  20. package/dist/formats/cmf/core/binary.js +5 -0
  21. package/dist/formats/cmf/core/binary.js.map +1 -1
  22. package/dist/formats/dds/CjsDdsFormat.js +7 -0
  23. package/dist/formats/dds/CjsDdsFormat.js.map +1 -1
  24. package/dist/formats/dds/core/bc7.js +7 -2
  25. package/dist/formats/dds/core/bc7.js.map +1 -1
  26. package/dist/formats/fbx/core/helpers.js +10 -0
  27. package/dist/formats/fbx/core/helpers.js.map +1 -1
  28. package/dist/formats/flac/CjsFlacFormat.js +6 -0
  29. package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
  30. package/dist/formats/gif/CjsGifFormat.js +5 -0
  31. package/dist/formats/gif/CjsGifFormat.js.map +1 -1
  32. package/dist/formats/jpeg/CjsJpegFormat.js +6 -0
  33. package/dist/formats/jpeg/CjsJpegFormat.js.map +1 -1
  34. package/dist/formats/jpeg/core/jpeg.js +10 -0
  35. package/dist/formats/jpeg/core/jpeg.js.map +1 -1
  36. package/dist/formats/mp3/CjsMp3Format.js +5 -0
  37. package/dist/formats/mp3/CjsMp3Format.js.map +1 -1
  38. package/dist/formats/mp4/CjsMp4Format.js +6 -0
  39. package/dist/formats/mp4/CjsMp4Format.js.map +1 -1
  40. package/dist/formats/ogg/CjsOggFormat.js +6 -0
  41. package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
  42. package/dist/formats/ogg/core/vorbis.js +5 -0
  43. package/dist/formats/ogg/core/vorbis.js.map +1 -1
  44. package/dist/formats/png/CjsPngFormat.js +6 -0
  45. package/dist/formats/png/CjsPngFormat.js.map +1 -1
  46. package/dist/formats/red/core/blackDefinitions.js +1 -1
  47. package/dist/formats/stl/core/stl.js +5 -0
  48. package/dist/formats/stl/core/stl.js.map +1 -1
  49. package/dist/formats/tga/CjsTgaFormat.js +5 -0
  50. package/dist/formats/tga/CjsTgaFormat.js.map +1 -1
  51. package/dist/formats/wav/CjsWavFormat.js +6 -0
  52. package/dist/formats/wav/CjsWavFormat.js.map +1 -1
  53. package/dist/formats/webm/CjsWebmFormat.js +6 -0
  54. package/dist/formats/webm/CjsWebmFormat.js.map +1 -1
  55. package/dist/formats/webp/CjsWebpFormat.js +5 -0
  56. package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
  57. package/dist/formats/wem/CjsWemFormat.js +3 -2
  58. package/dist/formats/wem/CjsWemFormat.js.map +1 -1
  59. package/dist/formats/yaml/CjsYamlFormat.js +6 -0
  60. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
  61. package/dist/formats/yaml/core/CjsYamlReader.js +6 -0
  62. package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
  63. package/docs/README.md +4 -0
  64. package/docs/formats/README.md +7 -6
  65. package/docs/formats/gr2.md +161 -0
  66. package/docs/reference/classes/README.md +33 -0
  67. package/docs/reference/classes/core.md +106 -0
  68. package/docs/reference/classes/dropped.md +46 -0
  69. package/docs/reference/classes/formats.md +522 -0
  70. package/docs/reference/classes/resources.md +346 -0
  71. package/docs/reference/classes/texture.md +26 -0
  72. package/package.json +1 -1
  73. package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js +0 -4
  74. package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js.map +0 -1
package/NOTICE CHANGED
@@ -24,6 +24,8 @@ copied from `format-carbon` revision
24
24
  purpose are recorded in `docs/formats/provenance.md`; no CarbonEngine source file or
25
25
  game asset is embedded in that generated definition snapshot.
26
26
 
27
- The EUPL-1.2 `format-gr2` implementation is deliberately not included. GR2
28
- ownership migration remains deferred until its EUPL-derived BitKnit boundary
29
- is replaced or an explicit distribution-license decision is made.
27
+ The GR2/GSF implementation is included under `formats/gr2`, migrated from
28
+ `format-gr2` after its former EUPL-derived BitKnit2 decoder was replaced by a
29
+ validated clean-room implementation and the package was relicensed MIT. Its
30
+ retained license, provenance, and third-party notices live under
31
+ `format-notices/gr2/` and `docs/formats/provenance.md`.
package/README.md CHANGED
@@ -57,7 +57,7 @@ matches between authoring source and built output. `npm test` additionally
57
57
  runs the complete GPU-free unit suite; it requires no private assets,
58
58
  credentials, network access, browser, or GPU after dependencies are installed.
59
59
 
60
- ## License and provenance
60
+ ## License
61
61
 
62
62
  MIT. See [LICENSE](LICENSE) and [NOTICE](NOTICE). CarbonEngine and Fenris
63
63
  Creations (CCP Games) are named for interoperability and provenance context;
@@ -1,5 +1,9 @@
1
1
  import { normalizeResourcePath } from './resourcePath.js';
2
2
 
3
+ /**
4
+ * In-memory resource source that maps normalized resource paths to preset
5
+ * values and serves them to reads without any I/O.
6
+ */
3
7
  class CjsMemoryResourceSource {
4
8
  #records = new Map();
5
9
  constructor(records = null) {
@@ -29,6 +33,11 @@ class CjsMemoryResourceSource {
29
33
  return this.#records.get(key);
30
34
  }
31
35
  }
36
+
37
+ /**
38
+ * Resource source that resolves a normalized path against an optional base
39
+ * URL and reads response bytes through an injected fetch implementation.
40
+ */
32
41
  class CjsFetchResourceSource {
33
42
  constructor(options = {}) {
34
43
  this.baseUrl = options.baseUrl || "";
@@ -1 +1 @@
1
- {"version":3,"file":"CjsResourceSource.js","sources":["../../src/CjsResourceSource.js"],"sourcesContent":["import { normalizeResourcePath } from \"./resourcePath.js\";\n\nexport class CjsMemoryResourceSource\n{\n #records = new Map();\n\n constructor(records = null) {\n if (records) this.SetRecords(records);\n }\n\n Set(path, value) {\n this.#records.set(normalizeResourcePath(path), value);\n return this;\n }\n\n SetRecords(records) {\n for (const [path, value] of Object.entries(records)) {\n this.Set(path, value);\n }\n return this;\n }\n\n Has(path) {\n return this.#records.has(normalizeResourcePath(path));\n }\n\n async Read(path) {\n const key = normalizeResourcePath(path);\n if (!this.#records.has(key)) {\n const error = new Error(`Resource not found: ${key}`);\n error.code = \"CJS_RESOURCE_NOT_FOUND\";\n error.path = key;\n throw error;\n }\n return this.#records.get(key);\n }\n}\n\nexport class CjsFetchResourceSource\n{\n constructor(options = {}) {\n this.baseUrl = options.baseUrl || \"\";\n this.fetch = options.fetch || globalThis.fetch;\n }\n\n async Read(path, options = {}) {\n if (typeof this.fetch !== \"function\") {\n throw new TypeError(\"CjsFetchResourceSource requires a fetch implementation.\");\n }\n\n const response = await this.fetch(this.ResolveUrl(path), options);\n if (!response.ok) {\n const error = new Error(`Resource fetch failed: ${response.status} ${response.statusText}`);\n error.code = \"CJS_RESOURCE_FETCH_FAILED\";\n error.path = normalizeResourcePath(path);\n error.status = response.status;\n throw error;\n }\n\n return response.arrayBuffer();\n }\n\n ResolveUrl(path) {\n const normalized = normalizeResourcePath(path);\n if (!this.baseUrl) return normalized;\n return new URL(normalized, this.baseUrl).toString();\n }\n}\n"],"names":["CjsMemoryResourceSource","Map","constructor","records","SetRecords","Set","path","value","set","normalizeResourcePath","Object","entries","Has","has","Read","key","error","Error","code","get","CjsFetchResourceSource","options","baseUrl","fetch","globalThis","TypeError","response","ResolveUrl","ok","status","statusText","arrayBuffer","normalized","URL","toString"],"mappings":"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"}
1
+ {"version":3,"file":"CjsResourceSource.js","sources":["../../src/CjsResourceSource.js"],"sourcesContent":["import { normalizeResourcePath } from \"./resourcePath.js\";\n\n/**\n * In-memory resource source that maps normalized resource paths to preset\n * values and serves them to reads without any I/O.\n */\nexport class CjsMemoryResourceSource\n{\n #records = new Map();\n\n constructor(records = null) {\n if (records) this.SetRecords(records);\n }\n\n Set(path, value) {\n this.#records.set(normalizeResourcePath(path), value);\n return this;\n }\n\n SetRecords(records) {\n for (const [path, value] of Object.entries(records)) {\n this.Set(path, value);\n }\n return this;\n }\n\n Has(path) {\n return this.#records.has(normalizeResourcePath(path));\n }\n\n async Read(path) {\n const key = normalizeResourcePath(path);\n if (!this.#records.has(key)) {\n const error = new Error(`Resource not found: ${key}`);\n error.code = \"CJS_RESOURCE_NOT_FOUND\";\n error.path = key;\n throw error;\n }\n return this.#records.get(key);\n }\n}\n\n/**\n * Resource source that resolves a normalized path against an optional base\n * URL and reads response bytes through an injected fetch implementation.\n */\nexport class CjsFetchResourceSource\n{\n constructor(options = {}) {\n this.baseUrl = options.baseUrl || \"\";\n this.fetch = options.fetch || globalThis.fetch;\n }\n\n async Read(path, options = {}) {\n if (typeof this.fetch !== \"function\") {\n throw new TypeError(\"CjsFetchResourceSource requires a fetch implementation.\");\n }\n\n const response = await this.fetch(this.ResolveUrl(path), options);\n if (!response.ok) {\n const error = new Error(`Resource fetch failed: ${response.status} ${response.statusText}`);\n error.code = \"CJS_RESOURCE_FETCH_FAILED\";\n error.path = normalizeResourcePath(path);\n error.status = response.status;\n throw error;\n }\n\n return response.arrayBuffer();\n }\n\n ResolveUrl(path) {\n const normalized = normalizeResourcePath(path);\n if (!this.baseUrl) return normalized;\n return new URL(normalized, this.baseUrl).toString();\n }\n}\n"],"names":["CjsMemoryResourceSource","Map","constructor","records","SetRecords","Set","path","value","set","normalizeResourcePath","Object","entries","Has","has","Read","key","error","Error","code","get","CjsFetchResourceSource","options","baseUrl","fetch","globalThis","TypeError","response","ResolveUrl","ok","status","statusText","arrayBuffer","normalized","URL","toString"],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  import { MediaType, PayloadType } from '@carbonenginejs/runtime-const/media';
2
2
  import { CjsResourceProbe as _CjsResourceProbe } from './CjsResourceProbe.js';
3
3
 
4
+ /**
5
+ * Base class for format readers that defines the static
6
+ * `read`/`readAsync`/`isSupported`/`resolveType` contract and instance
7
+ * option handling that concrete format packages implement.
8
+ */
4
9
  class CjsFormat {
5
10
  options = {};
6
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"CjsFormat.js","sources":["../../../src/format/CjsFormat.js"],"sourcesContent":["import { MediaType, PayloadType } from \"@carbonenginejs/runtime-const/media\";\nimport { CjsResourceProbe } from \"./CjsResourceProbe.js\";\n\nexport class CjsFormat\n{\n options = {};\n\n /**\n * Convenience factory for simple format helpers.\n * Keep this lightweight so format classes can stay pure-reader implementations.\n *\n * @param {*} input\n * @param {object} options\n * @returns {Promise<*>|*}\n */\n static read(input, options = null) {\n const reader = new this(options || {});\n return reader.Read(input, options || {});\n }\n\n /**\n * Async convenience factory for format readers.\n *\n * @param {*} input\n * @param {object} options\n * @returns {Promise<*>}\n */\n static async readAsync(input, options = null) {\n const reader = new this(options || {});\n return reader.ReadAsync(input, options || {});\n }\n\n /**\n * Canonical support probe entrypoint.\n * Returns a probe report including compressed/raw capability variants when implemented.\n *\n * @param {*} input\n * @param {object} options\n * @returns {CjsResourceProbe}\n */\n static isSupported(input, options = null) {\n const source = typeof input === \"string\" ? \"path\" : \"buffer\";\n const formatName = this.name\n ? this.name.replace(/^Cjs/u, \"\").replace(/Format$/u, \"\").toLowerCase()\n : \"format\";\n return CjsResourceProbe.createUnsupported(formatName, \"No probe implementation.\", { source, ...options });\n }\n\n /**\n * Alias for canonical naming.\n *\n * @param {*} input\n * @param {object} options\n * @returns {CjsResourceProbe}\n */\n static inspect(input, options = null) {\n return this.isSupported(input, options);\n }\n\n /**\n * Content-verified type/route resolution (kb §5, optional per format).\n *\n * Where inspect()/isSupported() report what the container CLAIMS,\n * resolveType() performs one bounded asynchronous content check (magic, a\n * first frame/block, a setup header) and reports what the reader has\n * evidence it can actually decode. Overrides return a CjsResourceProbe\n * with `verified: true` and declared/resolved/mismatch evidence in\n * `metadata`; `preferred` names the resolved decode route. A caller-forced\n * emit always wins over a resolution, and this base implementation - the\n * zero-extra-work path for formats without an override - delegates to\n * isSupported() with `verified` false so an unverified result never\n * changes a route.\n *\n * @param {*} input Bytes (or path where the format supports it).\n * @param {object|null} options Format options.\n * @returns {Promise<CjsResourceProbe>} Probe report; content-verified only when overridden.\n */\n static async resolveType(input, options = null) {\n const report = CjsResourceProbe.from(this.isSupported(input, options));\n report.verified = false;\n return report;\n }\n\n constructor(options = null) {\n this.options = { ...(options || {}) };\n }\n\n SetValues(values = null) {\n if (!values || typeof values !== \"object\") {\n return this;\n }\n if (Object.prototype.hasOwnProperty.call(values, \"options\")) {\n this.options = { ...(values.options || {}) };\n } else {\n this.options = { ...this.options, ...values };\n }\n return this;\n }\n\n GetValues() {\n return { options: { ...this.options } };\n }\n\n Initialize(values = null) {\n return this.SetValues(values || {});\n }\n\n /**\n * Primary instance read entrypoint for synchronous readers.\n * Implementations may override with async handling in readAsync only if needed.\n */\n Read(input, options = null) {\n throw new Error(`${this.constructor.name}.Read must be implemented by a format package.`);\n }\n\n /**\n * Primary async read entrypoint for asynchronous readers.\n * Defaults to sync Read for compatibility.\n */\n async ReadAsync(input, options = null) {\n return this.Read(input, options);\n }\n\n /**\n * Canonical package-family group names - the shared vocabulary object from\n * runtime-const (kb: runtime-const owns cross-package media vocabulary).\n * Same object identity as `@carbonenginejs/runtime-const/media` MediaType,\n * so tokens can never drift between packages.\n */\n static Type = MediaType;\n\n /**\n * Canonical media-type groups used by format registration - the shared\n * runtime-const MediaType object (see Type above).\n */\n static MediaType = MediaType;\n\n /**\n * Canonical output-type tokens used by format emit contracts. Shared\n * payload ROLES come from runtime-const PayloadType; the remaining tokens\n * (cmf/gr2/json/pcm/rgba/shared/objJson) are format-emit names owned by\n * their formats and enumerated here for discoverability only.\n */\n static OutputType = Object.freeze({\n AUDIO: PayloadType.AUDIO,\n CMF: \"cmf\",\n GR2: \"gr2\",\n IMAGE: PayloadType.IMAGE,\n JSON: \"json\",\n PCM: \"pcm\",\n RAW: PayloadType.RAW,\n RGBA: \"rgba\",\n SCHEMA: PayloadType.SCHEMA,\n SHADER: PayloadType.SHADER,\n SHARED: \"shared\",\n TEXTURE: PayloadType.TEXTURE,\n VIDEO: PayloadType.VIDEO,\n OBJ_JSON: \"objJson\"\n });\n\n static type = Object.freeze([]);\n static mediaTypes = Object.freeze([]);\n static inputTypes = Object.freeze([]);\n static outputTypes = Object.freeze([]);\n static debugOutputTypes = Object.freeze([\"json\", \"raw\"]);\n}\n\n/**\n * Shared utility for asserting required format metadata exists.\n */\nexport function ValidateFormatContract(Constructor) {\n if (!Constructor) {\n throw new TypeError(\"ValidateFormatContract requires a format class.\");\n }\n const hasOutput = Array.isArray(Constructor.outputTypes) && Constructor.outputTypes.length > 0;\n const hasInput = Array.isArray(Constructor.inputTypes) && Constructor.inputTypes.length > 0;\n const hasMedia = Array.isArray(Constructor.mediaTypes) && Constructor.mediaTypes.length > 0;\n const hasType = Array.isArray(Constructor.type) && Constructor.type.length > 0;\n const hasDebug = Array.isArray(Constructor.debugOutputTypes) && Constructor.debugOutputTypes.length > 0;\n if (!hasType || !hasMedia || !hasInput || !hasOutput || !hasDebug) {\n throw new TypeError(`Format contract missing metadata: type:${hasType} mediaTypes:${hasMedia} inputTypes:${hasInput} outputTypes:${hasOutput} debugOutputTypes:${hasDebug}`);\n }\n}\n"],"names":["CjsFormat","options","read","input","reader","Read","readAsync","ReadAsync","isSupported","source","formatName","name","replace","toLowerCase","CjsResourceProbe","createUnsupported","inspect","resolveType","report","from","verified","constructor","SetValues","values","Object","prototype","hasOwnProperty","call","GetValues","Initialize","Error","Type","MediaType","OutputType","freeze","AUDIO","PayloadType","CMF","GR2","IMAGE","JSON","PCM","RAW","RGBA","SCHEMA","SHADER","SHARED","TEXTURE","VIDEO","OBJ_JSON","type","mediaTypes","inputTypes","outputTypes","debugOutputTypes","ValidateFormatContract","Constructor","TypeError","hasOutput","Array","isArray","length","hasInput","hasMedia","hasType","hasDebug"],"mappings":"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"}
1
+ {"version":3,"file":"CjsFormat.js","sources":["../../../src/format/CjsFormat.js"],"sourcesContent":["import { MediaType, PayloadType } from \"@carbonenginejs/runtime-const/media\";\nimport { CjsResourceProbe } from \"./CjsResourceProbe.js\";\n\n/**\n * Base class for format readers that defines the static\n * `read`/`readAsync`/`isSupported`/`resolveType` contract and instance\n * option handling that concrete format packages implement.\n */\nexport class CjsFormat\n{\n options = {};\n\n /**\n * Convenience factory for simple format helpers.\n * Keep this lightweight so format classes can stay pure-reader implementations.\n *\n * @param {*} input\n * @param {object} options\n * @returns {Promise<*>|*}\n */\n static read(input, options = null) {\n const reader = new this(options || {});\n return reader.Read(input, options || {});\n }\n\n /**\n * Async convenience factory for format readers.\n *\n * @param {*} input\n * @param {object} options\n * @returns {Promise<*>}\n */\n static async readAsync(input, options = null) {\n const reader = new this(options || {});\n return reader.ReadAsync(input, options || {});\n }\n\n /**\n * Canonical support probe entrypoint.\n * Returns a probe report including compressed/raw capability variants when implemented.\n *\n * @param {*} input\n * @param {object} options\n * @returns {CjsResourceProbe}\n */\n static isSupported(input, options = null) {\n const source = typeof input === \"string\" ? \"path\" : \"buffer\";\n const formatName = this.name\n ? this.name.replace(/^Cjs/u, \"\").replace(/Format$/u, \"\").toLowerCase()\n : \"format\";\n return CjsResourceProbe.createUnsupported(formatName, \"No probe implementation.\", { source, ...options });\n }\n\n /**\n * Alias for canonical naming.\n *\n * @param {*} input\n * @param {object} options\n * @returns {CjsResourceProbe}\n */\n static inspect(input, options = null) {\n return this.isSupported(input, options);\n }\n\n /**\n * Content-verified type/route resolution (kb §5, optional per format).\n *\n * Where inspect()/isSupported() report what the container CLAIMS,\n * resolveType() performs one bounded asynchronous content check (magic, a\n * first frame/block, a setup header) and reports what the reader has\n * evidence it can actually decode. Overrides return a CjsResourceProbe\n * with `verified: true` and declared/resolved/mismatch evidence in\n * `metadata`; `preferred` names the resolved decode route. A caller-forced\n * emit always wins over a resolution, and this base implementation - the\n * zero-extra-work path for formats without an override - delegates to\n * isSupported() with `verified` false so an unverified result never\n * changes a route.\n *\n * @param {*} input Bytes (or path where the format supports it).\n * @param {object|null} options Format options.\n * @returns {Promise<CjsResourceProbe>} Probe report; content-verified only when overridden.\n */\n static async resolveType(input, options = null) {\n const report = CjsResourceProbe.from(this.isSupported(input, options));\n report.verified = false;\n return report;\n }\n\n constructor(options = null) {\n this.options = { ...(options || {}) };\n }\n\n SetValues(values = null) {\n if (!values || typeof values !== \"object\") {\n return this;\n }\n if (Object.prototype.hasOwnProperty.call(values, \"options\")) {\n this.options = { ...(values.options || {}) };\n } else {\n this.options = { ...this.options, ...values };\n }\n return this;\n }\n\n GetValues() {\n return { options: { ...this.options } };\n }\n\n Initialize(values = null) {\n return this.SetValues(values || {});\n }\n\n /**\n * Primary instance read entrypoint for synchronous readers.\n * Implementations may override with async handling in readAsync only if needed.\n */\n Read(input, options = null) {\n throw new Error(`${this.constructor.name}.Read must be implemented by a format package.`);\n }\n\n /**\n * Primary async read entrypoint for asynchronous readers.\n * Defaults to sync Read for compatibility.\n */\n async ReadAsync(input, options = null) {\n return this.Read(input, options);\n }\n\n /**\n * Canonical package-family group names - the shared vocabulary object from\n * runtime-const (kb: runtime-const owns cross-package media vocabulary).\n * Same object identity as `@carbonenginejs/runtime-const/media` MediaType,\n * so tokens can never drift between packages.\n */\n static Type = MediaType;\n\n /**\n * Canonical media-type groups used by format registration - the shared\n * runtime-const MediaType object (see Type above).\n */\n static MediaType = MediaType;\n\n /**\n * Canonical output-type tokens used by format emit contracts. Shared\n * payload ROLES come from runtime-const PayloadType; the remaining tokens\n * (cmf/gr2/json/pcm/rgba/shared/objJson) are format-emit names owned by\n * their formats and enumerated here for discoverability only.\n */\n static OutputType = Object.freeze({\n AUDIO: PayloadType.AUDIO,\n CMF: \"cmf\",\n GR2: \"gr2\",\n IMAGE: PayloadType.IMAGE,\n JSON: \"json\",\n PCM: \"pcm\",\n RAW: PayloadType.RAW,\n RGBA: \"rgba\",\n SCHEMA: PayloadType.SCHEMA,\n SHADER: PayloadType.SHADER,\n SHARED: \"shared\",\n TEXTURE: PayloadType.TEXTURE,\n VIDEO: PayloadType.VIDEO,\n OBJ_JSON: \"objJson\"\n });\n\n static type = Object.freeze([]);\n static mediaTypes = Object.freeze([]);\n static inputTypes = Object.freeze([]);\n static outputTypes = Object.freeze([]);\n static debugOutputTypes = Object.freeze([\"json\", \"raw\"]);\n}\n\n/**\n * Shared utility for asserting required format metadata exists.\n */\nexport function ValidateFormatContract(Constructor) {\n if (!Constructor) {\n throw new TypeError(\"ValidateFormatContract requires a format class.\");\n }\n const hasOutput = Array.isArray(Constructor.outputTypes) && Constructor.outputTypes.length > 0;\n const hasInput = Array.isArray(Constructor.inputTypes) && Constructor.inputTypes.length > 0;\n const hasMedia = Array.isArray(Constructor.mediaTypes) && Constructor.mediaTypes.length > 0;\n const hasType = Array.isArray(Constructor.type) && Constructor.type.length > 0;\n const hasDebug = Array.isArray(Constructor.debugOutputTypes) && Constructor.debugOutputTypes.length > 0;\n if (!hasType || !hasMedia || !hasInput || !hasOutput || !hasDebug) {\n throw new TypeError(`Format contract missing metadata: type:${hasType} mediaTypes:${hasMedia} inputTypes:${hasInput} outputTypes:${hasOutput} debugOutputTypes:${hasDebug}`);\n }\n}\n"],"names":["CjsFormat","options","read","input","reader","Read","readAsync","ReadAsync","isSupported","source","formatName","name","replace","toLowerCase","CjsResourceProbe","createUnsupported","inspect","resolveType","report","from","verified","constructor","SetValues","values","Object","prototype","hasOwnProperty","call","GetValues","Initialize","Error","Type","MediaType","OutputType","freeze","AUDIO","PayloadType","CMF","GR2","IMAGE","JSON","PCM","RAW","RGBA","SCHEMA","SHADER","SHARED","TEXTURE","VIDEO","OBJ_JSON","type","mediaTypes","inputTypes","outputTypes","debugOutputTypes","ValidateFormatContract","Constructor","TypeError","hasOutput","Array","isArray","length","hasInput","hasMedia","hasType","hasDebug"],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Bounds-aware `DataView` cursor that provides the primitive reads and
3
+ * end-of-stream checks the Black transport decodes with.
4
+ */
1
5
  class CjsBlackBinaryReader {
2
6
  constructor(dataView, context = null) {
3
7
  if (!(dataView instanceof DataView)) {
@@ -1 +1 @@
1
- {"version":3,"file":"CjsBlackBinaryReader.js","sources":["../../../../../src/formats/black/core/CjsBlackBinaryReader.js"],"sourcesContent":["export class CjsBlackBinaryReader\n{\n constructor(dataView, context = null)\n {\n if (!(dataView instanceof DataView))\n {\n throw new TypeError(\"CjsBlackBinaryReader expected a DataView\");\n }\n\n this.data = dataView;\n this.context = context;\n this.offset = 0;\n }\n\n get remaining()\n {\n return this.data.byteLength - this.offset;\n }\n\n AtEnd()\n {\n return this.remaining === 0;\n }\n\n ExpectEnd(message = \"Black reader did not reach end\")\n {\n if (!this.AtEnd())\n {\n throw new RangeError(`${message}: ${this.remaining} bytes remain`);\n }\n }\n\n ExpectU32(expected, message)\n {\n const actual = this.ReadU32();\n if (actual !== expected)\n {\n throw new RangeError(`${message}: expected ${expected}, got ${actual}`);\n }\n return actual;\n }\n\n ReadBinaryReader(byteLength)\n {\n return new CjsBlackBinaryReader(this.ReadDataView(byteLength), this.context);\n }\n\n ReadBytes(byteLength)\n {\n const view = this.ReadDataView(byteLength);\n return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);\n }\n\n ReadCString()\n {\n const startOffset = this.offset;\n while (this.ReadU8() !== 0)\n {\n // Scan to null terminator.\n }\n\n const byteOffset = this.data.byteOffset + startOffset;\n const byteLength = this.offset - startOffset - 1;\n const bytes = new Uint8Array(this.data.buffer, byteOffset, byteLength);\n return CjsBlackBinaryReader.utf8Decoder.decode(bytes);\n }\n\n ReadCWString()\n {\n const startOffset = this.offset;\n while (this.ReadU16() !== 0)\n {\n // Scan to UTF-16 null terminator.\n }\n\n const byteOffset = this.data.byteOffset + startOffset;\n const byteLength = this.offset - startOffset - 2;\n const bytes = new Uint8Array(this.data.buffer, byteOffset, byteLength);\n return CjsBlackBinaryReader.utf16Decoder.decode(bytes);\n }\n\n ReadDataView(byteLength)\n {\n if (!Number.isInteger(byteLength) || byteLength < 0)\n {\n throw new RangeError(`Invalid Black byte length: ${String(byteLength)}`);\n }\n\n if (this.remaining < byteLength)\n {\n throw new RangeError(`Black reader needs ${byteLength} bytes but only ${this.remaining} remain`);\n }\n\n const result = new DataView(this.data.buffer, this.data.byteOffset + this.offset, byteLength);\n this.offset += byteLength;\n return result;\n }\n\n ReadF32()\n {\n const value = this.data.getFloat32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n ReadF64()\n {\n const value = this.data.getFloat64(this.offset, true);\n this.offset += 8;\n return value;\n }\n\n ReadI8()\n {\n const value = this.data.getInt8(this.offset);\n this.offset += 1;\n return value;\n }\n\n ReadI16()\n {\n const value = this.data.getInt16(this.offset, true);\n this.offset += 2;\n return value;\n }\n\n ReadI32()\n {\n const value = this.data.getInt32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n ReadI64()\n {\n return this.data.getBigInt64(this.ConsumeOffset(8), true);\n }\n\n ReadStringRef()\n {\n const index = this.ReadU16();\n const strings = this.context?.info?.strings || [];\n if (index >= strings.length)\n {\n throw new RangeError(`Invalid Black string index: ${index}`);\n }\n return strings[index];\n }\n\n ReadWideStringRef()\n {\n const index = this.ReadU16();\n const strings = this.context?.info?.wideStrings || [];\n if (index >= strings.length)\n {\n throw new RangeError(`Invalid Black wide string index: ${index}`);\n }\n return strings[index];\n }\n\n ReadU8()\n {\n const value = this.data.getUint8(this.offset);\n this.offset += 1;\n return value;\n }\n\n ReadU16()\n {\n const value = this.data.getUint16(this.offset, true);\n this.offset += 2;\n return value;\n }\n\n ReadU32()\n {\n const value = this.data.getUint32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n ReadU64()\n {\n return this.data.getBigUint64(this.ConsumeOffset(8), true);\n }\n\n Skip(byteLength)\n {\n this.ReadDataView(byteLength);\n }\n\n ConsumeOffset(byteLength)\n {\n if (this.remaining < byteLength)\n {\n throw new RangeError(`Black reader needs ${byteLength} bytes but only ${this.remaining} remain`);\n }\n\n const offset = this.offset;\n this.offset += byteLength;\n return offset;\n }\n\n static from(input, context = null)\n {\n if (input instanceof CjsBlackBinaryReader) return input;\n if (input instanceof DataView) return new CjsBlackBinaryReader(input, context);\n if (input instanceof ArrayBuffer) return new CjsBlackBinaryReader(new DataView(input), context);\n if (ArrayBuffer.isView(input))\n {\n return new CjsBlackBinaryReader(new DataView(input.buffer, input.byteOffset, input.byteLength), context);\n }\n\n throw new TypeError(\"Black input must be an ArrayBuffer, DataView, or typed array\");\n }\n\n static utf8Decoder = new TextDecoder(\"utf-8\");\n static utf16Decoder = new TextDecoder(\"utf-16le\");\n}\n"],"names":["CjsBlackBinaryReader","constructor","dataView","context","DataView","TypeError","data","offset","remaining","byteLength","AtEnd","ExpectEnd","message","RangeError","ExpectU32","expected","actual","ReadU32","ReadBinaryReader","ReadDataView","ReadBytes","view","Uint8Array","buffer","byteOffset","ReadCString","startOffset","ReadU8","bytes","utf8Decoder","decode","ReadCWString","ReadU16","utf16Decoder","Number","isInteger","String","result","ReadF32","value","getFloat32","ReadF64","getFloat64","ReadI8","getInt8","ReadI16","getInt16","ReadI32","getInt32","ReadI64","getBigInt64","ConsumeOffset","ReadStringRef","index","strings","info","length","ReadWideStringRef","wideStrings","getUint8","getUint16","getUint32","ReadU64","getBigUint64","Skip","from","input","ArrayBuffer","isView","TextDecoder"],"mappings":"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"}
1
+ {"version":3,"file":"CjsBlackBinaryReader.js","sources":["../../../../../src/formats/black/core/CjsBlackBinaryReader.js"],"sourcesContent":["/**\n * Bounds-aware `DataView` cursor that provides the primitive reads and\n * end-of-stream checks the Black transport decodes with.\n */\nexport class CjsBlackBinaryReader\n{\n constructor(dataView, context = null)\n {\n if (!(dataView instanceof DataView))\n {\n throw new TypeError(\"CjsBlackBinaryReader expected a DataView\");\n }\n\n this.data = dataView;\n this.context = context;\n this.offset = 0;\n }\n\n get remaining()\n {\n return this.data.byteLength - this.offset;\n }\n\n AtEnd()\n {\n return this.remaining === 0;\n }\n\n ExpectEnd(message = \"Black reader did not reach end\")\n {\n if (!this.AtEnd())\n {\n throw new RangeError(`${message}: ${this.remaining} bytes remain`);\n }\n }\n\n ExpectU32(expected, message)\n {\n const actual = this.ReadU32();\n if (actual !== expected)\n {\n throw new RangeError(`${message}: expected ${expected}, got ${actual}`);\n }\n return actual;\n }\n\n ReadBinaryReader(byteLength)\n {\n return new CjsBlackBinaryReader(this.ReadDataView(byteLength), this.context);\n }\n\n ReadBytes(byteLength)\n {\n const view = this.ReadDataView(byteLength);\n return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);\n }\n\n ReadCString()\n {\n const startOffset = this.offset;\n while (this.ReadU8() !== 0)\n {\n // Scan to null terminator.\n }\n\n const byteOffset = this.data.byteOffset + startOffset;\n const byteLength = this.offset - startOffset - 1;\n const bytes = new Uint8Array(this.data.buffer, byteOffset, byteLength);\n return CjsBlackBinaryReader.utf8Decoder.decode(bytes);\n }\n\n ReadCWString()\n {\n const startOffset = this.offset;\n while (this.ReadU16() !== 0)\n {\n // Scan to UTF-16 null terminator.\n }\n\n const byteOffset = this.data.byteOffset + startOffset;\n const byteLength = this.offset - startOffset - 2;\n const bytes = new Uint8Array(this.data.buffer, byteOffset, byteLength);\n return CjsBlackBinaryReader.utf16Decoder.decode(bytes);\n }\n\n ReadDataView(byteLength)\n {\n if (!Number.isInteger(byteLength) || byteLength < 0)\n {\n throw new RangeError(`Invalid Black byte length: ${String(byteLength)}`);\n }\n\n if (this.remaining < byteLength)\n {\n throw new RangeError(`Black reader needs ${byteLength} bytes but only ${this.remaining} remain`);\n }\n\n const result = new DataView(this.data.buffer, this.data.byteOffset + this.offset, byteLength);\n this.offset += byteLength;\n return result;\n }\n\n ReadF32()\n {\n const value = this.data.getFloat32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n ReadF64()\n {\n const value = this.data.getFloat64(this.offset, true);\n this.offset += 8;\n return value;\n }\n\n ReadI8()\n {\n const value = this.data.getInt8(this.offset);\n this.offset += 1;\n return value;\n }\n\n ReadI16()\n {\n const value = this.data.getInt16(this.offset, true);\n this.offset += 2;\n return value;\n }\n\n ReadI32()\n {\n const value = this.data.getInt32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n ReadI64()\n {\n return this.data.getBigInt64(this.ConsumeOffset(8), true);\n }\n\n ReadStringRef()\n {\n const index = this.ReadU16();\n const strings = this.context?.info?.strings || [];\n if (index >= strings.length)\n {\n throw new RangeError(`Invalid Black string index: ${index}`);\n }\n return strings[index];\n }\n\n ReadWideStringRef()\n {\n const index = this.ReadU16();\n const strings = this.context?.info?.wideStrings || [];\n if (index >= strings.length)\n {\n throw new RangeError(`Invalid Black wide string index: ${index}`);\n }\n return strings[index];\n }\n\n ReadU8()\n {\n const value = this.data.getUint8(this.offset);\n this.offset += 1;\n return value;\n }\n\n ReadU16()\n {\n const value = this.data.getUint16(this.offset, true);\n this.offset += 2;\n return value;\n }\n\n ReadU32()\n {\n const value = this.data.getUint32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n ReadU64()\n {\n return this.data.getBigUint64(this.ConsumeOffset(8), true);\n }\n\n Skip(byteLength)\n {\n this.ReadDataView(byteLength);\n }\n\n ConsumeOffset(byteLength)\n {\n if (this.remaining < byteLength)\n {\n throw new RangeError(`Black reader needs ${byteLength} bytes but only ${this.remaining} remain`);\n }\n\n const offset = this.offset;\n this.offset += byteLength;\n return offset;\n }\n\n static from(input, context = null)\n {\n if (input instanceof CjsBlackBinaryReader) return input;\n if (input instanceof DataView) return new CjsBlackBinaryReader(input, context);\n if (input instanceof ArrayBuffer) return new CjsBlackBinaryReader(new DataView(input), context);\n if (ArrayBuffer.isView(input))\n {\n return new CjsBlackBinaryReader(new DataView(input.buffer, input.byteOffset, input.byteLength), context);\n }\n\n throw new TypeError(\"Black input must be an ArrayBuffer, DataView, or typed array\");\n }\n\n static utf8Decoder = new TextDecoder(\"utf-8\");\n static utf16Decoder = new TextDecoder(\"utf-16le\");\n}\n"],"names":["CjsBlackBinaryReader","constructor","dataView","context","DataView","TypeError","data","offset","remaining","byteLength","AtEnd","ExpectEnd","message","RangeError","ExpectU32","expected","actual","ReadU32","ReadBinaryReader","ReadDataView","ReadBytes","view","Uint8Array","buffer","byteOffset","ReadCString","startOffset","ReadU8","bytes","utf8Decoder","decode","ReadCWString","ReadU16","utf16Decoder","Number","isInteger","String","result","ReadF32","value","getFloat32","ReadF64","getFloat64","ReadI8","getInt8","ReadI16","getInt16","ReadI32","getInt32","ReadI64","getBigInt64","ConsumeOffset","ReadStringRef","index","strings","info","length","ReadWideStringRef","wideStrings","getUint8","getUint16","getUint32","ReadU64","getBigUint64","Skip","from","input","ArrayBuffer","isView","TextDecoder"],"mappings":"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"}
@@ -1,5 +1,10 @@
1
1
  import { normalizeCarbonTypeDescriptor, CARBON_TYPE } from '@carbonenginejs/core-types';
2
2
 
3
+ /**
4
+ * Static set of read and skip routines that decode or skip individual Black
5
+ * property values (primitives, strings, arrays, structure lists,
6
+ * dictionaries, and binary blocks) from their type descriptors.
7
+ */
3
8
  class CjsBlackPropertyReaders {
4
9
  static readValue(reader, field) {
5
10
  const descriptor = normalizeCarbonTypeDescriptor(field);
@@ -1 +1 @@
1
- {"version":3,"file":"CjsBlackPropertyReaders.js","sources":["../../../../../src/formats/black/core/CjsBlackPropertyReaders.js"],"sourcesContent":["import {\n CARBON_TYPE,\n normalizeCarbonTypeDescriptor\n} from \"@carbonenginejs/core-types\";\n\nexport class CjsBlackPropertyReaders\n{\n static readValue(reader, field)\n {\n const descriptor = normalizeCarbonTypeDescriptor(field);\n if (field?.black?.beType)\n {\n return CjsBlackPropertyReaders.readBlackValue(reader, field.black, descriptor);\n }\n\n switch (descriptor.kind)\n {\n case CARBON_TYPE.BOOLEAN:\n return reader.ReadU8() !== 0;\n\n case CARBON_TYPE.STRING:\n case CARBON_TYPE.EXPRESSION:\n return reader.ReadStringRef();\n\n case CARBON_TYPE.PATH:\n return reader.context.TransformPath(reader.ReadStringRef());\n\n case CARBON_TYPE.ENUM:\n return reader.ReadI32();\n\n case CARBON_TYPE.FLOAT32:\n return reader.ReadF32();\n\n case CARBON_TYPE.FLOAT64:\n return reader.ReadF64();\n\n case CARBON_TYPE.INT8:\n return reader.ReadI8();\n\n case CARBON_TYPE.UINT8:\n return reader.ReadU8();\n\n case CARBON_TYPE.INT16:\n return reader.ReadI16();\n\n case CARBON_TYPE.UINT16:\n return reader.ReadU16();\n\n case CARBON_TYPE.INT32:\n return reader.ReadI32();\n\n case CARBON_TYPE.UINT32:\n return reader.ReadU32();\n\n case CARBON_TYPE.INT64:\n return reader.ReadI64();\n\n case CARBON_TYPE.UINT64:\n return reader.ReadU64();\n\n case CARBON_TYPE.VECTOR2:\n return CjsBlackPropertyReaders.readFloatArray(reader, 2);\n\n case CARBON_TYPE.VECTOR3:\n return CjsBlackPropertyReaders.readFloatArray(reader, 3);\n\n case CARBON_TYPE.VECTOR4:\n case CARBON_TYPE.COLOR:\n case CARBON_TYPE.QUATERNION:\n return CjsBlackPropertyReaders.readFloatArray(reader, 4);\n\n case CARBON_TYPE.MATRIX3:\n return CjsBlackPropertyReaders.readFloatArray(reader, 9);\n\n case CARBON_TYPE.MATRIX4:\n return CjsBlackPropertyReaders.readFloatArray(reader, 16);\n\n case CARBON_TYPE.ARRAY:\n return CjsBlackPropertyReaders.readArray(reader, descriptor);\n\n case CARBON_TYPE.TYPED_ARRAY:\n return CjsBlackPropertyReaders.readTypedArray(reader, descriptor);\n\n case CARBON_TYPE.STRUCT:\n case CARBON_TYPE.RAW_STRUCT:\n return reader.context.ReadEmbeddedObject(reader);\n\n case CARBON_TYPE.OBJECT_REF:\n case CARBON_TYPE.UNKNOWN:\n default:\n return reader.context.ReadObject(reader);\n }\n }\n\n static readBlackValue(reader, black, descriptor)\n {\n switch (black.beType)\n {\n case \"IROOT\":\n if (black.container === \"list\" && black.cppType && /StructureList/.test(String(black.cppType)))\n {\n return CjsBlackPropertyReaders.readBlackStructureList(reader, black);\n }\n return CjsBlackPropertyReaders.readBlackIRoot(reader, black, descriptor);\n\n case \"BOOL\":\n return reader.ReadU8() !== 0;\n\n case \"CSTRING\":\n case \"STDSTRING\":\n case \"SHAREDSTRING\":\n case \"REFERENCE\":\n return CjsBlackPropertyReaders.readStringRef(reader, descriptor);\n\n case \"WCSTRING\":\n case \"STDWSTRING\":\n case \"SHAREDSTRINGW\":\n case \"WREFERENCE\":\n return reader.ReadWideStringRef();\n\n case \"FLOAT\":\n return reader.ReadF32();\n\n case \"DOUBLE\":\n return reader.ReadF64();\n\n case \"LONG\":\n return reader.ReadI32();\n\n case \"ULONG\":\n return reader.ReadU32();\n\n case \"INT64\":\n return reader.ReadI64();\n\n case \"UINT64\":\n return reader.ReadU64();\n\n case \"BYTE\":\n return black.signed ? reader.ReadI8() : reader.ReadU8();\n\n case \"SHORT\":\n return black.signed ? reader.ReadI16() : reader.ReadU16();\n\n case \"FLOATARRAY\":\n return CjsBlackPropertyReaders.readFloatArray(reader, black.length || descriptor.length || 0);\n\n case \"BINARYBLOCK\":\n return CjsBlackPropertyReaders.readBinaryBlock(reader, black);\n\n case \"IROOTPTR\":\n case \"IROOTWEAKREF\":\n return reader.context.ReadObject(reader);\n\n default:\n return CjsBlackPropertyReaders.readValueWithoutBlack(reader, descriptor);\n }\n }\n\n static skipValue(reader, field)\n {\n const descriptor = normalizeCarbonTypeDescriptor(field);\n if (field?.black?.beType)\n {\n CjsBlackPropertyReaders.skipBlackValue(reader, field.black, descriptor);\n return;\n }\n\n switch (descriptor.kind)\n {\n case CARBON_TYPE.BOOLEAN:\n case CARBON_TYPE.INT8:\n case CARBON_TYPE.UINT8:\n reader.Skip(1);\n return;\n case CARBON_TYPE.STRING:\n case CARBON_TYPE.PATH:\n case CARBON_TYPE.EXPRESSION:\n case CARBON_TYPE.INT16:\n case CARBON_TYPE.UINT16:\n reader.Skip(2);\n return;\n case CARBON_TYPE.ENUM:\n case CARBON_TYPE.FLOAT32:\n case CARBON_TYPE.INT32:\n case CARBON_TYPE.UINT32:\n reader.Skip(4);\n return;\n case CARBON_TYPE.FLOAT64:\n case CARBON_TYPE.INT64:\n case CARBON_TYPE.UINT64:\n reader.Skip(8);\n return;\n case CARBON_TYPE.VECTOR2:\n reader.Skip(8);\n return;\n case CARBON_TYPE.VECTOR3:\n reader.Skip(12);\n return;\n case CARBON_TYPE.VECTOR4:\n case CARBON_TYPE.COLOR:\n case CARBON_TYPE.QUATERNION:\n reader.Skip(16);\n return;\n case CARBON_TYPE.MATRIX3:\n reader.Skip(36);\n return;\n case CARBON_TYPE.MATRIX4:\n reader.Skip(64);\n return;\n case CARBON_TYPE.ARRAY:\n CjsBlackPropertyReaders.skipArray(reader, descriptor);\n return;\n case CARBON_TYPE.TYPED_ARRAY:\n CjsBlackPropertyReaders.skipTypedArray(reader);\n return;\n case CARBON_TYPE.STRUCT:\n case CARBON_TYPE.RAW_STRUCT:\n reader.context.SkipEmbeddedObject(reader);\n return;\n case CARBON_TYPE.OBJECT_REF:\n case CARBON_TYPE.UNKNOWN:\n default:\n reader.context.SkipObject(reader);\n }\n }\n\n static skipBlackValue(reader, black, descriptor)\n {\n switch (black.beType)\n {\n case \"IROOT\":\n if (black.container === \"list\" && black.cppType && /StructureList/.test(String(black.cppType)))\n {\n CjsBlackPropertyReaders.skipStructureList(reader);\n return;\n }\n CjsBlackPropertyReaders.skipBlackIRoot(reader, black, descriptor);\n return;\n case \"BOOL\":\n case \"BYTE\":\n reader.Skip(1);\n return;\n case \"CSTRING\":\n case \"STDSTRING\":\n case \"SHAREDSTRING\":\n case \"REFERENCE\":\n case \"WCSTRING\":\n case \"STDWSTRING\":\n case \"SHAREDSTRINGW\":\n case \"WREFERENCE\":\n case \"SHORT\":\n reader.Skip(2);\n return;\n case \"FLOAT\":\n case \"LONG\":\n case \"ULONG\":\n reader.Skip(4);\n return;\n case \"DOUBLE\":\n case \"INT64\":\n case \"UINT64\":\n reader.Skip(8);\n return;\n case \"FLOATARRAY\":\n reader.Skip((black.length || descriptor.length || 0) * 4);\n return;\n case \"BINARYBLOCK\":\n CjsBlackPropertyReaders.skipBinaryBlock(reader);\n return;\n case \"IROOTPTR\":\n case \"IROOTWEAKREF\":\n reader.context.SkipObject(reader);\n return;\n default:\n CjsBlackPropertyReaders.skipValue(reader, { jsType: descriptor });\n }\n }\n\n static readBlackStructureList(reader, black)\n {\n return CjsBlackPropertyReaders.readStructureList(reader, {\n cppType: black.cppType,\n elementType: {\n kind: CARBON_TYPE.RAW_STRUCT,\n cppType: black.cppType\n }\n });\n }\n\n static readValueWithoutBlack(reader, descriptor)\n {\n return CjsBlackPropertyReaders.readValue(reader, { jsType: descriptor });\n }\n\n static readStringRef(reader, descriptor)\n {\n const value = reader.ReadStringRef();\n return descriptor.kind === CARBON_TYPE.PATH ? reader.context.TransformPath(value) : value;\n }\n\n static readBlackIRoot(reader, black, descriptor)\n {\n if (black.container === \"dict\") return CjsBlackPropertyReaders.readDict(reader);\n if (black.container === \"list\" || black.container === \"set\") return CjsBlackPropertyReaders.readArray(reader, descriptor);\n return reader.context.ReadEmbeddedObject(reader);\n }\n\n static skipBlackIRoot(reader, black, descriptor)\n {\n if (black.container === \"dict\")\n {\n CjsBlackPropertyReaders.skipDict(reader);\n return;\n }\n if (black.container === \"list\" || black.container === \"set\")\n {\n CjsBlackPropertyReaders.skipArray(reader, descriptor);\n return;\n }\n reader.context.SkipEmbeddedObject(reader);\n }\n\n static readDict(reader)\n {\n const count = reader.ReadU32();\n const result = {};\n for (let i = 0; i < count; i++)\n {\n result[reader.ReadStringRef()] = reader.context.ReadObject(reader);\n }\n return result;\n }\n\n static skipDict(reader)\n {\n const count = reader.ReadU32();\n for (let i = 0; i < count; i++)\n {\n reader.Skip(2);\n reader.context.SkipObject(reader);\n }\n }\n\n static readBinaryBlock(reader, black)\n {\n const byteLength = reader.ReadI32();\n const bytes = reader.ReadBytes(byteLength);\n if (CjsBlackPropertyReaders.isUint32IndexBufferBlock(reader, black, byteLength))\n {\n return CjsBlackPropertyReaders.readUint32Array(bytes);\n }\n\n return {\n $type: \"black.binaryBlock\",\n beType: black.beType,\n byteLength,\n bytes: Array.from(bytes)\n };\n }\n\n static isUint32IndexBufferBlock(reader, black, byteLength)\n {\n if (byteLength % 4 !== 0) return false;\n if (reader.context?.readMode === \"document\" && !reader.context?.options.decodeBinaryBlocks) return false;\n return black.name === \"indexBuffer\" ||\n black.fieldName === \"indexBuffer\" ||\n black.storageName === \"indexBuffer\";\n }\n\n static readUint32Array(bytes)\n {\n const result = new Uint32Array(bytes.byteLength / 4);\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n for (let i = 0; i < result.length; i++)\n {\n result[i] = view.getUint32(i * 4, true);\n }\n return result;\n }\n\n static readArray(reader, descriptor)\n {\n const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);\n if (elementType.kind === CARBON_TYPE.RAW_STRUCT)\n {\n return CjsBlackPropertyReaders.readStructureList(reader, descriptor);\n }\n\n const count = reader.ReadU32();\n const result = [];\n for (let i = 0; i < count; i++)\n {\n if (!descriptor.elementType || elementType.kind === CARBON_TYPE.OBJECT_REF || elementType.kind === CARBON_TYPE.UNKNOWN)\n {\n result[i] = reader.context.ReadObject(reader);\n }\n else\n {\n result[i] = CjsBlackPropertyReaders.readValue(reader, { jsType: elementType });\n }\n }\n return result;\n }\n\n static skipArray(reader, descriptor)\n {\n const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);\n if (elementType.kind === CARBON_TYPE.RAW_STRUCT)\n {\n CjsBlackPropertyReaders.skipStructureList(reader);\n return;\n }\n\n const count = reader.ReadU32();\n for (let i = 0; i < count; i++)\n {\n if (!descriptor.elementType || elementType.kind === CARBON_TYPE.OBJECT_REF || elementType.kind === CARBON_TYPE.UNKNOWN)\n {\n reader.context.SkipObject(reader);\n }\n else\n {\n CjsBlackPropertyReaders.skipValue(reader, { jsType: elementType });\n }\n }\n }\n\n static readFloatArray(reader, count)\n {\n const result = [];\n for (let i = 0; i < count; i++)\n {\n result[i] = reader.ReadF32();\n }\n return result;\n }\n\n static readStructureList(reader, descriptor)\n {\n const count = reader.ReadI32();\n const structureSize = reader.ReadU16();\n const bytes = reader.ReadBytes(count * structureSize);\n return {\n $type: \"black.structureList\",\n count,\n structureSize,\n cppType: descriptor.cppType || null,\n elementType: descriptor.elementType?.cppType || null,\n bytes: Array.from(bytes)\n };\n }\n\n static skipStructureList(reader)\n {\n const count = reader.ReadI32();\n const structureSize = reader.ReadU16();\n reader.Skip(count * structureSize);\n }\n\n static readTypedArray(reader, descriptor)\n {\n const count = reader.ReadU32();\n const elementSize = reader.ReadU16();\n const bytes = reader.ReadBytes(count * elementSize);\n return {\n $type: \"black.typedArray\",\n count,\n elementSize,\n js: descriptor.js || null,\n bytes: Array.from(bytes)\n };\n }\n\n static skipTypedArray(reader)\n {\n const count = reader.ReadU32();\n const elementSize = reader.ReadU16();\n reader.Skip(count * elementSize);\n }\n\n static skipBinaryBlock(reader)\n {\n const byteLength = reader.ReadI32();\n reader.Skip(byteLength);\n }\n}\n"],"names":["CjsBlackPropertyReaders","readValue","reader","field","descriptor","normalizeCarbonTypeDescriptor","black","beType","readBlackValue","kind","CARBON_TYPE","BOOLEAN","ReadU8","STRING","EXPRESSION","ReadStringRef","PATH","context","TransformPath","ENUM","ReadI32","FLOAT32","ReadF32","FLOAT64","ReadF64","INT8","ReadI8","UINT8","INT16","ReadI16","UINT16","ReadU16","INT32","UINT32","ReadU32","INT64","ReadI64","UINT64","ReadU64","VECTOR2","readFloatArray","VECTOR3","VECTOR4","COLOR","QUATERNION","MATRIX3","MATRIX4","ARRAY","readArray","TYPED_ARRAY","readTypedArray","STRUCT","RAW_STRUCT","ReadEmbeddedObject","OBJECT_REF","UNKNOWN","ReadObject","container","cppType","test","String","readBlackStructureList","readBlackIRoot","readStringRef","ReadWideStringRef","signed","length","readBinaryBlock","readValueWithoutBlack","skipValue","skipBlackValue","Skip","skipArray","skipTypedArray","SkipEmbeddedObject","SkipObject","skipStructureList","skipBlackIRoot","skipBinaryBlock","jsType","readStructureList","elementType","value","readDict","skipDict","count","result","i","byteLength","bytes","ReadBytes","isUint32IndexBufferBlock","readUint32Array","$type","Array","from","readMode","options","decodeBinaryBlocks","name","fieldName","storageName","Uint32Array","view","DataView","buffer","byteOffset","getUint32","structureSize","elementSize","js"],"mappings":"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"}
1
+ {"version":3,"file":"CjsBlackPropertyReaders.js","sources":["../../../../../src/formats/black/core/CjsBlackPropertyReaders.js"],"sourcesContent":["import {\n CARBON_TYPE,\n normalizeCarbonTypeDescriptor\n} from \"@carbonenginejs/core-types\";\n\n/**\n * Static set of read and skip routines that decode or skip individual Black\n * property values (primitives, strings, arrays, structure lists,\n * dictionaries, and binary blocks) from their type descriptors.\n */\nexport class CjsBlackPropertyReaders\n{\n static readValue(reader, field)\n {\n const descriptor = normalizeCarbonTypeDescriptor(field);\n if (field?.black?.beType)\n {\n return CjsBlackPropertyReaders.readBlackValue(reader, field.black, descriptor);\n }\n\n switch (descriptor.kind)\n {\n case CARBON_TYPE.BOOLEAN:\n return reader.ReadU8() !== 0;\n\n case CARBON_TYPE.STRING:\n case CARBON_TYPE.EXPRESSION:\n return reader.ReadStringRef();\n\n case CARBON_TYPE.PATH:\n return reader.context.TransformPath(reader.ReadStringRef());\n\n case CARBON_TYPE.ENUM:\n return reader.ReadI32();\n\n case CARBON_TYPE.FLOAT32:\n return reader.ReadF32();\n\n case CARBON_TYPE.FLOAT64:\n return reader.ReadF64();\n\n case CARBON_TYPE.INT8:\n return reader.ReadI8();\n\n case CARBON_TYPE.UINT8:\n return reader.ReadU8();\n\n case CARBON_TYPE.INT16:\n return reader.ReadI16();\n\n case CARBON_TYPE.UINT16:\n return reader.ReadU16();\n\n case CARBON_TYPE.INT32:\n return reader.ReadI32();\n\n case CARBON_TYPE.UINT32:\n return reader.ReadU32();\n\n case CARBON_TYPE.INT64:\n return reader.ReadI64();\n\n case CARBON_TYPE.UINT64:\n return reader.ReadU64();\n\n case CARBON_TYPE.VECTOR2:\n return CjsBlackPropertyReaders.readFloatArray(reader, 2);\n\n case CARBON_TYPE.VECTOR3:\n return CjsBlackPropertyReaders.readFloatArray(reader, 3);\n\n case CARBON_TYPE.VECTOR4:\n case CARBON_TYPE.COLOR:\n case CARBON_TYPE.QUATERNION:\n return CjsBlackPropertyReaders.readFloatArray(reader, 4);\n\n case CARBON_TYPE.MATRIX3:\n return CjsBlackPropertyReaders.readFloatArray(reader, 9);\n\n case CARBON_TYPE.MATRIX4:\n return CjsBlackPropertyReaders.readFloatArray(reader, 16);\n\n case CARBON_TYPE.ARRAY:\n return CjsBlackPropertyReaders.readArray(reader, descriptor);\n\n case CARBON_TYPE.TYPED_ARRAY:\n return CjsBlackPropertyReaders.readTypedArray(reader, descriptor);\n\n case CARBON_TYPE.STRUCT:\n case CARBON_TYPE.RAW_STRUCT:\n return reader.context.ReadEmbeddedObject(reader);\n\n case CARBON_TYPE.OBJECT_REF:\n case CARBON_TYPE.UNKNOWN:\n default:\n return reader.context.ReadObject(reader);\n }\n }\n\n static readBlackValue(reader, black, descriptor)\n {\n switch (black.beType)\n {\n case \"IROOT\":\n if (black.container === \"list\" && black.cppType && /StructureList/.test(String(black.cppType)))\n {\n return CjsBlackPropertyReaders.readBlackStructureList(reader, black);\n }\n return CjsBlackPropertyReaders.readBlackIRoot(reader, black, descriptor);\n\n case \"BOOL\":\n return reader.ReadU8() !== 0;\n\n case \"CSTRING\":\n case \"STDSTRING\":\n case \"SHAREDSTRING\":\n case \"REFERENCE\":\n return CjsBlackPropertyReaders.readStringRef(reader, descriptor);\n\n case \"WCSTRING\":\n case \"STDWSTRING\":\n case \"SHAREDSTRINGW\":\n case \"WREFERENCE\":\n return reader.ReadWideStringRef();\n\n case \"FLOAT\":\n return reader.ReadF32();\n\n case \"DOUBLE\":\n return reader.ReadF64();\n\n case \"LONG\":\n return reader.ReadI32();\n\n case \"ULONG\":\n return reader.ReadU32();\n\n case \"INT64\":\n return reader.ReadI64();\n\n case \"UINT64\":\n return reader.ReadU64();\n\n case \"BYTE\":\n return black.signed ? reader.ReadI8() : reader.ReadU8();\n\n case \"SHORT\":\n return black.signed ? reader.ReadI16() : reader.ReadU16();\n\n case \"FLOATARRAY\":\n return CjsBlackPropertyReaders.readFloatArray(reader, black.length || descriptor.length || 0);\n\n case \"BINARYBLOCK\":\n return CjsBlackPropertyReaders.readBinaryBlock(reader, black);\n\n case \"IROOTPTR\":\n case \"IROOTWEAKREF\":\n return reader.context.ReadObject(reader);\n\n default:\n return CjsBlackPropertyReaders.readValueWithoutBlack(reader, descriptor);\n }\n }\n\n static skipValue(reader, field)\n {\n const descriptor = normalizeCarbonTypeDescriptor(field);\n if (field?.black?.beType)\n {\n CjsBlackPropertyReaders.skipBlackValue(reader, field.black, descriptor);\n return;\n }\n\n switch (descriptor.kind)\n {\n case CARBON_TYPE.BOOLEAN:\n case CARBON_TYPE.INT8:\n case CARBON_TYPE.UINT8:\n reader.Skip(1);\n return;\n case CARBON_TYPE.STRING:\n case CARBON_TYPE.PATH:\n case CARBON_TYPE.EXPRESSION:\n case CARBON_TYPE.INT16:\n case CARBON_TYPE.UINT16:\n reader.Skip(2);\n return;\n case CARBON_TYPE.ENUM:\n case CARBON_TYPE.FLOAT32:\n case CARBON_TYPE.INT32:\n case CARBON_TYPE.UINT32:\n reader.Skip(4);\n return;\n case CARBON_TYPE.FLOAT64:\n case CARBON_TYPE.INT64:\n case CARBON_TYPE.UINT64:\n reader.Skip(8);\n return;\n case CARBON_TYPE.VECTOR2:\n reader.Skip(8);\n return;\n case CARBON_TYPE.VECTOR3:\n reader.Skip(12);\n return;\n case CARBON_TYPE.VECTOR4:\n case CARBON_TYPE.COLOR:\n case CARBON_TYPE.QUATERNION:\n reader.Skip(16);\n return;\n case CARBON_TYPE.MATRIX3:\n reader.Skip(36);\n return;\n case CARBON_TYPE.MATRIX4:\n reader.Skip(64);\n return;\n case CARBON_TYPE.ARRAY:\n CjsBlackPropertyReaders.skipArray(reader, descriptor);\n return;\n case CARBON_TYPE.TYPED_ARRAY:\n CjsBlackPropertyReaders.skipTypedArray(reader);\n return;\n case CARBON_TYPE.STRUCT:\n case CARBON_TYPE.RAW_STRUCT:\n reader.context.SkipEmbeddedObject(reader);\n return;\n case CARBON_TYPE.OBJECT_REF:\n case CARBON_TYPE.UNKNOWN:\n default:\n reader.context.SkipObject(reader);\n }\n }\n\n static skipBlackValue(reader, black, descriptor)\n {\n switch (black.beType)\n {\n case \"IROOT\":\n if (black.container === \"list\" && black.cppType && /StructureList/.test(String(black.cppType)))\n {\n CjsBlackPropertyReaders.skipStructureList(reader);\n return;\n }\n CjsBlackPropertyReaders.skipBlackIRoot(reader, black, descriptor);\n return;\n case \"BOOL\":\n case \"BYTE\":\n reader.Skip(1);\n return;\n case \"CSTRING\":\n case \"STDSTRING\":\n case \"SHAREDSTRING\":\n case \"REFERENCE\":\n case \"WCSTRING\":\n case \"STDWSTRING\":\n case \"SHAREDSTRINGW\":\n case \"WREFERENCE\":\n case \"SHORT\":\n reader.Skip(2);\n return;\n case \"FLOAT\":\n case \"LONG\":\n case \"ULONG\":\n reader.Skip(4);\n return;\n case \"DOUBLE\":\n case \"INT64\":\n case \"UINT64\":\n reader.Skip(8);\n return;\n case \"FLOATARRAY\":\n reader.Skip((black.length || descriptor.length || 0) * 4);\n return;\n case \"BINARYBLOCK\":\n CjsBlackPropertyReaders.skipBinaryBlock(reader);\n return;\n case \"IROOTPTR\":\n case \"IROOTWEAKREF\":\n reader.context.SkipObject(reader);\n return;\n default:\n CjsBlackPropertyReaders.skipValue(reader, { jsType: descriptor });\n }\n }\n\n static readBlackStructureList(reader, black)\n {\n return CjsBlackPropertyReaders.readStructureList(reader, {\n cppType: black.cppType,\n elementType: {\n kind: CARBON_TYPE.RAW_STRUCT,\n cppType: black.cppType\n }\n });\n }\n\n static readValueWithoutBlack(reader, descriptor)\n {\n return CjsBlackPropertyReaders.readValue(reader, { jsType: descriptor });\n }\n\n static readStringRef(reader, descriptor)\n {\n const value = reader.ReadStringRef();\n return descriptor.kind === CARBON_TYPE.PATH ? reader.context.TransformPath(value) : value;\n }\n\n static readBlackIRoot(reader, black, descriptor)\n {\n if (black.container === \"dict\") return CjsBlackPropertyReaders.readDict(reader);\n if (black.container === \"list\" || black.container === \"set\") return CjsBlackPropertyReaders.readArray(reader, descriptor);\n return reader.context.ReadEmbeddedObject(reader);\n }\n\n static skipBlackIRoot(reader, black, descriptor)\n {\n if (black.container === \"dict\")\n {\n CjsBlackPropertyReaders.skipDict(reader);\n return;\n }\n if (black.container === \"list\" || black.container === \"set\")\n {\n CjsBlackPropertyReaders.skipArray(reader, descriptor);\n return;\n }\n reader.context.SkipEmbeddedObject(reader);\n }\n\n static readDict(reader)\n {\n const count = reader.ReadU32();\n const result = {};\n for (let i = 0; i < count; i++)\n {\n result[reader.ReadStringRef()] = reader.context.ReadObject(reader);\n }\n return result;\n }\n\n static skipDict(reader)\n {\n const count = reader.ReadU32();\n for (let i = 0; i < count; i++)\n {\n reader.Skip(2);\n reader.context.SkipObject(reader);\n }\n }\n\n static readBinaryBlock(reader, black)\n {\n const byteLength = reader.ReadI32();\n const bytes = reader.ReadBytes(byteLength);\n if (CjsBlackPropertyReaders.isUint32IndexBufferBlock(reader, black, byteLength))\n {\n return CjsBlackPropertyReaders.readUint32Array(bytes);\n }\n\n return {\n $type: \"black.binaryBlock\",\n beType: black.beType,\n byteLength,\n bytes: Array.from(bytes)\n };\n }\n\n static isUint32IndexBufferBlock(reader, black, byteLength)\n {\n if (byteLength % 4 !== 0) return false;\n if (reader.context?.readMode === \"document\" && !reader.context?.options.decodeBinaryBlocks) return false;\n return black.name === \"indexBuffer\" ||\n black.fieldName === \"indexBuffer\" ||\n black.storageName === \"indexBuffer\";\n }\n\n static readUint32Array(bytes)\n {\n const result = new Uint32Array(bytes.byteLength / 4);\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n for (let i = 0; i < result.length; i++)\n {\n result[i] = view.getUint32(i * 4, true);\n }\n return result;\n }\n\n static readArray(reader, descriptor)\n {\n const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);\n if (elementType.kind === CARBON_TYPE.RAW_STRUCT)\n {\n return CjsBlackPropertyReaders.readStructureList(reader, descriptor);\n }\n\n const count = reader.ReadU32();\n const result = [];\n for (let i = 0; i < count; i++)\n {\n if (!descriptor.elementType || elementType.kind === CARBON_TYPE.OBJECT_REF || elementType.kind === CARBON_TYPE.UNKNOWN)\n {\n result[i] = reader.context.ReadObject(reader);\n }\n else\n {\n result[i] = CjsBlackPropertyReaders.readValue(reader, { jsType: elementType });\n }\n }\n return result;\n }\n\n static skipArray(reader, descriptor)\n {\n const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);\n if (elementType.kind === CARBON_TYPE.RAW_STRUCT)\n {\n CjsBlackPropertyReaders.skipStructureList(reader);\n return;\n }\n\n const count = reader.ReadU32();\n for (let i = 0; i < count; i++)\n {\n if (!descriptor.elementType || elementType.kind === CARBON_TYPE.OBJECT_REF || elementType.kind === CARBON_TYPE.UNKNOWN)\n {\n reader.context.SkipObject(reader);\n }\n else\n {\n CjsBlackPropertyReaders.skipValue(reader, { jsType: elementType });\n }\n }\n }\n\n static readFloatArray(reader, count)\n {\n const result = [];\n for (let i = 0; i < count; i++)\n {\n result[i] = reader.ReadF32();\n }\n return result;\n }\n\n static readStructureList(reader, descriptor)\n {\n const count = reader.ReadI32();\n const structureSize = reader.ReadU16();\n const bytes = reader.ReadBytes(count * structureSize);\n return {\n $type: \"black.structureList\",\n count,\n structureSize,\n cppType: descriptor.cppType || null,\n elementType: descriptor.elementType?.cppType || null,\n bytes: Array.from(bytes)\n };\n }\n\n static skipStructureList(reader)\n {\n const count = reader.ReadI32();\n const structureSize = reader.ReadU16();\n reader.Skip(count * structureSize);\n }\n\n static readTypedArray(reader, descriptor)\n {\n const count = reader.ReadU32();\n const elementSize = reader.ReadU16();\n const bytes = reader.ReadBytes(count * elementSize);\n return {\n $type: \"black.typedArray\",\n count,\n elementSize,\n js: descriptor.js || null,\n bytes: Array.from(bytes)\n };\n }\n\n static skipTypedArray(reader)\n {\n const count = reader.ReadU32();\n const elementSize = reader.ReadU16();\n reader.Skip(count * elementSize);\n }\n\n static skipBinaryBlock(reader)\n {\n const byteLength = reader.ReadI32();\n reader.Skip(byteLength);\n }\n}\n"],"names":["CjsBlackPropertyReaders","readValue","reader","field","descriptor","normalizeCarbonTypeDescriptor","black","beType","readBlackValue","kind","CARBON_TYPE","BOOLEAN","ReadU8","STRING","EXPRESSION","ReadStringRef","PATH","context","TransformPath","ENUM","ReadI32","FLOAT32","ReadF32","FLOAT64","ReadF64","INT8","ReadI8","UINT8","INT16","ReadI16","UINT16","ReadU16","INT32","UINT32","ReadU32","INT64","ReadI64","UINT64","ReadU64","VECTOR2","readFloatArray","VECTOR3","VECTOR4","COLOR","QUATERNION","MATRIX3","MATRIX4","ARRAY","readArray","TYPED_ARRAY","readTypedArray","STRUCT","RAW_STRUCT","ReadEmbeddedObject","OBJECT_REF","UNKNOWN","ReadObject","container","cppType","test","String","readBlackStructureList","readBlackIRoot","readStringRef","ReadWideStringRef","signed","length","readBinaryBlock","readValueWithoutBlack","skipValue","skipBlackValue","Skip","skipArray","skipTypedArray","SkipEmbeddedObject","SkipObject","skipStructureList","skipBlackIRoot","skipBinaryBlock","jsType","readStructureList","elementType","value","readDict","skipDict","count","result","i","byteLength","bytes","ReadBytes","isUint32IndexBufferBlock","readUint32Array","$type","Array","from","readMode","options","decodeBinaryBlocks","name","fieldName","storageName","Uint32Array","view","DataView","buffer","byteOffset","getUint32","structureSize","elementSize","js"],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Registry that normalizes caller-supplied schemas into per-class source
3
+ * shapes the Black reader uses to resolve persisted fields.
4
+ */
1
5
  class CjsBlackSchemaRegistry {
2
6
  constructor(schema = null) {
3
7
  this.shapes = CjsBlackSchemaRegistry.createShapeMap(schema);
@@ -1 +1 @@
1
- {"version":3,"file":"CjsBlackSchemaRegistry.js","sources":["../../../../../src/formats/black/core/CjsBlackSchemaRegistry.js"],"sourcesContent":["export class CjsBlackSchemaRegistry\n{\n constructor(schema = null)\n {\n this.shapes = CjsBlackSchemaRegistry.createShapeMap(schema);\n }\n\n GetSourceShape(kind)\n {\n return this.shapes.get(kind) || null;\n }\n\n static createShapeMap(schema)\n {\n const shapes = new Map();\n if (CjsBlackSchemaRegistry.isCompactClassMap(schema))\n {\n CjsBlackSchemaRegistry.addCompactClassMap(schema, shapes);\n return shapes;\n }\n\n CjsBlackSchemaRegistry.collectSchemaShapes(schema, shapes, new WeakSet());\n return shapes;\n }\n\n static collectSchemaShapes(value, shapes, seen)\n {\n if (!value || typeof value !== \"object\") return;\n if (seen.has(value)) return;\n seen.add(value);\n\n if (Array.isArray(value))\n {\n for (const item of value)\n {\n CjsBlackSchemaRegistry.collectSchemaShapes(item, shapes, seen);\n }\n return;\n }\n\n if (CjsBlackSchemaRegistry.isClassSchema(value))\n {\n CjsBlackSchemaRegistry.addShape(value, shapes);\n return;\n }\n\n if (Array.isArray(value.families))\n {\n for (const family of value.families)\n {\n CjsBlackSchemaRegistry.collectSchemaShapes(family, shapes, seen);\n }\n }\n\n if (Array.isArray(value.classes))\n {\n for (const item of value.classes)\n {\n CjsBlackSchemaRegistry.collectSchemaShapes(item, shapes, seen);\n }\n }\n else if (CjsBlackSchemaRegistry.isCompactClassMap(value.classes))\n {\n CjsBlackSchemaRegistry.addCompactClassMap(value.classes, shapes);\n }\n\n for (const item of Object.values(value))\n {\n if (item && typeof item === \"object\" && CjsBlackSchemaRegistry.isClassSchema(item))\n {\n CjsBlackSchemaRegistry.addShape(item, shapes);\n }\n }\n }\n\n static isCompactClassMap(value)\n {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n if (CjsBlackSchemaRegistry.isClassSchema(value)) return false;\n if (value.black || value.families || Array.isArray(value.classes)) return false;\n\n const entries = Object.entries(value);\n if (!entries.length) return false;\n\n return entries.every(([ className, fields ]) =>\n typeof className === \"string\" &&\n className.length > 0 &&\n CjsBlackSchemaRegistry.isCompactFieldMap(fields) &&\n CjsBlackSchemaRegistry.isCompactClassFields(fields)\n );\n }\n\n static isCompactClassFields(fields)\n {\n const specs = Object.values(fields || {});\n return specs.every(spec => CjsBlackSchemaRegistry.isCompactFieldSpec(spec));\n }\n\n static isCompactFieldSpec(spec)\n {\n if (typeof spec === \"string\") return true;\n if (!spec || typeof spec !== \"object\" || Array.isArray(spec)) return false;\n return typeof spec.type === \"string\" || typeof spec.kind === \"string\";\n }\n\n static addCompactClassMap(classes, shapes)\n {\n for (const [ className, fields ] of Object.entries(classes || {}))\n {\n CjsBlackSchemaRegistry.addShape({ className, fields }, shapes);\n }\n }\n\n static isClassSchema(value)\n {\n if (!value || typeof value !== \"object\") return false;\n if (Array.isArray(value)) return false;\n return Boolean(\n value.black?.fields ||\n (value.black && (value.black.className || value.className || value.blueClass || value.cppClass)) ||\n (value.className && CjsBlackSchemaRegistry.isCompactFieldMap(value.fields)) ||\n (value.className && Array.isArray(value.fields)) ||\n (value.blueClass && value.black)\n );\n }\n\n static addShape(schema, shapes)\n {\n const shape = CjsBlackSchemaRegistry.normalizeShape(schema);\n if (!shape?.className) return;\n\n shapes.set(shape.className, shape);\n if (schema.blueClass) shapes.set(schema.blueClass, shape);\n if (schema.cppClass) shapes.set(schema.cppClass, shape);\n if (schema.name) shapes.set(schema.name, shape);\n }\n\n static normalizeShape(schema)\n {\n const black = schema.black || {};\n const className = black.className || schema.className || schema.blueClass || schema.cppClass || schema.name || null;\n if (!className) return null;\n\n const fields = CjsBlackSchemaRegistry.normalizeFields(schema);\n const blackFieldSource = CjsBlackSchemaRegistry.isCompactFieldMap(schema.fields)\n ? CjsBlackSchemaRegistry.compactBlackFields(schema.fields)\n : (black.fields || schema.blackFields || schema.fields || []);\n const blackFields = blackFieldSource\n .filter(item => item && typeof item === \"object\")\n .map(item => CjsBlackSchemaRegistry.normalizeBlackField(item, fields));\n\n return {\n ...schema,\n className,\n family: schema.family || null,\n fields,\n black: {\n ...black,\n className,\n fields: blackFields\n }\n };\n }\n\n static normalizeFields(schema)\n {\n const fields = [];\n const byName = new Map();\n const add = (field) =>\n {\n if (!field || typeof field !== \"object\") return;\n const name = field.name || field.fieldName || field.blueName || CjsBlackSchemaRegistry.toJsFieldName(field.cppName || field.member || \"\");\n if (!name || byName.has(name)) return;\n\n const normalized = {\n ...field,\n name,\n cppName: field.cppName || field.memberPath || field.memberRoot || field.member || null,\n cppType: field.cppType || null\n };\n byName.set(name, normalized);\n fields.push(normalized);\n };\n\n if (CjsBlackSchemaRegistry.isCompactFieldMap(schema.fields))\n {\n for (const [ blackName, fieldSpec ] of Object.entries(schema.fields))\n {\n add(CjsBlackSchemaRegistry.compactField(blackName, fieldSpec));\n }\n }\n else\n {\n for (const field of schema.fields || [])\n {\n add(field);\n }\n }\n\n for (const attribute of schema.attributes || [])\n {\n if (!attribute?.black) continue;\n const black = CjsBlackSchemaRegistry.normalizeBlackField(attribute.black, fields);\n add({\n name: black.fieldName || attribute.blueName || black.name,\n cppName: black.cppName,\n cppType: black.cppType || attribute.cppType,\n black\n });\n }\n\n return fields;\n }\n\n static isCompactFieldMap(value)\n {\n return !!value && typeof value === \"object\" && !Array.isArray(value);\n }\n\n static compactBlackFields(fields)\n {\n return Object.entries(fields || {}).map(([ blackName, fieldSpec ]) =>\n CjsBlackSchemaRegistry.compactBlackField(blackName, fieldSpec));\n }\n\n static compactField(blackName, fieldSpec)\n {\n const spec = CjsBlackSchemaRegistry.normalizeCompactSpec(blackName, fieldSpec);\n return {\n name: spec.fieldName,\n fieldName: spec.fieldName,\n enumType: spec.enumType,\n jsType: spec.jsType,\n black: spec.black\n };\n }\n\n static compactBlackField(blackName, fieldSpec)\n {\n return CjsBlackSchemaRegistry.normalizeCompactSpec(blackName, fieldSpec).black;\n }\n\n static normalizeCompactSpec(blackName, fieldSpec)\n {\n const\n spec = typeof fieldSpec === \"string\" ? { type: fieldSpec } : (fieldSpec || {}),\n type = spec.type || spec.kind || \"unknown\",\n fieldName = spec.field || spec.fieldName || blackName,\n descriptor = CjsBlackSchemaRegistry.compactTypeDescriptor(type, spec),\n black = {\n name: blackName,\n fieldName,\n storageName: fieldName,\n member: blackName,\n memberPath: fieldName,\n memberRoot: fieldName,\n indexKey: Object.hasOwn(spec, \"index\") ? spec.index : undefined,\n indexToken: spec.token || null,\n enumType: spec.enum || null,\n ...descriptor.black,\n jsType: descriptor.jsType\n };\n\n return {\n fieldName,\n enumType: spec.enum || null,\n jsType: descriptor.jsType,\n black\n };\n }\n\n static compactTypeDescriptor(type, spec)\n {\n const normalized = String(type || \"unknown\");\n switch (normalized)\n {\n case \"boolean\":\n case \"bool\":\n return CjsBlackSchemaRegistry.compactBlackType(\"BOOL\", { kind: \"boolean\" });\n case \"string\":\n return CjsBlackSchemaRegistry.compactBlackType(\"STDSTRING\", { kind: \"string\" });\n case \"wstring\":\n return CjsBlackSchemaRegistry.compactBlackType(\"STDWSTRING\", { kind: \"string\" });\n case \"path\":\n return CjsBlackSchemaRegistry.compactBlackType(\"STDSTRING\", { kind: \"path\" });\n case \"expression\":\n return CjsBlackSchemaRegistry.compactBlackType(\"STDSTRING\", { kind: \"expression\", js: \"string\" });\n case \"enum\":\n return CjsBlackSchemaRegistry.compactBlackType(\"LONG\", { kind: \"enum\" }, { signed: true });\n case \"float\":\n return CjsBlackSchemaRegistry.compactBlackType(\"FLOAT\", { kind: \"float32\" });\n case \"double\":\n return CjsBlackSchemaRegistry.compactBlackType(\"DOUBLE\", { kind: \"float64\" });\n case \"int\":\n return CjsBlackSchemaRegistry.compactBlackType(\"LONG\", { kind: \"int32\" }, { signed: true });\n case \"uint\":\n return CjsBlackSchemaRegistry.compactBlackType(\"ULONG\", { kind: \"uint32\" }, { signed: false });\n case \"int64\":\n return CjsBlackSchemaRegistry.compactBlackType(\"INT64\", { kind: \"int64\" }, { signed: true });\n case \"uint64\":\n return CjsBlackSchemaRegistry.compactBlackType(\"UINT64\", { kind: \"uint64\" }, { signed: false });\n case \"byte\":\n return CjsBlackSchemaRegistry.compactBlackType(\"BYTE\", { kind: \"int8\" }, { signed: true });\n case \"ubyte\":\n return CjsBlackSchemaRegistry.compactBlackType(\"BYTE\", { kind: \"uint8\" }, { signed: false });\n case \"short\":\n return CjsBlackSchemaRegistry.compactBlackType(\"SHORT\", { kind: \"int16\" }, { signed: true });\n case \"ushort\":\n return CjsBlackSchemaRegistry.compactBlackType(\"SHORT\", { kind: \"uint16\" }, { signed: false });\n case \"vector2\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"vector2\", 2);\n case \"vector3\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"vector3\", 3);\n case \"vector4\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"vector4\", 4);\n case \"color\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"color\", 4);\n case \"quaternion\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"quaternion\", 4);\n case \"matrix3\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"matrix3\", 9);\n case \"matrix4\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"matrix4\", 16);\n case \"floatArray\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"array\", spec.length || 0);\n case \"array\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOT\", { kind: \"array\" }, { container: \"list\" });\n case \"dict\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOT\", { kind: \"map\" }, { container: \"dict\" });\n case \"object\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOTPTR\", { kind: \"objectRef\" });\n case \"rawStruct\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOT\", { kind: \"rawStruct\" });\n case \"structList\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOT\", { kind: \"array\" }, {\n container: \"list\",\n cppType: spec.cppType || \"StructureList\"\n });\n case \"binaryBlock\":\n return CjsBlackSchemaRegistry.compactBlackType(\"BINARYBLOCK\", { kind: \"typedArray\" });\n default:\n return CjsBlackSchemaRegistry.compactBlackType(null, { kind: normalized });\n }\n }\n\n static compactBlackType(beType, jsType, extra = {})\n {\n return {\n jsType,\n black: {\n beType,\n wireType: CjsBlackSchemaRegistry.compactWireType(beType, extra.container),\n ...extra\n }\n };\n }\n\n static compactFloatArrayType(kind, length)\n {\n return CjsBlackSchemaRegistry.compactBlackType(\"FLOATARRAY\", { kind, length }, { length });\n }\n\n static compactWireType(beType, container = null)\n {\n switch (beType)\n {\n case \"BOOL\":\n return \"bool\";\n case \"STDSTRING\":\n case \"STDWSTRING\":\n return \"stringRef\";\n case \"FLOAT\":\n return \"float32\";\n case \"DOUBLE\":\n return \"float64\";\n case \"LONG\":\n return \"int32\";\n case \"ULONG\":\n return \"uint32\";\n case \"INT64\":\n return \"int64\";\n case \"UINT64\":\n return \"uint64\";\n case \"BYTE\":\n return \"uint8\";\n case \"SHORT\":\n return \"uint16\";\n case \"FLOATARRAY\":\n return \"floatArray\";\n case \"BINARYBLOCK\":\n return \"binaryBlock\";\n case \"IROOTPTR\":\n return \"objectRef\";\n case \"IROOT\":\n return container ? \"container\" : \"inlineObject\";\n default:\n return null;\n }\n }\n\n static normalizeBlackField(field, sourceFields = [])\n {\n const names = field.names || null;\n const name = field.name || CjsBlackSchemaRegistry.getNameRole(names, \"name\") || field.nameExpression || null;\n const fieldName = field.fieldName || CjsBlackSchemaRegistry.getNameRole(names, \"fieldName\") || name || null;\n const cppName = field.cppName ||\n CjsBlackSchemaRegistry.getNameRole(names, \"cppName\") ||\n CjsBlackSchemaRegistry.getNameRole(names, \"memberPath\") ||\n CjsBlackSchemaRegistry.getNameRole(names, \"memberRoot\") ||\n null;\n const member = field.member || CjsBlackSchemaRegistry.getNameRole(names, \"member\") || cppName || name;\n const memberPath = field.memberPath || CjsBlackSchemaRegistry.getNameRole(names, \"memberPath\") || cppName;\n const memberRoot = field.memberRoot || CjsBlackSchemaRegistry.getNameRole(names, \"memberRoot\") || memberPath;\n const sourceField = sourceFields.find(item =>\n item.name === fieldName ||\n item.name === name ||\n item.cppName === cppName ||\n item.cppName === memberPath ||\n item.cppName === memberRoot\n );\n\n return {\n ...field,\n names,\n name,\n fieldName,\n storageName: field.storageName || fieldName || name,\n cppName: cppName || sourceField?.cppName || null,\n member,\n memberPath,\n memberRoot,\n cppType: field.cppType || sourceField?.cppType || null,\n beType: field.beType || null\n };\n }\n\n static matchesBlackFieldName(field, blackName)\n {\n if (!field || !blackName) return false;\n if (field.name === blackName) return true;\n if (field.fieldName === blackName) return true;\n if (field.member === blackName) return true;\n if (field.memberPath === blackName) return true;\n if (field.memberRoot === blackName) return true;\n if (field.cppName === blackName) return true;\n if (field.nameExpression === blackName) return true;\n\n if (field.names && typeof field.names === \"object\")\n {\n return Object.hasOwn(field.names, blackName);\n }\n\n return false;\n }\n\n static getNameRole(names, role)\n {\n if (!names || typeof names !== \"object\") return null;\n\n for (const [ name, roles ] of Object.entries(names))\n {\n const roleList = Array.isArray(roles) ? roles : String(roles || \"\").split(/\\s+/);\n if (roleList.includes(role)) return name;\n }\n\n return null;\n }\n\n static toJsFieldName(value)\n {\n return String(value || \"\").replace(/^m_/, \"\");\n }\n}\n"],"names":["CjsBlackSchemaRegistry","constructor","schema","shapes","createShapeMap","GetSourceShape","kind","get","Map","isCompactClassMap","addCompactClassMap","collectSchemaShapes","WeakSet","value","seen","has","add","Array","isArray","item","isClassSchema","addShape","families","family","classes","Object","values","black","entries","length","every","className","fields","isCompactFieldMap","isCompactClassFields","specs","spec","isCompactFieldSpec","type","Boolean","blueClass","cppClass","shape","normalizeShape","set","name","normalizeFields","blackFieldSource","compactBlackFields","blackFields","filter","map","normalizeBlackField","byName","field","fieldName","blueName","toJsFieldName","cppName","member","normalized","memberPath","memberRoot","cppType","push","blackName","fieldSpec","compactField","attribute","attributes","compactBlackField","normalizeCompactSpec","enumType","jsType","descriptor","compactTypeDescriptor","storageName","indexKey","hasOwn","index","undefined","indexToken","token","enum","String","compactBlackType","js","signed","compactFloatArrayType","container","beType","extra","wireType","compactWireType","sourceFields","names","getNameRole","nameExpression","sourceField","find","matchesBlackFieldName","role","roles","roleList","split","includes","replace"],"mappings":"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"}
1
+ {"version":3,"file":"CjsBlackSchemaRegistry.js","sources":["../../../../../src/formats/black/core/CjsBlackSchemaRegistry.js"],"sourcesContent":["/**\n * Registry that normalizes caller-supplied schemas into per-class source\n * shapes the Black reader uses to resolve persisted fields.\n */\nexport class CjsBlackSchemaRegistry\n{\n constructor(schema = null)\n {\n this.shapes = CjsBlackSchemaRegistry.createShapeMap(schema);\n }\n\n GetSourceShape(kind)\n {\n return this.shapes.get(kind) || null;\n }\n\n static createShapeMap(schema)\n {\n const shapes = new Map();\n if (CjsBlackSchemaRegistry.isCompactClassMap(schema))\n {\n CjsBlackSchemaRegistry.addCompactClassMap(schema, shapes);\n return shapes;\n }\n\n CjsBlackSchemaRegistry.collectSchemaShapes(schema, shapes, new WeakSet());\n return shapes;\n }\n\n static collectSchemaShapes(value, shapes, seen)\n {\n if (!value || typeof value !== \"object\") return;\n if (seen.has(value)) return;\n seen.add(value);\n\n if (Array.isArray(value))\n {\n for (const item of value)\n {\n CjsBlackSchemaRegistry.collectSchemaShapes(item, shapes, seen);\n }\n return;\n }\n\n if (CjsBlackSchemaRegistry.isClassSchema(value))\n {\n CjsBlackSchemaRegistry.addShape(value, shapes);\n return;\n }\n\n if (Array.isArray(value.families))\n {\n for (const family of value.families)\n {\n CjsBlackSchemaRegistry.collectSchemaShapes(family, shapes, seen);\n }\n }\n\n if (Array.isArray(value.classes))\n {\n for (const item of value.classes)\n {\n CjsBlackSchemaRegistry.collectSchemaShapes(item, shapes, seen);\n }\n }\n else if (CjsBlackSchemaRegistry.isCompactClassMap(value.classes))\n {\n CjsBlackSchemaRegistry.addCompactClassMap(value.classes, shapes);\n }\n\n for (const item of Object.values(value))\n {\n if (item && typeof item === \"object\" && CjsBlackSchemaRegistry.isClassSchema(item))\n {\n CjsBlackSchemaRegistry.addShape(item, shapes);\n }\n }\n }\n\n static isCompactClassMap(value)\n {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n if (CjsBlackSchemaRegistry.isClassSchema(value)) return false;\n if (value.black || value.families || Array.isArray(value.classes)) return false;\n\n const entries = Object.entries(value);\n if (!entries.length) return false;\n\n return entries.every(([ className, fields ]) =>\n typeof className === \"string\" &&\n className.length > 0 &&\n CjsBlackSchemaRegistry.isCompactFieldMap(fields) &&\n CjsBlackSchemaRegistry.isCompactClassFields(fields)\n );\n }\n\n static isCompactClassFields(fields)\n {\n const specs = Object.values(fields || {});\n return specs.every(spec => CjsBlackSchemaRegistry.isCompactFieldSpec(spec));\n }\n\n static isCompactFieldSpec(spec)\n {\n if (typeof spec === \"string\") return true;\n if (!spec || typeof spec !== \"object\" || Array.isArray(spec)) return false;\n return typeof spec.type === \"string\" || typeof spec.kind === \"string\";\n }\n\n static addCompactClassMap(classes, shapes)\n {\n for (const [ className, fields ] of Object.entries(classes || {}))\n {\n CjsBlackSchemaRegistry.addShape({ className, fields }, shapes);\n }\n }\n\n static isClassSchema(value)\n {\n if (!value || typeof value !== \"object\") return false;\n if (Array.isArray(value)) return false;\n return Boolean(\n value.black?.fields ||\n (value.black && (value.black.className || value.className || value.blueClass || value.cppClass)) ||\n (value.className && CjsBlackSchemaRegistry.isCompactFieldMap(value.fields)) ||\n (value.className && Array.isArray(value.fields)) ||\n (value.blueClass && value.black)\n );\n }\n\n static addShape(schema, shapes)\n {\n const shape = CjsBlackSchemaRegistry.normalizeShape(schema);\n if (!shape?.className) return;\n\n shapes.set(shape.className, shape);\n if (schema.blueClass) shapes.set(schema.blueClass, shape);\n if (schema.cppClass) shapes.set(schema.cppClass, shape);\n if (schema.name) shapes.set(schema.name, shape);\n }\n\n static normalizeShape(schema)\n {\n const black = schema.black || {};\n const className = black.className || schema.className || schema.blueClass || schema.cppClass || schema.name || null;\n if (!className) return null;\n\n const fields = CjsBlackSchemaRegistry.normalizeFields(schema);\n const blackFieldSource = CjsBlackSchemaRegistry.isCompactFieldMap(schema.fields)\n ? CjsBlackSchemaRegistry.compactBlackFields(schema.fields)\n : (black.fields || schema.blackFields || schema.fields || []);\n const blackFields = blackFieldSource\n .filter(item => item && typeof item === \"object\")\n .map(item => CjsBlackSchemaRegistry.normalizeBlackField(item, fields));\n\n return {\n ...schema,\n className,\n family: schema.family || null,\n fields,\n black: {\n ...black,\n className,\n fields: blackFields\n }\n };\n }\n\n static normalizeFields(schema)\n {\n const fields = [];\n const byName = new Map();\n const add = (field) =>\n {\n if (!field || typeof field !== \"object\") return;\n const name = field.name || field.fieldName || field.blueName || CjsBlackSchemaRegistry.toJsFieldName(field.cppName || field.member || \"\");\n if (!name || byName.has(name)) return;\n\n const normalized = {\n ...field,\n name,\n cppName: field.cppName || field.memberPath || field.memberRoot || field.member || null,\n cppType: field.cppType || null\n };\n byName.set(name, normalized);\n fields.push(normalized);\n };\n\n if (CjsBlackSchemaRegistry.isCompactFieldMap(schema.fields))\n {\n for (const [ blackName, fieldSpec ] of Object.entries(schema.fields))\n {\n add(CjsBlackSchemaRegistry.compactField(blackName, fieldSpec));\n }\n }\n else\n {\n for (const field of schema.fields || [])\n {\n add(field);\n }\n }\n\n for (const attribute of schema.attributes || [])\n {\n if (!attribute?.black) continue;\n const black = CjsBlackSchemaRegistry.normalizeBlackField(attribute.black, fields);\n add({\n name: black.fieldName || attribute.blueName || black.name,\n cppName: black.cppName,\n cppType: black.cppType || attribute.cppType,\n black\n });\n }\n\n return fields;\n }\n\n static isCompactFieldMap(value)\n {\n return !!value && typeof value === \"object\" && !Array.isArray(value);\n }\n\n static compactBlackFields(fields)\n {\n return Object.entries(fields || {}).map(([ blackName, fieldSpec ]) =>\n CjsBlackSchemaRegistry.compactBlackField(blackName, fieldSpec));\n }\n\n static compactField(blackName, fieldSpec)\n {\n const spec = CjsBlackSchemaRegistry.normalizeCompactSpec(blackName, fieldSpec);\n return {\n name: spec.fieldName,\n fieldName: spec.fieldName,\n enumType: spec.enumType,\n jsType: spec.jsType,\n black: spec.black\n };\n }\n\n static compactBlackField(blackName, fieldSpec)\n {\n return CjsBlackSchemaRegistry.normalizeCompactSpec(blackName, fieldSpec).black;\n }\n\n static normalizeCompactSpec(blackName, fieldSpec)\n {\n const\n spec = typeof fieldSpec === \"string\" ? { type: fieldSpec } : (fieldSpec || {}),\n type = spec.type || spec.kind || \"unknown\",\n fieldName = spec.field || spec.fieldName || blackName,\n descriptor = CjsBlackSchemaRegistry.compactTypeDescriptor(type, spec),\n black = {\n name: blackName,\n fieldName,\n storageName: fieldName,\n member: blackName,\n memberPath: fieldName,\n memberRoot: fieldName,\n indexKey: Object.hasOwn(spec, \"index\") ? spec.index : undefined,\n indexToken: spec.token || null,\n enumType: spec.enum || null,\n ...descriptor.black,\n jsType: descriptor.jsType\n };\n\n return {\n fieldName,\n enumType: spec.enum || null,\n jsType: descriptor.jsType,\n black\n };\n }\n\n static compactTypeDescriptor(type, spec)\n {\n const normalized = String(type || \"unknown\");\n switch (normalized)\n {\n case \"boolean\":\n case \"bool\":\n return CjsBlackSchemaRegistry.compactBlackType(\"BOOL\", { kind: \"boolean\" });\n case \"string\":\n return CjsBlackSchemaRegistry.compactBlackType(\"STDSTRING\", { kind: \"string\" });\n case \"wstring\":\n return CjsBlackSchemaRegistry.compactBlackType(\"STDWSTRING\", { kind: \"string\" });\n case \"path\":\n return CjsBlackSchemaRegistry.compactBlackType(\"STDSTRING\", { kind: \"path\" });\n case \"expression\":\n return CjsBlackSchemaRegistry.compactBlackType(\"STDSTRING\", { kind: \"expression\", js: \"string\" });\n case \"enum\":\n return CjsBlackSchemaRegistry.compactBlackType(\"LONG\", { kind: \"enum\" }, { signed: true });\n case \"float\":\n return CjsBlackSchemaRegistry.compactBlackType(\"FLOAT\", { kind: \"float32\" });\n case \"double\":\n return CjsBlackSchemaRegistry.compactBlackType(\"DOUBLE\", { kind: \"float64\" });\n case \"int\":\n return CjsBlackSchemaRegistry.compactBlackType(\"LONG\", { kind: \"int32\" }, { signed: true });\n case \"uint\":\n return CjsBlackSchemaRegistry.compactBlackType(\"ULONG\", { kind: \"uint32\" }, { signed: false });\n case \"int64\":\n return CjsBlackSchemaRegistry.compactBlackType(\"INT64\", { kind: \"int64\" }, { signed: true });\n case \"uint64\":\n return CjsBlackSchemaRegistry.compactBlackType(\"UINT64\", { kind: \"uint64\" }, { signed: false });\n case \"byte\":\n return CjsBlackSchemaRegistry.compactBlackType(\"BYTE\", { kind: \"int8\" }, { signed: true });\n case \"ubyte\":\n return CjsBlackSchemaRegistry.compactBlackType(\"BYTE\", { kind: \"uint8\" }, { signed: false });\n case \"short\":\n return CjsBlackSchemaRegistry.compactBlackType(\"SHORT\", { kind: \"int16\" }, { signed: true });\n case \"ushort\":\n return CjsBlackSchemaRegistry.compactBlackType(\"SHORT\", { kind: \"uint16\" }, { signed: false });\n case \"vector2\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"vector2\", 2);\n case \"vector3\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"vector3\", 3);\n case \"vector4\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"vector4\", 4);\n case \"color\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"color\", 4);\n case \"quaternion\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"quaternion\", 4);\n case \"matrix3\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"matrix3\", 9);\n case \"matrix4\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"matrix4\", 16);\n case \"floatArray\":\n return CjsBlackSchemaRegistry.compactFloatArrayType(\"array\", spec.length || 0);\n case \"array\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOT\", { kind: \"array\" }, { container: \"list\" });\n case \"dict\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOT\", { kind: \"map\" }, { container: \"dict\" });\n case \"object\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOTPTR\", { kind: \"objectRef\" });\n case \"rawStruct\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOT\", { kind: \"rawStruct\" });\n case \"structList\":\n return CjsBlackSchemaRegistry.compactBlackType(\"IROOT\", { kind: \"array\" }, {\n container: \"list\",\n cppType: spec.cppType || \"StructureList\"\n });\n case \"binaryBlock\":\n return CjsBlackSchemaRegistry.compactBlackType(\"BINARYBLOCK\", { kind: \"typedArray\" });\n default:\n return CjsBlackSchemaRegistry.compactBlackType(null, { kind: normalized });\n }\n }\n\n static compactBlackType(beType, jsType, extra = {})\n {\n return {\n jsType,\n black: {\n beType,\n wireType: CjsBlackSchemaRegistry.compactWireType(beType, extra.container),\n ...extra\n }\n };\n }\n\n static compactFloatArrayType(kind, length)\n {\n return CjsBlackSchemaRegistry.compactBlackType(\"FLOATARRAY\", { kind, length }, { length });\n }\n\n static compactWireType(beType, container = null)\n {\n switch (beType)\n {\n case \"BOOL\":\n return \"bool\";\n case \"STDSTRING\":\n case \"STDWSTRING\":\n return \"stringRef\";\n case \"FLOAT\":\n return \"float32\";\n case \"DOUBLE\":\n return \"float64\";\n case \"LONG\":\n return \"int32\";\n case \"ULONG\":\n return \"uint32\";\n case \"INT64\":\n return \"int64\";\n case \"UINT64\":\n return \"uint64\";\n case \"BYTE\":\n return \"uint8\";\n case \"SHORT\":\n return \"uint16\";\n case \"FLOATARRAY\":\n return \"floatArray\";\n case \"BINARYBLOCK\":\n return \"binaryBlock\";\n case \"IROOTPTR\":\n return \"objectRef\";\n case \"IROOT\":\n return container ? \"container\" : \"inlineObject\";\n default:\n return null;\n }\n }\n\n static normalizeBlackField(field, sourceFields = [])\n {\n const names = field.names || null;\n const name = field.name || CjsBlackSchemaRegistry.getNameRole(names, \"name\") || field.nameExpression || null;\n const fieldName = field.fieldName || CjsBlackSchemaRegistry.getNameRole(names, \"fieldName\") || name || null;\n const cppName = field.cppName ||\n CjsBlackSchemaRegistry.getNameRole(names, \"cppName\") ||\n CjsBlackSchemaRegistry.getNameRole(names, \"memberPath\") ||\n CjsBlackSchemaRegistry.getNameRole(names, \"memberRoot\") ||\n null;\n const member = field.member || CjsBlackSchemaRegistry.getNameRole(names, \"member\") || cppName || name;\n const memberPath = field.memberPath || CjsBlackSchemaRegistry.getNameRole(names, \"memberPath\") || cppName;\n const memberRoot = field.memberRoot || CjsBlackSchemaRegistry.getNameRole(names, \"memberRoot\") || memberPath;\n const sourceField = sourceFields.find(item =>\n item.name === fieldName ||\n item.name === name ||\n item.cppName === cppName ||\n item.cppName === memberPath ||\n item.cppName === memberRoot\n );\n\n return {\n ...field,\n names,\n name,\n fieldName,\n storageName: field.storageName || fieldName || name,\n cppName: cppName || sourceField?.cppName || null,\n member,\n memberPath,\n memberRoot,\n cppType: field.cppType || sourceField?.cppType || null,\n beType: field.beType || null\n };\n }\n\n static matchesBlackFieldName(field, blackName)\n {\n if (!field || !blackName) return false;\n if (field.name === blackName) return true;\n if (field.fieldName === blackName) return true;\n if (field.member === blackName) return true;\n if (field.memberPath === blackName) return true;\n if (field.memberRoot === blackName) return true;\n if (field.cppName === blackName) return true;\n if (field.nameExpression === blackName) return true;\n\n if (field.names && typeof field.names === \"object\")\n {\n return Object.hasOwn(field.names, blackName);\n }\n\n return false;\n }\n\n static getNameRole(names, role)\n {\n if (!names || typeof names !== \"object\") return null;\n\n for (const [ name, roles ] of Object.entries(names))\n {\n const roleList = Array.isArray(roles) ? roles : String(roles || \"\").split(/\\s+/);\n if (roleList.includes(role)) return name;\n }\n\n return null;\n }\n\n static toJsFieldName(value)\n {\n return String(value || \"\").replace(/^m_/, \"\");\n }\n}\n"],"names":["CjsBlackSchemaRegistry","constructor","schema","shapes","createShapeMap","GetSourceShape","kind","get","Map","isCompactClassMap","addCompactClassMap","collectSchemaShapes","WeakSet","value","seen","has","add","Array","isArray","item","isClassSchema","addShape","families","family","classes","Object","values","black","entries","length","every","className","fields","isCompactFieldMap","isCompactClassFields","specs","spec","isCompactFieldSpec","type","Boolean","blueClass","cppClass","shape","normalizeShape","set","name","normalizeFields","blackFieldSource","compactBlackFields","blackFields","filter","map","normalizeBlackField","byName","field","fieldName","blueName","toJsFieldName","cppName","member","normalized","memberPath","memberRoot","cppType","push","blackName","fieldSpec","compactField","attribute","attributes","compactBlackField","normalizeCompactSpec","enumType","jsType","descriptor","compactTypeDescriptor","storageName","indexKey","hasOwn","index","undefined","indexToken","token","enum","String","compactBlackType","js","signed","compactFloatArrayType","container","beType","extra","wireType","compactWireType","sourceFields","names","getNameRole","nameExpression","sourceField","find","matchesBlackFieldName","role","roles","roleList","split","includes","replace"],"mappings":"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"}