@carbonenginejs/runtime-resource 0.1.0 → 0.8.0

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 (329) hide show
  1. package/FORMAT-PROVENANCE.md +155 -135
  2. package/LICENSE +21 -21
  3. package/NOTICE +29 -29
  4. package/README.md +548 -241
  5. package/dist/CjsMotherLode.js +1271 -56
  6. package/dist/CjsMotherLode.js.map +1 -1
  7. package/dist/CjsResMan.js +3005 -740
  8. package/dist/CjsResMan.js.map +1 -1
  9. package/dist/CjsResManQueue.js +214 -214
  10. package/dist/CjsResource.js +566 -366
  11. package/dist/CjsResource.js.map +1 -1
  12. package/dist/CjsResourceSource.js +59 -59
  13. package/dist/_virtual/_rollupPluginBabelHelpers.js +153 -153
  14. package/dist/format/CjsBlueReader.js +269 -0
  15. package/dist/format/CjsBlueReader.js.map +1 -0
  16. package/dist/format/CjsFormat.js +192 -178
  17. package/dist/format/CjsFormat.js.map +1 -1
  18. package/dist/format/CjsReader.js +18 -0
  19. package/dist/format/CjsReader.js.map +1 -0
  20. package/dist/format/CjsResourceProbe.js +277 -269
  21. package/dist/format/CjsResourceProbe.js.map +1 -1
  22. package/dist/format/payloadContract.js +173 -173
  23. package/dist/formats/black/CjsBlackFormat.js +278 -272
  24. package/dist/formats/black/CjsBlackFormat.js.map +1 -1
  25. package/dist/formats/black/core/CjsBlackBinaryReader.js +153 -153
  26. package/dist/formats/black/core/CjsBlackPropertyReaders.js +382 -382
  27. package/dist/formats/black/core/CjsBlackReader.js +639 -760
  28. package/dist/formats/black/core/CjsBlackReader.js.map +1 -1
  29. package/dist/formats/black/core/CjsBlackSchemaRegistry.js +433 -433
  30. package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js +4 -4
  31. package/dist/formats/black/core/blackConstants.js +7 -7
  32. package/dist/formats/black/core/blackDefinitions.js +10 -10
  33. package/dist/formats/black/core/blackEnums.js +6 -6
  34. package/dist/formats/black/core/blackSchema.js +3 -3
  35. package/dist/formats/black/core/blackVersion.js +22 -22
  36. package/dist/formats/black/core/helpers.js +182 -182
  37. package/dist/formats/black/core/schema.js +4 -4
  38. package/dist/formats/black/index.js +2 -2
  39. package/dist/formats/bnk/CjsBnkFormat.js +238 -245
  40. package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
  41. package/dist/formats/bnk/core/graph.js +140 -0
  42. package/dist/formats/bnk/core/graph.js.map +1 -0
  43. package/dist/formats/bnk/core/helpers.js +409 -354
  44. package/dist/formats/bnk/core/helpers.js.map +1 -1
  45. package/dist/formats/bnk/core/musicNodes.js +521 -0
  46. package/dist/formats/bnk/core/musicNodes.js.map +1 -0
  47. package/dist/formats/bnk/core/soundbanksInfo.js +246 -246
  48. package/dist/formats/bnk/index.js +2 -3
  49. package/dist/formats/bnk/index.js.map +1 -1
  50. package/dist/formats/cmf/CjsCmfFormat.js +497 -491
  51. package/dist/formats/cmf/CjsCmfFormat.js.map +1 -1
  52. package/dist/formats/cmf/core/binary.js +118 -118
  53. package/dist/formats/cmf/core/buffers.js +233 -233
  54. package/dist/formats/cmf/core/constants.js +47 -47
  55. package/dist/formats/cmf/core/gr2Anim.js +453 -453
  56. package/dist/formats/cmf/core/helpers.js +287 -287
  57. package/dist/formats/cmf/core/pack.js +276 -276
  58. package/dist/formats/cmf/core/schema.js +364 -364
  59. package/dist/formats/cmf/core/shared.js +268 -268
  60. package/dist/formats/cmf/core/writer.js +517 -517
  61. package/dist/formats/cmf/index.js +2 -2
  62. package/dist/formats/dds/CjsDdsFormat.js +193 -187
  63. package/dist/formats/dds/CjsDdsFormat.js.map +1 -1
  64. package/dist/formats/dds/core/bc6h.js +288 -0
  65. package/dist/formats/dds/core/bc6h.js.map +1 -0
  66. package/dist/formats/dds/core/bc7.js +251 -0
  67. package/dist/formats/dds/core/bc7.js.map +1 -0
  68. package/dist/formats/dds/core/helpers.js +815 -812
  69. package/dist/formats/dds/core/helpers.js.map +1 -1
  70. package/dist/formats/dds/index.js +2 -2
  71. package/dist/formats/fbx/CjsFbxFormat.js +266 -260
  72. package/dist/formats/fbx/CjsFbxFormat.js.map +1 -1
  73. package/dist/formats/fbx/core/helpers.js +3901 -3901
  74. package/dist/formats/fbx/index.js +2 -2
  75. package/dist/formats/flac/CjsFlacFormat.js +87 -81
  76. package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
  77. package/dist/formats/flac/core/helpers.js +295 -295
  78. package/dist/formats/flac/index.js +2 -2
  79. package/dist/formats/gif/CjsGifFormat.js +87 -81
  80. package/dist/formats/gif/CjsGifFormat.js.map +1 -1
  81. package/dist/formats/gif/core/helpers.js +360 -360
  82. package/dist/formats/gif/index.js +2 -2
  83. package/dist/formats/gltf/CjsGltfFormat.js +290 -284
  84. package/dist/formats/gltf/CjsGltfFormat.js.map +1 -1
  85. package/dist/formats/gltf/core/helpers.js +292 -292
  86. package/dist/formats/gltf/core/json.js +79 -79
  87. package/dist/formats/gltf/core/parser.js +666 -666
  88. package/dist/formats/gltf/core/targets.js +163 -163
  89. package/dist/formats/gltf/index.js +2 -2
  90. package/dist/formats/index.js +23 -23
  91. package/dist/formats/jpeg/CjsJpegFormat.js +206 -200
  92. package/dist/formats/jpeg/CjsJpegFormat.js.map +1 -1
  93. package/dist/formats/jpeg/core/helpers.js +350 -350
  94. package/dist/formats/jpeg/core/jpeg.js +377 -377
  95. package/dist/formats/jpeg/index.js +2 -2
  96. package/dist/formats/mp3/CjsMp3Format.js +192 -186
  97. package/dist/formats/mp3/CjsMp3Format.js.map +1 -1
  98. package/dist/formats/mp3/core/helpers.js +338 -338
  99. package/dist/formats/mp3/index.js +2 -2
  100. package/dist/formats/mp4/CjsMp4Format.js +191 -185
  101. package/dist/formats/mp4/CjsMp4Format.js.map +1 -1
  102. package/dist/formats/mp4/core/helpers.js +449 -449
  103. package/dist/formats/mp4/index.js +2 -2
  104. package/dist/formats/obj/CjsObjFormat.js +253 -247
  105. package/dist/formats/obj/CjsObjFormat.js.map +1 -1
  106. package/dist/formats/obj/core/helpers.js +573 -573
  107. package/dist/formats/obj/core/json.js +64 -64
  108. package/dist/formats/obj/core/parser.js +321 -321
  109. package/dist/formats/obj/index.js +2 -2
  110. package/dist/formats/ogg/CjsOggFormat.js +88 -82
  111. package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
  112. package/dist/formats/ogg/core/helpers.js +387 -387
  113. package/dist/formats/ogg/core/imdct.js +178 -178
  114. package/dist/formats/ogg/core/vorbis.js +999 -999
  115. package/dist/formats/ogg/index.js +2 -2
  116. package/dist/formats/png/CjsPngFormat.js +195 -189
  117. package/dist/formats/png/CjsPngFormat.js.map +1 -1
  118. package/dist/formats/png/core/helpers.js +583 -583
  119. package/dist/formats/png/index.js +2 -2
  120. package/dist/formats/red/CjsRedFormat.js +261 -247
  121. package/dist/formats/red/CjsRedFormat.js.map +1 -1
  122. package/dist/formats/red/core/CjsRedReader.js +194 -201
  123. package/dist/formats/red/core/CjsRedReader.js.map +1 -1
  124. package/dist/formats/red/core/blackDefinitions.js +3 -3
  125. package/dist/formats/red/core/helpers.js +139 -136
  126. package/dist/formats/red/core/helpers.js.map +1 -1
  127. package/dist/formats/red/core/redGraph.js +68 -68
  128. package/dist/formats/red/core/schema.js +4 -4
  129. package/dist/formats/red/index.js +2 -2
  130. package/dist/formats/stl/CjsStlFormat.js +365 -304
  131. package/dist/formats/stl/CjsStlFormat.js.map +1 -1
  132. package/dist/formats/stl/core/helpers.js +261 -257
  133. package/dist/formats/stl/core/helpers.js.map +1 -1
  134. package/dist/formats/stl/core/json.js +51 -51
  135. package/dist/formats/stl/core/stl.js +629 -544
  136. package/dist/formats/stl/core/stl.js.map +1 -1
  137. package/dist/formats/stl/core/targets.js +163 -163
  138. package/dist/formats/stl/index.js +2 -2
  139. package/dist/formats/tga/CjsTgaFormat.js +192 -186
  140. package/dist/formats/tga/CjsTgaFormat.js.map +1 -1
  141. package/dist/formats/tga/core/helpers.js +446 -446
  142. package/dist/formats/tga/index.js +2 -2
  143. package/dist/formats/wav/CjsWavFormat.js +192 -186
  144. package/dist/formats/wav/CjsWavFormat.js.map +1 -1
  145. package/dist/formats/wav/core/helpers.js +328 -328
  146. package/dist/formats/wav/index.js +2 -2
  147. package/dist/formats/webm/CjsWebmFormat.js +191 -185
  148. package/dist/formats/webm/CjsWebmFormat.js.map +1 -1
  149. package/dist/formats/webm/core/helpers.js +537 -537
  150. package/dist/formats/webm/index.js +2 -2
  151. package/dist/formats/webp/CjsWebpFormat.js +86 -80
  152. package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
  153. package/dist/formats/webp/core/helpers.js +214 -214
  154. package/dist/formats/webp/index.js +2 -2
  155. package/dist/formats/wem/CjsWemFormat.js +241 -197
  156. package/dist/formats/wem/CjsWemFormat.js.map +1 -1
  157. package/dist/formats/wem/core/bitStream.js +259 -259
  158. package/dist/formats/wem/core/codebookLibrary.js +164 -164
  159. package/dist/formats/wem/core/helpers.js +417 -336
  160. package/dist/formats/wem/core/helpers.js.map +1 -1
  161. package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -30
  162. package/dist/formats/wem/core/ptadpcm.js +77 -0
  163. package/dist/formats/wem/core/ptadpcm.js.map +1 -0
  164. package/dist/formats/wem/core/resolve.js +121 -0
  165. package/dist/formats/wem/core/resolve.js.map +1 -0
  166. package/dist/formats/wem/core/wemToOgg.js +485 -485
  167. package/dist/formats/wem/index.js +2 -2
  168. package/dist/formats/yaml/CjsYamlFormat.js +83 -77
  169. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
  170. package/dist/formats/yaml/core/CjsYamlReader.js +305 -304
  171. package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
  172. package/dist/formats/yaml/core/helpers.js +160 -160
  173. package/dist/formats/yaml/index.js +2 -2
  174. package/dist/index.js +48 -52
  175. package/dist/index.js.map +1 -1
  176. package/dist/resourcePath.js +18 -18
  177. package/dist/resourceStates.js +9 -9
  178. package/dist/{generated/resources → resources}/AudioGeometryResData.js +47 -47
  179. package/dist/resources/AudioGeometryResData.js.map +1 -0
  180. package/dist/{generated/resources → resources}/GStateBindingCallbackData.js +31 -31
  181. package/dist/resources/GStateBindingCallbackData.js.map +1 -0
  182. package/dist/{generated/resources → resources}/MeshDecalData.js +37 -37
  183. package/dist/resources/MeshDecalData.js.map +1 -0
  184. package/dist/{generated/resources → resources}/MeshDecalLodData.js +34 -34
  185. package/dist/resources/MeshDecalLodData.js.map +1 -0
  186. package/dist/resources/Tr2EffectRes.js +71 -71
  187. package/dist/resources/Tr2GrannyIntersectionResult.js +60 -0
  188. package/dist/resources/Tr2GrannyIntersectionResult.js.map +1 -0
  189. package/dist/resources/Tr2GrannyStateRes.js +44 -44
  190. package/dist/resources/Tr2ImageRes.js +114 -114
  191. package/dist/resources/Tr2LightProfileRes.js +40 -40
  192. package/dist/{generated/resources → resources}/Tr2MaterialArea.js +34 -34
  193. package/dist/resources/Tr2MaterialArea.js.map +1 -0
  194. package/dist/{generated/resources → resources}/Tr2MaterialMesh.js +31 -31
  195. package/dist/resources/Tr2MaterialMesh.js.map +1 -0
  196. package/dist/{generated/resources → resources}/Tr2MaterialRes.js +34 -34
  197. package/dist/resources/Tr2MaterialRes.js.map +1 -0
  198. package/dist/{generated/resources → resources}/Tr2ShaderPermutation.js +43 -43
  199. package/dist/resources/Tr2ShaderPermutation.js.map +1 -0
  200. package/dist/{generated/resources → resources}/Tr2TextureLodManager.js +100 -60
  201. package/dist/resources/Tr2TextureLodManager.js.map +1 -0
  202. package/dist/{generated/resources → resources}/Tr2TextureLodUpdateRequest.js +37 -37
  203. package/dist/resources/Tr2TextureLodUpdateRequest.js.map +1 -0
  204. package/dist/{generated/resources → resources}/Tr2TexturePackChannel.js +37 -37
  205. package/dist/resources/Tr2TexturePackChannel.js.map +1 -0
  206. package/dist/resources/Tr2TexturePipeline.js +68 -0
  207. package/dist/resources/Tr2TexturePipeline.js.map +1 -0
  208. package/dist/{generated/resources → resources}/Tr2TexturePipelineParams.js +34 -34
  209. package/dist/resources/Tr2TexturePipelineParams.js.map +1 -0
  210. package/dist/{generated/resources → resources}/Tr2TexturePipelineStepCompress.js +40 -40
  211. package/dist/resources/Tr2TexturePipelineStepCompress.js.map +1 -0
  212. package/dist/{generated/resources → resources}/Tr2TexturePipelineStepLimitSize.js +34 -34
  213. package/dist/resources/Tr2TexturePipelineStepLimitSize.js.map +1 -0
  214. package/dist/{generated/resources → resources}/Tr2TexturePipelineStepLoad.js +31 -31
  215. package/dist/resources/Tr2TexturePipelineStepLoad.js.map +1 -0
  216. package/dist/{generated/resources → resources}/Tr2TexturePipelineStepPack.js +43 -43
  217. package/dist/resources/Tr2TexturePipelineStepPack.js.map +1 -0
  218. package/dist/resources/TriGeometryRes.js +239 -216
  219. package/dist/resources/TriGeometryRes.js.map +1 -1
  220. package/dist/{generated/resources → resources}/TriGeometryResAreaData.js +59 -59
  221. package/dist/resources/TriGeometryResAreaData.js.map +1 -0
  222. package/dist/{generated/resources → resources}/TriGeometryResJointData.js +38 -38
  223. package/dist/resources/TriGeometryResJointData.js.map +1 -0
  224. package/dist/{generated/resources → resources}/TriGeometryResLodData.js +88 -88
  225. package/dist/resources/TriGeometryResLodData.js.map +1 -0
  226. package/dist/{generated/resources → resources}/TriGeometryResMeshData.js +63 -63
  227. package/dist/resources/TriGeometryResMeshData.js.map +1 -0
  228. package/dist/{generated/resources → resources}/TriGeometryResSkeletonData.js +34 -34
  229. package/dist/resources/TriGeometryResSkeletonData.js.map +1 -0
  230. package/dist/resources/TriGrannyRes.js +43 -43
  231. package/dist/{generated/resources → resources}/TriJointBinding.js +38 -38
  232. package/dist/resources/TriJointBinding.js.map +1 -0
  233. package/dist/{generated/resources → resources}/TriMorphTargetGeometryConstants.js +46 -46
  234. package/dist/resources/TriMorphTargetGeometryConstants.js.map +1 -0
  235. package/dist/{generated/resources → resources}/TriRtGeometryConstants.js +88 -88
  236. package/dist/resources/TriRtGeometryConstants.js.map +1 -0
  237. package/dist/resources/TriTextureRes.js +304 -304
  238. package/dist/{generated/resources → resources}/enums.js +18 -18
  239. package/dist/resources/enums.js.map +1 -0
  240. package/dist/resources/resourceBoundary.js +47 -47
  241. package/dist/resources/texturePipelineBehavior.js +320 -0
  242. package/dist/resources/texturePipelineBehavior.js.map +1 -0
  243. package/dist/texture/CjsTextureArrayRes.js +406 -406
  244. package/dist/texture/CjsTextureParameterProxy.js +133 -133
  245. package/format-notices/black/LICENSE +21 -21
  246. package/format-notices/black/NOTICE +47 -47
  247. package/format-notices/bnk/LICENSE +21 -21
  248. package/format-notices/bnk/NOTICE +20 -17
  249. package/format-notices/cmf/LICENSE +21 -21
  250. package/format-notices/cmf/NOTICE +36 -36
  251. package/format-notices/dds/LICENSE +21 -21
  252. package/format-notices/dds/NOTICE +14 -14
  253. package/format-notices/fbx/LICENSE +21 -21
  254. package/format-notices/fbx/NOTICE +14 -14
  255. package/format-notices/flac/LICENSE +21 -21
  256. package/format-notices/flac/NOTICE +14 -14
  257. package/format-notices/gif/LICENSE +21 -21
  258. package/format-notices/gif/NOTICE +14 -14
  259. package/format-notices/gltf/LICENSE +21 -21
  260. package/format-notices/gltf/NOTICE +27 -27
  261. package/format-notices/jpeg/LICENSE +21 -21
  262. package/format-notices/jpeg/NOTICE +14 -14
  263. package/format-notices/mp3/LICENSE +21 -21
  264. package/format-notices/mp3/NOTICE +14 -14
  265. package/format-notices/mp4/LICENSE +21 -21
  266. package/format-notices/mp4/NOTICE +14 -14
  267. package/format-notices/obj/LICENSE +21 -21
  268. package/format-notices/obj/NOTICE +26 -26
  269. package/format-notices/ogg/LICENSE +21 -21
  270. package/format-notices/ogg/NOTICE +28 -28
  271. package/format-notices/png/LICENSE +21 -21
  272. package/format-notices/png/NOTICE +14 -14
  273. package/format-notices/red/LICENSE +21 -21
  274. package/format-notices/red/NOTICE +31 -31
  275. package/format-notices/stl/LICENSE +21 -21
  276. package/format-notices/stl/NOTICE +21 -21
  277. package/format-notices/tga/LICENSE +21 -21
  278. package/format-notices/tga/NOTICE +14 -14
  279. package/format-notices/wav/LICENSE +21 -21
  280. package/format-notices/wav/NOTICE +14 -14
  281. package/format-notices/webm/LICENSE +21 -21
  282. package/format-notices/webm/NOTICE +14 -14
  283. package/format-notices/webp/LICENSE +21 -21
  284. package/format-notices/webp/NOTICE +14 -14
  285. package/format-notices/wem/LICENSE +57 -57
  286. package/format-notices/wem/NOTICE +33 -33
  287. package/format-notices/yaml/LICENSE +21 -21
  288. package/format-notices/yaml/NOTICE +44 -44
  289. package/package.json +51 -51
  290. package/resource-lifecycle.md +679 -487
  291. package/dist/generated/resources/AudioGeometryResData.js.map +0 -1
  292. package/dist/generated/resources/CmfVertexReader.js +0 -46
  293. package/dist/generated/resources/CmfVertexReader.js.map +0 -1
  294. package/dist/generated/resources/GStateBindingCallbackData.js.map +0 -1
  295. package/dist/generated/resources/MeshDecalData.js.map +0 -1
  296. package/dist/generated/resources/MeshDecalLodData.js.map +0 -1
  297. package/dist/generated/resources/Tr2AsyncSave.js +0 -46
  298. package/dist/generated/resources/Tr2AsyncSave.js.map +0 -1
  299. package/dist/generated/resources/Tr2CmfContents.js +0 -37
  300. package/dist/generated/resources/Tr2CmfContents.js.map +0 -1
  301. package/dist/generated/resources/Tr2GrannyIntersectionResult.js +0 -58
  302. package/dist/generated/resources/Tr2GrannyIntersectionResult.js.map +0 -1
  303. package/dist/generated/resources/Tr2LoadPrepareFence.js +0 -37
  304. package/dist/generated/resources/Tr2LoadPrepareFence.js.map +0 -1
  305. package/dist/generated/resources/Tr2MaterialArea.js.map +0 -1
  306. package/dist/generated/resources/Tr2MaterialMesh.js.map +0 -1
  307. package/dist/generated/resources/Tr2MaterialRes.js.map +0 -1
  308. package/dist/generated/resources/Tr2ShaderPermutation.js.map +0 -1
  309. package/dist/generated/resources/Tr2TextureLodManager.js.map +0 -1
  310. package/dist/generated/resources/Tr2TextureLodUpdateRequest.js.map +0 -1
  311. package/dist/generated/resources/Tr2TexturePackChannel.js.map +0 -1
  312. package/dist/generated/resources/Tr2TexturePipeline.js +0 -44
  313. package/dist/generated/resources/Tr2TexturePipeline.js.map +0 -1
  314. package/dist/generated/resources/Tr2TexturePipelineParams.js.map +0 -1
  315. package/dist/generated/resources/Tr2TexturePipelineStepCompress.js.map +0 -1
  316. package/dist/generated/resources/Tr2TexturePipelineStepLimitSize.js.map +0 -1
  317. package/dist/generated/resources/Tr2TexturePipelineStepLoad.js.map +0 -1
  318. package/dist/generated/resources/Tr2TexturePipelineStepPack.js.map +0 -1
  319. package/dist/generated/resources/TriGeometryResAreaData.js.map +0 -1
  320. package/dist/generated/resources/TriGeometryResJointData.js.map +0 -1
  321. package/dist/generated/resources/TriGeometryResLodData.js.map +0 -1
  322. package/dist/generated/resources/TriGeometryResMeshData.js.map +0 -1
  323. package/dist/generated/resources/TriGeometryResSkeletonData.js.map +0 -1
  324. package/dist/generated/resources/TriJointBinding.js.map +0 -1
  325. package/dist/generated/resources/TriMorphTargetGeometryConstants.js.map +0 -1
  326. package/dist/generated/resources/TriRtGeometryConstants.js.map +0 -1
  327. package/dist/generated/resources/enums.js.map +0 -1
  328. package/dist/generated/resources/index.js +0 -32
  329. package/dist/generated/resources/index.js.map +0 -1
