@carbonenginejs/runtime-resource 0.9.2 → 0.11.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 (544) hide show
  1. package/NOTICE +3 -2
  2. package/README.md +47 -6
  3. package/dist/CjsMotherLode.js +88 -88
  4. package/dist/CjsMotherLode.js.map +1 -1
  5. package/dist/CjsResMan.js +717 -228
  6. package/dist/CjsResMan.js.map +1 -1
  7. package/dist/CjsResManFetchProvider.js +94 -0
  8. package/dist/CjsResManFetchProvider.js.map +1 -0
  9. package/dist/{CjsResManQueue.js → CjsResManWorkQueue.js} +112 -25
  10. package/dist/CjsResManWorkQueue.js.map +1 -0
  11. package/dist/format/CjsBlueReader.js +89 -0
  12. package/dist/format/CjsBlueReader.js.map +1 -1
  13. package/dist/format/CjsFormat.js +42 -16
  14. package/dist/format/CjsFormat.js.map +1 -1
  15. package/dist/format/CjsReader.js +4 -0
  16. package/dist/format/CjsReader.js.map +1 -1
  17. package/dist/format/CjsResourceProbe.js +2 -0
  18. package/dist/format/CjsResourceProbe.js.map +1 -1
  19. package/dist/format/effect/effectPermutationGraph.js +257 -0
  20. package/dist/format/effect/effectPermutationGraph.js.map +1 -0
  21. package/dist/format/effect/effectReflectionPackage.js +636 -0
  22. package/dist/format/effect/effectReflectionPackage.js.map +1 -0
  23. package/dist/format/effect/sha256.js +114 -0
  24. package/dist/format/effect/sha256.js.map +1 -0
  25. package/dist/format/payloadContract.js +20 -0
  26. package/dist/format/payloadContract.js.map +1 -1
  27. package/dist/formats/black/CjsBlackFormat.js +15 -1
  28. package/dist/formats/black/CjsBlackFormat.js.map +1 -1
  29. package/dist/formats/black/core/CjsBlackBinaryReader.js +103 -0
  30. package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -1
  31. package/dist/formats/black/core/CjsBlackPropertyReaders.js +61 -0
  32. package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
  33. package/dist/formats/black/core/CjsBlackReader.js +125 -0
  34. package/dist/formats/black/core/CjsBlackReader.js.map +1 -1
  35. package/dist/formats/black/core/CjsBlackSchemaRegistry.js +103 -0
  36. package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
  37. package/dist/formats/black/core/helpers.js +17 -0
  38. package/dist/formats/black/core/helpers.js.map +1 -1
  39. package/dist/formats/bnk/CjsBnkFormat.js +8 -0
  40. package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
  41. package/dist/formats/bnk/core/helpers.js +20 -0
  42. package/dist/formats/bnk/core/helpers.js.map +1 -1
  43. package/dist/formats/bnk/core/musicNodes.js +40 -3
  44. package/dist/formats/bnk/core/musicNodes.js.map +1 -1
  45. package/dist/formats/bnk/core/soundbanksInfo.js +2 -0
  46. package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -1
  47. package/dist/formats/cmf/core/binary.js +71 -0
  48. package/dist/formats/cmf/core/binary.js.map +1 -1
  49. package/dist/formats/cmf/core/buffers.js +4 -0
  50. package/dist/formats/cmf/core/buffers.js.map +1 -1
  51. package/dist/formats/cmf/core/helpers.js +31 -0
  52. package/dist/formats/cmf/core/helpers.js.map +1 -1
  53. package/dist/formats/cmf/core/schema.js +10 -0
  54. package/dist/formats/cmf/core/schema.js.map +1 -1
  55. package/dist/formats/cmf/core/shared.js +9 -0
  56. package/dist/formats/cmf/core/shared.js.map +1 -1
  57. package/dist/formats/cmf/core/writer.js +54 -0
  58. package/dist/formats/cmf/core/writer.js.map +1 -1
  59. package/dist/formats/dds/core/bc6h.js +10 -0
  60. package/dist/formats/dds/core/bc6h.js.map +1 -1
  61. package/dist/formats/dds/core/bc7.js +16 -0
  62. package/dist/formats/dds/core/bc7.js.map +1 -1
  63. package/dist/formats/dds/core/helpers.js +47 -0
  64. package/dist/formats/dds/core/helpers.js.map +1 -1
  65. package/dist/formats/dxbc/CjsDxbcFormat.js +142 -0
  66. package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -0
  67. package/dist/formats/dxbc/core/DxbcReader.js +266 -0
  68. package/dist/formats/dxbc/core/DxbcReader.js.map +1 -0
  69. package/dist/formats/dxbc/core/container.js +169 -0
  70. package/dist/formats/dxbc/core/container.js.map +1 -0
  71. package/dist/formats/dxbc/core/decoder.js +789 -0
  72. package/dist/formats/dxbc/core/decoder.js.map +1 -0
  73. package/dist/formats/dxbc/core/errors.js +19 -0
  74. package/dist/formats/dxbc/core/errors.js.map +1 -0
  75. package/dist/formats/dxbc/core/helpers.js +220 -0
  76. package/dist/formats/dxbc/core/helpers.js.map +1 -0
  77. package/dist/formats/dxbc/core/opcodes.js +45 -0
  78. package/dist/formats/dxbc/core/opcodes.js.map +1 -0
  79. package/dist/formats/dxbc/core/program.js +91 -0
  80. package/dist/formats/dxbc/core/program.js.map +1 -0
  81. package/dist/formats/dxbc/core/signature.js +172 -0
  82. package/dist/formats/dxbc/core/signature.js.map +1 -0
  83. package/dist/formats/dxbc/index.js +2 -0
  84. package/dist/formats/dxbc/index.js.map +1 -0
  85. package/dist/formats/fbx/core/helpers.js +21 -0
  86. package/dist/formats/fbx/core/helpers.js.map +1 -1
  87. package/dist/formats/flac/CjsFlacFormat.js +49 -0
  88. package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
  89. package/dist/formats/flac/core/helpers.js +20 -0
  90. package/dist/formats/flac/core/helpers.js.map +1 -1
  91. package/dist/formats/gif/CjsGifFormat.js +49 -0
  92. package/dist/formats/gif/CjsGifFormat.js.map +1 -1
  93. package/dist/formats/gif/core/helpers.js +20 -0
  94. package/dist/formats/gif/core/helpers.js.map +1 -1
  95. package/dist/formats/gltf/core/helpers.js +15 -0
  96. package/dist/formats/gltf/core/helpers.js.map +1 -1
  97. package/dist/formats/gltf/core/parser.js +13 -0
  98. package/dist/formats/gltf/core/parser.js.map +1 -1
  99. package/dist/formats/gltf/core/targets.js +10 -0
  100. package/dist/formats/gltf/core/targets.js.map +1 -1
  101. package/dist/formats/gr2/core/bitknit2.js +2 -0
  102. package/dist/formats/gr2/core/bitknit2.js.map +1 -1
  103. package/dist/formats/gr2/core/helpers.js +20 -0
  104. package/dist/formats/gr2/core/helpers.js.map +1 -1
  105. package/dist/formats/gr2/core/targets.js +10 -0
  106. package/dist/formats/gr2/core/targets.js.map +1 -1
  107. package/dist/formats/hlsl/CjsHlslFormat.js +254 -0
  108. package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -0
  109. package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -0
  110. package/dist/formats/hlsl/core/HlslBinaryUtils.js.map +1 -0
  111. package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -0
  112. package/dist/formats/hlsl/core/HlslEffectReadError.js.map +1 -0
  113. package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -0
  114. package/dist/formats/hlsl/core/HlslEffectStateManager.js.map +1 -0
  115. package/dist/formats/hlsl/core/HlslReader.js +266 -0
  116. package/dist/formats/hlsl/core/HlslReader.js.map +1 -0
  117. package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -0
  118. package/dist/formats/hlsl/core/HlslRenderStateSetup.js.map +1 -0
  119. package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -0
  120. package/dist/formats/hlsl/core/HlslResourceSetDescription.js.map +1 -0
  121. package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -0
  122. package/dist/formats/hlsl/core/HlslShaderBytecode.js.map +1 -0
  123. package/dist/formats/hlsl/core/analysis.js +51 -0
  124. package/dist/formats/hlsl/core/analysis.js.map +1 -0
  125. package/dist/formats/hlsl/core/helpers.js +270 -0
  126. package/dist/formats/hlsl/core/helpers.js.map +1 -0
  127. package/dist/formats/hlsl/core/json.js +284 -0
  128. package/dist/formats/hlsl/core/json.js.map +1 -0
  129. package/dist/formats/hlsl/core/metadata.js +327 -0
  130. package/dist/formats/hlsl/core/metadata.js.map +1 -0
  131. package/dist/formats/hlsl/core/portableReflection.js +848 -0
  132. package/dist/formats/hlsl/core/portableReflection.js.map +1 -0
  133. package/dist/formats/hlsl/core/render-states.js +280 -0
  134. package/dist/formats/hlsl/core/render-states.js.map +1 -0
  135. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -0
  136. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js.map +1 -0
  137. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +294 -0
  138. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -0
  139. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -0
  140. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js.map +1 -0
  141. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +416 -0
  142. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -0
  143. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -0
  144. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js.map +1 -0
  145. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +742 -0
  146. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js.map +1 -0
  147. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -0
  148. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js.map +1 -0
  149. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -0
  150. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js.map +1 -0
  151. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -0
  152. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js.map +1 -0
  153. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -0
  154. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -0
  155. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -0
  156. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js.map +1 -0
  157. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -0
  158. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js.map +1 -0
  159. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -0
  160. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js.map +1 -0
  161. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -0
  162. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js.map +1 -0
  163. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -0
  164. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js.map +1 -0
  165. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -0
  166. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js.map +1 -0
  167. package/dist/formats/hlsl/index.js +2 -0
  168. package/dist/formats/hlsl/index.js.map +1 -0
  169. package/dist/formats/hlsl/portable.js +2 -0
  170. package/dist/formats/hlsl/portable.js.map +1 -0
  171. package/dist/formats/index.js +4 -0
  172. package/dist/formats/index.js.map +1 -1
  173. package/dist/formats/jpeg/core/helpers.js +52 -0
  174. package/dist/formats/jpeg/core/helpers.js.map +1 -1
  175. package/dist/formats/jpeg/core/jpeg.js +93 -0
  176. package/dist/formats/jpeg/core/jpeg.js.map +1 -1
  177. package/dist/formats/mp3/core/helpers.js +37 -0
  178. package/dist/formats/mp3/core/helpers.js.map +1 -1
  179. package/dist/formats/mp4/core/helpers.js +35 -0
  180. package/dist/formats/mp4/core/helpers.js.map +1 -1
  181. package/dist/formats/ogg/CjsOggFormat.js +49 -0
  182. package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
  183. package/dist/formats/ogg/core/helpers.js +23 -0
  184. package/dist/formats/ogg/core/helpers.js.map +1 -1
  185. package/dist/formats/ogg/core/vorbis.js +13 -0
  186. package/dist/formats/ogg/core/vorbis.js.map +1 -1
  187. package/dist/formats/png/core/helpers.js +52 -0
  188. package/dist/formats/png/core/helpers.js.map +1 -1
  189. package/dist/formats/red/CjsRedFormat.js +2 -0
  190. package/dist/formats/red/CjsRedFormat.js.map +1 -1
  191. package/dist/formats/red/core/CjsRedReader.js +52 -0
  192. package/dist/formats/red/core/CjsRedReader.js.map +1 -1
  193. package/dist/formats/red/core/helpers.js +19 -0
  194. package/dist/formats/red/core/helpers.js.map +1 -1
  195. package/dist/formats/stl/core/stl.js +8 -0
  196. package/dist/formats/stl/core/stl.js.map +1 -1
  197. package/dist/formats/stl/core/targets.js +10 -0
  198. package/dist/formats/stl/core/targets.js.map +1 -1
  199. package/dist/formats/tga/core/helpers.js +47 -0
  200. package/dist/formats/tga/core/helpers.js.map +1 -1
  201. package/dist/formats/wav/core/helpers.js +37 -0
  202. package/dist/formats/wav/core/helpers.js.map +1 -1
  203. package/dist/formats/webgl/CjsWebglFormat.js +221 -0
  204. package/dist/formats/webgl/CjsWebglFormat.js.map +1 -0
  205. package/dist/formats/webgl/core/cewg/CewgPackage.js +339 -0
  206. package/dist/formats/webgl/core/cewg/CewgPackage.js.map +1 -0
  207. package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js +104 -0
  208. package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js.map +1 -0
  209. package/dist/formats/webgl/core/cewg/binary.js +101 -0
  210. package/dist/formats/webgl/core/cewg/binary.js.map +1 -0
  211. package/dist/formats/webgl/core/cewgCompleteness.js +81 -0
  212. package/dist/formats/webgl/core/cewgCompleteness.js.map +1 -0
  213. package/dist/formats/webgl/core/effectPackage.js +789 -0
  214. package/dist/formats/webgl/core/effectPackage.js.map +1 -0
  215. package/dist/formats/webgl/core/effectPackageValidation.js +331 -0
  216. package/dist/formats/webgl/core/effectPackageValidation.js.map +1 -0
  217. package/dist/formats/webgl/core/errors.js +27 -0
  218. package/dist/formats/webgl/core/errors.js.map +1 -0
  219. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2678 -0
  220. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -0
  221. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -0
  222. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +1 -0
  223. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +428 -0
  224. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -0
  225. package/dist/formats/webgl/core/helpers.js +306 -0
  226. package/dist/formats/webgl/core/helpers.js.map +1 -0
  227. package/dist/formats/webgl/index.js +2 -0
  228. package/dist/formats/webgl/index.js.map +1 -0
  229. package/dist/formats/webgpu/CjsWebgpuFormat.js +376 -0
  230. package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -0
  231. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js +415 -0
  232. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js.map +1 -0
  233. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js +100 -0
  234. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js.map +1 -0
  235. package/dist/formats/webgpu/core/cewgpu/binary.js +93 -0
  236. package/dist/formats/webgpu/core/cewgpu/binary.js.map +1 -0
  237. package/dist/formats/webgpu/core/cewgpu/tags.js +17 -0
  238. package/dist/formats/webgpu/core/cewgpu/tags.js.map +1 -0
  239. package/dist/formats/webgpu/core/effectAnalysis.js +82 -0
  240. package/dist/formats/webgpu/core/effectAnalysis.js.map +1 -0
  241. package/dist/formats/webgpu/core/effectBackendBodySet.js +305 -0
  242. package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -0
  243. package/dist/formats/webgpu/core/effectPackageValidation.js +1078 -0
  244. package/dist/formats/webgpu/core/effectPackageValidation.js.map +1 -0
  245. package/dist/formats/webgpu/core/errors.js +20 -0
  246. package/dist/formats/webgpu/core/errors.js.map +1 -0
  247. package/dist/formats/webgpu/core/helpers.js +448 -0
  248. package/dist/formats/webgpu/core/helpers.js.map +1 -0
  249. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +223 -0
  250. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js.map +1 -0
  251. package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -0
  252. package/dist/formats/webgpu/core/ir/buildControlFlow.js.map +1 -0
  253. package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -0
  254. package/dist/formats/webgpu/core/ir/indexableTemps.js.map +1 -0
  255. package/dist/formats/webgpu/core/ir/inferValueTypes.js +454 -0
  256. package/dist/formats/webgpu/core/ir/inferValueTypes.js.map +1 -0
  257. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -0
  258. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -0
  259. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -0
  260. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js.map +1 -0
  261. package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -0
  262. package/dist/formats/webgpu/core/ir/sourceLanes.js.map +1 -0
  263. package/dist/formats/webgpu/core/packageEffect.js +300 -0
  264. package/dist/formats/webgpu/core/packageEffect.js.map +1 -0
  265. package/dist/formats/webgpu/core/packageEffectSelection.js +164 -0
  266. package/dist/formats/webgpu/core/packageEffectSelection.js.map +1 -0
  267. package/dist/formats/webgpu/core/packageMetadata.js +8 -0
  268. package/dist/formats/webgpu/core/packageMetadata.js.map +1 -0
  269. package/dist/formats/webgpu/core/schema.js +4 -0
  270. package/dist/formats/webgpu/core/schema.js.map +1 -0
  271. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +275 -0
  272. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -0
  273. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +182 -0
  274. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js.map +1 -0
  275. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +324 -0
  276. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -0
  277. package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -0
  278. package/dist/formats/webgpu/core/wgsl/emitWgsl.js.map +1 -0
  279. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -0
  280. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js.map +1 -0
  281. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -0
  282. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -0
  283. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +754 -0
  284. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js.map +1 -0
  285. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -0
  286. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -0
  287. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -0
  288. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js.map +1 -0
  289. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -0
  290. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js.map +1 -0
  291. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -0
  292. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js.map +1 -0
  293. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -0
  294. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js.map +1 -0
  295. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -0
  296. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js.map +1 -0
  297. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -0
  298. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js.map +1 -0
  299. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -0
  300. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js.map +1 -0
  301. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -0
  302. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js.map +1 -0
  303. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -0
  304. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js.map +1 -0
  305. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -0
  306. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js.map +1 -0
  307. package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -0
  308. package/dist/formats/webgpu/core/wgsl/precisionControls.js.map +1 -0
  309. package/dist/formats/webgpu/core/wgsl/selectionPlans.js +758 -0
  310. package/dist/formats/webgpu/core/wgsl/selectionPlans.js.map +1 -0
  311. package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -0
  312. package/dist/formats/webgpu/core/wgsl/uniformity.js.map +1 -0
  313. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -0
  314. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js.map +1 -0
  315. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -0
  316. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js.map +1 -0
  317. package/dist/formats/webgpu/index.js +2 -0
  318. package/dist/formats/webgpu/index.js.map +1 -0
  319. package/dist/formats/webm/core/helpers.js +35 -0
  320. package/dist/formats/webm/core/helpers.js.map +1 -1
  321. package/dist/formats/webp/CjsWebpFormat.js +49 -0
  322. package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
  323. package/dist/formats/webp/core/helpers.js +23 -0
  324. package/dist/formats/webp/core/helpers.js.map +1 -1
  325. package/dist/formats/wem/CjsWemFormat.js +8 -0
  326. package/dist/formats/wem/CjsWemFormat.js.map +1 -1
  327. package/dist/formats/wem/core/bitStream.js +2 -0
  328. package/dist/formats/wem/core/bitStream.js.map +1 -1
  329. package/dist/formats/wem/core/helpers.js +20 -0
  330. package/dist/formats/wem/core/helpers.js.map +1 -1
  331. package/dist/formats/yaml/CjsYamlFormat.js +45 -0
  332. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
  333. package/dist/formats/yaml/core/CjsYamlReader.js +91 -0
  334. package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
  335. package/dist/formats/yaml/core/helpers.js +10 -0
  336. package/dist/formats/yaml/core/helpers.js.map +1 -1
  337. package/dist/index.js +56 -43
  338. package/dist/index.js.map +1 -1
  339. package/dist/{CjsResource.js → resource/CjsResource.js} +232 -17
  340. package/dist/resource/CjsResource.js.map +1 -0
  341. package/dist/{resources → resource}/Tr2LightProfileRes.js +4 -3
  342. package/dist/resource/Tr2LightProfileRes.js.map +1 -0
  343. package/dist/{resources → resource/audio}/AudioGeometryResData.js +1 -1
  344. package/dist/resource/audio/AudioGeometryResData.js.map +1 -0
  345. package/dist/resource/audio/CjsAudioBufferRes.js +86 -0
  346. package/dist/resource/audio/CjsAudioBufferRes.js.map +1 -0
  347. package/dist/resource/audio/CjsAudioRes.js +213 -0
  348. package/dist/resource/audio/CjsAudioRes.js.map +1 -0
  349. package/dist/resource/audio/index.js +4 -0
  350. package/dist/resource/audio/index.js.map +1 -0
  351. package/dist/{resources → resource/geometry}/MeshDecalData.js +1 -1
  352. package/dist/resource/geometry/MeshDecalData.js.map +1 -0
  353. package/dist/{resources → resource/geometry}/MeshDecalLodData.js +1 -1
  354. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -0
  355. package/dist/resource/geometry/TriGeometryRes.js +656 -0
  356. package/dist/resource/geometry/TriGeometryRes.js.map +1 -0
  357. package/dist/{resources → resource/geometry}/TriGeometryResAreaData.js +1 -1
  358. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -0
  359. package/dist/{resources → resource/geometry}/TriGeometryResJointData.js +1 -1
  360. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -0
  361. package/dist/{resources → resource/geometry}/TriGeometryResLodData.js +1 -1
  362. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -0
  363. package/dist/{resources → resource/geometry}/TriGeometryResMeshData.js +1 -1
  364. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -0
  365. package/dist/{resources → resource/geometry}/TriGeometryResSkeletonData.js +1 -1
  366. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -0
  367. package/dist/{resources → resource/geometry}/TriJointBinding.js +1 -1
  368. package/dist/resource/geometry/TriJointBinding.js.map +1 -0
  369. package/dist/{resources → resource/geometry}/TriMorphTargetGeometryConstants.js +1 -1
  370. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -0
  371. package/dist/{resources → resource/geometry}/TriRtGeometryConstants.js +1 -1
  372. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -0
  373. package/dist/{resources → resource/geometry/granny}/GStateBindingCallbackData.js +1 -1
  374. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -0
  375. package/dist/{resources → resource/geometry/granny}/Tr2GrannyIntersectionResult.js +1 -1
  376. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -0
  377. package/dist/{resources → resource/geometry/granny}/Tr2GrannyStateRes.js +6 -5
  378. package/dist/resource/geometry/granny/Tr2GrannyStateRes.js.map +1 -0
  379. package/dist/{resources → resource/geometry/granny}/TriGrannyRes.js +6 -5
  380. package/dist/resource/geometry/granny/TriGrannyRes.js.map +1 -0
  381. package/dist/{resources → resource/geometry/granny}/enums.js +1 -9
  382. package/dist/resource/geometry/granny/enums.js.map +1 -0
  383. package/dist/resource/geometry/granny/index.js +6 -0
  384. package/dist/resource/geometry/granny/index.js.map +1 -0
  385. package/dist/resource/geometry/index.js +17 -0
  386. package/dist/resource/geometry/index.js.map +1 -0
  387. package/dist/resource/index.js +52 -0
  388. package/dist/resource/index.js.map +1 -0
  389. package/dist/resource/resourceBoundary.js +64 -0
  390. package/dist/resource/resourceBoundary.js.map +1 -0
  391. package/dist/resource/shader/Tr2EffectRes.js +429 -0
  392. package/dist/resource/shader/Tr2EffectRes.js.map +1 -0
  393. package/dist/resource/shader/Tr2MaterialArea.js +34 -0
  394. package/dist/resource/shader/Tr2MaterialArea.js.map +1 -0
  395. package/dist/resource/shader/Tr2MaterialMesh.js +30 -0
  396. package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -0
  397. package/dist/resource/shader/Tr2MaterialRes.js +35 -0
  398. package/dist/resource/shader/Tr2MaterialRes.js.map +1 -0
  399. package/dist/resource/shader/Tr2Shader.js +256 -0
  400. package/dist/resource/shader/Tr2Shader.js.map +1 -0
  401. package/dist/resource/shader/Tr2ShaderPermutation.js +47 -0
  402. package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -0
  403. package/dist/resource/shader/index.js +17 -0
  404. package/dist/resource/shader/index.js.map +1 -0
  405. package/dist/resource/shader/portable.js +33 -0
  406. package/dist/resource/shader/portable.js.map +1 -0
  407. package/dist/resource/shader/reflection/Tr2EffectConstant.js +135 -0
  408. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -0
  409. package/dist/resource/shader/reflection/Tr2EffectDefine.js +28 -0
  410. package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -0
  411. package/dist/resource/shader/reflection/Tr2EffectDescription.js +107 -0
  412. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -0
  413. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +145 -0
  414. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -0
  415. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +103 -0
  416. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -0
  417. package/dist/resource/shader/reflection/Tr2EffectResource.js +84 -0
  418. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -0
  419. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +239 -0
  420. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -0
  421. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +66 -0
  422. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -0
  423. package/dist/resource/shader/reflection/Tr2Pass.js +109 -0
  424. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -0
  425. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +75 -0
  426. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -0
  427. package/dist/{texture → resource/texture}/CjsTextureArrayRes.js +83 -6
  428. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -0
  429. package/dist/{texture/CjsTextureParameterProxy.js → resource/texture/CjsTextureArrayResParameterProxy.js} +56 -10
  430. package/dist/resource/texture/CjsTextureArrayResParameterProxy.js.map +1 -0
  431. package/dist/{resources → resource/texture}/Tr2ImageRes.js +6 -4
  432. package/dist/resource/texture/Tr2ImageRes.js.map +1 -0
  433. package/dist/{resources → resource/texture}/Tr2TextureLodManager.js +3 -1
  434. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -0
  435. package/dist/{resources → resource/texture}/Tr2TextureLodUpdateRequest.js +1 -1
  436. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -0
  437. package/dist/{resources → resource/texture}/Tr2TexturePackChannel.js +1 -1
  438. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -0
  439. package/dist/{resources → resource/texture}/Tr2TexturePipeline.js +6 -4
  440. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -0
  441. package/dist/{resources → resource/texture}/Tr2TexturePipelineParams.js +1 -1
  442. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -0
  443. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepCompress.js +1 -1
  444. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -0
  445. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepGenerateMips.js +1 -1
  446. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -0
  447. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLimitSize.js +1 -1
  448. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -0
  449. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLoad.js +1 -1
  450. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -0
  451. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepPack.js +1 -1
  452. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -0
  453. package/dist/{resources → resource/texture}/TriTextureRes.js +42 -26
  454. package/dist/resource/texture/TriTextureRes.js.map +1 -0
  455. package/dist/resource/texture/index.js +15 -0
  456. package/dist/resource/texture/index.js.map +1 -0
  457. package/dist/{resources → resource/texture}/texturePipelineBehavior.js +59 -59
  458. package/dist/resource/texture/texturePipelineBehavior.js.map +1 -0
  459. package/dist/worker/CjsResManMainThreadLoader.js +87 -0
  460. package/dist/worker/CjsResManMainThreadLoader.js.map +1 -0
  461. package/dist/worker/CjsResManWorker.js +217 -0
  462. package/dist/worker/CjsResManWorker.js.map +1 -0
  463. package/dist/worker/CjsResManWorkerLoader.js +434 -0
  464. package/dist/worker/CjsResManWorkerLoader.js.map +1 -0
  465. package/dist/worker/protocol.js +12 -0
  466. package/dist/worker/protocol.js.map +1 -0
  467. package/docs/README.md +16 -3
  468. package/docs/architecture.md +39 -16
  469. package/docs/concepts/resource-lifecycle.md +2 -1
  470. package/docs/formats/README.md +8 -0
  471. package/docs/formats/provenance.md +11 -3
  472. package/docs/reference/classes/README.md +6 -4
  473. package/docs/reference/classes/audio.md +30 -0
  474. package/docs/reference/classes/core.md +31 -11
  475. package/docs/reference/classes/formats.md +440 -0
  476. package/docs/reference/classes/resources.md +151 -41
  477. package/docs/reference/classes/texture.md +7 -7
  478. package/docs/reference/motherlode-cache.md +17 -0
  479. package/docs/reference/queues.md +9 -1
  480. package/docs/reference/workers.md +135 -0
  481. package/docs/roadmap.md +27 -1
  482. package/format-notices/dxbc/LICENSE +21 -0
  483. package/format-notices/dxbc/NOTICE +20 -0
  484. package/format-notices/hlsl/LICENSE +21 -0
  485. package/format-notices/hlsl/NOTICE +25 -0
  486. package/format-notices/webgl/LICENSE +21 -0
  487. package/format-notices/webgl/NOTICE +35 -0
  488. package/format-notices/webgpu/LICENSE +21 -0
  489. package/format-notices/webgpu/NOTICE +31 -0
  490. package/package.json +13 -1
  491. package/dist/CjsResManQueue.js.map +0 -1
  492. package/dist/CjsResource.js.map +0 -1
  493. package/dist/CjsResourceSource.js +0 -68
  494. package/dist/CjsResourceSource.js.map +0 -1
  495. package/dist/resourcePath.js +0 -18
  496. package/dist/resourcePath.js.map +0 -1
  497. package/dist/resourceStates.js +0 -9
  498. package/dist/resourceStates.js.map +0 -1
  499. package/dist/resources/AudioGeometryResData.js.map +0 -1
  500. package/dist/resources/GStateBindingCallbackData.js.map +0 -1
  501. package/dist/resources/MeshDecalData.js.map +0 -1
  502. package/dist/resources/MeshDecalLodData.js.map +0 -1
  503. package/dist/resources/Tr2EffectRes.js +0 -71
  504. package/dist/resources/Tr2EffectRes.js.map +0 -1
  505. package/dist/resources/Tr2GrannyIntersectionResult.js.map +0 -1
  506. package/dist/resources/Tr2GrannyStateRes.js.map +0 -1
  507. package/dist/resources/Tr2ImageRes.js.map +0 -1
  508. package/dist/resources/Tr2LightProfileRes.js.map +0 -1
  509. package/dist/resources/Tr2MaterialArea.js +0 -34
  510. package/dist/resources/Tr2MaterialArea.js.map +0 -1
  511. package/dist/resources/Tr2MaterialMesh.js +0 -31
  512. package/dist/resources/Tr2MaterialMesh.js.map +0 -1
  513. package/dist/resources/Tr2MaterialRes.js +0 -34
  514. package/dist/resources/Tr2MaterialRes.js.map +0 -1
  515. package/dist/resources/Tr2ShaderPermutation.js +0 -43
  516. package/dist/resources/Tr2ShaderPermutation.js.map +0 -1
  517. package/dist/resources/Tr2TextureLodManager.js.map +0 -1
  518. package/dist/resources/Tr2TextureLodUpdateRequest.js.map +0 -1
  519. package/dist/resources/Tr2TexturePackChannel.js.map +0 -1
  520. package/dist/resources/Tr2TexturePipeline.js.map +0 -1
  521. package/dist/resources/Tr2TexturePipelineParams.js.map +0 -1
  522. package/dist/resources/Tr2TexturePipelineStepCompress.js.map +0 -1
  523. package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +0 -1
  524. package/dist/resources/Tr2TexturePipelineStepLimitSize.js.map +0 -1
  525. package/dist/resources/Tr2TexturePipelineStepLoad.js.map +0 -1
  526. package/dist/resources/Tr2TexturePipelineStepPack.js.map +0 -1
  527. package/dist/resources/TriGeometryRes.js +0 -239
  528. package/dist/resources/TriGeometryRes.js.map +0 -1
  529. package/dist/resources/TriGeometryResAreaData.js.map +0 -1
  530. package/dist/resources/TriGeometryResJointData.js.map +0 -1
  531. package/dist/resources/TriGeometryResLodData.js.map +0 -1
  532. package/dist/resources/TriGeometryResMeshData.js.map +0 -1
  533. package/dist/resources/TriGeometryResSkeletonData.js.map +0 -1
  534. package/dist/resources/TriGrannyRes.js.map +0 -1
  535. package/dist/resources/TriJointBinding.js.map +0 -1
  536. package/dist/resources/TriMorphTargetGeometryConstants.js.map +0 -1
  537. package/dist/resources/TriRtGeometryConstants.js.map +0 -1
  538. package/dist/resources/TriTextureRes.js.map +0 -1
  539. package/dist/resources/enums.js.map +0 -1
  540. package/dist/resources/resourceBoundary.js +0 -47
  541. package/dist/resources/resourceBoundary.js.map +0 -1
  542. package/dist/resources/texturePipelineBehavior.js.map +0 -1
  543. package/dist/texture/CjsTextureArrayRes.js.map +0 -1
  544. package/dist/texture/CjsTextureParameterProxy.js.map +0 -1
