@carbonenginejs/runtime-resource 0.1.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/FORMAT-PROVENANCE.md +155 -135
  2. package/LICENSE +21 -21
  3. package/NOTICE +29 -29
  4. package/README.md +548 -241
  5. package/dist/CjsMotherLode.js +1271 -56
  6. package/dist/CjsMotherLode.js.map +1 -1
  7. package/dist/CjsResMan.js +3005 -740
  8. package/dist/CjsResMan.js.map +1 -1
  9. package/dist/CjsResManQueue.js +214 -214
  10. package/dist/CjsResource.js +566 -366
  11. package/dist/CjsResource.js.map +1 -1
  12. package/dist/CjsResourceSource.js +59 -59
  13. package/dist/_virtual/_rollupPluginBabelHelpers.js +153 -153
  14. package/dist/format/CjsBlueReader.js +269 -0
  15. package/dist/format/CjsBlueReader.js.map +1 -0
  16. package/dist/format/CjsFormat.js +192 -178
  17. package/dist/format/CjsFormat.js.map +1 -1
  18. package/dist/format/CjsReader.js +18 -0
  19. package/dist/format/CjsReader.js.map +1 -0
  20. package/dist/format/CjsResourceProbe.js +277 -269
  21. package/dist/format/CjsResourceProbe.js.map +1 -1
  22. package/dist/format/payloadContract.js +173 -173
  23. package/dist/formats/black/CjsBlackFormat.js +278 -272
  24. package/dist/formats/black/CjsBlackFormat.js.map +1 -1
  25. package/dist/formats/black/core/CjsBlackBinaryReader.js +153 -153
  26. package/dist/formats/black/core/CjsBlackPropertyReaders.js +382 -382
  27. package/dist/formats/black/core/CjsBlackReader.js +639 -760
  28. package/dist/formats/black/core/CjsBlackReader.js.map +1 -1
  29. package/dist/formats/black/core/CjsBlackSchemaRegistry.js +433 -433
  30. package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js +4 -4
  31. package/dist/formats/black/core/blackConstants.js +7 -7
  32. package/dist/formats/black/core/blackDefinitions.js +10 -10
  33. package/dist/formats/black/core/blackEnums.js +6 -6
  34. package/dist/formats/black/core/blackSchema.js +3 -3
  35. package/dist/formats/black/core/blackVersion.js +22 -22
  36. package/dist/formats/black/core/helpers.js +182 -182
  37. package/dist/formats/black/core/schema.js +4 -4
  38. package/dist/formats/black/index.js +2 -2
  39. package/dist/formats/bnk/CjsBnkFormat.js +238 -245
  40. package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
  41. package/dist/formats/bnk/core/graph.js +140 -0
  42. package/dist/formats/bnk/core/graph.js.map +1 -0
  43. package/dist/formats/bnk/core/helpers.js +409 -354
  44. package/dist/formats/bnk/core/helpers.js.map +1 -1
  45. package/dist/formats/bnk/core/musicNodes.js +521 -0
  46. package/dist/formats/bnk/core/musicNodes.js.map +1 -0
  47. package/dist/formats/bnk/core/soundbanksInfo.js +246 -246
  48. package/dist/formats/bnk/index.js +2 -3
  49. package/dist/formats/bnk/index.js.map +1 -1
  50. package/dist/formats/cmf/CjsCmfFormat.js +497 -491
  51. package/dist/formats/cmf/CjsCmfFormat.js.map +1 -1
  52. package/dist/formats/cmf/core/binary.js +118 -118
  53. package/dist/formats/cmf/core/buffers.js +233 -233
  54. package/dist/formats/cmf/core/constants.js +47 -47
  55. package/dist/formats/cmf/core/gr2Anim.js +453 -453
  56. package/dist/formats/cmf/core/helpers.js +287 -287
  57. package/dist/formats/cmf/core/pack.js +276 -276
  58. package/dist/formats/cmf/core/schema.js +364 -364
  59. package/dist/formats/cmf/core/shared.js +268 -268
  60. package/dist/formats/cmf/core/writer.js +517 -517
  61. package/dist/formats/cmf/index.js +2 -2
  62. package/dist/formats/dds/CjsDdsFormat.js +193 -187
  63. package/dist/formats/dds/CjsDdsFormat.js.map +1 -1
  64. package/dist/formats/dds/core/bc6h.js +288 -0
  65. package/dist/formats/dds/core/bc6h.js.map +1 -0
  66. package/dist/formats/dds/core/bc7.js +251 -0
  67. package/dist/formats/dds/core/bc7.js.map +1 -0
  68. package/dist/formats/dds/core/helpers.js +815 -812
  69. package/dist/formats/dds/core/helpers.js.map +1 -1
  70. package/dist/formats/dds/index.js +2 -2
  71. package/dist/formats/fbx/CjsFbxFormat.js +266 -260
  72. package/dist/formats/fbx/CjsFbxFormat.js.map +1 -1
  73. package/dist/formats/fbx/core/helpers.js +3901 -3901
  74. package/dist/formats/fbx/index.js +2 -2
  75. package/dist/formats/flac/CjsFlacFormat.js +87 -81
  76. package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
  77. package/dist/formats/flac/core/helpers.js +295 -295
  78. package/dist/formats/flac/index.js +2 -2
  79. package/dist/formats/gif/CjsGifFormat.js +87 -81
  80. package/dist/formats/gif/CjsGifFormat.js.map +1 -1
  81. package/dist/formats/gif/core/helpers.js +360 -360
  82. package/dist/formats/gif/index.js +2 -2
  83. package/dist/formats/gltf/CjsGltfFormat.js +290 -284
  84. package/dist/formats/gltf/CjsGltfFormat.js.map +1 -1
  85. package/dist/formats/gltf/core/helpers.js +292 -292
  86. package/dist/formats/gltf/core/json.js +79 -79
  87. package/dist/formats/gltf/core/parser.js +666 -666
  88. package/dist/formats/gltf/core/targets.js +163 -163
  89. package/dist/formats/gltf/index.js +2 -2
  90. package/dist/formats/index.js +23 -23
  91. package/dist/formats/jpeg/CjsJpegFormat.js +206 -200
  92. package/dist/formats/jpeg/CjsJpegFormat.js.map +1 -1
  93. package/dist/formats/jpeg/core/helpers.js +350 -350
  94. package/dist/formats/jpeg/core/jpeg.js +377 -377
  95. package/dist/formats/jpeg/index.js +2 -2
  96. package/dist/formats/mp3/CjsMp3Format.js +192 -186
  97. package/dist/formats/mp3/CjsMp3Format.js.map +1 -1
  98. package/dist/formats/mp3/core/helpers.js +338 -338
  99. package/dist/formats/mp3/index.js +2 -2
  100. package/dist/formats/mp4/CjsMp4Format.js +191 -185
  101. package/dist/formats/mp4/CjsMp4Format.js.map +1 -1
  102. package/dist/formats/mp4/core/helpers.js +449 -449
  103. package/dist/formats/mp4/index.js +2 -2
  104. package/dist/formats/obj/CjsObjFormat.js +253 -247
  105. package/dist/formats/obj/CjsObjFormat.js.map +1 -1
  106. package/dist/formats/obj/core/helpers.js +573 -573
  107. package/dist/formats/obj/core/json.js +64 -64
  108. package/dist/formats/obj/core/parser.js +321 -321
  109. package/dist/formats/obj/index.js +2 -2
  110. package/dist/formats/ogg/CjsOggFormat.js +88 -82
  111. package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
  112. package/dist/formats/ogg/core/helpers.js +387 -387
  113. package/dist/formats/ogg/core/imdct.js +178 -178
  114. package/dist/formats/ogg/core/vorbis.js +999 -999
  115. package/dist/formats/ogg/index.js +2 -2
  116. package/dist/formats/png/CjsPngFormat.js +195 -189
  117. package/dist/formats/png/CjsPngFormat.js.map +1 -1
  118. package/dist/formats/png/core/helpers.js +583 -583
  119. package/dist/formats/png/index.js +2 -2
  120. package/dist/formats/red/CjsRedFormat.js +261 -247
  121. package/dist/formats/red/CjsRedFormat.js.map +1 -1
  122. package/dist/formats/red/core/CjsRedReader.js +194 -201
  123. package/dist/formats/red/core/CjsRedReader.js.map +1 -1
  124. package/dist/formats/red/core/blackDefinitions.js +3 -3
  125. package/dist/formats/red/core/helpers.js +139 -136
  126. package/dist/formats/red/core/helpers.js.map +1 -1
  127. package/dist/formats/red/core/redGraph.js +68 -68
  128. package/dist/formats/red/core/schema.js +4 -4
  129. package/dist/formats/red/index.js +2 -2
  130. package/dist/formats/stl/CjsStlFormat.js +365 -304
  131. package/dist/formats/stl/CjsStlFormat.js.map +1 -1
  132. package/dist/formats/stl/core/helpers.js +261 -257
  133. package/dist/formats/stl/core/helpers.js.map +1 -1
  134. package/dist/formats/stl/core/json.js +51 -51
  135. package/dist/formats/stl/core/stl.js +629 -544
  136. package/dist/formats/stl/core/stl.js.map +1 -1
  137. package/dist/formats/stl/core/targets.js +163 -163
  138. package/dist/formats/stl/index.js +2 -2
  139. package/dist/formats/tga/CjsTgaFormat.js +192 -186
  140. package/dist/formats/tga/CjsTgaFormat.js.map +1 -1
  141. package/dist/formats/tga/core/helpers.js +446 -446
  142. package/dist/formats/tga/index.js +2 -2
  143. package/dist/formats/wav/CjsWavFormat.js +192 -186
  144. package/dist/formats/wav/CjsWavFormat.js.map +1 -1
  145. package/dist/formats/wav/core/helpers.js +328 -328
  146. package/dist/formats/wav/index.js +2 -2
  147. package/dist/formats/webm/CjsWebmFormat.js +191 -185
  148. package/dist/formats/webm/CjsWebmFormat.js.map +1 -1
  149. package/dist/formats/webm/core/helpers.js +537 -537
  150. package/dist/formats/webm/index.js +2 -2
  151. package/dist/formats/webp/CjsWebpFormat.js +86 -80
  152. package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
  153. package/dist/formats/webp/core/helpers.js +214 -214
  154. package/dist/formats/webp/index.js +2 -2
  155. package/dist/formats/wem/CjsWemFormat.js +241 -197
  156. package/dist/formats/wem/CjsWemFormat.js.map +1 -1
  157. package/dist/formats/wem/core/bitStream.js +259 -259
  158. package/dist/formats/wem/core/codebookLibrary.js +164 -164
  159. package/dist/formats/wem/core/helpers.js +417 -336
  160. package/dist/formats/wem/core/helpers.js.map +1 -1
  161. package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -30
  162. package/dist/formats/wem/core/ptadpcm.js +77 -0
  163. package/dist/formats/wem/core/ptadpcm.js.map +1 -0
  164. package/dist/formats/wem/core/resolve.js +121 -0
  165. package/dist/formats/wem/core/resolve.js.map +1 -0
  166. package/dist/formats/wem/core/wemToOgg.js +485 -485
  167. package/dist/formats/wem/index.js +2 -2
  168. package/dist/formats/yaml/CjsYamlFormat.js +83 -77
  169. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
  170. package/dist/formats/yaml/core/CjsYamlReader.js +305 -304
  171. package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
  172. package/dist/formats/yaml/core/helpers.js +160 -160
  173. package/dist/formats/yaml/index.js +2 -2
  174. package/dist/index.js +48 -52
  175. package/dist/index.js.map +1 -1
  176. package/dist/resourcePath.js +18 -18
  177. package/dist/resourceStates.js +9 -9
  178. package/dist/{generated/resources → resources}/AudioGeometryResData.js +47 -47
  179. package/dist/resources/AudioGeometryResData.js.map +1 -0
  180. package/dist/{generated/resources → resources}/GStateBindingCallbackData.js +31 -31
  181. package/dist/resources/GStateBindingCallbackData.js.map +1 -0
  182. package/dist/{generated/resources → resources}/MeshDecalData.js +37 -37
  183. package/dist/resources/MeshDecalData.js.map +1 -0
  184. package/dist/{generated/resources → resources}/MeshDecalLodData.js +34 -34
  185. package/dist/resources/MeshDecalLodData.js.map +1 -0
  186. package/dist/resources/Tr2EffectRes.js +71 -71
  187. package/dist/resources/Tr2GrannyIntersectionResult.js +60 -0
  188. package/dist/resources/Tr2GrannyIntersectionResult.js.map +1 -0
  189. package/dist/resources/Tr2GrannyStateRes.js +44 -44
  190. package/dist/resources/Tr2ImageRes.js +114 -114
  191. package/dist/resources/Tr2LightProfileRes.js +40 -40
  192. package/dist/{generated/resources → resources}/Tr2MaterialArea.js +34 -34
  193. package/dist/resources/Tr2MaterialArea.js.map +1 -0
  194. package/dist/{generated/resources → resources}/Tr2MaterialMesh.js +31 -31
  195. package/dist/resources/Tr2MaterialMesh.js.map +1 -0
  196. package/dist/{generated/resources → resources}/Tr2MaterialRes.js +34 -34
  197. package/dist/resources/Tr2MaterialRes.js.map +1 -0
  198. package/dist/{generated/resources → resources}/Tr2ShaderPermutation.js +43 -43
  199. package/dist/resources/Tr2ShaderPermutation.js.map +1 -0
  200. package/dist/{generated/resources → resources}/Tr2TextureLodManager.js +100 -60
  201. package/dist/resources/Tr2TextureLodManager.js.map +1 -0
  202. package/dist/{generated/resources → resources}/Tr2TextureLodUpdateRequest.js +37 -37
  203. package/dist/resources/Tr2TextureLodUpdateRequest.js.map +1 -0
  204. package/dist/{generated/resources → resources}/Tr2TexturePackChannel.js +37 -37
  205. package/dist/resources/Tr2TexturePackChannel.js.map +1 -0
  206. package/dist/resources/Tr2TexturePipeline.js +68 -0
  207. package/dist/resources/Tr2TexturePipeline.js.map +1 -0
  208. package/dist/{generated/resources → resources}/Tr2TexturePipelineParams.js +34 -34
  209. package/dist/resources/Tr2TexturePipelineParams.js.map +1 -0
  210. package/dist/{generated/resources → resources}/Tr2TexturePipelineStepCompress.js +40 -40
  211. package/dist/resources/Tr2TexturePipelineStepCompress.js.map +1 -0
  212. package/dist/{generated/resources → resources}/Tr2TexturePipelineStepLimitSize.js +34 -34
  213. package/dist/resources/Tr2TexturePipelineStepLimitSize.js.map +1 -0
  214. package/dist/{generated/resources → resources}/Tr2TexturePipelineStepLoad.js +31 -31
  215. package/dist/resources/Tr2TexturePipelineStepLoad.js.map +1 -0
  216. package/dist/{generated/resources → resources}/Tr2TexturePipelineStepPack.js +43 -43
  217. package/dist/resources/Tr2TexturePipelineStepPack.js.map +1 -0
  218. package/dist/resources/TriGeometryRes.js +239 -216
  219. package/dist/resources/TriGeometryRes.js.map +1 -1
  220. package/dist/{generated/resources → resources}/TriGeometryResAreaData.js +59 -59
  221. package/dist/resources/TriGeometryResAreaData.js.map +1 -0
  222. package/dist/{generated/resources → resources}/TriGeometryResJointData.js +38 -38
  223. package/dist/resources/TriGeometryResJointData.js.map +1 -0
  224. package/dist/{generated/resources → resources}/TriGeometryResLodData.js +88 -88
  225. package/dist/resources/TriGeometryResLodData.js.map +1 -0
  226. package/dist/{generated/resources → resources}/TriGeometryResMeshData.js +63 -63
  227. package/dist/resources/TriGeometryResMeshData.js.map +1 -0
  228. package/dist/{generated/resources → resources}/TriGeometryResSkeletonData.js +34 -34
  229. package/dist/resources/TriGeometryResSkeletonData.js.map +1 -0
  230. package/dist/resources/TriGrannyRes.js +43 -43
  231. package/dist/{generated/resources → resources}/TriJointBinding.js +38 -38
  232. package/dist/resources/TriJointBinding.js.map +1 -0
  233. package/dist/{generated/resources → resources}/TriMorphTargetGeometryConstants.js +46 -46
  234. package/dist/resources/TriMorphTargetGeometryConstants.js.map +1 -0
  235. package/dist/{generated/resources → resources}/TriRtGeometryConstants.js +88 -88
  236. package/dist/resources/TriRtGeometryConstants.js.map +1 -0
  237. package/dist/resources/TriTextureRes.js +304 -304
  238. package/dist/{generated/resources → resources}/enums.js +18 -18
  239. package/dist/resources/enums.js.map +1 -0
  240. package/dist/resources/resourceBoundary.js +47 -47
  241. package/dist/resources/texturePipelineBehavior.js +320 -0
  242. package/dist/resources/texturePipelineBehavior.js.map +1 -0
  243. package/dist/texture/CjsTextureArrayRes.js +406 -406
  244. package/dist/texture/CjsTextureParameterProxy.js +133 -133
  245. package/format-notices/black/LICENSE +21 -21
  246. package/format-notices/black/NOTICE +47 -47
  247. package/format-notices/bnk/LICENSE +21 -21
  248. package/format-notices/bnk/NOTICE +20 -17
  249. package/format-notices/cmf/LICENSE +21 -21
  250. package/format-notices/cmf/NOTICE +36 -36
  251. package/format-notices/dds/LICENSE +21 -21
  252. package/format-notices/dds/NOTICE +14 -14
  253. package/format-notices/fbx/LICENSE +21 -21
  254. package/format-notices/fbx/NOTICE +14 -14
  255. package/format-notices/flac/LICENSE +21 -21
  256. package/format-notices/flac/NOTICE +14 -14
  257. package/format-notices/gif/LICENSE +21 -21
  258. package/format-notices/gif/NOTICE +14 -14
  259. package/format-notices/gltf/LICENSE +21 -21
  260. package/format-notices/gltf/NOTICE +27 -27
  261. package/format-notices/jpeg/LICENSE +21 -21
  262. package/format-notices/jpeg/NOTICE +14 -14
  263. package/format-notices/mp3/LICENSE +21 -21
  264. package/format-notices/mp3/NOTICE +14 -14
  265. package/format-notices/mp4/LICENSE +21 -21
  266. package/format-notices/mp4/NOTICE +14 -14
  267. package/format-notices/obj/LICENSE +21 -21
  268. package/format-notices/obj/NOTICE +26 -26
  269. package/format-notices/ogg/LICENSE +21 -21
  270. package/format-notices/ogg/NOTICE +28 -28
  271. package/format-notices/png/LICENSE +21 -21
  272. package/format-notices/png/NOTICE +14 -14
  273. package/format-notices/red/LICENSE +21 -21
  274. package/format-notices/red/NOTICE +31 -31
  275. package/format-notices/stl/LICENSE +21 -21
  276. package/format-notices/stl/NOTICE +21 -21
  277. package/format-notices/tga/LICENSE +21 -21
  278. package/format-notices/tga/NOTICE +14 -14
  279. package/format-notices/wav/LICENSE +21 -21
  280. package/format-notices/wav/NOTICE +14 -14
  281. package/format-notices/webm/LICENSE +21 -21
  282. package/format-notices/webm/NOTICE +14 -14
  283. package/format-notices/webp/LICENSE +21 -21
  284. package/format-notices/webp/NOTICE +14 -14
  285. package/format-notices/wem/LICENSE +57 -57
  286. package/format-notices/wem/NOTICE +33 -33
  287. package/format-notices/yaml/LICENSE +21 -21
  288. package/format-notices/yaml/NOTICE +44 -44
  289. package/package.json +51 -51
  290. package/resource-lifecycle.md +679 -487
  291. package/dist/generated/resources/AudioGeometryResData.js.map +0 -1
  292. package/dist/generated/resources/CmfVertexReader.js +0 -46
  293. package/dist/generated/resources/CmfVertexReader.js.map +0 -1
  294. package/dist/generated/resources/GStateBindingCallbackData.js.map +0 -1
  295. package/dist/generated/resources/MeshDecalData.js.map +0 -1
  296. package/dist/generated/resources/MeshDecalLodData.js.map +0 -1
  297. package/dist/generated/resources/Tr2AsyncSave.js +0 -46
  298. package/dist/generated/resources/Tr2AsyncSave.js.map +0 -1
  299. package/dist/generated/resources/Tr2CmfContents.js +0 -37
  300. package/dist/generated/resources/Tr2CmfContents.js.map +0 -1
  301. package/dist/generated/resources/Tr2GrannyIntersectionResult.js +0 -58
  302. package/dist/generated/resources/Tr2GrannyIntersectionResult.js.map +0 -1
  303. package/dist/generated/resources/Tr2LoadPrepareFence.js +0 -37
  304. package/dist/generated/resources/Tr2LoadPrepareFence.js.map +0 -1
  305. package/dist/generated/resources/Tr2MaterialArea.js.map +0 -1
  306. package/dist/generated/resources/Tr2MaterialMesh.js.map +0 -1
  307. package/dist/generated/resources/Tr2MaterialRes.js.map +0 -1
  308. package/dist/generated/resources/Tr2ShaderPermutation.js.map +0 -1
  309. package/dist/generated/resources/Tr2TextureLodManager.js.map +0 -1
  310. package/dist/generated/resources/Tr2TextureLodUpdateRequest.js.map +0 -1
  311. package/dist/generated/resources/Tr2TexturePackChannel.js.map +0 -1
  312. package/dist/generated/resources/Tr2TexturePipeline.js +0 -44
  313. package/dist/generated/resources/Tr2TexturePipeline.js.map +0 -1
  314. package/dist/generated/resources/Tr2TexturePipelineParams.js.map +0 -1
  315. package/dist/generated/resources/Tr2TexturePipelineStepCompress.js.map +0 -1
  316. package/dist/generated/resources/Tr2TexturePipelineStepLimitSize.js.map +0 -1
  317. package/dist/generated/resources/Tr2TexturePipelineStepLoad.js.map +0 -1
  318. package/dist/generated/resources/Tr2TexturePipelineStepPack.js.map +0 -1
  319. package/dist/generated/resources/TriGeometryResAreaData.js.map +0 -1
  320. package/dist/generated/resources/TriGeometryResJointData.js.map +0 -1
  321. package/dist/generated/resources/TriGeometryResLodData.js.map +0 -1
  322. package/dist/generated/resources/TriGeometryResMeshData.js.map +0 -1
  323. package/dist/generated/resources/TriGeometryResSkeletonData.js.map +0 -1
  324. package/dist/generated/resources/TriJointBinding.js.map +0 -1
  325. package/dist/generated/resources/TriMorphTargetGeometryConstants.js.map +0 -1
  326. package/dist/generated/resources/TriRtGeometryConstants.js.map +0 -1
  327. package/dist/generated/resources/enums.js.map +0 -1
  328. package/dist/generated/resources/index.js +0 -32
  329. package/dist/generated/resources/index.js.map +0 -1