@@ -0,0 +1,269 @@
1
+ import { resolveHydrationAdapter } from '@carbonenginejs/core-types/hydration';
2
+ import { normalizeCarbonTypeDescriptor, CARBON_TYPE, normalizeCarbonValue } from '@carbonenginejs/core-types/types';
3
+ import { CjsReader } from './CjsReader.js';
4
+
5
+ /**
6
+ * Shared output and hydration backend for Blue persistence readers.
7
+ *
8
+ * Transports retain framing, source buffers, reference-token parsing, member
9
+ * decoding, skip/recovery behavior, and format-specific metadata. This backend
10
+ * owns common payload/runtime targets, reference emission, hydration adapter
11
+ * phases, reports, and finalization. It also provides reusable class/shape,
12
+ * descriptor assignment, and normalization helpers for transports that resolve
13
+ * persisted fields through a schema. Red does not opt into that descriptor
14
+ * path yet and retains its lenient named-field behavior.
15
+ */
16
+ class CjsBlueReader extends CjsReader {
17
+ constructor(options = {}, config = {}) {
18
+ super({
19
+ ...options
20
+ });
21
+ this.schemaRegistry = config.schemaRegistry || null;
22
+ this.schemaShapes = this.schemaRegistry ? this.schemaRegistry.createShapeMap(options.schema) : new Map();
23
+ this.defaultRegistry = config.defaultRegistry || null;
24
+ this.includeShapeContext = Boolean(config.includeShapeContext);
25
+ this.includeSourceShape = Boolean(config.includeSourceShape);
26
+ this.includeEmptyPayloadType = Boolean(config.includeEmptyPayloadType);
27
+ this.requirePayloadReferenceTarget = Boolean(config.requirePayloadReferenceTarget);
28
+ this.includePayloadValuesField = Boolean(config.includePayloadValuesField);
29
+ this.validatePayloadReservedFields = Boolean(config.validatePayloadReservedFields);
30
+ this.payloadReservedFields = null;
31
+ this.adapter = resolveHydrationAdapter(options);
32
+ this.hydrationOptions = {
33
+ ...options,
34
+ markDirty: false,
35
+ skipUpdate: true,
36
+ skipEvents: true
37
+ };
38
+ this.ResetBlueReadState();
39
+ }
40
+ ResetBlueReadState() {
41
+ this.reports = [];
42
+ this.runtimeInstances = [];
43
+ }
44
+ FinalizeRuntimeInstances() {
45
+ for (const record of this.runtimeInstances) {
46
+ this.adapter.finalize(record.instance, this.CreateRuntimeContext(record.kind, record.shape, false));
47
+ }
48
+ }
49
+ CreateRuntimeTarget(kind, shape = null) {
50
+ const built = this.adapter.construct(kind, this.CreateRuntimeContext(kind, shape, true, this.options));
51
+ if (built !== undefined) return built;
52
+ const ClassConstructor = this.ResolveClass(kind);
53
+ if (ClassConstructor) return new ClassConstructor();
54
+ return this.CreateRuntimeFallback(kind, shape);
55
+ }
56
+ CreateRuntimeFallback(kind, shape = null) {
57
+ const target = {
58
+ _sourceClassName: this.includeSourceShape ? kind : kind || null
59
+ };
60
+ if (this.includeSourceShape) target._sourceShape = shape || null;
61
+ return target;
62
+ }
63
+ ApplyRuntimeValues(target, values, kind, shape = null) {
64
+ this.adapter.applyValues(target, values, this.CreateRuntimeContext(kind, shape, true, this.hydrationOptions));
65
+ this.runtimeInstances.push({
66
+ instance: target,
67
+ kind,
68
+ shape
69
+ });
70
+ }
71
+ CreateRuntimeContext(kind, shape, includeOptions, options = null) {
72
+ const context = {
73
+ kind
74
+ };
75
+ if (this.includeShapeContext) context.shape = shape;
76
+ if (includeOptions) context.options = options;
77
+ return context;
78
+ }
79
+ CreatePayloadTarget(kind) {
80
+ const typeField = this.GetPayloadTypeField();
81
+ return typeField && (kind || this.includeEmptyPayloadType) ? {
82
+ [typeField]: kind
83
+ } : {};
84
+ }
85
+ CreatePayloadReference(targetObject, referenceId) {
86
+ const idField = this.GetPayloadIdField();
87
+ const referenceField = this.GetPayloadReferenceField();
88
+ if (idField && this.requirePayloadReferenceTarget) {
89
+ this.AssignPayloadReferenceId(targetObject, idField, referenceId);
90
+ } else if (idField && targetObject && typeof targetObject === "object") {
91
+ this.AssignPayloadReferenceId(targetObject, idField, referenceId);
92
+ }
93
+ return referenceField ? {
94
+ [referenceField]: referenceId
95
+ } : targetObject;
96
+ }
97
+ GetPayloadTypeField() {
98
+ return this.GetPayloadField("payloadTypeField", "_type");
99
+ }
100
+ GetPayloadIdField() {
101
+ return this.GetPayloadField("payloadIdField", "_id");
102
+ }
103
+ GetPayloadReferenceField() {
104
+ return this.GetPayloadField("payloadReferenceField", "_reference");
105
+ }
106
+ GetPayloadValuesField() {
107
+ return this.GetPayloadField("payloadValuesField", "_values");
108
+ }
109
+ GetPayloadField(name, fallback) {
110
+ const value = this.options[name];
111
+ if (!this.validatePayloadReservedFields) {
112
+ return value === false ? null : value || fallback;
113
+ }
114
+ if (value === false) return null;
115
+ if (value === undefined) return fallback;
116
+ if (typeof value === "string" && value) return value;
117
+ throw this.PayloadError("PAYLOAD_MARKER_CONFIGURATION", `${name} must be a non-empty string or false`);
118
+ }
119
+ ValidatePayloadConfiguration() {
120
+ if (!this.validatePayloadReservedFields) {
121
+ this.payloadReservedFields = null;
122
+ return;
123
+ }
124
+ const fields = [["type", this.GetPayloadTypeField()], ["id", this.GetPayloadIdField()], ["reference", this.GetPayloadReferenceField()]];
125
+ const idField = this.GetPayloadIdField();
126
+ const referenceField = this.GetPayloadReferenceField();
127
+ const valuesField = this.includePayloadValuesField && idField ? this.GetPayloadValuesField() : null;
128
+ if (valuesField) fields.push(["values", valuesField]);
129
+ if (referenceField && !idField) {
130
+ throw this.PayloadError("PAYLOAD_MARKER_CONFIGURATION", "payloadReferenceField requires payloadIdField");
131
+ }
132
+ if (idField && this.includePayloadValuesField && !valuesField) {
133
+ throw this.PayloadError("PAYLOAD_MARKER_CONFIGURATION", "payloadIdField requires payloadValuesField for sequence identity");
134
+ }
135
+ const reserved = new Map();
136
+ for (const [role, field] of fields) {
137
+ if (!field) continue;
138
+ if (reserved.has(field)) {
139
+ throw this.PayloadError("PAYLOAD_MARKER_CONFIGURATION", `payload ${role} field "${field}" duplicates the ${reserved.get(field)} field`);
140
+ }
141
+ reserved.set(field, role);
142
+ }
143
+ this.payloadReservedFields = reserved;
144
+ }
145
+ AssertPayloadFieldAvailable(field) {
146
+ if (!this.validatePayloadReservedFields) return;
147
+ if (!this.payloadReservedFields) this.ValidatePayloadConfiguration();
148
+ const role = this.payloadReservedFields.get(field);
149
+ if (!role) return;
150
+ throw this.PayloadError("PAYLOAD_RESERVED_FIELD_COLLISION", `payload field "${field}" is reserved for the ${role} marker`);
151
+ }
152
+ AssignPayloadValues(targetObject, values) {
153
+ for (const [field, value] of Object.entries(values)) {
154
+ this.AssertPayloadFieldAvailable(field);
155
+ this.DefinePayloadProperty(targetObject, field, value);
156
+ }
157
+ }
158
+ AssignPayloadReferenceId(targetObject, idField, referenceId) {
159
+ if (!Object.hasOwn(targetObject, idField)) {
160
+ this.DefinePayloadProperty(targetObject, idField, referenceId);
161
+ return;
162
+ }
163
+ if (!this.validatePayloadReservedFields) return;
164
+ if (targetObject[idField] === referenceId) return;
165
+ throw this.PayloadError("PAYLOAD_RESERVED_FIELD_COLLISION", `payload ID field "${idField}" conflicts with reference ${referenceId}`);
166
+ }
167
+ PayloadError(code, message) {
168
+ const error = new TypeError(`${code}: ${message}`);
169
+ error.code = code;
170
+ return error;
171
+ }
172
+ DefinePayloadProperty(targetObject, field, value) {
173
+ Object.defineProperty(targetObject, field, {
174
+ value,
175
+ enumerable: true,
176
+ configurable: true,
177
+ writable: true
178
+ });
179
+ }
180
+ AssignRuntimeFieldValue(targetObject, target, value) {
181
+ if (target.unknown) {
182
+ targetObject[target.wireName] = value;
183
+ return;
184
+ }
185
+ if (target.indexed) {
186
+ let current = targetObject[target.field.name];
187
+ if (!current || typeof current !== "object") {
188
+ current = Number.isInteger(target.index) ? [] : {};
189
+ targetObject[target.field.name] = current;
190
+ }
191
+ current[target.key] = this.NormalizeRuntimeFieldValue(value, target.field);
192
+ return;
193
+ }
194
+ targetObject[target.field.name] = this.NormalizeRuntimeFieldValue(value, target.field);
195
+ }
196
+ AssignPayloadFieldValue(targetObject, target, value) {
197
+ this.AssertPayloadFieldAvailable(target.unknown ? target.wireName : target.field.name);
198
+ if (target.unknown) {
199
+ if (this.validatePayloadReservedFields) {
200
+ this.DefinePayloadProperty(targetObject, target.wireName, value);
201
+ } else {
202
+ targetObject[target.wireName] = value;
203
+ }
204
+ return;
205
+ }
206
+ if (target.indexed) {
207
+ let current = this.validatePayloadReservedFields ? Object.hasOwn(targetObject, target.field.name) ? targetObject[target.field.name] : null : targetObject[target.field.name];
208
+ if (!current || typeof current !== "object") {
209
+ current = Number.isInteger(target.index) ? [] : {};
210
+ if (this.validatePayloadReservedFields) {
211
+ this.DefinePayloadProperty(targetObject, target.field.name, current);
212
+ } else {
213
+ targetObject[target.field.name] = current;
214
+ }
215
+ }
216
+ current[target.key] = value;
217
+ return;
218
+ }
219
+ if (this.validatePayloadReservedFields) {
220
+ this.DefinePayloadProperty(targetObject, target.field.name, value);
221
+ } else {
222
+ targetObject[target.field.name] = value;
223
+ }
224
+ }
225
+ NormalizeRuntimeFieldValue(value, field) {
226
+ if (!field) return value;
227
+
228
+ // Object-graph fields already contain constructed instances. Preserve
229
+ // those identities and normalize only scalar/math leaf values.
230
+ const descriptor = normalizeCarbonTypeDescriptor(field);
231
+ const kind = descriptor.kind;
232
+ if (kind === CARBON_TYPE.ARRAY && Array.isArray(value)) return value;
233
+ if ((kind === CARBON_TYPE.OBJECT_REF || kind === CARBON_TYPE.STRUCT || kind === CARBON_TYPE.RAW_STRUCT || kind === CARBON_TYPE.UNKNOWN) && value && typeof value === "object") {
234
+ return value;
235
+ }
236
+ if (CjsBlueReader.isShapeIncompatibleMathArray(value, descriptor)) return value;
237
+ return normalizeCarbonValue(value, field);
238
+ }
239
+ ResolveSourceShape(kind) {
240
+ const registry = this.options.registry || null;
241
+ if (registry?.GetSourceShape) return registry.GetSourceShape(kind);
242
+ const sourceShapes = this.options.sourceShapes || null;
243
+ if (sourceShapes?.GetSourceShape) return sourceShapes.GetSourceShape(kind);
244
+ if (sourceShapes) {
245
+ const shape = sourceShapes instanceof Map ? sourceShapes.get(kind) : sourceShapes[kind];
246
+ if (shape) {
247
+ return this.schemaRegistry?.normalizeShape ? this.schemaRegistry.normalizeShape(shape) : shape;
248
+ }
249
+ }
250
+ return this.schemaShapes.get(kind) || null;
251
+ }
252
+ ResolveClass(kind) {
253
+ if (!kind) return null;
254
+ const classes = this.options.classes || {};
255
+ const Registry = this.options.registry || this.defaultRegistry;
256
+ return classes[kind] || (Registry ? Registry.GetConstructor(kind) : null);
257
+ }
258
+ TransformPath(value) {
259
+ const handler = this.options.pathHandler;
260
+ return typeof handler === "function" ? handler(value) : value;
261
+ }
262
+ static isShapeIncompatibleMathArray(value, descriptor) {
263
+ const expectedLength = descriptor?.length;
264
+ return Array.isArray(value) && Number.isInteger(expectedLength) && value.length !== expectedLength;
265
+ }
266
+ }
267
+
268
+ export { CjsBlueReader };
269
+ //# sourceMappingURL=CjsBlueReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CjsBlueReader.js","sources":["../../../src/format/CjsBlueReader.js"],"sourcesContent":["import { resolveHydrationAdapter } from \"@carbonenginejs/core-types/hydration\";\nimport {\n CARBON_TYPE,\n normalizeCarbonTypeDescriptor,\n normalizeCarbonValue\n} from \"@carbonenginejs/core-types/types\";\n\nimport { CjsReader } from \"./CjsReader.js\";\n\n/**\n * Shared output and hydration backend for Blue persistence readers.\n *\n * Transports retain framing, source buffers, reference-token parsing, member\n * decoding, skip/recovery behavior, and format-specific metadata. This backend\n * owns common payload/runtime targets, reference emission, hydration adapter\n * phases, reports, and finalization. It also provides reusable class/shape,\n * descriptor assignment, and normalization helpers for transports that resolve\n * persisted fields through a schema. Red does not opt into that descriptor\n * path yet and retains its lenient named-field behavior.\n */\nexport class CjsBlueReader extends CjsReader\n{\n constructor(options = {}, config = {})\n {\n super({ ...options });\n\n this.schemaRegistry = config.schemaRegistry || null;\n this.schemaShapes = this.schemaRegistry\n ? this.schemaRegistry.createShapeMap(options.schema)\n : new Map();\n this.defaultRegistry = config.defaultRegistry || null;\n this.includeShapeContext = Boolean(config.includeShapeContext);\n this.includeSourceShape = Boolean(config.includeSourceShape);\n this.includeEmptyPayloadType = Boolean(config.includeEmptyPayloadType);\n this.requirePayloadReferenceTarget = Boolean(config.requirePayloadReferenceTarget);\n this.includePayloadValuesField = Boolean(config.includePayloadValuesField);\n this.validatePayloadReservedFields = Boolean(config.validatePayloadReservedFields);\n this.payloadReservedFields = null;\n this.adapter = resolveHydrationAdapter(options);\n this.hydrationOptions = {\n ...options,\n markDirty: false,\n skipUpdate: true,\n skipEvents: true\n };\n this.ResetBlueReadState();\n }\n\n ResetBlueReadState()\n {\n this.reports = [];\n this.runtimeInstances = [];\n }\n\n FinalizeRuntimeInstances()\n {\n for (const record of this.runtimeInstances)\n {\n this.adapter.finalize(\n record.instance,\n this.CreateRuntimeContext(record.kind, record.shape, false)\n );\n }\n }\n\n CreateRuntimeTarget(kind, shape = null)\n {\n const built = this.adapter.construct(\n kind,\n this.CreateRuntimeContext(kind, shape, true, this.options)\n );\n if (built !== undefined) return built;\n\n const ClassConstructor = this.ResolveClass(kind);\n if (ClassConstructor) return new ClassConstructor();\n\n return this.CreateRuntimeFallback(kind, shape);\n }\n\n CreateRuntimeFallback(kind, shape = null)\n {\n const target = { _sourceClassName: this.includeSourceShape ? kind : (kind || null) };\n if (this.includeSourceShape) target._sourceShape = shape || null;\n return target;\n }\n\n ApplyRuntimeValues(target, values, kind, shape = null)\n {\n this.adapter.applyValues(\n target,\n values,\n this.CreateRuntimeContext(kind, shape, true, this.hydrationOptions)\n );\n this.runtimeInstances.push({ instance: target, kind, shape });\n }\n\n CreateRuntimeContext(kind, shape, includeOptions, options = null)\n {\n const context = { kind };\n if (this.includeShapeContext) context.shape = shape;\n if (includeOptions) context.options = options;\n return context;\n }\n\n CreatePayloadTarget(kind)\n {\n const typeField = this.GetPayloadTypeField();\n return typeField && (kind || this.includeEmptyPayloadType) ? { [typeField]: kind } : {};\n }\n\n CreatePayloadReference(targetObject, referenceId)\n {\n const idField = this.GetPayloadIdField();\n const referenceField = this.GetPayloadReferenceField();\n\n if (idField && this.requirePayloadReferenceTarget)\n {\n this.AssignPayloadReferenceId(targetObject, idField, referenceId);\n }\n else if (idField && targetObject && typeof targetObject === \"object\")\n {\n this.AssignPayloadReferenceId(targetObject, idField, referenceId);\n }\n\n return referenceField ? { [referenceField]: referenceId } : targetObject;\n }\n\n GetPayloadTypeField()\n {\n return this.GetPayloadField(\"payloadTypeField\", \"_type\");\n }\n\n GetPayloadIdField()\n {\n return this.GetPayloadField(\"payloadIdField\", \"_id\");\n }\n\n GetPayloadReferenceField()\n {\n return this.GetPayloadField(\"payloadReferenceField\", \"_reference\");\n }\n\n GetPayloadValuesField()\n {\n return this.GetPayloadField(\"payloadValuesField\", \"_values\");\n }\n\n GetPayloadField(name, fallback)\n {\n const value = this.options[name];\n if (!this.validatePayloadReservedFields)\n {\n return value === false ? null : (value || fallback);\n }\n if (value === false) return null;\n if (value === undefined) return fallback;\n if (typeof value === \"string\" && value) return value;\n throw this.PayloadError(\n \"PAYLOAD_MARKER_CONFIGURATION\",\n `${name} must be a non-empty string or false`\n );\n }\n\n ValidatePayloadConfiguration()\n {\n if (!this.validatePayloadReservedFields)\n {\n this.payloadReservedFields = null;\n return;\n }\n\n const fields = [\n [ \"type\", this.GetPayloadTypeField() ],\n [ \"id\", this.GetPayloadIdField() ],\n [ \"reference\", this.GetPayloadReferenceField() ]\n ];\n const idField = this.GetPayloadIdField();\n const referenceField = this.GetPayloadReferenceField();\n const valuesField = this.includePayloadValuesField && idField\n ? this.GetPayloadValuesField()\n : null;\n if (valuesField) fields.push([ \"values\", valuesField ]);\n if (referenceField && !idField)\n {\n throw this.PayloadError(\n \"PAYLOAD_MARKER_CONFIGURATION\",\n \"payloadReferenceField requires payloadIdField\"\n );\n }\n if (idField && this.includePayloadValuesField && !valuesField)\n {\n throw this.PayloadError(\n \"PAYLOAD_MARKER_CONFIGURATION\",\n \"payloadIdField requires payloadValuesField for sequence identity\"\n );\n }\n\n const reserved = new Map();\n for (const [ role, field ] of fields)\n {\n if (!field) continue;\n if (reserved.has(field))\n {\n throw this.PayloadError(\n \"PAYLOAD_MARKER_CONFIGURATION\",\n `payload ${role} field \"${field}\" duplicates the ${reserved.get(field)} field`\n );\n }\n reserved.set(field, role);\n }\n this.payloadReservedFields = reserved;\n }\n\n AssertPayloadFieldAvailable(field)\n {\n if (!this.validatePayloadReservedFields) return;\n if (!this.payloadReservedFields) this.ValidatePayloadConfiguration();\n const role = this.payloadReservedFields.get(field);\n if (!role) return;\n throw this.PayloadError(\n \"PAYLOAD_RESERVED_FIELD_COLLISION\",\n `payload field \"${field}\" is reserved for the ${role} marker`\n );\n }\n\n AssignPayloadValues(targetObject, values)\n {\n for (const [ field, value ] of Object.entries(values))\n {\n this.AssertPayloadFieldAvailable(field);\n this.DefinePayloadProperty(targetObject, field, value);\n }\n }\n\n AssignPayloadReferenceId(targetObject, idField, referenceId)\n {\n if (!Object.hasOwn(targetObject, idField))\n {\n this.DefinePayloadProperty(targetObject, idField, referenceId);\n return;\n }\n if (!this.validatePayloadReservedFields) return;\n if (targetObject[idField] === referenceId) return;\n throw this.PayloadError(\n \"PAYLOAD_RESERVED_FIELD_COLLISION\",\n `payload ID field \"${idField}\" conflicts with reference ${referenceId}`\n );\n }\n\n PayloadError(code, message)\n {\n const error = new TypeError(`${code}: ${message}`);\n error.code = code;\n return error;\n }\n\n DefinePayloadProperty(targetObject, field, value)\n {\n Object.defineProperty(targetObject, field, {\n value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n }\n\n AssignRuntimeFieldValue(targetObject, target, value)\n {\n if (target.unknown)\n {\n targetObject[target.wireName] = value;\n return;\n }\n\n if (target.indexed)\n {\n let current = targetObject[target.field.name];\n if (!current || typeof current !== \"object\")\n {\n current = Number.isInteger(target.index) ? [] : {};\n targetObject[target.field.name] = current;\n }\n\n current[target.key] = this.NormalizeRuntimeFieldValue(value, target.field);\n return;\n }\n\n targetObject[target.field.name] = this.NormalizeRuntimeFieldValue(value, target.field);\n }\n\n AssignPayloadFieldValue(targetObject, target, value)\n {\n this.AssertPayloadFieldAvailable(target.unknown ? target.wireName : target.field.name);\n if (target.unknown)\n {\n if (this.validatePayloadReservedFields)\n {\n this.DefinePayloadProperty(targetObject, target.wireName, value);\n }\n else\n {\n targetObject[target.wireName] = value;\n }\n return;\n }\n\n if (target.indexed)\n {\n let current = this.validatePayloadReservedFields\n ? (Object.hasOwn(targetObject, target.field.name) ? targetObject[target.field.name] : null)\n : targetObject[target.field.name];\n if (!current || typeof current !== \"object\")\n {\n current = Number.isInteger(target.index) ? [] : {};\n if (this.validatePayloadReservedFields)\n {\n this.DefinePayloadProperty(targetObject, target.field.name, current);\n }\n else\n {\n targetObject[target.field.name] = current;\n }\n }\n\n current[target.key] = value;\n return;\n }\n\n if (this.validatePayloadReservedFields)\n {\n this.DefinePayloadProperty(targetObject, target.field.name, value);\n }\n else\n {\n targetObject[target.field.name] = value;\n }\n }\n\n NormalizeRuntimeFieldValue(value, field)\n {\n if (!field) return value;\n\n // Object-graph fields already contain constructed instances. Preserve\n // those identities and normalize only scalar/math leaf values.\n const descriptor = normalizeCarbonTypeDescriptor(field);\n const kind = descriptor.kind;\n\n if (kind === CARBON_TYPE.ARRAY && Array.isArray(value)) return value;\n if ((kind === CARBON_TYPE.OBJECT_REF\n || kind === CARBON_TYPE.STRUCT\n || kind === CARBON_TYPE.RAW_STRUCT\n || kind === CARBON_TYPE.UNKNOWN)\n && value && typeof value === \"object\")\n {\n return value;\n }\n if (CjsBlueReader.isShapeIncompatibleMathArray(value, descriptor)) return value;\n\n return normalizeCarbonValue(value, field);\n }\n\n ResolveSourceShape(kind)\n {\n const registry = this.options.registry || null;\n if (registry?.GetSourceShape) return registry.GetSourceShape(kind);\n\n const sourceShapes = this.options.sourceShapes || null;\n if (sourceShapes?.GetSourceShape) return sourceShapes.GetSourceShape(kind);\n if (sourceShapes)\n {\n const shape = sourceShapes instanceof Map ? sourceShapes.get(kind) : sourceShapes[kind];\n if (shape)\n {\n return this.schemaRegistry?.normalizeShape\n ? this.schemaRegistry.normalizeShape(shape)\n : shape;\n }\n }\n\n return this.schemaShapes.get(kind) || null;\n }\n\n ResolveClass(kind)\n {\n if (!kind) return null;\n\n const classes = this.options.classes || {};\n const Registry = this.options.registry || this.defaultRegistry;\n return classes[kind] || (Registry ? Registry.GetConstructor(kind) : null);\n }\n\n TransformPath(value)\n {\n const handler = this.options.pathHandler;\n return typeof handler === \"function\" ? handler(value) : value;\n }\n\n static isShapeIncompatibleMathArray(value, descriptor)\n {\n const expectedLength = descriptor?.length;\n return Array.isArray(value)\n && Number.isInteger(expectedLength)\n && value.length !== expectedLength;\n }\n}\n\nexport default CjsBlueReader;\n"],"names":["CjsBlueReader","CjsReader","constructor","options","config","schemaRegistry","schemaShapes","createShapeMap","schema","Map","defaultRegistry","includeShapeContext","Boolean","includeSourceShape","includeEmptyPayloadType","requirePayloadReferenceTarget","includePayloadValuesField","validatePayloadReservedFields","payloadReservedFields","adapter","resolveHydrationAdapter","hydrationOptions","markDirty","skipUpdate","skipEvents","ResetBlueReadState","reports","runtimeInstances","FinalizeRuntimeInstances","record","finalize","instance","CreateRuntimeContext","kind","shape","CreateRuntimeTarget","built","construct","undefined","ClassConstructor","ResolveClass","CreateRuntimeFallback","target","_sourceClassName","_sourceShape","ApplyRuntimeValues","values","applyValues","push","includeOptions","context","CreatePayloadTarget","typeField","GetPayloadTypeField","CreatePayloadReference","targetObject","referenceId","idField","GetPayloadIdField","referenceField","GetPayloadReferenceField","AssignPayloadReferenceId","GetPayloadField","GetPayloadValuesField","name","fallback","value","PayloadError","ValidatePayloadConfiguration","fields","valuesField","reserved","role","field","has","get","set","AssertPayloadFieldAvailable","AssignPayloadValues","Object","entries","DefinePayloadProperty","hasOwn","code","message","error","TypeError","defineProperty","enumerable","configurable","writable","AssignRuntimeFieldValue","unknown","wireName","indexed","current","Number","isInteger","index","key","NormalizeRuntimeFieldValue","AssignPayloadFieldValue","descriptor","normalizeCarbonTypeDescriptor","CARBON_TYPE","ARRAY","Array","isArray","OBJECT_REF","STRUCT","RAW_STRUCT","UNKNOWN","isShapeIncompatibleMathArray","normalizeCarbonValue","ResolveSourceShape","registry","GetSourceShape","sourceShapes","normalizeShape","classes","Registry","GetConstructor","TransformPath","handler","pathHandler","expectedLength","length"],"mappings":"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"}