@@ -3,6 +3,10 @@
3
3
  * end-of-stream checks the Black transport decodes with.
4
4
  */
5
5
  class CjsBlackBinaryReader {
6
+ /**
7
+ * Creates a CjsBlackBinaryReader over caller-provided Black bytes and reader
8
+ * options.
9
+ */
6
10
  constructor(dataView, context = null) {
7
11
  if (!(dataView instanceof DataView)) {
8
12
  throw new TypeError("CjsBlackBinaryReader expected a DataView");
@@ -11,17 +15,37 @@ class CjsBlackBinaryReader {
11
15
  this.context = context;
12
16
  this.offset = 0;
13
17
  }
18
+
19
+ /**
20
+ * Returns the number of unread Black bytes for the Black object-graph
21
+ * reader.
22
+ */
14
23
  get remaining() {
15
24
  return this.data.byteLength - this.offset;
16
25
  }
26
+
27
+ /**
28
+ * Reports whether the Black cursor consumed every byte for the Black
29
+ * object-graph reader.
30
+ */
17
31
  AtEnd() {
18
32
  return this.remaining === 0;
19
33
  }
34
+
35
+ /**
36
+ * Validates end against Black object-graph reader constraints and throws on
37
+ * failure.
38
+ */
20
39
  ExpectEnd(message = "Black reader did not reach end") {
21
40
  if (!this.AtEnd()) {
22
41
  throw new RangeError(`${message}: ${this.remaining} bytes remain`);
23
42
  }
24
43
  }
44
+
45
+ /**
46
+ * Validates U32 against Black object-graph reader constraints and throws on
47
+ * failure.
48
+ */
25
49
  ExpectU32(expected, message) {
26
50
  const actual = this.ReadU32();
27
51
  if (actual !== expected) {
@@ -29,13 +53,19 @@ class CjsBlackBinaryReader {
29
53
  }
30
54
  return actual;
31
55
  }
56
+
57
+ /** Reads binary reader from the current Black object-graph reader. */
32
58
  ReadBinaryReader(byteLength) {
33
59
  return new CjsBlackBinaryReader(this.ReadDataView(byteLength), this.context);
34
60
  }
61
+
62
+ /** Reads bytes from the current Black object-graph reader. */
35
63
  ReadBytes(byteLength) {
36
64
  const view = this.ReadDataView(byteLength);
37
65
  return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);
38
66
  }
67
+
68
+ /** Reads C string from the current Black object-graph reader. */
39
69
  ReadCString() {
40
70
  const startOffset = this.offset;
41
71
  while (this.ReadU8() !== 0) {
@@ -46,6 +76,8 @@ class CjsBlackBinaryReader {
46
76
  const bytes = new Uint8Array(this.data.buffer, byteOffset, byteLength);
47
77
  return CjsBlackBinaryReader.utf8Decoder.decode(bytes);
48
78
  }
79
+
80
+ /** Reads CW string from the current Black object-graph reader. */
49
81
  ReadCWString() {
50
82
  const startOffset = this.offset;
51
83
  while (this.ReadU16() !== 0) {
@@ -56,6 +88,8 @@ class CjsBlackBinaryReader {
56
88
  const bytes = new Uint8Array(this.data.buffer, byteOffset, byteLength);
57
89
  return CjsBlackBinaryReader.utf16Decoder.decode(bytes);
58
90
  }
91
+
92
+ /** Reads data view from the current Black object-graph reader. */
59
93
  ReadDataView(byteLength) {
60
94
  if (!Number.isInteger(byteLength) || byteLength < 0) {
61
95
  throw new RangeError(`Invalid Black byte length: ${String(byteLength)}`);
@@ -67,34 +101,69 @@ class CjsBlackBinaryReader {
67
101
  this.offset += byteLength;
68
102
  return result;
69
103
  }
104
+
105
+ /**
106
+ * Reads a 32-bit float from the Black cursor for the Black object-graph
107
+ * reader.
108
+ */
70
109
  ReadF32() {
71
110
  const value = this.data.getFloat32(this.offset, true);
72
111
  this.offset += 4;
73
112
  return value;
74
113
  }
114
+
115
+ /**
116
+ * Reads a 64-bit float from the Black cursor for the Black object-graph
117
+ * reader.
118
+ */
75
119
  ReadF64() {
76
120
  const value = this.data.getFloat64(this.offset, true);
77
121
  this.offset += 8;
78
122
  return value;
79
123
  }
124
+
125
+ /**
126
+ * Reads a signed 8-bit integer from the Black cursor for the Black
127
+ * object-graph reader.
128
+ */
80
129
  ReadI8() {
81
130
  const value = this.data.getInt8(this.offset);
82
131
  this.offset += 1;
83
132
  return value;
84
133
  }
134
+
135
+ /**
136
+ * Reads a signed 16-bit integer from the Black cursor for the Black
137
+ * object-graph reader.
138
+ */
85
139
  ReadI16() {
86
140
  const value = this.data.getInt16(this.offset, true);
87
141
  this.offset += 2;
88
142
  return value;
89
143
  }
144
+
145
+ /**
146
+ * Reads a signed 32-bit integer from the Black cursor for the Black
147
+ * object-graph reader.
148
+ */
90
149
  ReadI32() {
91
150
  const value = this.data.getInt32(this.offset, true);
92
151
  this.offset += 4;
93
152
  return value;
94
153
  }
154
+
155
+ /**
156
+ * Reads a signed 64-bit integer from the Black cursor for the Black
157
+ * object-graph reader.
158
+ */
95
159
  ReadI64() {
96
160
  return this.data.getBigInt64(this.ConsumeOffset(8), true);
97
161
  }
162
+
163
+ /**
164
+ * Resolves a narrow-string table index from the Black cursor for the Black
165
+ * object-graph reader.
166
+ */
98
167
  ReadStringRef() {
99
168
  const index = this.ReadU16();
100
169
  const strings = this.context?.info?.strings || [];
@@ -103,6 +172,8 @@ class CjsBlackBinaryReader {
103
172
  }
104
173
  return strings[index];
105
174
  }
175
+
176
+ /** Reads wide string ref from the current Black object-graph reader. */
106
177
  ReadWideStringRef() {
107
178
  const index = this.ReadU16();
108
179
  const strings = this.context?.info?.wideStrings || [];
@@ -111,27 +182,54 @@ class CjsBlackBinaryReader {
111
182
  }
112
183
  return strings[index];
113
184
  }
185
+
186
+ /**
187
+ * Reads an unsigned 8-bit integer from the Black cursor for the Black
188
+ * object-graph reader.
189
+ */
114
190
  ReadU8() {
115
191
  const value = this.data.getUint8(this.offset);
116
192
  this.offset += 1;
117
193
  return value;
118
194
  }
195
+
196
+ /**
197
+ * Reads an unsigned 16-bit integer from the Black cursor for the Black
198
+ * object-graph reader.
199
+ */
119
200
  ReadU16() {
120
201
  const value = this.data.getUint16(this.offset, true);
121
202
  this.offset += 2;
122
203
  return value;
123
204
  }
205
+
206
+ /**
207
+ * Reads an unsigned 32-bit integer from the Black cursor for the Black
208
+ * object-graph reader.
209
+ */
124
210
  ReadU32() {
125
211
  const value = this.data.getUint32(this.offset, true);
126
212
  this.offset += 4;
127
213
  return value;
128
214
  }
215
+
216
+ /**
217
+ * Reads an unsigned 64-bit integer from the Black cursor for the Black
218
+ * object-graph reader.
219
+ */
129
220
  ReadU64() {
130
221
  return this.data.getBigUint64(this.ConsumeOffset(8), true);
131
222
  }
223
+
224
+ /**
225
+ * Advances the Black cursor by a validated byte count for the Black
226
+ * object-graph reader.
227
+ */
132
228
  Skip(byteLength) {
133
229
  this.ReadDataView(byteLength);
134
230
  }
231
+
232
+ /** Consumes offset from the current Black object-graph reader. */
135
233
  ConsumeOffset(byteLength) {
136
234
  if (this.remaining < byteLength) {
137
235
  throw new RangeError(`Black reader needs ${byteLength} bytes but only ${this.remaining} remain`);
@@ -140,6 +238,11 @@ class CjsBlackBinaryReader {
140
238
  this.offset += byteLength;
141
239
  return offset;
142
240
  }
241
+
242
+ /**
243
+ * Creates a bounded Black reader over supported binary input for the Black
244
+ * object-graph reader.
245
+ */
143
246
  static from(input, context = null) {
144
247
  if (input instanceof CjsBlackBinaryReader) return input;
145
248
  if (input instanceof DataView) return new CjsBlackBinaryReader(input, context);
@@ -1 +1 @@
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
+ {"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 /**\n * Creates a CjsBlackBinaryReader over caller-provided Black bytes and reader\n * options.\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 /**\n * Returns the number of unread Black bytes for the Black object-graph\n * reader.\n */\n get remaining()\n {\n return this.data.byteLength - this.offset;\n }\n\n /**\n * Reports whether the Black cursor consumed every byte for the Black\n * object-graph reader.\n */\n AtEnd()\n {\n return this.remaining === 0;\n }\n\n /**\n * Validates end against Black object-graph reader constraints and throws on\n * failure.\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 /**\n * Validates U32 against Black object-graph reader constraints and throws on\n * failure.\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 /** Reads binary reader from the current Black object-graph reader. */\n ReadBinaryReader(byteLength)\n {\n return new CjsBlackBinaryReader(this.ReadDataView(byteLength), this.context);\n }\n\n /** Reads bytes from the current Black object-graph reader. */\n ReadBytes(byteLength)\n {\n const view = this.ReadDataView(byteLength);\n return new Uint8Array(view.buffer, view.byteOffset, view.byteLength);\n }\n\n /** Reads C string from the current Black object-graph reader. */\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 /** Reads CW string from the current Black object-graph reader. */\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 /** Reads data view from the current Black object-graph reader. */\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 /**\n * Reads a 32-bit float from the Black cursor for the Black object-graph\n * reader.\n */\n ReadF32()\n {\n const value = this.data.getFloat32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n /**\n * Reads a 64-bit float from the Black cursor for the Black object-graph\n * reader.\n */\n ReadF64()\n {\n const value = this.data.getFloat64(this.offset, true);\n this.offset += 8;\n return value;\n }\n\n /**\n * Reads a signed 8-bit integer from the Black cursor for the Black\n * object-graph reader.\n */\n ReadI8()\n {\n const value = this.data.getInt8(this.offset);\n this.offset += 1;\n return value;\n }\n\n /**\n * Reads a signed 16-bit integer from the Black cursor for the Black\n * object-graph reader.\n */\n ReadI16()\n {\n const value = this.data.getInt16(this.offset, true);\n this.offset += 2;\n return value;\n }\n\n /**\n * Reads a signed 32-bit integer from the Black cursor for the Black\n * object-graph reader.\n */\n ReadI32()\n {\n const value = this.data.getInt32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n /**\n * Reads a signed 64-bit integer from the Black cursor for the Black\n * object-graph reader.\n */\n ReadI64()\n {\n return this.data.getBigInt64(this.ConsumeOffset(8), true);\n }\n\n /**\n * Resolves a narrow-string table index from the Black cursor for the Black\n * object-graph reader.\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 /** Reads wide string ref from the current Black object-graph reader. */\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 /**\n * Reads an unsigned 8-bit integer from the Black cursor for the Black\n * object-graph reader.\n */\n ReadU8()\n {\n const value = this.data.getUint8(this.offset);\n this.offset += 1;\n return value;\n }\n\n /**\n * Reads an unsigned 16-bit integer from the Black cursor for the Black\n * object-graph reader.\n */\n ReadU16()\n {\n const value = this.data.getUint16(this.offset, true);\n this.offset += 2;\n return value;\n }\n\n /**\n * Reads an unsigned 32-bit integer from the Black cursor for the Black\n * object-graph reader.\n */\n ReadU32()\n {\n const value = this.data.getUint32(this.offset, true);\n this.offset += 4;\n return value;\n }\n\n /**\n * Reads an unsigned 64-bit integer from the Black cursor for the Black\n * object-graph reader.\n */\n ReadU64()\n {\n return this.data.getBigUint64(this.ConsumeOffset(8), true);\n }\n\n /**\n * Advances the Black cursor by a validated byte count for the Black\n * object-graph reader.\n */\n Skip(byteLength)\n {\n this.ReadDataView(byteLength);\n }\n\n /** Consumes offset from the current Black object-graph reader. */\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 /**\n * Creates a bounded Black reader over supported binary input for the Black\n * object-graph reader.\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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"}
@@ -6,6 +6,7 @@ import { normalizeCarbonTypeDescriptor, CARBON_TYPE } from '@carbonenginejs/runt
6
6
  * dictionaries, and binary blocks) from their type descriptors.
7
7
  */
8
8
  class CjsBlackPropertyReaders {
9
+ /** Reads value from the current Black object-graph reader. */
9
10
  static readValue(reader, field) {
10
11
  const descriptor = normalizeCarbonTypeDescriptor(field);
11
12
  if (field?.black?.beType) {
@@ -66,6 +67,8 @@ class CjsBlackPropertyReaders {
66
67
  return reader.context.ReadObject(reader);
67
68
  }
68
69
  }
70
+
71
+ /** Reads black value from the current Black object-graph reader. */
69
72
  static readBlackValue(reader, black, descriptor) {
70
73
  switch (black.beType) {
71
74
  case "IROOT":
@@ -112,6 +115,8 @@ class CjsBlackPropertyReaders {
112
115
  return CjsBlackPropertyReaders.readValueWithoutBlack(reader, descriptor);
113
116
  }
114
117
  }
118
+
119
+ /** Advances past value in the current Black object-graph reader. */
115
120
  static skipValue(reader, field) {
116
121
  const descriptor = normalizeCarbonTypeDescriptor(field);
117
122
  if (field?.black?.beType) {
@@ -175,6 +180,8 @@ class CjsBlackPropertyReaders {
175
180
  reader.context.SkipObject(reader);
176
181
  }
177
182
  }
183
+
184
+ /** Advances past black value in the current Black object-graph reader. */
178
185
  static skipBlackValue(reader, black, descriptor) {
179
186
  switch (black.beType) {
180
187
  case "IROOT":
@@ -225,6 +232,8 @@ class CjsBlackPropertyReaders {
225
232
  });
226
233
  }
227
234
  }
235
+
236
+ /** Reads black structure list from the current Black object-graph reader. */
228
237
  static readBlackStructureList(reader, black) {
229
238
  return CjsBlackPropertyReaders.readStructureList(reader, {
230
239
  cppType: black.cppType,
@@ -234,20 +243,40 @@ class CjsBlackPropertyReaders {
234
243
  }
235
244
  });
236
245
  }
246
+
247
+ /**
248
+ * Reads a schema field through the non-Black fallback decoder for the Black
249
+ * object-graph reader.
250
+ */
237
251
  static readValueWithoutBlack(reader, descriptor) {
238
252
  return CjsBlackPropertyReaders.readValue(reader, {
239
253
  jsType: descriptor
240
254
  });
241
255
  }
256
+
257
+ /**
258
+ * Reads a schema field whose wire value references the Black string table
259
+ * for the Black object-graph reader.
260
+ */
242
261
  static readStringRef(reader, descriptor) {
243
262
  const value = reader.ReadStringRef();
244
263
  return descriptor.kind === CARBON_TYPE.PATH ? reader.context.TransformPath(value) : value;
245
264
  }
265
+
266
+ /**
267
+ * Reads a nested Black root-interface value for the Black object-graph
268
+ * reader.
269
+ */
246
270
  static readBlackIRoot(reader, black, descriptor) {
247
271
  if (black.container === "dict") return CjsBlackPropertyReaders.readDict(reader);
248
272
  if (black.container === "list" || black.container === "set") return CjsBlackPropertyReaders.readArray(reader, descriptor);
249
273
  return reader.context.ReadEmbeddedObject(reader);
250
274
  }
275
+
276
+ /**
277
+ * Advances past a nested Black root-interface value for the Black
278
+ * object-graph reader.
279
+ */
251
280
  static skipBlackIRoot(reader, black, descriptor) {
252
281
  if (black.container === "dict") {
253
282
  CjsBlackPropertyReaders.skipDict(reader);
@@ -259,6 +288,8 @@ class CjsBlackPropertyReaders {
259
288
  }
260
289
  reader.context.SkipEmbeddedObject(reader);
261
290
  }
291
+
292
+ /** Reads dict from the current Black object-graph reader. */
262
293
  static readDict(reader) {
263
294
  const count = reader.ReadU32();
264
295
  const result = {};
@@ -267,6 +298,8 @@ class CjsBlackPropertyReaders {
267
298
  }
268
299
  return result;
269
300
  }
301
+
302
+ /** Advances past dict in the current Black object-graph reader. */
270
303
  static skipDict(reader) {
271
304
  const count = reader.ReadU32();
272
305
  for (let i = 0; i < count; i++) {
@@ -274,6 +307,8 @@ class CjsBlackPropertyReaders {
274
307
  reader.context.SkipObject(reader);
275
308
  }
276
309
  }
310
+
311
+ /** Reads binary block from the current Black object-graph reader. */
277
312
  static readBinaryBlock(reader, black) {
278
313
  const byteLength = reader.ReadI32();
279
314
  const bytes = reader.ReadBytes(byteLength);
@@ -287,11 +322,21 @@ class CjsBlackPropertyReaders {
287
322
  bytes: Array.from(bytes)
288
323
  };
289
324
  }
325
+
326
+ /**
327
+ * Reports whether a binary block is tagged as a 32-bit index buffer for the
328
+ * Black object-graph reader.
329
+ */
290
330
  static isUint32IndexBufferBlock(reader, black, byteLength) {
291
331
  if (byteLength % 4 !== 0) return false;
292
332
  if (reader.context?.readMode === "document" && !reader.context?.options.decodeBinaryBlocks) return false;
293
333
  return black.name === "indexBuffer" || black.fieldName === "indexBuffer" || black.storageName === "indexBuffer";
294
334
  }
335
+
336
+ /**
337
+ * Reads a binary block as an array of unsigned 32-bit integers for the Black
338
+ * object-graph reader.
339
+ */
295
340
  static readUint32Array(bytes) {
296
341
  const result = new Uint32Array(bytes.byteLength / 4);
297
342
  const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
@@ -300,6 +345,8 @@ class CjsBlackPropertyReaders {
300
345
  }
301
346
  return result;
302
347
  }
348
+
349
+ /** Reads array from the current Black object-graph reader. */
303
350
  static readArray(reader, descriptor) {
304
351
  const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);
305
352
  if (elementType.kind === CARBON_TYPE.RAW_STRUCT) {
@@ -318,6 +365,8 @@ class CjsBlackPropertyReaders {
318
365
  }
319
366
  return result;
320
367
  }
368
+
369
+ /** Advances past array in the current Black object-graph reader. */
321
370
  static skipArray(reader, descriptor) {
322
371
  const elementType = normalizeCarbonTypeDescriptor(descriptor.elementType);
323
372
  if (elementType.kind === CARBON_TYPE.RAW_STRUCT) {
@@ -335,6 +384,8 @@ class CjsBlackPropertyReaders {
335
384
  }
336
385
  }
337
386
  }
387
+
388
+ /** Reads float array from the current Black object-graph reader. */
338
389
  static readFloatArray(reader, count) {
339
390
  const result = [];
340
391
  for (let i = 0; i < count; i++) {
@@ -342,6 +393,8 @@ class CjsBlackPropertyReaders {
342
393
  }
343
394
  return result;
344
395
  }
396
+
397
+ /** Reads structure list from the current Black object-graph reader. */
345
398
  static readStructureList(reader, descriptor) {
346
399
  const count = reader.ReadI32();
347
400
  const structureSize = reader.ReadU16();
@@ -355,11 +408,15 @@ class CjsBlackPropertyReaders {
355
408
  bytes: Array.from(bytes)
356
409
  };
357
410
  }
411
+
412
+ /** Advances past structure list in the current Black object-graph reader. */
358
413
  static skipStructureList(reader) {
359
414
  const count = reader.ReadI32();
360
415
  const structureSize = reader.ReadU16();
361
416
  reader.Skip(count * structureSize);
362
417
  }
418
+
419
+ /** Reads typed array from the current Black object-graph reader. */
363
420
  static readTypedArray(reader, descriptor) {
364
421
  const count = reader.ReadU32();
365
422
  const elementSize = reader.ReadU16();
@@ -372,11 +429,15 @@ class CjsBlackPropertyReaders {
372
429
  bytes: Array.from(bytes)
373
430
  };
374
431
  }
432
+
433
+ /** Advances past typed array in the current Black object-graph reader. */
375
434
  static skipTypedArray(reader) {
376
435
  const count = reader.ReadU32();
377
436
  const elementSize = reader.ReadU16();
378
437
  reader.Skip(count * elementSize);
379
438
  }
439
+
440
+ /** Advances past binary block in the current Black object-graph reader. */
380
441
  static skipBinaryBlock(reader) {
381
442
  const byteLength = reader.ReadI32();
382
443
  reader.Skip(byteLength);
@@ -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/runtime-utils/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
+ {"version":3,"file":"CjsBlackPropertyReaders.js","sources":["../../../../../src/formats/black/core/CjsBlackPropertyReaders.js"],"sourcesContent":["import {\n CARBON_TYPE,\n normalizeCarbonTypeDescriptor\n} from \"@carbonenginejs/runtime-utils/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 /** Reads value from the current Black object-graph reader. */\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 /** Reads black value from the current Black object-graph reader. */\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 /** Advances past value in the current Black object-graph reader. */\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 /** Advances past black value in the current Black object-graph reader. */\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 /** Reads black structure list from the current Black object-graph reader. */\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 /**\n * Reads a schema field through the non-Black fallback decoder for the Black\n * object-graph reader.\n */\n static readValueWithoutBlack(reader, descriptor)\n {\n return CjsBlackPropertyReaders.readValue(reader, { jsType: descriptor });\n }\n\n /**\n * Reads a schema field whose wire value references the Black string table\n * for the Black object-graph reader.\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 /**\n * Reads a nested Black root-interface value for the Black object-graph\n * reader.\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 /**\n * Advances past a nested Black root-interface value for the Black\n * object-graph reader.\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 /** Reads dict from the current Black object-graph reader. */\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 /** Advances past dict in the current Black object-graph reader. */\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 /** Reads binary block from the current Black object-graph reader. */\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 /**\n * Reports whether a binary block is tagged as a 32-bit index buffer for the\n * Black object-graph reader.\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 /**\n * Reads a binary block as an array of unsigned 32-bit integers for the Black\n * object-graph reader.\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 /** Reads array from the current Black object-graph reader. */\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 /** Advances past array in the current Black object-graph reader. */\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 /** Reads float array from the current Black object-graph reader. */\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 /** Reads structure list from the current Black object-graph reader. */\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 /** Advances past structure list in the current Black object-graph reader. */\n static skipStructureList(reader)\n {\n const count = reader.ReadI32();\n const structureSize = reader.ReadU16();\n reader.Skip(count * structureSize);\n }\n\n /** Reads typed array from the current Black object-graph reader. */\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 /** Advances past typed array in the current Black object-graph reader. */\n static skipTypedArray(reader)\n {\n const count = reader.ReadU32();\n const elementSize = reader.ReadU16();\n reader.Skip(count * elementSize);\n }\n\n /** Advances past binary block in the current Black object-graph reader. */\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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"}