@@ -1,135 +1,155 @@
1
- # Format ownership and fork provenance
2
-
3
- On 2026-07-13, the non-shader runtime format implementations below were copied
4
- once into `runtime-resource`. Their standalone repositories remain frozen with
5
- their existing APIs and names; they are not upstreams for the runtime copies.
6
-
7
- Copied paths were `src/` and the behavioral `test/` corpus. Package publishing
8
- scripts and CLIs were not copied. Exact donor license and notice files are kept
9
- under `format-notices/<format>/`.
10
-
11
- | Legacy package | Source revision/state | Runtime class | Runtime import |
12
- |---|---|---|---|
13
- | `format-black` | `9fcaaff9e5f28c90b628d8a10b7c79aff7913a90` | `CjsBlackFormat` | `@carbonenginejs/runtime-resource/formats/black` |
14
- | `format-cmf` | unborn working-tree snapshot | `CjsCmfFormat` | `@carbonenginejs/runtime-resource/formats/cmf` |
15
- | `format-dds` | `66fa149cd826e1114ad0be84479f89dee753ed76` | `CjsDdsFormat` | `@carbonenginejs/runtime-resource/formats/dds` |
16
- | `format-fbx` | `8d0fcc2fe44c8096b35e360a903bff30b49eb592` | `CjsFbxFormat` | `@carbonenginejs/runtime-resource/formats/fbx` |
17
- | `format-flac` | unborn working-tree snapshot | `CjsFlacFormat` | `@carbonenginejs/runtime-resource/formats/flac` |
18
- | `format-gif` | `5d831c5c0533a9579682f776274574289a520899` | `CjsGifFormat` | `@carbonenginejs/runtime-resource/formats/gif` |
19
- | `format-gltf` | `d0dadf920828bceec987c2a5fa1f161f81db28aa` | `CjsGltfFormat` | `@carbonenginejs/runtime-resource/formats/gltf` |
20
- | `format-jpeg` | `bed2253ea979bba27812420fa897987d82a91793` | `CjsJpegFormat` | `@carbonenginejs/runtime-resource/formats/jpeg` |
21
- | `format-mp3` | unborn working-tree snapshot | `CjsMp3Format` | `@carbonenginejs/runtime-resource/formats/mp3` |
22
- | `format-mp4` | `cffc5a57b115a99ed9e0947a6b9d3390ffc3581c` | `CjsMp4Format` | `@carbonenginejs/runtime-resource/formats/mp4` |
23
- | `format-obj` | `e5d3f9a1520c7855bd5b6edc1e2304a7b4e18176` | `CjsObjFormat` | `@carbonenginejs/runtime-resource/formats/obj` |
24
- | `format-ogg` | unborn working-tree snapshot | `CjsOggFormat` | `@carbonenginejs/runtime-resource/formats/ogg` |
25
- | `format-png` | `04dbb7c0f289043c3c32d9141ec3ef74aeeb1c43` | `CjsPngFormat` | `@carbonenginejs/runtime-resource/formats/png` |
26
- | `format-red` | `98beab6988111418d6e09827b92d27e08da4c05b` | `CjsRedFormat` | `@carbonenginejs/runtime-resource/formats/red` |
27
- | `format-stl` | `4858f9a37bf140a3c544fa30a13a6fcce015247b` | `CjsStlFormat` | `@carbonenginejs/runtime-resource/formats/stl` |
28
- | `format-tga` | `b0f9df263727057537b2279322e8cd088f366179` | `CjsTgaFormat` | `@carbonenginejs/runtime-resource/formats/tga` |
29
- | `format-wav` | unborn working-tree snapshot | `CjsWavFormat` | `@carbonenginejs/runtime-resource/formats/wav` |
30
- | `format-webm` | `459203ac293d0d53fff0e43494b7e47d8d4c92bd` | `CjsWebmFormat` | `@carbonenginejs/runtime-resource/formats/webm` |
31
- | `format-webp` | `19155e9cc7ae05845c23a3c259d3a586569eba40` | `CjsWebpFormat` | `@carbonenginejs/runtime-resource/formats/webp` |
32
- | `format-yaml` | `3d7e1d1cf9b7a936283d6050efe43a0a9fadb6a4` | `CjsYamlFormat` | `@carbonenginejs/runtime-resource/formats/yaml` |
33
-
34
- The unborn donors had no commit-addressable `HEAD`; this document deliberately
35
- records them as working-tree snapshots rather than inventing a revision. Their
36
- copied runtime files are the deterministic retained snapshot.
37
-
38
- ## Black definition snapshot
39
-
40
- The Black and Red readers use the package-owned generated definition snapshot
41
- at `src/formats/black/core/black-schema-v1-2026-07-11.json`. It was copied from
42
- `format-carbon` revision `d2a3c67cf3d46e8ba78ca19e66558d868178ec24`
43
- with SHA-256
44
- `008ECB29E670EFC678B471A6EFF099600A29C2907912FC42B854995904604691`.
45
-
46
- This retained generated artifact keeps the published readers deterministic and
47
- browser-safe without a runtime dependency on a sibling checkout or an
48
- unpublished `format-carbon` export. `format-carbon` remains the build-time
49
- authority for future schema regeneration; an updated snapshot must record its
50
- new source revision and digest here.
51
-
52
- ## Native additions
53
-
54
- Formats below were authored directly in `runtime-resource` and have no legacy
55
- donor package. Their `format-notices/<format>/` entries record third-party
56
- format attribution rather than fork provenance.
57
-
58
- | Format | Runtime class | Runtime import | Notes |
59
- |---|---|---|---|
60
- | Wwise soundbank (`.bnk`) | `CjsBnkFormat` | `@carbonenginejs/runtime-resource/formats/bnk` | Original code; chunk layout from public community documentation (ww2ogg, vgmstream, wwiser), no code copied. Also carries the SoundbanksInfo JSON helpers (`parseSoundbanksInfo`, `buildSoundbanksCatalog`, `joinSoundbanksInfo`) and `wwiseIdFromName` (FNV-1 32 of the lowercased name, verified against EVE bank/language ids). |
61
- | Wwise media (`.wem`) | `CjsWemFormat` | `@carbonenginejs/runtime-resource/formats/wem` | Original code; container/codec-tag behavior from public community documentation (ww2ogg, vgmstream, wwiser), no code copied. Includes a Wwise-Vorbis→Ogg repacker (`emit: "ogg"`), an original reimplementation of the ww2ogg algorithm with inline granule computation (no revorb pass needed). |
62
-
63
- ## Post-fork additions inside copied formats
64
-
65
- - `formats/cmf` gained a **binary CMF v1 writer** (2026-07-15,
66
- `src/formats/cmf/core/writer.js`, `CjsCmfFormat.write`/`writeAsync` and
67
- `Write`/`WriteAsync`): original code implementing CarbonEngine's
68
- `cmf::BuildFile` behavior tagged self-relative span flattening with leaf
69
- chunk dedup, BufferView→section remapping in first-encounter order,
70
- meshoptimizer vertex/index compression (index compression canonicalizes
71
- triangle rotation, matching the engine's own writer test expectations), and
72
- the post-crc32 file checksum. Verified by write→read roundtrips against the
73
- runtime reader; `E:\carbonengine\mesh\{include,src}\cmf` was the behavioral
74
- reference, no code copied. `writeShared`/`writeSharedAsync` plus
75
- `core/pack.js` (channel interleaving, index packing, unique buffer-index
76
- assignment) serialize shared geometry directly, enabling GR2/OBJ/glTF→CMF
77
- verified against real EVE `.gr2` models fetched via
78
- `@carbonenginejs/tool-index` (positions exact, triangles equivalent).
79
- - `formats/cmf` also gained the **GR2 skeleton/animation converter**
80
- (2026-07-15, `src/formats/cmf/core/gr2Anim.js`, applied automatically by
81
- `writeShared`): GR2-shaped skeletons (root list or `models[].skeleton`)
82
- convert to CMF bones/parents/rest transforms with inverse binds rebuilt
83
- from the rest hierarchy; decoded Granny curves convert to CMF Step/Linear
84
- channels degree 1 exactly, degree 2 via adaptive de Boor resampling
85
- with discontinuities snapped to one float32 ULP. Consumes only decoded
86
- `{knots, controls}` data so the MIT runtime stays independent of the GR2
87
- package. Validated on EVE ships (cde3_t3, gde3_t3, cfaux1_t1, mfaux1_t1:
88
- 3,377 channels 8.3e-4 positional / ≤ 0.14° rotational vs the GR2 runtime
89
- sampler; 9 Granny curve formats) and characters (basicfemale: 132-bone
90
- skeleton, exact skin weights).
91
- - `formats/ogg` gained a pure-JS **Ogg Vorbis PCM decoder** (2026-07-15,
92
- `src/formats/ogg/core/{vorbis.js,imdct.js}`, `emit: "pcm"`/`"audio"`):
93
- original code implementing the Vorbis I specification (floor 1, residues
94
- 0/1/2, square-polar coupling, FFT-based IMDCT, windowed overlap-add).
95
- stb_vorbis (public domain) was consulted as a behavioral reference and is
96
- the source of the spec's floor1 `inverse_db_table` constants; no licensed
97
- code was copied. Validated bit-comparable to ffmpeg (max diff ~3e-8) and
98
- vgmstream (±1 int16 LSB) across the EVE Vorbis corpus.
99
-
100
- ## Wem packed-codebook snapshot
101
-
102
- The wem Ogg repacker ships a package-owned copy of the aoTuV 6.03 packed
103
- Vorbis codebook library at
104
- `src/formats/wem/core/packedCodebooksAotuv603.js` (base64 module). It was
105
- copied byte-identically from `packed_codebooks_aoTuV_603.bin` in the ww2ogg
106
- distribution (`github.com/hcs64/ww2ogg`), 74,387 bytes, SHA-256
107
- `00a93eab267d281401b1efd54e888a2e183299b9e6c446c48d09f701a89d9d27`, retrieved
108
- 2026-07-15. The data is BSD-licensed (Xiph.org Foundation, Adam Gashlin);
109
- attribution and the full license terms are recorded in
110
- `format-notices/wem/NOTICE` and `format-notices/wem/LICENSE`. An updated
111
- snapshot must record its new source and digest here.
112
-
113
- ## Deliberately not copied
114
-
115
- - `format-gr2` is the intended runtime-resource owner target, but its current
116
- BitKnit-derived implementation is EUPL-1.2. It remains separate and active
117
- until that code is replaced or an explicit distribution-license decision is
118
- made. It has not been deprecated or relabeled as MIT.
119
- - `format-carbon` remains the schema emitter/generator and build-time schema
120
- authority. Black and Red consume its published Black definitions.
121
- - `format-dxbc`, `format-hlsl`, `format-webgl`, and `format-webgpu` are active
122
- shader work and were not copied, annotated, or otherwise modified by this
123
- migration.
124
-
125
- ## Typed-array ownership adjustments
126
-
127
- The runtime copies preserve caller byte objects by reference. During the fork,
128
- three avoidable source-buffer copies were changed to views:
129
-
130
- - CMF compressed sections use `Uint8Array.subarray`.
131
- - glTF GLB chunks use `Uint8Array.subarray`.
132
- - FBX raw binary property payloads use `Uint8Array.subarray`.
133
-
134
- Decoder output buffers and GIF per-frame snapshots still allocate because those
135
- values have independent semantic identity.
1
+ # Format ownership and fork provenance
2
+
3
+ On 2026-07-13, the non-shader runtime format implementations below were copied
4
+ once into `runtime-resource`. Their standalone repositories remain frozen with
5
+ their existing APIs and names; they are not upstreams for the runtime copies.
6
+
7
+ Copied paths were `src/` and the behavioral `test/` corpus. Package publishing
8
+ scripts and CLIs were not copied. Exact donor license and notice files are kept
9
+ under `format-notices/<format>/`.
10
+
11
+ | Legacy package | Source revision/state | Runtime class | Runtime import |
12
+ |---|---|---|---|
13
+ | `format-black` | `9fcaaff9e5f28c90b628d8a10b7c79aff7913a90` | `CjsBlackFormat` | `@carbonenginejs/runtime-resource/formats/black` |
14
+ | `format-cmf` | unborn working-tree snapshot | `CjsCmfFormat` | `@carbonenginejs/runtime-resource/formats/cmf` |
15
+ | `format-dds` | `66fa149cd826e1114ad0be84479f89dee753ed76` | `CjsDdsFormat` | `@carbonenginejs/runtime-resource/formats/dds` |
16
+ | `format-fbx` | `8d0fcc2fe44c8096b35e360a903bff30b49eb592` | `CjsFbxFormat` | `@carbonenginejs/runtime-resource/formats/fbx` |
17
+ | `format-flac` | unborn working-tree snapshot | `CjsFlacFormat` | `@carbonenginejs/runtime-resource/formats/flac` |
18
+ | `format-gif` | `5d831c5c0533a9579682f776274574289a520899` | `CjsGifFormat` | `@carbonenginejs/runtime-resource/formats/gif` |
19
+ | `format-gltf` | `d0dadf920828bceec987c2a5fa1f161f81db28aa` | `CjsGltfFormat` | `@carbonenginejs/runtime-resource/formats/gltf` |
20
+ | `format-jpeg` | `bed2253ea979bba27812420fa897987d82a91793` | `CjsJpegFormat` | `@carbonenginejs/runtime-resource/formats/jpeg` |
21
+ | `format-mp3` | unborn working-tree snapshot | `CjsMp3Format` | `@carbonenginejs/runtime-resource/formats/mp3` |
22
+ | `format-mp4` | `cffc5a57b115a99ed9e0947a6b9d3390ffc3581c` | `CjsMp4Format` | `@carbonenginejs/runtime-resource/formats/mp4` |
23
+ | `format-obj` | `e5d3f9a1520c7855bd5b6edc1e2304a7b4e18176` | `CjsObjFormat` | `@carbonenginejs/runtime-resource/formats/obj` |
24
+ | `format-ogg` | unborn working-tree snapshot | `CjsOggFormat` | `@carbonenginejs/runtime-resource/formats/ogg` |
25
+ | `format-png` | `04dbb7c0f289043c3c32d9141ec3ef74aeeb1c43` | `CjsPngFormat` | `@carbonenginejs/runtime-resource/formats/png` |
26
+ | `format-red` | `98beab6988111418d6e09827b92d27e08da4c05b` | `CjsRedFormat` | `@carbonenginejs/runtime-resource/formats/red` |
27
+ | `format-stl` | `4858f9a37bf140a3c544fa30a13a6fcce015247b` | `CjsStlFormat` | `@carbonenginejs/runtime-resource/formats/stl` |
28
+ | `format-tga` | `b0f9df263727057537b2279322e8cd088f366179` | `CjsTgaFormat` | `@carbonenginejs/runtime-resource/formats/tga` |
29
+ | `format-wav` | unborn working-tree snapshot | `CjsWavFormat` | `@carbonenginejs/runtime-resource/formats/wav` |
30
+ | `format-webm` | `459203ac293d0d53fff0e43494b7e47d8d4c92bd` | `CjsWebmFormat` | `@carbonenginejs/runtime-resource/formats/webm` |
31
+ | `format-webp` | `19155e9cc7ae05845c23a3c259d3a586569eba40` | `CjsWebpFormat` | `@carbonenginejs/runtime-resource/formats/webp` |
32
+ | `format-yaml` | `3d7e1d1cf9b7a936283d6050efe43a0a9fadb6a4` | `CjsYamlFormat` | `@carbonenginejs/runtime-resource/formats/yaml` |
33
+
34
+ The unborn donors had no commit-addressable `HEAD`; this document deliberately
35
+ records them as working-tree snapshots rather than inventing a revision. Their
36
+ copied runtime files are the deterministic retained snapshot.
37
+
38
+ ## Black definition snapshot
39
+
40
+ The Black reader uses the package-owned generated definition snapshot at
41
+ `src/formats/black/core/black-schema-v1-2026-07-11.json`. The Red format exposes
42
+ the same catalog for discovery, but its YAML reader currently accepts named
43
+ fields without registry enforcement. The snapshot was copied from
44
+ `format-carbon` revision `d2a3c67cf3d46e8ba78ca19e66558d868178ec24`
45
+ with SHA-256
46
+ `008ECB29E670EFC678B471A6EFF099600A29C2907912FC42B854995904604691`.
47
+
48
+ This retained generated artifact keeps the published readers deterministic and
49
+ browser-safe without a runtime dependency on a sibling checkout or an
50
+ unpublished `format-carbon` export. `format-carbon` remains the build-time
51
+ authority for future schema regeneration; an updated snapshot must record its
52
+ new source revision and digest here.
53
+
54
+ ## Native additions
55
+
56
+ Formats below were authored directly in `runtime-resource` and have no legacy
57
+ donor package. Their `format-notices/<format>/` entries record third-party
58
+ format attribution rather than fork provenance.
59
+
60
+ | Format | Runtime class | Runtime import | Notes |
61
+ |---|---|---|---|
62
+ | Wwise soundbank (`.bnk`) | `CjsBnkFormat` | `@carbonenginejs/runtime-resource/formats/bnk` | Original code; chunk layout from public community documentation (ww2ogg, vgmstream, wwiser), no code copied. Also carries the SoundbanksInfo JSON helpers (`parseSoundbanksInfo`, `buildSoundbanksCatalog`, `joinSoundbanksInfo`) and `wwiseIdFromName` (FNV-1 32 of the lowercased name, verified against EVE bank/language ids). HIRC entries additionally decode version-stable typed fields (event action lists, action type/target, sound and music-track source ids), pinned by hexdump against bank generator version 150, and the `wwise` static namespace groups the domain toolkit (SoundbanksInfo helpers, id hash, `wwise.eventMediaFromBanks` event → media resolution over inspected banks — graph interpretation for consumers; never used by the resource lifecycle). |
63
+ | Wwise media (`.wem`) | `CjsWemFormat` | `@carbonenginejs/runtime-resource/formats/wem` | Original code; container/codec-tag behavior from public community documentation (ww2ogg, vgmstream, wwiser), no code copied. Includes a Wwise-Vorbis→Ogg repacker (`emit: "ogg"`), an original reimplementation of the ww2ogg algorithm with inline granule computation (no revorb pass needed), and a PTADPCM/16-bit-PCM decoder (`emit: "pcm"` / `toPcm()`, AudioBuffer-ready float32; PTADPCM algorithm from community documentation, verified against EVE media). |
64
+
65
+ ## Post-fork additions inside copied formats
66
+
67
+ - `formats/dds` gained original, dependency-free **BC6H and BC7 CPU decoders**
68
+ in `runtime-resource` 0.8.0 (2026-07-21). BC6H covers all fourteen modes,
69
+ signed and unsigned HDR, transformed endpoints, partition/anchor fixups,
70
+ interpolation, reserved opaque-black modes, and float RGBA output. BC7 covers
71
+ all eight modes,
72
+ two- and three-subset partitions, anchor fixups, P-bits, dual index streams,
73
+ channel rotation, edge blocks, and the reserved transparent mode. Fixed bit
74
+ layouts and tables follow the Khronos Data Format Specification and Microsoft
75
+ BC6H/BC7 documentation. Tests cover every mode and signed/unsigned fixtures;
76
+ BC7 was also checked against randomized valid-mode blocks and both decoders
77
+ were exercised on real EVE textures acquired through `tools-core`.
78
+ - `formats/stl` received a writer hardening pass (2026-07-18) without changing
79
+ its donor origin: binary provenance headers now round-trip the caller's solid
80
+ name, shared triangle indices are validated as in-range safe integers, scaled
81
+ coordinates must remain finite, and binary coordinates must fit float32
82
+ instead of silently becoming infinities. Writer JSDoc and ASCII/binary
83
+ round-trip/error coverage were expanded in the runtime-owned copy.
84
+ - `formats/cmf` gained a **binary CMF v1 writer** (2026-07-15,
85
+ `src/formats/cmf/core/writer.js`, `CjsCmfFormat.write`/`writeAsync` and
86
+ `Write`/`WriteAsync`): original code implementing CarbonEngine's
87
+ `cmf::BuildFile` behavior tagged self-relative span flattening with leaf
88
+ chunk dedup, BufferView→section remapping in first-encounter order,
89
+ meshoptimizer vertex/index compression (index compression canonicalizes
90
+ triangle rotation, matching the engine's own writer test expectations), and
91
+ the post-crc32 file checksum. Verified by write→read roundtrips against the
92
+ runtime reader; `E:\carbonengine\mesh\{include,src}\cmf` was the behavioral
93
+ reference, no code copied. `writeShared`/`writeSharedAsync` plus
94
+ `core/pack.js` (channel interleaving, index packing, unique buffer-index
95
+ assignment) serialize shared geometry directly, enabling GR2/OBJ/glTF→CMF
96
+ verified against real EVE `.gr2` models fetched via
97
+ `@carbonenginejs/tool-index` (positions exact, triangles equivalent).
98
+ - `formats/cmf` also gained the **GR2 skeleton/animation converter**
99
+ (2026-07-15, `src/formats/cmf/core/gr2Anim.js`, applied automatically by
100
+ `writeShared`): GR2-shaped skeletons (root list or `models[].skeleton`)
101
+ convert to CMF bones/parents/rest transforms with inverse binds rebuilt
102
+ from the rest hierarchy; decoded Granny curves convert to CMF Step/Linear
103
+ channels degree ≤ 1 exactly, degree 2 via adaptive de Boor resampling
104
+ with discontinuities snapped to one float32 ULP. Consumes only decoded
105
+ `{knots, controls}` data so the MIT runtime stays independent of the GR2
106
+ package. Validated on EVE ships (cde3_t3, gde3_t3, cfaux1_t1, mfaux1_t1:
107
+ 3,377 channels ≤ 8.3e-4 positional / ≤ 0.14° rotational vs the GR2 runtime
108
+ sampler; 9 Granny curve formats) and characters (basicfemale: 132-bone
109
+ skeleton, exact skin weights).
110
+ - `formats/ogg` gained a pure-JS **Ogg Vorbis PCM decoder** (2026-07-15,
111
+ `src/formats/ogg/core/{vorbis.js,imdct.js}`, `emit: "pcm"`/`"audio"`):
112
+ original code implementing the Vorbis I specification (floor 1, residues
113
+ 0/1/2, square-polar coupling, FFT-based IMDCT, windowed overlap-add).
114
+ stb_vorbis (public domain) was consulted as a behavioral reference and is
115
+ the source of the spec's floor1 `inverse_db_table` constants; no licensed
116
+ code was copied. Validated bit-comparable to ffmpeg (max diff ~3e-8) and
117
+ vgmstream (±1 int16 LSB) across the EVE Vorbis corpus.
118
+
119
+ ## Wem packed-codebook snapshot
120
+
121
+ The wem Ogg repacker ships a package-owned copy of the aoTuV 6.03 packed
122
+ Vorbis codebook library at
123
+ `src/formats/wem/core/packedCodebooksAotuv603.js` (base64 module). It was
124
+ copied byte-identically from `packed_codebooks_aoTuV_603.bin` in the ww2ogg
125
+ distribution (`github.com/hcs64/ww2ogg`), 74,387 bytes, SHA-256
126
+ `00a93eab267d281401b1efd54e888a2e183299b9e6c446c48d09f701a89d9d27`, retrieved
127
+ 2026-07-15. The data is BSD-licensed (Xiph.org Foundation, Adam Gashlin);
128
+ attribution and the full license terms are recorded in
129
+ `format-notices/wem/NOTICE` and `format-notices/wem/LICENSE`. An updated
130
+ snapshot must record its new source and digest here.
131
+
132
+ ## Deliberately not copied
133
+
134
+ - `format-gr2` is the intended runtime-resource owner target, but its current
135
+ BitKnit-derived implementation is EUPL-1.2. It remains separate and active
136
+ until that code is replaced or an explicit distribution-license decision is
137
+ made. It has not been deprecated or relabeled as MIT.
138
+ - `format-carbon` remains the schema emitter/generator and build-time schema
139
+ authority. Black consumes its published definitions; Red exposes the copied
140
+ catalog but does not yet enforce it while reading YAML fields.
141
+ - `format-dxbc`, `format-hlsl`, `format-webgl`, and `format-webgpu` are active
142
+ shader work and were not copied, annotated, or otherwise modified by this
143
+ migration.
144
+
145
+ ## Typed-array ownership adjustments
146
+
147
+ The runtime copies preserve caller byte objects by reference. During the fork,
148
+ three avoidable source-buffer copies were changed to views:
149
+
150
+ - CMF compressed sections use `Uint8Array.subarray`.
151
+ - glTF GLB chunks use `Uint8Array.subarray`.
152
+ - FBX raw binary property payloads use `Uint8Array.subarray`.
153
+
154
+ Decoder output buffers and GIF per-frame snapshots still allocate because those
155
+ values have independent semantic identity.
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 CarbonEngineJS contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 CarbonEngineJS contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/NOTICE CHANGED
@@ -1,29 +1,29 @@
1
- carbonenginejs/runtime-resource
2
- ================================
3
-
4
- Copyright (c) 2026 CarbonEngineJS contributors.
5
-
6
- This package owns CarbonEngineJS resource lifecycle, format selection, and the
7
- non-shader format implementations listed under `format-notices/`.
8
-
9
- CarbonEngine source material, format names, class names, and schema semantics
10
- remain copyright their original CarbonEngine authors. Fenris Creations
11
- (CCP Games) source material, tools, assets, shader behavior, and EVE-related
12
- data remain copyright their original holders. These names are used for
13
- interoperability and provenance context. This project is not affiliated with
14
- or endorsed by CCP Games.
15
-
16
- The copied format implementations retain their original MIT license and NOTICE
17
- files under `format-notices/<format>/`. Those notices include third-party
18
- dependency and behavioral-reference attribution, including meshoptimizer,
19
- yaml, and black-reader-js.
20
-
21
- The bundled Black definition JSON is a generated CarbonEngineJS schema artifact
22
- copied from `format-carbon` revision
23
- `d2a3c67cf3d46e8ba78ca19e66558d868178ec24`. Its exact digest and retention
24
- purpose are recorded in `FORMAT-PROVENANCE.md`; no CarbonEngine source file or
25
- game asset is embedded in that generated definition snapshot.
26
-
27
- The EUPL-1.2 `format-gr2` implementation is deliberately not included. GR2
28
- ownership migration remains deferred until its EUPL-derived BitKnit boundary
29
- is replaced or an explicit distribution-license decision is made.
1
+ carbonenginejs/runtime-resource
2
+ ================================
3
+
4
+ Copyright (c) 2026 CarbonEngineJS contributors.
5
+
6
+ This package owns CarbonEngineJS resource lifecycle, format selection, and the
7
+ non-shader format implementations listed under `format-notices/`.
8
+
9
+ CarbonEngine source material, format names, class names, and schema semantics
10
+ remain copyright their original CarbonEngine authors. Fenris Creations
11
+ (CCP Games) source material, tools, assets, shader behavior, and EVE-related
12
+ data remain copyright their original holders. These names are used for
13
+ interoperability and provenance context. This project is not affiliated with
14
+ or endorsed by CCP Games.
15
+
16
+ The copied format implementations retain their original MIT license and NOTICE
17
+ files under `format-notices/<format>/`. Those notices include third-party
18
+ dependency and behavioral-reference attribution, including meshoptimizer,
19
+ yaml, and black-reader-js.
20
+
21
+ The bundled Black definition JSON is a generated CarbonEngineJS schema artifact
22
+ copied from `format-carbon` revision
23
+ `d2a3c67cf3d46e8ba78ca19e66558d868178ec24`. Its exact digest and retention
24
+ purpose are recorded in `FORMAT-PROVENANCE.md`; no CarbonEngine source file or
25
+ game asset is embedded in that generated definition snapshot.
26
+
27
+ The EUPL-1.2 `format-gr2` implementation is deliberately not included. GR2
28
+ ownership migration remains deferred until its EUPL-derived BitKnit boundary
29
+ is replaced or an explicit distribution-license decision is made.