@carbonenginejs/runtime-resource 0.8.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/LICENSE +21 -21
  2. package/NOTICE +31 -29
  3. package/README.md +67 -548
  4. package/dist/CjsMotherLode.js +1271 -1271
  5. package/dist/CjsResMan.js +3005 -3005
  6. package/dist/CjsResManQueue.js +214 -214
  7. package/dist/CjsResource.js +566 -566
  8. package/dist/CjsResourceSource.js +68 -59
  9. package/dist/CjsResourceSource.js.map +1 -1
  10. package/dist/_virtual/_rollupPluginBabelHelpers.js +153 -153
  11. package/dist/format/CjsBlueReader.js +269 -269
  12. package/dist/format/CjsFormat.js +197 -192
  13. package/dist/format/CjsFormat.js.map +1 -1
  14. package/dist/format/CjsReader.js +18 -18
  15. package/dist/format/CjsResourceProbe.js +277 -277
  16. package/dist/format/payloadContract.js +173 -173
  17. package/dist/formats/black/CjsBlackFormat.js +278 -278
  18. package/dist/formats/black/core/CjsBlackBinaryReader.js +157 -153
  19. package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -1
  20. package/dist/formats/black/core/CjsBlackPropertyReaders.js +387 -382
  21. package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
  22. package/dist/formats/black/core/CjsBlackReader.js +639 -639
  23. package/dist/formats/black/core/CjsBlackSchemaRegistry.js +437 -433
  24. package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
  25. package/dist/formats/black/core/black-schema-v1-2026-07-23.json.js +4 -0
  26. package/dist/formats/black/core/black-schema-v1-2026-07-23.json.js.map +1 -0
  27. package/dist/formats/black/core/blackConstants.js +7 -7
  28. package/dist/formats/black/core/blackDefinitions.js +10 -10
  29. package/dist/formats/black/core/blackDefinitions.js.map +1 -1
  30. package/dist/formats/black/core/blackEnums.js +6 -6
  31. package/dist/formats/black/core/blackSchema.js +3 -3
  32. package/dist/formats/black/core/blackVersion.js +22 -22
  33. package/dist/formats/black/core/helpers.js +182 -182
  34. package/dist/formats/black/core/schema.js +4 -4
  35. package/dist/formats/black/index.js +2 -2
  36. package/dist/formats/bnk/CjsBnkFormat.js +125 -125
  37. package/dist/formats/bnk/core/graph.js +140 -140
  38. package/dist/formats/bnk/core/helpers.js +409 -409
  39. package/dist/formats/bnk/core/musicNodes.js +493 -489
  40. package/dist/formats/bnk/core/musicNodes.js.map +1 -1
  41. package/dist/formats/bnk/core/soundbanksInfo.js +246 -246
  42. package/dist/formats/bnk/index.js +2 -2
  43. package/dist/formats/cmf/CjsCmfFormat.js +497 -497
  44. package/dist/formats/cmf/core/binary.js +123 -118
  45. package/dist/formats/cmf/core/binary.js.map +1 -1
  46. package/dist/formats/cmf/core/buffers.js +233 -233
  47. package/dist/formats/cmf/core/constants.js +47 -47
  48. package/dist/formats/cmf/core/gr2Anim.js +453 -453
  49. package/dist/formats/cmf/core/helpers.js +287 -287
  50. package/dist/formats/cmf/core/pack.js +276 -276
  51. package/dist/formats/cmf/core/schema.js +364 -364
  52. package/dist/formats/cmf/core/shared.js +268 -268
  53. package/dist/formats/cmf/core/writer.js +517 -517
  54. package/dist/formats/cmf/index.js +2 -2
  55. package/dist/formats/dds/CjsDdsFormat.js +200 -193
  56. package/dist/formats/dds/CjsDdsFormat.js.map +1 -1
  57. package/dist/formats/dds/core/bc6h.js +288 -288
  58. package/dist/formats/dds/core/bc7.js +256 -251
  59. package/dist/formats/dds/core/bc7.js.map +1 -1
  60. package/dist/formats/dds/core/helpers.js +815 -815
  61. package/dist/formats/dds/index.js +2 -2
  62. package/dist/formats/fbx/CjsFbxFormat.js +266 -266
  63. package/dist/formats/fbx/core/helpers.js +3911 -3901
  64. package/dist/formats/fbx/core/helpers.js.map +1 -1
  65. package/dist/formats/fbx/index.js +2 -2
  66. package/dist/formats/flac/CjsFlacFormat.js +93 -87
  67. package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
  68. package/dist/formats/flac/core/helpers.js +295 -295
  69. package/dist/formats/flac/index.js +2 -2
  70. package/dist/formats/gif/CjsGifFormat.js +92 -87
  71. package/dist/formats/gif/CjsGifFormat.js.map +1 -1
  72. package/dist/formats/gif/core/helpers.js +360 -360
  73. package/dist/formats/gif/index.js +2 -2
  74. package/dist/formats/gltf/CjsGltfFormat.js +290 -290
  75. package/dist/formats/gltf/core/helpers.js +292 -292
  76. package/dist/formats/gltf/core/json.js +79 -79
  77. package/dist/formats/gltf/core/parser.js +666 -666
  78. package/dist/formats/gltf/core/targets.js +163 -163
  79. package/dist/formats/gltf/index.js +2 -2
  80. package/dist/formats/gr2/CjsGr2Format.js +46 -0
  81. package/dist/formats/gr2/CjsGr2Format.js.map +1 -0
  82. package/dist/formats/gr2/core/CjsFormatGr2.js +273 -0
  83. package/dist/formats/gr2/core/CjsFormatGr2.js.map +1 -0
  84. package/dist/formats/gr2/core/bitknit2.js +280 -0
  85. package/dist/formats/gr2/core/bitknit2.js.map +1 -0
  86. package/dist/formats/gr2/core/curves.js +1047 -0
  87. package/dist/formats/gr2/core/curves.js.map +1 -0
  88. package/dist/formats/gr2/core/gsf.js +72 -0
  89. package/dist/formats/gr2/core/gsf.js.map +1 -0
  90. package/dist/formats/gr2/core/helpers.js +332 -0
  91. package/dist/formats/gr2/core/helpers.js.map +1 -0
  92. package/dist/formats/gr2/core/json.js +622 -0
  93. package/dist/formats/gr2/core/json.js.map +1 -0
  94. package/dist/formats/gr2/core/oodle1.js +388 -0
  95. package/dist/formats/gr2/core/oodle1.js.map +1 -0
  96. package/dist/formats/gr2/core/reader.js +617 -0
  97. package/dist/formats/gr2/core/reader.js.map +1 -0
  98. package/dist/formats/gr2/core/tangents.js +48 -0
  99. package/dist/formats/gr2/core/tangents.js.map +1 -0
  100. package/dist/formats/gr2/core/targets.js +351 -0
  101. package/dist/formats/gr2/core/targets.js.map +1 -0
  102. package/dist/formats/gr2/index.js +3 -0
  103. package/dist/formats/gr2/index.js.map +1 -0
  104. package/dist/formats/index.js +30 -23
  105. package/dist/formats/index.js.map +1 -1
  106. package/dist/formats/jpeg/CjsJpegFormat.js +212 -206
  107. package/dist/formats/jpeg/CjsJpegFormat.js.map +1 -1
  108. package/dist/formats/jpeg/core/helpers.js +350 -350
  109. package/dist/formats/jpeg/core/jpeg.js +387 -377
  110. package/dist/formats/jpeg/core/jpeg.js.map +1 -1
  111. package/dist/formats/jpeg/index.js +2 -2
  112. package/dist/formats/mp3/CjsMp3Format.js +197 -192
  113. package/dist/formats/mp3/CjsMp3Format.js.map +1 -1
  114. package/dist/formats/mp3/core/helpers.js +338 -338
  115. package/dist/formats/mp3/index.js +2 -2
  116. package/dist/formats/mp4/CjsMp4Format.js +197 -191
  117. package/dist/formats/mp4/CjsMp4Format.js.map +1 -1
  118. package/dist/formats/mp4/core/helpers.js +449 -449
  119. package/dist/formats/mp4/index.js +2 -2
  120. package/dist/formats/obj/CjsObjFormat.js +253 -253
  121. package/dist/formats/obj/core/helpers.js +573 -573
  122. package/dist/formats/obj/core/json.js +64 -64
  123. package/dist/formats/obj/core/parser.js +321 -321
  124. package/dist/formats/obj/index.js +2 -2
  125. package/dist/formats/ogg/CjsOggFormat.js +94 -88
  126. package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
  127. package/dist/formats/ogg/core/helpers.js +387 -387
  128. package/dist/formats/ogg/core/imdct.js +178 -178
  129. package/dist/formats/ogg/core/vorbis.js +1004 -999
  130. package/dist/formats/ogg/core/vorbis.js.map +1 -1
  131. package/dist/formats/ogg/index.js +2 -2
  132. package/dist/formats/png/CjsPngFormat.js +201 -195
  133. package/dist/formats/png/CjsPngFormat.js.map +1 -1
  134. package/dist/formats/png/core/helpers.js +583 -583
  135. package/dist/formats/png/index.js +2 -2
  136. package/dist/formats/red/CjsRedFormat.js +261 -261
  137. package/dist/formats/red/core/CjsRedReader.js +194 -194
  138. package/dist/formats/red/core/blackDefinitions.js +3 -3
  139. package/dist/formats/red/core/helpers.js +139 -139
  140. package/dist/formats/red/core/redGraph.js +68 -68
  141. package/dist/formats/red/core/schema.js +4 -4
  142. package/dist/formats/red/index.js +2 -2
  143. package/dist/formats/stl/CjsStlFormat.js +365 -365
  144. package/dist/formats/stl/core/helpers.js +261 -261
  145. package/dist/formats/stl/core/json.js +51 -51
  146. package/dist/formats/stl/core/stl.js +634 -629
  147. package/dist/formats/stl/core/stl.js.map +1 -1
  148. package/dist/formats/stl/core/targets.js +163 -163
  149. package/dist/formats/stl/index.js +2 -2
  150. package/dist/formats/tga/CjsTgaFormat.js +197 -192
  151. package/dist/formats/tga/CjsTgaFormat.js.map +1 -1
  152. package/dist/formats/tga/core/helpers.js +446 -446
  153. package/dist/formats/tga/index.js +2 -2
  154. package/dist/formats/wav/CjsWavFormat.js +198 -192
  155. package/dist/formats/wav/CjsWavFormat.js.map +1 -1
  156. package/dist/formats/wav/core/helpers.js +328 -328
  157. package/dist/formats/wav/index.js +2 -2
  158. package/dist/formats/webm/CjsWebmFormat.js +197 -191
  159. package/dist/formats/webm/CjsWebmFormat.js.map +1 -1
  160. package/dist/formats/webm/core/helpers.js +537 -537
  161. package/dist/formats/webm/index.js +2 -2
  162. package/dist/formats/webp/CjsWebpFormat.js +91 -86
  163. package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
  164. package/dist/formats/webp/core/helpers.js +214 -214
  165. package/dist/formats/webp/index.js +2 -2
  166. package/dist/formats/wem/CjsWemFormat.js +242 -241
  167. package/dist/formats/wem/CjsWemFormat.js.map +1 -1
  168. package/dist/formats/wem/core/bitStream.js +259 -259
  169. package/dist/formats/wem/core/codebookLibrary.js +164 -164
  170. package/dist/formats/wem/core/helpers.js +417 -417
  171. package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -30
  172. package/dist/formats/wem/core/ptadpcm.js +77 -77
  173. package/dist/formats/wem/core/resolve.js +121 -121
  174. package/dist/formats/wem/core/wemToOgg.js +485 -485
  175. package/dist/formats/wem/index.js +2 -2
  176. package/dist/formats/yaml/CjsYamlFormat.js +89 -83
  177. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
  178. package/dist/formats/yaml/core/CjsYamlReader.js +311 -305
  179. package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
  180. package/dist/formats/yaml/core/helpers.js +160 -160
  181. package/dist/formats/yaml/index.js +2 -2
  182. package/dist/index.js +49 -48
  183. package/dist/index.js.map +1 -1
  184. package/dist/resourcePath.js +18 -18
  185. package/dist/resourceStates.js +9 -9
  186. package/dist/resources/AudioGeometryResData.js +47 -47
  187. package/dist/resources/GStateBindingCallbackData.js +31 -31
  188. package/dist/resources/MeshDecalData.js +37 -37
  189. package/dist/resources/MeshDecalLodData.js +34 -34
  190. package/dist/resources/Tr2EffectRes.js +71 -71
  191. package/dist/resources/Tr2GrannyIntersectionResult.js +60 -60
  192. package/dist/resources/Tr2GrannyStateRes.js +44 -44
  193. package/dist/resources/Tr2ImageRes.js +114 -114
  194. package/dist/resources/Tr2LightProfileRes.js +40 -40
  195. package/dist/resources/Tr2MaterialArea.js +34 -34
  196. package/dist/resources/Tr2MaterialMesh.js +31 -31
  197. package/dist/resources/Tr2MaterialRes.js +34 -34
  198. package/dist/resources/Tr2ShaderPermutation.js +43 -43
  199. package/dist/resources/Tr2TextureLodManager.js +80 -80
  200. package/dist/resources/Tr2TextureLodUpdateRequest.js +37 -37
  201. package/dist/resources/Tr2TexturePackChannel.js +37 -37
  202. package/dist/resources/Tr2TexturePipeline.js +52 -52
  203. package/dist/resources/Tr2TexturePipelineParams.js +34 -34
  204. package/dist/resources/Tr2TexturePipelineStepCompress.js +40 -40
  205. package/dist/resources/Tr2TexturePipelineStepGenerateMips.js +22 -0
  206. package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +1 -0
  207. package/dist/resources/Tr2TexturePipelineStepLimitSize.js +34 -34
  208. package/dist/resources/Tr2TexturePipelineStepLoad.js +31 -31
  209. package/dist/resources/Tr2TexturePipelineStepPack.js +43 -43
  210. package/dist/resources/TriGeometryRes.js +239 -239
  211. package/dist/resources/TriGeometryResAreaData.js +59 -59
  212. package/dist/resources/TriGeometryResJointData.js +38 -38
  213. package/dist/resources/TriGeometryResLodData.js +88 -88
  214. package/dist/resources/TriGeometryResMeshData.js +63 -63
  215. package/dist/resources/TriGeometryResSkeletonData.js +34 -34
  216. package/dist/resources/TriGrannyRes.js +43 -43
  217. package/dist/resources/TriJointBinding.js +38 -38
  218. package/dist/resources/TriMorphTargetGeometryConstants.js +46 -46
  219. package/dist/resources/TriRtGeometryConstants.js +88 -88
  220. package/dist/resources/TriTextureRes.js +304 -304
  221. package/dist/resources/enums.js +18 -18
  222. package/dist/resources/resourceBoundary.js +47 -47
  223. package/dist/resources/texturePipelineBehavior.js +308 -308
  224. package/dist/texture/CjsTextureArrayRes.js +406 -406
  225. package/dist/texture/CjsTextureParameterProxy.js +133 -133
  226. package/docs/README.md +73 -0
  227. package/docs/architecture.md +86 -0
  228. package/docs/concepts/resource-lifecycle.md +217 -0
  229. package/docs/formats/README.md +105 -0
  230. package/docs/formats/gr2.md +161 -0
  231. package/{FORMAT-PROVENANCE.md → docs/formats/provenance.md} +173 -155
  232. package/docs/formats/stl.md +37 -0
  233. package/docs/formats/wwise.md +44 -0
  234. package/docs/reference/classes/README.md +33 -0
  235. package/docs/reference/classes/core.md +106 -0
  236. package/docs/reference/classes/dropped.md +46 -0
  237. package/docs/reference/classes/formats.md +522 -0
  238. package/docs/reference/classes/resources.md +346 -0
  239. package/docs/reference/classes/texture.md +26 -0
  240. package/docs/reference/events.md +92 -0
  241. package/docs/reference/motherlode-cache.md +244 -0
  242. package/docs/reference/queues.md +102 -0
  243. package/docs/reference/reload.md +107 -0
  244. package/docs/reference/texture-arrays.md +113 -0
  245. package/docs/reference/texture-pipeline.md +53 -0
  246. package/docs/roadmap.md +104 -0
  247. package/format-notices/black/LICENSE +21 -21
  248. package/format-notices/black/NOTICE +47 -47
  249. package/format-notices/bnk/LICENSE +21 -21
  250. package/format-notices/bnk/NOTICE +20 -20
  251. package/format-notices/cmf/LICENSE +21 -21
  252. package/format-notices/cmf/NOTICE +36 -36
  253. package/format-notices/dds/LICENSE +21 -21
  254. package/format-notices/dds/NOTICE +14 -14
  255. package/format-notices/fbx/LICENSE +21 -21
  256. package/format-notices/fbx/NOTICE +14 -14
  257. package/format-notices/flac/LICENSE +21 -21
  258. package/format-notices/flac/NOTICE +14 -14
  259. package/format-notices/gif/LICENSE +21 -21
  260. package/format-notices/gif/NOTICE +14 -14
  261. package/format-notices/gltf/LICENSE +21 -21
  262. package/format-notices/gltf/NOTICE +27 -27
  263. package/format-notices/gr2/LICENSE +21 -0
  264. package/format-notices/gr2/NOTICE +60 -0
  265. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +93 -0
  266. package/format-notices/jpeg/LICENSE +21 -21
  267. package/format-notices/jpeg/NOTICE +14 -14
  268. package/format-notices/mp3/LICENSE +21 -21
  269. package/format-notices/mp3/NOTICE +14 -14
  270. package/format-notices/mp4/LICENSE +21 -21
  271. package/format-notices/mp4/NOTICE +14 -14
  272. package/format-notices/obj/LICENSE +21 -21
  273. package/format-notices/obj/NOTICE +26 -26
  274. package/format-notices/ogg/LICENSE +21 -21
  275. package/format-notices/ogg/NOTICE +28 -28
  276. package/format-notices/png/LICENSE +21 -21
  277. package/format-notices/png/NOTICE +14 -14
  278. package/format-notices/red/LICENSE +21 -21
  279. package/format-notices/red/NOTICE +31 -31
  280. package/format-notices/stl/LICENSE +21 -21
  281. package/format-notices/stl/NOTICE +21 -21
  282. package/format-notices/tga/LICENSE +21 -21
  283. package/format-notices/tga/NOTICE +14 -14
  284. package/format-notices/wav/LICENSE +21 -21
  285. package/format-notices/wav/NOTICE +14 -14
  286. package/format-notices/webm/LICENSE +21 -21
  287. package/format-notices/webm/NOTICE +14 -14
  288. package/format-notices/webp/LICENSE +21 -21
  289. package/format-notices/webp/NOTICE +14 -14
  290. package/format-notices/wem/LICENSE +57 -57
  291. package/format-notices/wem/NOTICE +33 -33
  292. package/format-notices/yaml/LICENSE +21 -21
  293. package/format-notices/yaml/NOTICE +44 -44
  294. package/package.json +52 -51
  295. package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js +0 -4
  296. package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js.map +0 -1
  297. package/resource-lifecycle.md +0 -679
@@ -0,0 +1,37 @@
1
+ # STL export
2
+
3
+ Status: Evolving
4
+ Scope: `@carbonenginejs/runtime-resource/formats/stl`
5
+ Audience: Users and integrators
6
+ Summary: Defines the STL writer contract for shared geometry, including validation and watertight checking.
7
+
8
+ ## Contract
9
+
10
+ `CjsStlFormat` writes shared geometry directly to binary or ASCII STL. The
11
+ writer consumes `mesh.vertex.position` and triangular `mesh.indices[].faces`;
12
+ multiple meshes and index groups are flattened in encounter order because STL
13
+ does not carry portable scene, material, skin, or animation structure.
14
+
15
+ ```js
16
+ import { CjsStlFormat } from "@carbonenginejs/runtime-resource/formats/stl";
17
+
18
+ const bytes = CjsStlFormat.write(sharedGeometry, {
19
+ binary: true,
20
+ solidName: "ship_hull",
21
+ scale: 1000,
22
+ requireWatertight: true
23
+ });
24
+ ```
25
+
26
+ Writes do not mutate the shared input. Facet normals are recalculated from
27
+ winding by default; set `recalculateNormals: false` to average valid vertex
28
+ normals. Degenerate triangles are skipped by default. Index values must be
29
+ safe integers within the position channel, and binary output rejects
30
+ coordinates outside float32 range instead of silently emitting infinities.
31
+ The `requireWatertight` option rejects open, non-manifold, inconsistently
32
+ wound, or degenerate output.
33
+
34
+ ## Related documentation
35
+
36
+ - [Format subpaths](README.md)
37
+ - [Format ownership and fork provenance](provenance.md)
@@ -0,0 +1,44 @@
1
+ # Wwise soundbanks and media
2
+
3
+ Status: Evolving
4
+ Scope: `@carbonenginejs/runtime-resource/formats/bnk`, `@carbonenginejs/runtime-resource/formats/wem`
5
+ Audience: Users and integrators
6
+ Summary: Defines the Wwise container inspection, event/media graph extraction, and WEM conversion contracts.
7
+
8
+ ## Scope
9
+
10
+ `formats/bnk` and `formats/wem` cover Wwise container inspection, event/media
11
+ graph extraction, embedded-member access, and the currently supported WEM
12
+ conversion routes. They do not own AudioBuffer construction, playback, audio
13
+ manager behavior, or decoded-backend retention.
14
+
15
+ ## Soundbank inspection
16
+
17
+ `CjsBnkFormat.inspect()` decodes the chunk map, embedded media index, bank
18
+ names, and the HIRC listing with version-stable typed fields (event action
19
+ lists, action type/target, sound and music-track source ids; pinned against
20
+ bank generator version 150). The Wwise-domain toolkit is grouped under the
21
+ `CjsBnkFormat.wwise` static: the SoundbanksInfo catalog helpers, the FNV-1
22
+ id hash, and event to media resolution:
23
+
24
+ ```js
25
+ import { CjsBnkFormat } from "@carbonenginejs/runtime-resource/formats/bnk";
26
+ import { CjsWemFormat } from "@carbonenginejs/runtime-resource/formats/wem";
27
+
28
+ const inspections = bankByteArrays.map(bytes => CjsBnkFormat.inspect(bytes));
29
+ const { eventMedia } = CjsBnkFormat.wwise.eventMediaFromBanks(inspections);
30
+ // eventMedia: Map<eventObjectId, Set<wemId>> - banks may split events from
31
+ // their target sounds, so pass every related bank to one call.
32
+
33
+ const ogg = CjsWemFormat.toOgg(wemBytes); // Wwise Vorbis -> Ogg (lossless)
34
+ const pcm = CjsWemFormat.toPcm(wemBytes); // PTADPCM / 16-bit PCM -> float32
35
+ ```
36
+
37
+ The read/inspect path stays a pure container reader;
38
+ `wwise.eventMediaFromBanks` is graph interpretation offered for consumers
39
+ with their own engines — the resource lifecycle never calls it.
40
+
41
+ ## Related documentation
42
+
43
+ - [Format subpaths](README.md)
44
+ - [Format ownership and fork provenance](provenance.md)
@@ -0,0 +1,33 @@
1
+ # Class catalog
2
+
3
+ Status: Evolving
4
+ Scope: `@carbonenginejs/runtime-resource` classes
5
+ Audience: Users, maintainers, and automated readers
6
+ Summary: Indexes the one-sentence purpose descriptors for every maintained class in the package.
7
+
8
+ ## Purpose
9
+
10
+ Every maintained class carries exactly one catalog entry with a stable HTML
11
+ marker, so a class can be located with an exact low-cost search:
12
+
13
+ ```sh
14
+ rg 'class:CjsResMan' docs/reference/classes
15
+ ```
16
+
17
+ Entries record a one-sentence responsibility plus Export, Source, Visibility,
18
+ and Kind metadata. The catalog is an index, not a replacement for the API
19
+ reference or source documentation, and it is validated by the shared
20
+ documentation check against the actual source tree.
21
+
22
+ ## Catalog pages
23
+
24
+ - [core.md](core.md): the resource manager, MotherLode cache, resource and
25
+ source classes, and the format/probe bases.
26
+ - [resources.md](resources.md): the Carbon-shaped semantic resource and data
27
+ classes under `src/resources`.
28
+ - [texture.md](texture.md): texture-array aggregation classes under
29
+ `src/texture`.
30
+ - [formats.md](formats.md): format entry classes and their internal reader
31
+ machinery under `src/formats`.
32
+ - [dropped.md](dropped.md): retained native shapes under `src/dropped` that
33
+ are documented but never exported or bundled.
@@ -0,0 +1,106 @@
1
+ # Core class catalog
2
+
3
+ Status: Evolving
4
+ Scope: `@carbonenginejs/runtime-resource` classes under `src/` and `src/format/`
5
+ Audience: Users, maintainers, and automated readers
6
+ Summary: Provides one-sentence purpose descriptors for the resource manager, registry, resource, source, and format/probe base classes.
7
+
8
+ <!-- class:CjsMotherLode -->
9
+ ## `CjsMotherLode`
10
+
11
+ Strong, deterministic resource registry that owns canonical path/variant identities and evicts entries only through explicit ownership removal, inactivity sweeps, or recorded-byte cache trimming, replacing Carbon's weak-live/strong-cache ownership transition.
12
+
13
+ - Export: `@carbonenginejs/runtime-resource`
14
+ - Source: `src/CjsMotherLode.js`
15
+ - Visibility: Public
16
+ - Kind: Adapted Carbon concept
17
+
18
+ <!-- class:CjsResMan -->
19
+ ## `CjsResMan`
20
+
21
+ GPU-free resource manager that resolves paths through registered sources and formats, publishes canonical resources into a `CjsMotherLode` registry under exact-owner generation guards, and drives the main/background work queues, read-operation caching, reload staging, and automatic purge policy.
22
+
23
+ - Export: `@carbonenginejs/runtime-resource`
24
+ - Source: `src/CjsResMan.js`
25
+ - Visibility: Public
26
+ - Kind: Adapted Carbon concept
27
+
28
+ <!-- class:CjsResManWorkQueue -->
29
+ ## `CjsResManWorkQueue`
30
+
31
+ Small FIFO executor used inside `CjsResMan` that tracks item ids, pause state, concurrency, cancellation, and sync/async completion while queue policy stays in the manager.
32
+
33
+ - Export: None
34
+ - Source: `src/CjsResManQueue.js`
35
+ - Visibility: Internal
36
+ - Kind: Internal implementation class
37
+
38
+ <!-- class:CjsResource -->
39
+ ## `CjsResource`
40
+
41
+ Base runtime resource handle that carries normalized path/extension/requirement identity, load state, and an attached CPU payload, with manager lifecycle callbacks supplied by `CjsResMan` after canonical insertion.
42
+
43
+ - Export: `@carbonenginejs/runtime-resource`
44
+ - Source: `src/CjsResource.js`
45
+ - Visibility: Public
46
+ - Kind: Adapted Carbon concept
47
+
48
+ <!-- class:CjsMemoryResourceSource -->
49
+ ## `CjsMemoryResourceSource`
50
+
51
+ In-memory resource source that maps normalized resource paths to preset values and serves them to reads without any I/O.
52
+
53
+ - Export: `@carbonenginejs/runtime-resource`
54
+ - Source: `src/CjsResourceSource.js`
55
+ - Visibility: Public
56
+ - Kind: Original CarbonEngineJS class
57
+
58
+ <!-- class:CjsFetchResourceSource -->
59
+ ## `CjsFetchResourceSource`
60
+
61
+ Resource source that resolves a normalized path against an optional base URL and reads response bytes through an injected fetch implementation.
62
+
63
+ - Export: `@carbonenginejs/runtime-resource`
64
+ - Source: `src/CjsResourceSource.js`
65
+ - Visibility: Public
66
+ - Kind: Original CarbonEngineJS class
67
+
68
+ <!-- class:CjsBlueReader -->
69
+ ## `CjsBlueReader`
70
+
71
+ Shared output and hydration backend for Blue persistence readers that owns common payload/runtime targets, reference emission, hydration adapter phases, reports, finalization, and schema-descriptor helpers, while transports keep framing and member decoding.
72
+
73
+ - Export: None
74
+ - Source: `src/format/CjsBlueReader.js`
75
+ - Visibility: Internal
76
+ - Kind: Internal implementation class
77
+
78
+ <!-- class:CjsFormat -->
79
+ ## `CjsFormat`
80
+
81
+ Base class for format readers that defines the static `read`/`readAsync`/`isSupported`/`resolveType` contract and instance option handling that concrete format packages implement.
82
+
83
+ - Export: `@carbonenginejs/runtime-resource`
84
+ - Source: `src/format/CjsFormat.js`
85
+ - Visibility: Public
86
+ - Kind: Original CarbonEngineJS class
87
+
88
+ <!-- class:CjsReader -->
89
+ ## `CjsReader`
90
+
91
+ Internal base for construction-bound readers that are created for one source and dropped after use, relying on garbage collection instead of explicit dispose/clear cleanup.
92
+
93
+ - Export: None
94
+ - Source: `src/format/CjsReader.js`
95
+ - Visibility: Internal
96
+ - Kind: Internal implementation class
97
+
98
+ <!-- class:CjsResourceProbe -->
99
+ ## `CjsResourceProbe`
100
+
101
+ Standard probe-report model that formats return from inspection, recording support status, content-verification state, confidence, preferred route, capability variants, warnings, and errors without choosing an engine or media backend.
102
+
103
+ - Export: `@carbonenginejs/runtime-resource`
104
+ - Source: `src/format/CjsResourceProbe.js`
105
+ - Visibility: Public
106
+ - Kind: Original CarbonEngineJS class
@@ -0,0 +1,46 @@
1
+ # Dropped class catalog
2
+
3
+ Status: Evolving
4
+ Scope: `@carbonenginejs/runtime-resource` classes under `src/dropped`
5
+ Audience: Users, maintainers, and automated readers
6
+ Summary: Provides one-sentence purpose descriptors for retained-only Carbon reference shapes that are never exported or bundled.
7
+
8
+ <!-- class:CmfVertexReader -->
9
+ ## `CmfVertexReader`
10
+
11
+ Retained-only reference shape mirroring Carbon's CMF vertex-element pointer-lookup helper, superseded by the JavaScript CMF format's channel decoding.
12
+
13
+ - Export: None
14
+ - Source: `src/dropped/CmfVertexReader.js`
15
+ - Visibility: Internal
16
+ - Kind: Faithful Carbon port
17
+
18
+ <!-- class:Tr2AsyncSave -->
19
+ ## `Tr2AsyncSave`
20
+
21
+ Retained-only reference shape mirroring Carbon's abstract prepare/save callback base, superseded by promise-based format `Write`/`WriteAsync` operations and resource-level save-status compatibility methods.
22
+
23
+ - Export: None
24
+ - Source: `src/dropped/Tr2AsyncSave.js`
25
+ - Visibility: Internal
26
+ - Kind: Faithful Carbon port
27
+
28
+ <!-- class:Tr2CmfContents -->
29
+ ## `Tr2CmfContents`
30
+
31
+ Retained-only reference shape mirroring Carbon's native CMF section lifetime and decompression holder, superseded by `CjsCmfFormat`'s bounded section access and typed-array data.
32
+
33
+ - Export: None
34
+ - Source: `src/dropped/Tr2CmfContents.js`
35
+ - Visibility: Internal
36
+ - Kind: Faithful Carbon port
37
+
38
+ <!-- class:Tr2LoadPrepareFence -->
39
+ ## `Tr2LoadPrepareFence`
40
+
41
+ Retained-only reference shape mirroring Carbon's two-queue load/prepare fence helper, superseded by the snapshot-fence contract owned by `CjsResMan.Wait()`.
42
+
43
+ - Export: None
44
+ - Source: `src/dropped/Tr2LoadPrepareFence.js`
45
+ - Visibility: Internal
46
+ - Kind: Faithful Carbon port