@carbonenginejs/runtime-resource 0.19.2 → 0.22.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 (308) hide show
  1. package/NOTICE +6 -0
  2. package/dist/CjsResMan.js +1374 -1318
  3. package/dist/CjsResMan.js.map +1 -1
  4. package/dist/format/CjsFormat.js +393 -164
  5. package/dist/format/CjsFormat.js.map +1 -1
  6. package/dist/format/CjsFormatStore.js +315 -0
  7. package/dist/format/CjsFormatStore.js.map +1 -0
  8. package/dist/format/CjsResourceProbe.js +66 -234
  9. package/dist/format/CjsResourceProbe.js.map +1 -1
  10. package/dist/format/payloadContract.js +47 -6
  11. package/dist/format/payloadContract.js.map +1 -1
  12. package/dist/formats/black/CjsBlackFormat.js +23 -6
  13. package/dist/formats/black/CjsBlackFormat.js.map +1 -1
  14. package/dist/formats/bnk/CjsBnkFormat.js +122 -120
  15. package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
  16. package/dist/formats/bnk/core/helpers.js +5 -15
  17. package/dist/formats/bnk/core/helpers.js.map +1 -1
  18. package/dist/formats/cmf/CjsCmfFormat.js +31 -14
  19. package/dist/formats/cmf/CjsCmfFormat.js.map +1 -1
  20. package/dist/formats/dds/CjsDdsFormat.js +29 -19
  21. package/dist/formats/dds/CjsDdsFormat.js.map +1 -1
  22. package/dist/formats/dds/core/helpers.js +4 -5
  23. package/dist/formats/dds/core/helpers.js.map +1 -1
  24. package/dist/formats/dxbc/CjsDxbcFormat.js +15 -13
  25. package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  26. package/dist/formats/fbx/CjsFbxFormat.js +27 -19
  27. package/dist/formats/fbx/CjsFbxFormat.js.map +1 -1
  28. package/dist/formats/fbx/core/helpers.js +4 -4
  29. package/dist/formats/fbx/core/helpers.js.map +1 -1
  30. package/dist/formats/flac/CjsFlacFormat.js +19 -17
  31. package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
  32. package/dist/formats/flac/core/helpers.js +5 -11
  33. package/dist/formats/flac/core/helpers.js.map +1 -1
  34. package/dist/formats/fsd/32/CjsFsd32Format.js +55 -0
  35. package/dist/formats/fsd/32/CjsFsd32Format.js.map +1 -0
  36. package/dist/formats/fsd/32/index.js +2 -0
  37. package/dist/formats/fsd/32/index.js.map +1 -0
  38. package/dist/formats/fsd/64/CjsFsd64Format.js +119 -0
  39. package/dist/formats/fsd/64/CjsFsd64Format.js.map +1 -0
  40. package/dist/formats/fsd/64/core/CjsFsd64Binary.js +393 -0
  41. package/dist/formats/fsd/64/core/CjsFsd64Binary.js.map +1 -0
  42. package/dist/formats/fsd/64/core/CjsFsd64Reader.js +138 -0
  43. package/dist/formats/fsd/64/core/CjsFsd64Reader.js.map +1 -0
  44. package/dist/formats/fsd/64/core/CjsFsd64SchemaDecoder.js +389 -0
  45. package/dist/formats/fsd/64/core/CjsFsd64SchemaDecoder.js.map +1 -0
  46. package/dist/formats/fsd/64/core/CjsFsd64SchemaReader.js +43 -0
  47. package/dist/formats/fsd/64/core/CjsFsd64SchemaReader.js.map +1 -0
  48. package/dist/formats/fsd/64/core/fsd64Records.js +60 -0
  49. package/dist/formats/fsd/64/core/fsd64Records.js.map +1 -0
  50. package/dist/formats/fsd/64/index.js +7 -0
  51. package/dist/formats/fsd/64/index.js.map +1 -0
  52. package/dist/formats/fsd/64/readers/CjsFsd64ReaderSetCharacterStaticData.js +33 -0
  53. package/dist/formats/fsd/64/readers/CjsFsd64ReaderSetCharacterStaticData.js.map +1 -0
  54. package/dist/formats/fsd/64/readers/CjsFsd64SchemaAgentTypes.js +35 -0
  55. package/dist/formats/fsd/64/readers/CjsFsd64SchemaAgentTypes.js.map +1 -0
  56. package/dist/formats/fsd/64/readers/CjsFsd64SchemaAgentsInSpace.js +50 -0
  57. package/dist/formats/fsd/64/readers/CjsFsd64SchemaAgentsInSpace.js.map +1 -0
  58. package/dist/formats/fsd/64/readers/CjsFsd64SchemaAncestries.js +75 -0
  59. package/dist/formats/fsd/64/readers/CjsFsd64SchemaAncestries.js.map +1 -0
  60. package/dist/formats/fsd/64/readers/CjsFsd64SchemaArchetypes.js +57 -0
  61. package/dist/formats/fsd/64/readers/CjsFsd64SchemaArchetypes.js.map +1 -0
  62. package/dist/formats/fsd/64/readers/CjsFsd64SchemaAudioMetadata.js +201 -0
  63. package/dist/formats/fsd/64/readers/CjsFsd64SchemaAudioMetadata.js.map +1 -0
  64. package/dist/formats/fsd/64/readers/CjsFsd64SchemaBloodlines.js +73 -0
  65. package/dist/formats/fsd/64/readers/CjsFsd64SchemaBloodlines.js.map +1 -0
  66. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCategories.js +53 -0
  67. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCategories.js.map +1 -0
  68. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterAvatarBehaviors.js +44 -0
  69. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterAvatarBehaviors.js.map +1 -0
  70. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterColorLocations.js +38 -0
  71. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterColorLocations.js.map +1 -0
  72. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterColorNames.js +34 -0
  73. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterColorNames.js.map +1 -0
  74. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterModifierLocations.js +34 -0
  75. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterModifierLocations.js.map +1 -0
  76. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterPortraitResources.js +44 -0
  77. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterPortraitResources.js.map +1 -0
  78. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterResources.js +81 -0
  79. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterResources.js.map +1 -0
  80. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterSculptingLocations.js +34 -0
  81. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCharacterSculptingLocations.js.map +1 -0
  82. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCompressibleTypes.js +41 -0
  83. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCompressibleTypes.js.map +1 -0
  84. package/dist/formats/fsd/64/readers/CjsFsd64SchemaContrabandTypes.js +63 -0
  85. package/dist/formats/fsd/64/readers/CjsFsd64SchemaContrabandTypes.js.map +1 -0
  86. package/dist/formats/fsd/64/readers/CjsFsd64SchemaControlTowerResources.js +76 -0
  87. package/dist/formats/fsd/64/readers/CjsFsd64SchemaControlTowerResources.js.map +1 -0
  88. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationActivities.js +38 -0
  89. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationActivities.js.map +1 -0
  90. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationRoleGroups.js +74 -0
  91. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationRoleGroups.js.map +1 -0
  92. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationRoles.js +59 -0
  93. package/dist/formats/fsd/64/readers/CjsFsd64SchemaCorporationRoles.js.map +1 -0
  94. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaAttributeCategories.js +46 -0
  95. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaAttributeCategories.js.map +1 -0
  96. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaAttributes.js +133 -0
  97. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaAttributes.js.map +1 -0
  98. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaEffects.js +236 -0
  99. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaEffects.js.map +1 -0
  100. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaUnits.js +60 -0
  101. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDogmaUnits.js.map +1 -0
  102. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDynamicItemAttributes.js +95 -0
  103. package/dist/formats/fsd/64/readers/CjsFsd64SchemaDynamicItemAttributes.js.map +1 -0
  104. package/dist/formats/fsd/64/readers/CjsFsd64SchemaEpicArcs.js +106 -0
  105. package/dist/formats/fsd/64/readers/CjsFsd64SchemaEpicArcs.js.map +1 -0
  106. package/dist/formats/fsd/64/readers/CjsFsd64SchemaExpertSystems.js +86 -0
  107. package/dist/formats/fsd/64/readers/CjsFsd64SchemaExpertSystems.js.map +1 -0
  108. package/dist/formats/fsd/64/readers/CjsFsd64SchemaFactions.js +117 -0
  109. package/dist/formats/fsd/64/readers/CjsFsd64SchemaFactions.js.map +1 -0
  110. package/dist/formats/fsd/64/readers/CjsFsd64SchemaGraphicIds.js +70 -0
  111. package/dist/formats/fsd/64/readers/CjsFsd64SchemaGraphicIds.js.map +1 -0
  112. package/dist/formats/fsd/64/readers/CjsFsd64SchemaGraphicMaterialSets.js +173 -0
  113. package/dist/formats/fsd/64/readers/CjsFsd64SchemaGraphicMaterialSets.js.map +1 -0
  114. package/dist/formats/fsd/64/readers/CjsFsd64SchemaGroups.js +77 -0
  115. package/dist/formats/fsd/64/readers/CjsFsd64SchemaGroups.js.map +1 -0
  116. package/dist/formats/fsd/64/readers/CjsFsd64SchemaIcons.js +62 -0
  117. package/dist/formats/fsd/64/readers/CjsFsd64SchemaIcons.js.map +1 -0
  118. package/dist/formats/fsd/64/readers/CjsFsd64SchemaMarketGroups.js +63 -0
  119. package/dist/formats/fsd/64/readers/CjsFsd64SchemaMarketGroups.js.map +1 -0
  120. package/dist/formats/fsd/64/readers/CjsFsd64SchemaMetaGroups.js +86 -0
  121. package/dist/formats/fsd/64/readers/CjsFsd64SchemaMetaGroups.js.map +1 -0
  122. package/dist/formats/fsd/64/readers/CjsFsd64SchemaNpcCorporationDivisions.js +72 -0
  123. package/dist/formats/fsd/64/readers/CjsFsd64SchemaNpcCorporationDivisions.js.map +1 -0
  124. package/dist/formats/fsd/64/readers/CjsFsd64SchemaNpcCorporations.js +326 -0
  125. package/dist/formats/fsd/64/readers/CjsFsd64SchemaNpcCorporations.js.map +1 -0
  126. package/dist/formats/fsd/64/readers/CjsFsd64SchemaPaperdolls.js +279 -0
  127. package/dist/formats/fsd/64/readers/CjsFsd64SchemaPaperdolls.js.map +1 -0
  128. package/dist/formats/fsd/64/readers/CjsFsd64SchemaRaces.js +64 -0
  129. package/dist/formats/fsd/64/readers/CjsFsd64SchemaRaces.js.map +1 -0
  130. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSchoolMap.js +40 -0
  131. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSchoolMap.js.map +1 -0
  132. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSchools.js +113 -0
  133. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSchools.js.map +1 -0
  134. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkillPlans.js +130 -0
  135. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkillPlans.js.map +1 -0
  136. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentCategories.js +38 -0
  137. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentCategories.js.map +1 -0
  138. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentPointValues.js +45 -0
  139. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentPointValues.js.map +1 -0
  140. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentRarities.js +44 -0
  141. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponentRarities.js.map +1 -0
  142. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponents.js +163 -0
  143. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrComponents.js.map +1 -0
  144. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotCategories.js +37 -0
  145. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotCategories.js.map +1 -0
  146. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotConfigurations.js +77 -0
  147. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotConfigurations.js.map +1 -0
  148. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotNames.js +37 -0
  149. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlotNames.js.map +1 -0
  150. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlots.js +74 -0
  151. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrSlots.js.map +1 -0
  152. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrTierThresholds.js +44 -0
  153. package/dist/formats/fsd/64/readers/CjsFsd64SchemaSkinrTierThresholds.js.map +1 -0
  154. package/dist/formats/fsd/64/readers/CjsFsd64SchemaStationOperations.js +120 -0
  155. package/dist/formats/fsd/64/readers/CjsFsd64SchemaStationOperations.js.map +1 -0
  156. package/dist/formats/fsd/64/readers/CjsFsd64SchemaStationServices.js +49 -0
  157. package/dist/formats/fsd/64/readers/CjsFsd64SchemaStationServices.js.map +1 -0
  158. package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeDogma.js +73 -0
  159. package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeDogma.js.map +1 -0
  160. package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeLists.js +122 -0
  161. package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeLists.js.map +1 -0
  162. package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeMaterials.js +83 -0
  163. package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypeMaterials.js.map +1 -0
  164. package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypes.js +194 -0
  165. package/dist/formats/fsd/64/readers/CjsFsd64SchemaTypes.js.map +1 -0
  166. package/dist/formats/fsd/64/readers/index.js +58 -0
  167. package/dist/formats/fsd/64/readers/index.js.map +1 -0
  168. package/dist/formats/fsd/CjsFsdFormat.js +62 -0
  169. package/dist/formats/fsd/CjsFsdFormat.js.map +1 -0
  170. package/dist/formats/fsd/index.js +9 -0
  171. package/dist/formats/fsd/index.js.map +1 -0
  172. package/dist/formats/gif/CjsGifFormat.js +26 -16
  173. package/dist/formats/gif/CjsGifFormat.js.map +1 -1
  174. package/dist/formats/gif/core/helpers.js +6 -18
  175. package/dist/formats/gif/core/helpers.js.map +1 -1
  176. package/dist/formats/gltf/CjsGltfFormat.js +25 -13
  177. package/dist/formats/gltf/CjsGltfFormat.js.map +1 -1
  178. package/dist/formats/gr2/CjsGr2Format.js +27 -6
  179. package/dist/formats/gr2/CjsGr2Format.js.map +1 -1
  180. package/dist/formats/hlsl/CjsHlslFormat.js +20 -16
  181. package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -1
  182. package/dist/formats/hlsl/core/analysis.js +1 -1
  183. package/dist/formats/index.js +5 -0
  184. package/dist/formats/index.js.map +1 -1
  185. package/dist/formats/jpeg/CjsJpegFormat.js +26 -19
  186. package/dist/formats/jpeg/CjsJpegFormat.js.map +1 -1
  187. package/dist/formats/jpeg/core/helpers.js +6 -15
  188. package/dist/formats/jpeg/core/helpers.js.map +1 -1
  189. package/dist/formats/jpeg/core/jpeg.js +0 -3
  190. package/dist/formats/jpeg/core/jpeg.js.map +1 -1
  191. package/dist/formats/mp3/CjsMp3Format.js +19 -19
  192. package/dist/formats/mp3/CjsMp3Format.js.map +1 -1
  193. package/dist/formats/mp3/core/helpers.js +5 -11
  194. package/dist/formats/mp3/core/helpers.js.map +1 -1
  195. package/dist/formats/mp4/CjsMp4Format.js +20 -19
  196. package/dist/formats/mp4/CjsMp4Format.js.map +1 -1
  197. package/dist/formats/mp4/core/helpers.js +6 -15
  198. package/dist/formats/mp4/core/helpers.js.map +1 -1
  199. package/dist/formats/obj/CjsObjFormat.js +25 -12
  200. package/dist/formats/obj/CjsObjFormat.js.map +1 -1
  201. package/dist/formats/ogg/CjsOggFormat.js +26 -17
  202. package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
  203. package/dist/formats/ogg/core/helpers.js +5 -16
  204. package/dist/formats/ogg/core/helpers.js.map +1 -1
  205. package/dist/formats/pickle/CjsPickleFormat.js +64 -5
  206. package/dist/formats/pickle/CjsPickleFormat.js.map +1 -1
  207. package/dist/formats/png/CjsPngFormat.js +28 -19
  208. package/dist/formats/png/CjsPngFormat.js.map +1 -1
  209. package/dist/formats/png/core/helpers.js +5 -14
  210. package/dist/formats/png/core/helpers.js.map +1 -1
  211. package/dist/formats/red/CjsRedFormat.js +19 -5
  212. package/dist/formats/red/CjsRedFormat.js.map +1 -1
  213. package/dist/formats/schemabound/CjsSchemaBoundFormat.js +48 -38
  214. package/dist/formats/schemabound/CjsSchemaBoundFormat.js.map +1 -1
  215. package/dist/formats/sqlite/CjsSqliteFormat.js +49 -41
  216. package/dist/formats/sqlite/CjsSqliteFormat.js.map +1 -1
  217. package/dist/formats/static/CjsStaticFormat.js +15 -57
  218. package/dist/formats/static/CjsStaticFormat.js.map +1 -1
  219. package/dist/formats/static/staticContainers.js +6 -6
  220. package/dist/formats/static/staticContainers.js.map +1 -1
  221. package/dist/formats/stl/CjsStlFormat.js +25 -12
  222. package/dist/formats/stl/CjsStlFormat.js.map +1 -1
  223. package/dist/formats/tga/CjsTgaFormat.js +26 -19
  224. package/dist/formats/tga/CjsTgaFormat.js.map +1 -1
  225. package/dist/formats/tga/core/helpers.js +7 -22
  226. package/dist/formats/tga/core/helpers.js.map +1 -1
  227. package/dist/formats/wav/CjsWavFormat.js +26 -19
  228. package/dist/formats/wav/CjsWavFormat.js.map +1 -1
  229. package/dist/formats/wav/core/helpers.js +7 -16
  230. package/dist/formats/wav/core/helpers.js.map +1 -1
  231. package/dist/formats/webgl/CjsWebglFormat.js +11 -13
  232. package/dist/formats/webgl/CjsWebglFormat.js.map +1 -1
  233. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +90 -12
  234. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  235. package/dist/formats/webgl/core/helpers.js +2 -2
  236. package/dist/formats/webgl/core/helpers.js.map +1 -1
  237. package/dist/formats/webgl/core/readGlslEffectContainer.js +8 -8
  238. package/dist/formats/webgl/core/readGlslEffectContainer.js.map +1 -1
  239. package/dist/formats/webgpu/CjsWebgpuFormat.js +11 -5
  240. package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  241. package/dist/formats/webm/CjsWebmFormat.js +20 -19
  242. package/dist/formats/webm/CjsWebmFormat.js.map +1 -1
  243. package/dist/formats/webm/core/helpers.js +6 -15
  244. package/dist/formats/webm/core/helpers.js.map +1 -1
  245. package/dist/formats/webp/CjsWebpFormat.js +19 -17
  246. package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
  247. package/dist/formats/webp/core/helpers.js +5 -11
  248. package/dist/formats/webp/core/helpers.js.map +1 -1
  249. package/dist/formats/wem/CjsWemFormat.js +128 -141
  250. package/dist/formats/wem/CjsWemFormat.js.map +1 -1
  251. package/dist/formats/wem/core/helpers.js +1 -114
  252. package/dist/formats/wem/core/helpers.js.map +1 -1
  253. package/dist/formats/wem/core/{resolve.js → probeCodecSupport.js} +11 -18
  254. package/dist/formats/wem/core/probeCodecSupport.js.map +1 -0
  255. package/dist/formats/yaml/CjsYamlFormat.js +20 -5
  256. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
  257. package/dist/generated/index.js +2 -0
  258. package/dist/generated/index.js.map +1 -0
  259. package/dist/generated/resources/Tr2RaycastGeometryRes.js +34 -0
  260. package/dist/generated/resources/Tr2RaycastGeometryRes.js.map +1 -0
  261. package/dist/generated/resources/index.js +2 -0
  262. package/dist/generated/resources/index.js.map +1 -0
  263. package/dist/index.js +3 -1
  264. package/dist/index.js.map +1 -1
  265. package/dist/resource/CjsResource.js +134 -0
  266. package/dist/resource/CjsResource.js.map +1 -1
  267. package/dist/resource/ResourceRequirement.js +42 -0
  268. package/dist/resource/ResourceRequirement.js.map +1 -0
  269. package/dist/resource/Tr2LightProfileRes.js +2 -1
  270. package/dist/resource/Tr2LightProfileRes.js.map +1 -1
  271. package/dist/resource/geometry/TriGeometryRes.js +34 -7
  272. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  273. package/dist/resource/geometry/granny/Tr2GrannyStateRes.js +184 -7
  274. package/dist/resource/geometry/granny/Tr2GrannyStateRes.js.map +1 -1
  275. package/dist/resource/geometry/granny/TriGrannyRes.js +20 -8
  276. package/dist/resource/geometry/granny/TriGrannyRes.js.map +1 -1
  277. package/dist/resource/index.js +1 -0
  278. package/dist/resource/index.js.map +1 -1
  279. package/dist/resource/resourceBoundary.js +24 -1
  280. package/dist/resource/resourceBoundary.js.map +1 -1
  281. package/dist/resource/shader/Tr2EffectRes.js +2 -1
  282. package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
  283. package/dist/resource/texture/CjsTextureArrayRes.js +2 -1
  284. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  285. package/dist/resource/texture/Tr2ImageRes.js +2 -1
  286. package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
  287. package/dist/resource/texture/TriTextureRes.js +40 -2
  288. package/dist/resource/texture/TriTextureRes.js.map +1 -1
  289. package/docs/architecture.md +121 -116
  290. package/docs/concepts/format-capabilities.md +90 -0
  291. package/docs/formats/README.md +14 -6
  292. package/docs/formats/fsd.md +104 -0
  293. package/docs/formats/gr2.md +1 -1
  294. package/docs/formats/hlsl/reference/api.md +6 -4
  295. package/docs/formats/provenance.md +18 -0
  296. package/docs/formats/schemabound.md +10 -4
  297. package/docs/formats/static.md +26 -26
  298. package/docs/formats/webgpu/reference/api.md +4 -3
  299. package/docs/reference/classes/core.md +22 -2
  300. package/docs/reference/classes/formats.md +643 -1
  301. package/docs/reference/classes/resources.md +463 -453
  302. package/docs/reference/queues.md +205 -194
  303. package/docs/roadmap.md +14 -18
  304. package/format-notices/fsd/LICENSE +21 -0
  305. package/format-notices/fsd/NOTICE +11 -0
  306. package/package.json +70 -64
  307. package/dist/formats/wem/core/resolve.js.map +0 -1
  308. package/docs/concepts/format-type-resolution.md +0 -79
@@ -1 +1 @@
1
- {"version":3,"file":"CjsOggFormat.js","sources":["../../../../src/formats/ogg/CjsOggFormat.js"],"sourcesContent":["import {\n DEFAULT_VALUES,\n OUTPUT_AUDIO,\n OUTPUT_JSON,\n OUTPUT_PCM,\n OUTPUT_RAW,\n inspectWithValues,\n isOGG,\n isSupportedWithValues,\n normalizeValues,\n readWithValues,\n toBytes,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsOggFormat\";\n\n/**\n * Ogg container format profile that inspects page and stream metadata and\n * decodes Ogg Vorbis audio to PCM with the in-project pure-JS Vorbis\n * decoder, alongside raw and debug JSON output.\n */\nexport class CjsOggFormat\n{\n #values = DEFAULT_VALUES;\n\n /** Creates a CjsOggFormat with caller-provided reader configuration. */\n constructor(options = {})\n {\n this.SetValues(options);\n }\n\n /**\n * Applies caller-provided options after normalizing supported fields for the\n * Ogg format configuration.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"ogg\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Returns a snapshot of the normalized reader options for the Ogg format\n * configuration.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"ogg\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Reads the primary public payload representation from the supplied input\n * for the Ogg format configuration.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options));\n }\n\n /**\n * Reads the primary public payload representation asynchronously for the Ogg\n * format configuration.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Returns structural metadata without materializing the decoded payload for\n * the Ogg format configuration.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options));\n }\n\n /**\n * Reports whether input meets the active decoder capability constraints for\n * the Ogg format configuration.\n */\n IsSupported(input, options = {})\n {\n return isSupportedWithValues(input, this.GetValues(options));\n }\n\n /**\n * Converts the current decoded payload into a JSON-safe representation for\n * the Ogg format configuration.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /** Provides the one-shot Ogg payload reader entry point. */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"ogg\", ...options }, FORMAT_NAME));\n }\n\n /** Provides the asynchronous one-shot Ogg payload reader entry point. */\n static async readAsync(input, options = {})\n {\n return CjsOggFormat.read(input, options);\n }\n\n /** Provides the one-shot Ogg metadata inspection entry point. */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"ogg\", ...options }, FORMAT_NAME));\n }\n\n /** Checks one input against the Ogg decoder capability contract. */\n static isSupported(input, options = {})\n {\n return isSupportedWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"ogg\", ...options }, FORMAT_NAME));\n }\n\n /** Provides the one-shot Ogg JSON conversion entry point. */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /** Checks whether caller-provided bytes carry the expected Ogg signature. */\n static isOGG(input)\n {\n try\n {\n return isOGG(toBytes(input));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n static OUTPUT_OGG_JSON = \"oggJson\";\n static OUTPUT_PCM = OUTPUT_PCM;\n static OUTPUT_AUDIO = OUTPUT_AUDIO;\n static type = Object.freeze([ \"audio\", \"video\" ]);\n static mediaTypes = Object.freeze([ \"audio\", \"video\" ]);\n static inputTypes = Object.freeze([ \"ogg\", \"oga\", \"ogv\" ]);\n static outputTypes = Object.freeze([ OUTPUT_PCM, OUTPUT_AUDIO ]);\n static debugOutputTypes = Object.freeze([ \"oggJson\", OUTPUT_RAW ]);\n static implementationStatus = \"vorbis-pcm\";\n}\n\nexport default CjsOggFormat;\n"],"names":["FORMAT_NAME","CjsOggFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","IsSupported","isSupportedWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","isSupported","toJSON","isOGG","toBytes","Output","Object","freeze","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_OGG_JSON","OUTPUT_PCM","OUTPUT_AUDIO","type","mediaTypes","inputTypes","outputTypes","debugOutputTypes","implementationStatus"],"mappings":";;AAeA,MAAMA,WAAW,GAAG,cAAc;;AAElC;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAY,CACzB;EACI,OAAO,GAAGC,cAAc;;AAExB;AACAC,EAAAA,WAAWA,CAACC,OAAO,GAAG,EAAE,EACxB;AACI,IAAA,IAAI,CAACC,SAAS,CAACD,OAAO,CAAC;AAC3B,EAAA;;AAEA;AACJ;AACA;AACA;AACIC,EAAAA,SAASA,CAACD,OAAO,GAAG,EAAE,EACtB;IACI,IAAI,CAAC,OAAO,GAAGE,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE;AAAEC,MAAAA,SAAS,EAAE,KAAK;MAAE,GAAGH;KAAS,EAAEJ,WAAW,CAAC;AAC3F,IAAA,OAAO,IAAI;AACf,EAAA;;AAEA;AACJ;AACA;AACA;AACIQ,EAAAA,SAASA,CAACJ,OAAO,GAAG,EAAE,EACtB;AACI,IAAA,OAAOE,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE;AAAEC,MAAAA,SAAS,EAAE,KAAK;MAAE,GAAGH;KAAS,EAAEJ,WAAW,CAAC;AACvF,EAAA;;AAEA;AACJ;AACA;AACA;AACIS,EAAAA,IAAIA,CAACC,KAAK,EAAEN,OAAO,GAAG,EAAE,EACxB;IACI,OAAOO,cAAc,CAACD,KAAK,EAAE,IAAI,CAACF,SAAS,CAACJ,OAAO,CAAC,CAAC;AACzD,EAAA;;AAEA;AACJ;AACA;AACA;EACI,MAAMQ,SAASA,CAACF,KAAK,EAAEN,OAAO,GAAG,EAAE,EACnC;AACI,IAAA,OAAO,IAAI,CAACK,IAAI,CAACC,KAAK,EAAEN,OAAO,CAAC;AACpC,EAAA;;AAEA;AACJ;AACA;AACA;AACIS,EAAAA,OAAOA,CAACH,KAAK,EAAEN,OAAO,GAAG,EAAE,EAC3B;IACI,OAAOU,iBAAiB,CAACJ,KAAK,EAAE,IAAI,CAACF,SAAS,CAACJ,OAAO,CAAC,CAAC;AAC5D,EAAA;;AAEA;AACJ;AACA;AACA;AACIW,EAAAA,WAAWA,CAACL,KAAK,EAAEN,OAAO,GAAG,EAAE,EAC/B;IACI,OAAOY,qBAAqB,CAACN,KAAK,EAAE,IAAI,CAACF,SAAS,CAACJ,OAAO,CAAC,CAAC;AAChE,EAAA;;AAEA;AACJ;AACA;AACA;EACIa,MAAMA,CAACC,KAAK,EACZ;IACI,OAAOC,WAAW,CAACD,KAAK,CAAC;AAC7B,EAAA;;AAEA;EACA,OAAOE,IAAIA,CAACV,KAAK,EAAEN,OAAO,GAAG,EAAE,EAC/B;AACI,IAAA,OAAOO,cAAc,CAACD,KAAK,EAAEJ,eAAe,CAACJ,cAAc,EAAE;AAAEK,MAAAA,SAAS,EAAE,KAAK;MAAE,GAAGH;KAAS,EAAEJ,WAAW,CAAC,CAAC;AAChH,EAAA;;AAEA;EACA,aAAaqB,SAASA,CAACX,KAAK,EAAEN,OAAO,GAAG,EAAE,EAC1C;AACI,IAAA,OAAOH,YAAY,CAACmB,IAAI,CAACV,KAAK,EAAEN,OAAO,CAAC;AAC5C,EAAA;;AAEA;EACA,OAAOkB,OAAOA,CAACZ,KAAK,EAAEN,OAAO,GAAG,EAAE,EAClC;AACI,IAAA,OAAOU,iBAAiB,CAACJ,KAAK,EAAEJ,eAAe,CAACJ,cAAc,EAAE;AAAEK,MAAAA,SAAS,EAAE,KAAK;MAAE,GAAGH;KAAS,EAAEJ,WAAW,CAAC,CAAC;AACnH,EAAA;;AAEA;EACA,OAAOuB,WAAWA,CAACb,KAAK,EAAEN,OAAO,GAAG,EAAE,EACtC;AACI,IAAA,OAAOY,qBAAqB,CAACN,KAAK,EAAEJ,eAAe,CAACJ,cAAc,EAAE;AAAEK,MAAAA,SAAS,EAAE,KAAK;MAAE,GAAGH;KAAS,EAAEJ,WAAW,CAAC,CAAC;AACvH,EAAA;;AAEA;EACA,OAAOwB,MAAMA,CAACN,KAAK,EACnB;IACI,OAAOC,WAAW,CAACD,KAAK,CAAC;AAC7B,EAAA;;AAEA;EACA,OAAOO,KAAKA,CAACf,KAAK,EAClB;IACI,IACA;AACI,MAAA,OAAOe,KAAK,CAACC,OAAO,CAAChB,KAAK,CAAC,CAAC;AAChC,IAAA,CAAC,CACD,MACA;AACI,MAAA,OAAO,KAAK;AAChB,IAAA;AACJ,EAAA;;AAEA;AACJ;AACA;AACI,EAAA,OAAOiB,MAAM,GAAGC,MAAM,CAACC,MAAM,CAAC;AAC1BC,IAAAA,GAAG,EAAEC,UAAU;AACfC,IAAAA,IAAI,EAAEC;AACV,GAAC,CAAC;EACF,OAAOC,eAAe,GAAG,SAAS;EAClC,OAAOC,UAAU,GAAGA,UAAU;EAC9B,OAAOC,YAAY,GAAGA,YAAY;EAClC,OAAOC,IAAI,GAAGT,MAAM,CAACC,MAAM,CAAC,CAAE,OAAO,EAAE,OAAO,CAAE,CAAC;EACjD,OAAOS,UAAU,GAAGV,MAAM,CAACC,MAAM,CAAC,CAAE,OAAO,EAAE,OAAO,CAAE,CAAC;AACvD,EAAA,OAAOU,UAAU,GAAGX,MAAM,CAACC,MAAM,CAAC,CAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAE,CAAC;EAC1D,OAAOW,WAAW,GAAGZ,MAAM,CAACC,MAAM,CAAC,CAAEM,UAAU,EAAEC,YAAY,CAAE,CAAC;EAChE,OAAOK,gBAAgB,GAAGb,MAAM,CAACC,MAAM,CAAC,CAAE,SAAS,EAAEE,UAAU,CAAE,CAAC;EAClE,OAAOW,oBAAoB,GAAG,YAAY;AAC9C;;;;"}
1
+ {"version":3,"file":"CjsOggFormat.js","sources":["../../../../src/formats/ogg/CjsOggFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_AUDIO,\n OUTPUT_JSON,\n OUTPUT_PCM,\n OUTPUT_RAW,\n inspectWithValues,\n isOGG,\n probeSupportWithValues,\n normalizeValues,\n readWithValues,\n toBytes,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsOggFormat\";\n\n/**\n * Ogg container format profile that inspects page and stream metadata and\n * decodes Ogg Vorbis audio to PCM with the in-project pure-JS Vorbis\n * decoder, alongside raw and debug JSON output.\n */\nexport class CjsOggFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /** Creates a CjsOggFormat with caller-provided reader configuration. */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Applies caller-provided options after normalizing supported fields for the\n * Ogg format configuration.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"ogg\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Returns a snapshot of the normalized reader options for the Ogg format\n * configuration.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"ogg\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Reads the primary public payload representation from the supplied input\n * for the Ogg format configuration.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options));\n }\n\n /**\n * Reads the primary public payload representation asynchronously for the Ogg\n * format configuration.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Returns structural metadata without materializing the decoded payload for\n * the Ogg format configuration.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options));\n }\n\n /**\n * Converts the current decoded payload into a JSON-safe representation for\n * the Ogg format configuration.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /** Provides the one-shot Ogg payload reader entry point. */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"ogg\", ...options }, FORMAT_NAME));\n }\n\n /** Provides the asynchronous one-shot Ogg payload reader entry point. */\n static async readAsync(input, options = {})\n {\n return CjsOggFormat.read(input, options);\n }\n\n /** Provides the one-shot Ogg metadata inspection entry point. */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"ogg\", ...options }, FORMAT_NAME));\n }\n\n /** Checks one input against the Ogg decoder capability contract. */\n static probeSupport(input, options = {})\n {\n return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"ogg\", ...options }, FORMAT_NAME));\n }\n\n /** Provides the one-shot Ogg JSON conversion entry point. */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /** Checks whether caller-provided bytes carry the expected Ogg signature. */\n static isOGG(input)\n {\n try\n {\n return isOGG(toBytes(input));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n static OUTPUT_OGG_JSON = \"oggJson\";\n static OUTPUT_PCM = OUTPUT_PCM;\n static OUTPUT_AUDIO = OUTPUT_AUDIO;\n static id = \"ogg\";\n static mediaTypes = Object.freeze([ \"audio\", \"video\" ]);\n static outputs = CjsFormat.defineOutputs({\n pcm: { decoded: true },\n audio: { decoded: true, probes: [ \"audio\", \"pcm\" ] },\n oggJson: { role: \"debug\", probes: [ \"oggJson\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n static extensions = Object.freeze([ \".ogg\", \".oga\", \".ogv\" ]);\n}\n\nexport default CjsOggFormat;\n"],"names":["FORMAT_NAME","CjsOggFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isOGG","toBytes","Output","Object","freeze","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_OGG_JSON","OUTPUT_PCM","OUTPUT_AUDIO","id","mediaTypes","outputs","defineOutputs","pcm","decoded","audio","probes","oggJson","role","raw","default","passthrough","extensions"],"mappings":"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"}
@@ -68,7 +68,7 @@ function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = "ogg")
68
68
  * Reports whether input is supported under normalized format options for the Ogg
69
69
  * format reader.
70
70
  */
71
- function isSupportedWithValues(input, values = DEFAULT_VALUES) {
71
+ function probeSupportWithValues(input, values = DEFAULT_VALUES) {
72
72
  try {
73
73
  const metadata = inspectWithValues(input, values);
74
74
  const mimeType = getOggMimeType(metadata);
@@ -77,11 +77,7 @@ function isSupportedWithValues(input, values = DEFAULT_VALUES) {
77
77
  payloadType: "raw",
78
78
  codec: "ogg",
79
79
  mimeType,
80
- supported: true,
81
- containerOnly: true,
82
- isDecoded: false,
83
- pcmDecodeSupported: false,
84
- frameDecodeSupported: false
80
+ supported: true
85
81
  }, {
86
82
  kind: "pcm",
87
83
  payloadType: "pcm",
@@ -104,7 +100,7 @@ function isSupportedWithValues(input, values = DEFAULT_VALUES) {
104
100
  source: values.source || "buffer",
105
101
  supported: "partial",
106
102
  confidence: 1,
107
- preferred: pcmSupported ? "pcm" : metadata.sourceFormat ? "ogg" : "",
103
+ preferredOutput: pcmSupported ? "pcm" : metadata.sourceFormat ? "raw" : "",
108
104
  reason: pcmSupported ? "Ogg Vorbis recognized; PCM decode is supported." : "Ogg pages and codec headers are recognized; raw Ogg passthrough is available.",
109
105
  metadata,
110
106
  variants,
@@ -117,7 +113,7 @@ function isSupportedWithValues(input, values = DEFAULT_VALUES) {
117
113
  source: values.source || "buffer",
118
114
  supported: "none",
119
115
  confidence: 0,
120
- preferred: "",
116
+ preferredOutput: "",
121
117
  reason: error.message,
122
118
  metadata: null,
123
119
  variants: [],
@@ -136,10 +132,6 @@ function readWithValues(input, values = DEFAULT_VALUES) {
136
132
  payloadType: "raw",
137
133
  sourceFormat: "ogg",
138
134
  mimeType: getOggMimeType(metadata),
139
- containerOnly: true,
140
- isDecoded: false,
141
- pcmDecodeSupported: false,
142
- frameDecodeSupported: false,
143
135
  metadata,
144
136
  bytes
145
137
  };
@@ -163,9 +155,6 @@ function readWithValues(input, values = DEFAULT_VALUES) {
163
155
  payloadType: values.emit === OUTPUT_AUDIO ? OUTPUT_AUDIO : OUTPUT_PCM,
164
156
  sourceFormat: "ogg",
165
157
  codec: "vorbis",
166
- containerOnly: false,
167
- isDecoded: true,
168
- pcmDecodeSupported: true,
169
158
  audioFormat: "float32",
170
159
  sampleFormat: "float32",
171
160
  sampleRate: decoded.sampleRate,
@@ -406,5 +395,5 @@ function readU64LE(bytes, offset) {
406
395
  return value <= BigInt(Number.MAX_SAFE_INTEGER) ? Number(value) : value.toString();
407
396
  }
408
397
 
409
- export { DEFAULT_VALUES, OUTPUT_AUDIO, OUTPUT_JSON, OUTPUT_PCM, OUTPUT_RAW, inspectWithValues, isOGG, isSupportedWithValues, normalizeValues, readWithValues, toBytes, toJsonValue };
398
+ export { DEFAULT_VALUES, OUTPUT_AUDIO, OUTPUT_JSON, OUTPUT_PCM, OUTPUT_RAW, inspectWithValues, isOGG, normalizeValues, probeSupportWithValues, readWithValues, toBytes, toJsonValue };
410
399
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../src/formats/ogg/core/helpers.js"],"sourcesContent":["import { decodeVorbis } from \"./vorbis.js\";\n\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\nexport const OUTPUT_PCM = \"pcm\";\nexport const OUTPUT_AUDIO = \"audio\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"ogg\",\n source: \"\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the Ogg format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsOggFormat\")\n{\n if (!options || typeof options !== \"object\" || Array.isArray(options))\n {\n throw new TypeError(`${readerName}: options must be an object`);\n }\n const allowed = new Set([ \"emit\", \"inputType\", \"source\" ]);\n for (const key of Object.keys(options))\n {\n if (!allowed.has(key)) throw new TypeError(`${readerName}: unknown option ${JSON.stringify(key)}`);\n }\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...options };\n if (![ OUTPUT_RAW, OUTPUT_JSON, \"oggJson\", \"audio\", \"pcm\" ].includes(values.emit))\n {\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(values.emit)}`);\n }\n return values;\n}\n\n/** Returns a byte view over the supplied binary input for the Ogg format reader. */\nexport function toBytes(input)\n{\n if (input instanceof Uint8Array) return input;\n if (input instanceof ArrayBuffer) return new Uint8Array(input);\n if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n throw new TypeError(\"OGG input must be Uint8Array, ArrayBuffer, or a view\");\n}\n\n/**\n * Reports whether the supplied bytes begin with an Ogg page signature for the\n * Ogg format reader.\n */\nexport function isOGG(bytes)\n{\n return bytes.byteLength >= 4 && ascii(bytes, 0, 4) === \"OggS\";\n}\n\n/** Inspects input using normalized format options for the Ogg format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"ogg\")\n{\n const bytes = toBytes(input);\n if (!isOGG(bytes)) throw new TypeError(\"CjsOggFormat: input is not an Ogg container\");\n const metadata = inspectOgg(bytes);\n if (expectedType && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsOggFormat: expected ${expectedType}, got ${metadata.sourceFormat}`);\n }\n return { ...metadata, byteLength: bytes.byteLength, source: values.source || \"buffer\" };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the Ogg\n * format reader.\n */\nexport function isSupportedWithValues(input, values = DEFAULT_VALUES)\n{\n try\n {\n const metadata = inspectWithValues(input, values);\n const mimeType = getOggMimeType(metadata);\n const variants = [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: \"ogg\",\n mimeType,\n supported: true,\n containerOnly: true,\n isDecoded: false,\n pcmDecodeSupported: false,\n frameDecodeSupported: false\n },\n {\n kind: \"pcm\",\n payloadType: \"pcm\",\n codec: metadata.codec === \"vorbis\" ? \"float32\" : \"pcm\",\n supported: metadata.codec === \"vorbis\",\n reason: metadata.codec === \"vorbis\" ? \"\" : \"Only Ogg Vorbis PCM decode is implemented.\"\n }\n ];\n if (metadata.mediaType === \"video\")\n {\n variants.push({\n kind: \"decoded\",\n payloadType: \"video-frame\",\n codec: \"frames\",\n supported: false,\n reason: \"OGG Theora frame decode is not implemented yet.\"\n });\n }\n const pcmSupported = metadata.codec === \"vorbis\";\n return {\n format: \"ogg\",\n source: values.source || \"buffer\",\n supported: \"partial\",\n confidence: 1,\n preferred: pcmSupported ? \"pcm\" : (metadata.sourceFormat ? \"ogg\" : \"\"),\n reason: pcmSupported\n ? \"Ogg Vorbis recognized; PCM decode is supported.\"\n : \"Ogg pages and codec headers are recognized; raw Ogg passthrough is available.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: \"ogg\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferred: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the Ogg format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = toBytes(input);\n const metadata = inspectWithValues(bytes, values);\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: \"ogg\",\n mimeType: getOggMimeType(metadata),\n containerOnly: true,\n isDecoded: false,\n pcmDecodeSupported: false,\n frameDecodeSupported: false,\n metadata,\n bytes\n };\n }\n if (values.emit === OUTPUT_JSON || values.emit === \"oggJson\") return metadata;\n if (values.emit === OUTPUT_PCM || values.emit === OUTPUT_AUDIO)\n {\n if (metadata.codec !== \"vorbis\")\n {\n const error = new Error(`ogg: PCM decode supports Vorbis only (found ${metadata.codec})`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n throw error;\n }\n const decoded = decodeVorbis(bytes);\n const data = new Float32Array(decoded.sampleCount * decoded.channels);\n for (let channel = 0; channel < decoded.channels; channel++)\n {\n const samples = decoded.channelData[channel];\n for (let i = 0; i < decoded.sampleCount; i++)\n {\n data[i * decoded.channels + channel] = samples[i];\n }\n }\n return {\n payloadType: values.emit === OUTPUT_AUDIO ? OUTPUT_AUDIO : OUTPUT_PCM,\n sourceFormat: \"ogg\",\n codec: \"vorbis\",\n containerOnly: false,\n isDecoded: true,\n pcmDecodeSupported: true,\n audioFormat: \"float32\",\n sampleFormat: \"float32\",\n sampleRate: decoded.sampleRate,\n channels: decoded.channels,\n interleaving: \"interleaved\",\n frameCount: decoded.sampleCount,\n durationSeconds: decoded.sampleRate ? decoded.sampleCount / decoded.sampleRate : 0,\n vendor: decoded.vendor,\n comments: decoded.comments,\n loop: decoded.loop,\n channelData: decoded.channelData,\n metadata,\n data\n };\n }\n const error = new Error(`ogg: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the Ogg format reader. */\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array) return { byteLength: value.byteLength };\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\nfunction getOggMimeType(metadata)\n{\n if (metadata.mediaType === \"video\") return \"video/ogg\";\n if (metadata.mediaType === \"audio\") return \"audio/ogg\";\n return \"application/ogg\";\n}\n\nfunction inspectOgg(bytes)\n{\n const streams = new Map();\n let offset = 0;\n let pageCount = 0;\n while (offset + 27 <= bytes.byteLength)\n {\n if (ascii(bytes, offset, 4) !== \"OggS\") throw new Error(`ogg: invalid page at byte ${offset}`);\n const version = bytes[offset + 4];\n if (version !== 0) throw new Error(`ogg: unsupported stream version ${version}`);\n const headerType = bytes[offset + 5];\n if (headerType & 0xf8) throw new Error(`ogg: reserved header flags at byte ${offset}`);\n const granulePosition = readU64LE(bytes, offset + 6);\n const serial = readU32LE(bytes, offset + 14);\n const sequence = readU32LE(bytes, offset + 18);\n const segmentCount = bytes[offset + 26];\n const tableOffset = offset + 27;\n const payloadOffset = tableOffset + segmentCount;\n if (payloadOffset > bytes.byteLength) throw new Error(\"ogg: truncated segment table\");\n let payloadLength = 0;\n for (let i = 0; i < segmentCount; i++) payloadLength += bytes[tableOffset + i];\n if (payloadOffset + payloadLength > bytes.byteLength) throw new Error(\"ogg: truncated page payload\");\n const pageLength = 27 + segmentCount + payloadLength;\n const expectedChecksum = readU32LE(bytes, offset + 22);\n if (computeOggCrc(bytes, offset, pageLength) !== expectedChecksum)\n {\n throw new Error(`ogg: page checksum mismatch at byte ${offset}`);\n }\n const stream = streams.get(serial) || {\n serial,\n pages: 0,\n firstPacket: [],\n packetBytes: 0,\n firstPacketComplete: false,\n packetOpen: false,\n codec: \"\",\n mediaType: \"unknown\",\n payloadBytes: 0\n };\n const continued = !!(headerType & 0x01);\n if (stream.pages === 0 && !(headerType & 0x02)) throw new Error(`ogg: first page of stream ${serial} is missing BOS`);\n if (stream.pages === 0 && continued) throw new Error(`ogg: first page of stream ${serial} is marked continued`);\n if (stream.eosSeen) throw new Error(`ogg: page follows EOS for stream ${serial}`);\n if (stream.pages > 0 && continued !== stream.packetOpen)\n {\n throw new Error(`ogg: continued-page state mismatch for stream ${serial}`);\n }\n if ((headerType & 0x02) && stream.pages !== 0) throw new Error(`ogg: BOS page is not first for stream ${serial}`);\n if (stream.lastSequence !== undefined && sequence !== stream.lastSequence + 1)\n {\n throw new Error(`ogg: page sequence mismatch for stream ${serial}`);\n }\n if (stream.pages === 0)\n {\n stream.firstSequence = sequence;\n stream.firstGranulePosition = granulePosition;\n stream.bos = !!(headerType & 0x02);\n }\n stream.pages++;\n stream.payloadBytes += payloadLength;\n collectFirstPacket(stream, bytes, payloadOffset, tableOffset, segmentCount);\n if ((headerType & 0x04) && stream.packetOpen) throw new Error(`ogg: EOS page leaves a packet continued for stream ${serial}`);\n stream.lastGranulePosition = granulePosition;\n stream.granulePosition = granulePosition;\n stream.lastSequence = sequence;\n stream.eos = !!(headerType & 0x04);\n stream.eosSeen = stream.eos;\n streams.set(serial, stream);\n pageCount++;\n offset = payloadOffset + payloadLength;\n }\n if (offset !== bytes.byteLength) throw new Error(`ogg: truncated trailing page at byte ${offset}`);\n if (!pageCount) throw new Error(\"ogg: no pages found\");\n const tracks = Array.from(streams.values()).map(stream => decodeCodec(stream));\n const primary = tracks.find(track => track.mediaType !== \"unknown\") || tracks[0];\n return {\n payloadType: primary?.mediaType === \"video\" ? \"video\" : primary?.mediaType === \"audio\" ? \"audio\" : \"container\",\n mediaTypes: tracks.map(track => track.mediaType),\n sourceFormat: \"ogg\",\n pageCount,\n streamCount: tracks.length,\n codec: primary?.codec || \"ogg\",\n mediaType: primary?.mediaType || \"unknown\",\n tracks\n };\n}\n\nfunction computeOggCrc(bytes, offset, length)\n{\n let crc = 0;\n for (let i = 0; i < length; i++)\n {\n const relative = i;\n const value = relative >= 22 && relative < 26 ? 0 : bytes[offset + relative];\n crc ^= value << 24;\n for (let bit = 0; bit < 8; bit++)\n {\n crc = (crc & 0x80000000) ? ((crc << 1) ^ 0x04c11db7) : (crc << 1);\n }\n }\n return crc >>> 0;\n}\n\nfunction collectFirstPacket(stream, bytes, payloadOffset, tableOffset, segmentCount)\n{\n let cursor = payloadOffset;\n let lastLength = 0;\n for (let i = 0; i < segmentCount; i++)\n {\n const length = bytes[tableOffset + i];\n if (!stream.firstPacketComplete && stream.packetBytes < 64)\n {\n const copyLength = Math.min(length, 64 - stream.packetBytes);\n stream.firstPacket.push(...bytes.subarray(cursor, cursor + copyLength));\n stream.packetBytes += copyLength;\n }\n cursor += length;\n lastLength = length;\n if (length < 255)\n {\n if (!stream.firstPacketComplete) stream.firstPacketComplete = true;\n }\n }\n stream.packetOpen = segmentCount > 0 && lastLength === 255;\n}\n\nfunction decodeCodec(stream)\n{\n const packet = Uint8Array.from(stream.firstPacket);\n if (matches(packet, [ 1, 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73 ]))\n {\n if (packet.length < 30) throw new Error(`ogg: truncated Vorbis identification header for stream ${stream.serial}`);\n if (readU32LE(packet, 7) !== 0 || !packet[11] || !readU32LE(packet, 12))\n {\n throw new Error(`ogg: invalid Vorbis identification header for stream ${stream.serial}`);\n }\n stream.codec = \"vorbis\";\n stream.mediaType = \"audio\";\n stream.channels = packet[11] || 0;\n stream.sampleRate = readU32LE(packet, 12);\n stream.bitrateMaximum = readS32LE(packet, 16);\n stream.bitrateNominal = readS32LE(packet, 20);\n stream.bitrateMinimum = readS32LE(packet, 24);\n addAudioTiming(stream, 0);\n }\n else if (matches(packet, [ 0x4f, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64 ]))\n {\n if (packet.length < 19 || packet[8] !== 1 || !packet[9] || (packet[18] && packet.length < 21 + packet[9]))\n {\n throw new Error(`ogg: invalid OpusHead packet for stream ${stream.serial}`);\n }\n stream.codec = \"opus\";\n stream.mediaType = \"audio\";\n stream.channels = packet[9] || 0;\n stream.preSkip = readU16LE(packet, 10);\n stream.inputSampleRate = readU32LE(packet, 12);\n stream.sampleRate = 48000;\n stream.outputGain = readS16LE(packet, 16);\n stream.mappingFamily = packet[18] || 0;\n addAudioTiming(stream, stream.preSkip);\n }\n else if (matches(packet, [ 0x80, 0x74, 0x68, 0x65, 0x6f, 0x72, 0x61 ]))\n {\n if (packet.length < 42) throw new Error(`ogg: truncated Theora identification header for stream ${stream.serial}`);\n stream.codec = \"theora\";\n stream.mediaType = \"video\";\n stream.frameWidth = readU16BE(packet, 10) * 16;\n stream.frameHeight = readU16BE(packet, 12) * 16;\n stream.width = readU24BE(packet, 14);\n stream.height = readU24BE(packet, 17);\n stream.frameRateNumerator = readU32BE(packet, 22);\n stream.frameRateDenominator = readU32BE(packet, 26);\n stream.frameRate = stream.frameRateDenominator\n ? stream.frameRateNumerator / stream.frameRateDenominator\n : 0;\n stream.pixelAspectNumerator = readU24BE(packet, 30);\n stream.pixelAspectDenominator = readU24BE(packet, 33);\n stream.pixelAspectRatio = stream.pixelAspectDenominator\n ? stream.pixelAspectNumerator / stream.pixelAspectDenominator\n : 0;\n stream.colorSpace = packet[36] || 0;\n }\n delete stream.firstPacket;\n delete stream.packetBytes;\n delete stream.firstPacketComplete;\n delete stream.packetOpen;\n return stream;\n}\n\nfunction addAudioTiming(stream, preSkip)\n{\n stream.granulePosition = stream.lastGranulePosition;\n const granule = typeof stream.lastGranulePosition === \"number\"\n ? stream.lastGranulePosition\n : typeof stream.lastGranulePosition === \"string\" && /^\\d+$/u.test(stream.lastGranulePosition)\n ? Number(stream.lastGranulePosition)\n : null;\n if (granule === null || !Number.isSafeInteger(granule)) return;\n stream.durationSamples = Math.max(0, granule - preSkip);\n stream.durationSeconds = stream.sampleRate ? stream.durationSamples / stream.sampleRate : 0;\n}\n\nfunction matches(bytes, signature)\n{\n return signature.every((value, index) => bytes[index] === value);\n}\n\nfunction ascii(bytes, offset, length)\n{\n return String.fromCharCode(...bytes.subarray(offset, offset + length));\n}\n\nfunction readU16LE(bytes, offset)\n{\n return (bytes[offset] || 0) | ((bytes[offset + 1] || 0) << 8);\n}\n\nfunction readU16BE(bytes, offset)\n{\n return ((bytes[offset] || 0) << 8) | (bytes[offset + 1] || 0);\n}\n\nfunction readU24BE(bytes, offset)\n{\n return ((bytes[offset] || 0) * 0x10000) + ((bytes[offset + 1] || 0) << 8) + (bytes[offset + 2] || 0);\n}\n\nfunction readS16LE(bytes, offset)\n{\n const value = readU16LE(bytes, offset);\n return value & 0x8000 ? value - 0x10000 : value;\n}\n\nfunction readU32LE(bytes, offset)\n{\n return ((bytes[offset] || 0) | ((bytes[offset + 1] || 0) << 8) | ((bytes[offset + 2] || 0) << 16) | ((bytes[offset + 3] || 0) * 0x1000000)) >>> 0;\n}\n\nfunction readU32BE(bytes, offset)\n{\n return (((bytes[offset] || 0) * 0x1000000) + ((bytes[offset + 1] || 0) << 16) + ((bytes[offset + 2] || 0) << 8) + (bytes[offset + 3] || 0)) >>> 0;\n}\n\nfunction readS32LE(bytes, offset)\n{\n return readU32LE(bytes, offset) | 0;\n}\n\nfunction readU64LE(bytes, offset)\n{\n let value = 0n;\n for (let i = 7; i >= 0; i--) value = (value << 8n) | BigInt(bytes[offset + i] || 0);\n if (value === 0xffffffffffffffffn) return null;\n return value <= BigInt(Number.MAX_SAFE_INTEGER) ? Number(value) : value.toString();\n}\n"],"names":["OUTPUT_RAW","OUTPUT_JSON","OUTPUT_PCM","OUTPUT_AUDIO","DEFAULT_VALUES","Object","freeze","emit","inputType","source","normalizeValues","base","options","readerName","Array","isArray","TypeError","allowed","Set","key","keys","has","JSON","stringify","values","includes","toBytes","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","isOGG","bytes","ascii","inspectWithValues","expectedType","metadata","inspectOgg","sourceFormat","isSupportedWithValues","mimeType","getOggMimeType","variants","kind","payloadType","codec","supported","containerOnly","isDecoded","pcmDecodeSupported","frameDecodeSupported","reason","mediaType","push","pcmSupported","format","confidence","preferred","warnings","errors","error","message","readWithValues","Error","code","decoded","decodeVorbis","data","Float32Array","sampleCount","channels","channel","samples","channelData","i","audioFormat","sampleFormat","sampleRate","interleaving","frameCount","durationSeconds","vendor","comments","loop","toJsonValue","value","map","output","entry","entries","streams","Map","offset","pageCount","version","headerType","granulePosition","readU64LE","serial","readU32LE","sequence","segmentCount","tableOffset","payloadOffset","payloadLength","pageLength","expectedChecksum","computeOggCrc","stream","get","pages","firstPacket","packetBytes","firstPacketComplete","packetOpen","payloadBytes","continued","eosSeen","lastSequence","undefined","firstSequence","firstGranulePosition","bos","collectFirstPacket","lastGranulePosition","eos","set","tracks","from","decodeCodec","primary","find","track","mediaTypes","streamCount","length","crc","relative","bit","cursor","lastLength","copyLength","Math","min","subarray","packet","matches","bitrateMaximum","readS32LE","bitrateNominal","bitrateMinimum","addAudioTiming","preSkip","readU16LE","inputSampleRate","outputGain","readS16LE","mappingFamily","frameWidth","readU16BE","frameHeight","width","readU24BE","height","frameRateNumerator","readU32BE","frameRateDenominator","frameRate","pixelAspectNumerator","pixelAspectDenominator","pixelAspectRatio","colorSpace","granule","test","Number","isSafeInteger","durationSamples","max","signature","every","index","String","fromCharCode","BigInt","MAX_SAFE_INTEGER","toString"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../src/formats/ogg/core/helpers.js"],"sourcesContent":["import { decodeVorbis } from \"./vorbis.js\";\n\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\nexport const OUTPUT_PCM = \"pcm\";\nexport const OUTPUT_AUDIO = \"audio\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"ogg\",\n source: \"\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the Ogg format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsOggFormat\")\n{\n if (!options || typeof options !== \"object\" || Array.isArray(options))\n {\n throw new TypeError(`${readerName}: options must be an object`);\n }\n const allowed = new Set([ \"emit\", \"inputType\", \"source\" ]);\n for (const key of Object.keys(options))\n {\n if (!allowed.has(key)) throw new TypeError(`${readerName}: unknown option ${JSON.stringify(key)}`);\n }\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...options };\n if (![ OUTPUT_RAW, OUTPUT_JSON, \"oggJson\", \"audio\", \"pcm\" ].includes(values.emit))\n {\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(values.emit)}`);\n }\n return values;\n}\n\n/** Returns a byte view over the supplied binary input for the Ogg format reader. */\nexport function toBytes(input)\n{\n if (input instanceof Uint8Array) return input;\n if (input instanceof ArrayBuffer) return new Uint8Array(input);\n if (ArrayBuffer.isView(input)) return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n throw new TypeError(\"OGG input must be Uint8Array, ArrayBuffer, or a view\");\n}\n\n/**\n * Reports whether the supplied bytes begin with an Ogg page signature for the\n * Ogg format reader.\n */\nexport function isOGG(bytes)\n{\n return bytes.byteLength >= 4 && ascii(bytes, 0, 4) === \"OggS\";\n}\n\n/** Inspects input using normalized format options for the Ogg format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"ogg\")\n{\n const bytes = toBytes(input);\n if (!isOGG(bytes)) throw new TypeError(\"CjsOggFormat: input is not an Ogg container\");\n const metadata = inspectOgg(bytes);\n if (expectedType && metadata.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsOggFormat: expected ${expectedType}, got ${metadata.sourceFormat}`);\n }\n return { ...metadata, byteLength: bytes.byteLength, source: values.source || \"buffer\" };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the Ogg\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES)\n{\n try\n {\n const metadata = inspectWithValues(input, values);\n const mimeType = getOggMimeType(metadata);\n const variants = [\n {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: \"ogg\",\n mimeType,\n supported: true,\n },\n {\n kind: \"pcm\",\n payloadType: \"pcm\",\n codec: metadata.codec === \"vorbis\" ? \"float32\" : \"pcm\",\n supported: metadata.codec === \"vorbis\",\n reason: metadata.codec === \"vorbis\" ? \"\" : \"Only Ogg Vorbis PCM decode is implemented.\"\n }\n ];\n if (metadata.mediaType === \"video\")\n {\n variants.push({\n kind: \"decoded\",\n payloadType: \"video-frame\",\n codec: \"frames\",\n supported: false,\n reason: \"OGG Theora frame decode is not implemented yet.\"\n });\n }\n const pcmSupported = metadata.codec === \"vorbis\";\n return {\n format: \"ogg\",\n source: values.source || \"buffer\",\n supported: \"partial\",\n confidence: 1,\n preferredOutput: pcmSupported ? \"pcm\" : (metadata.sourceFormat ? \"raw\" : \"\"),\n reason: pcmSupported\n ? \"Ogg Vorbis recognized; PCM decode is supported.\"\n : \"Ogg pages and codec headers are recognized; raw Ogg passthrough is available.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: \"ogg\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the Ogg format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES)\n{\n const bytes = toBytes(input);\n const metadata = inspectWithValues(bytes, values);\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: \"ogg\",\n mimeType: getOggMimeType(metadata),\n metadata,\n bytes\n };\n }\n if (values.emit === OUTPUT_JSON || values.emit === \"oggJson\") return metadata;\n if (values.emit === OUTPUT_PCM || values.emit === OUTPUT_AUDIO)\n {\n if (metadata.codec !== \"vorbis\")\n {\n const error = new Error(`ogg: PCM decode supports Vorbis only (found ${metadata.codec})`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n throw error;\n }\n const decoded = decodeVorbis(bytes);\n const data = new Float32Array(decoded.sampleCount * decoded.channels);\n for (let channel = 0; channel < decoded.channels; channel++)\n {\n const samples = decoded.channelData[channel];\n for (let i = 0; i < decoded.sampleCount; i++)\n {\n data[i * decoded.channels + channel] = samples[i];\n }\n }\n return {\n payloadType: values.emit === OUTPUT_AUDIO ? OUTPUT_AUDIO : OUTPUT_PCM,\n sourceFormat: \"ogg\",\n codec: \"vorbis\",\n audioFormat: \"float32\",\n sampleFormat: \"float32\",\n sampleRate: decoded.sampleRate,\n channels: decoded.channels,\n interleaving: \"interleaved\",\n frameCount: decoded.sampleCount,\n durationSeconds: decoded.sampleRate ? decoded.sampleCount / decoded.sampleRate : 0,\n vendor: decoded.vendor,\n comments: decoded.comments,\n loop: decoded.loop,\n channelData: decoded.channelData,\n metadata,\n data\n };\n }\n const error = new Error(`ogg: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the Ogg format reader. */\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array) return { byteLength: value.byteLength };\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\nfunction getOggMimeType(metadata)\n{\n if (metadata.mediaType === \"video\") return \"video/ogg\";\n if (metadata.mediaType === \"audio\") return \"audio/ogg\";\n return \"application/ogg\";\n}\n\nfunction inspectOgg(bytes)\n{\n const streams = new Map();\n let offset = 0;\n let pageCount = 0;\n while (offset + 27 <= bytes.byteLength)\n {\n if (ascii(bytes, offset, 4) !== \"OggS\") throw new Error(`ogg: invalid page at byte ${offset}`);\n const version = bytes[offset + 4];\n if (version !== 0) throw new Error(`ogg: unsupported stream version ${version}`);\n const headerType = bytes[offset + 5];\n if (headerType & 0xf8) throw new Error(`ogg: reserved header flags at byte ${offset}`);\n const granulePosition = readU64LE(bytes, offset + 6);\n const serial = readU32LE(bytes, offset + 14);\n const sequence = readU32LE(bytes, offset + 18);\n const segmentCount = bytes[offset + 26];\n const tableOffset = offset + 27;\n const payloadOffset = tableOffset + segmentCount;\n if (payloadOffset > bytes.byteLength) throw new Error(\"ogg: truncated segment table\");\n let payloadLength = 0;\n for (let i = 0; i < segmentCount; i++) payloadLength += bytes[tableOffset + i];\n if (payloadOffset + payloadLength > bytes.byteLength) throw new Error(\"ogg: truncated page payload\");\n const pageLength = 27 + segmentCount + payloadLength;\n const expectedChecksum = readU32LE(bytes, offset + 22);\n if (computeOggCrc(bytes, offset, pageLength) !== expectedChecksum)\n {\n throw new Error(`ogg: page checksum mismatch at byte ${offset}`);\n }\n const stream = streams.get(serial) || {\n serial,\n pages: 0,\n firstPacket: [],\n packetBytes: 0,\n firstPacketComplete: false,\n packetOpen: false,\n codec: \"\",\n mediaType: \"unknown\",\n payloadBytes: 0\n };\n const continued = !!(headerType & 0x01);\n if (stream.pages === 0 && !(headerType & 0x02)) throw new Error(`ogg: first page of stream ${serial} is missing BOS`);\n if (stream.pages === 0 && continued) throw new Error(`ogg: first page of stream ${serial} is marked continued`);\n if (stream.eosSeen) throw new Error(`ogg: page follows EOS for stream ${serial}`);\n if (stream.pages > 0 && continued !== stream.packetOpen)\n {\n throw new Error(`ogg: continued-page state mismatch for stream ${serial}`);\n }\n if ((headerType & 0x02) && stream.pages !== 0) throw new Error(`ogg: BOS page is not first for stream ${serial}`);\n if (stream.lastSequence !== undefined && sequence !== stream.lastSequence + 1)\n {\n throw new Error(`ogg: page sequence mismatch for stream ${serial}`);\n }\n if (stream.pages === 0)\n {\n stream.firstSequence = sequence;\n stream.firstGranulePosition = granulePosition;\n stream.bos = !!(headerType & 0x02);\n }\n stream.pages++;\n stream.payloadBytes += payloadLength;\n collectFirstPacket(stream, bytes, payloadOffset, tableOffset, segmentCount);\n if ((headerType & 0x04) && stream.packetOpen) throw new Error(`ogg: EOS page leaves a packet continued for stream ${serial}`);\n stream.lastGranulePosition = granulePosition;\n stream.granulePosition = granulePosition;\n stream.lastSequence = sequence;\n stream.eos = !!(headerType & 0x04);\n stream.eosSeen = stream.eos;\n streams.set(serial, stream);\n pageCount++;\n offset = payloadOffset + payloadLength;\n }\n if (offset !== bytes.byteLength) throw new Error(`ogg: truncated trailing page at byte ${offset}`);\n if (!pageCount) throw new Error(\"ogg: no pages found\");\n const tracks = Array.from(streams.values()).map(stream => decodeCodec(stream));\n const primary = tracks.find(track => track.mediaType !== \"unknown\") || tracks[0];\n return {\n payloadType: primary?.mediaType === \"video\" ? \"video\" : primary?.mediaType === \"audio\" ? \"audio\" : \"container\",\n mediaTypes: tracks.map(track => track.mediaType),\n sourceFormat: \"ogg\",\n pageCount,\n streamCount: tracks.length,\n codec: primary?.codec || \"ogg\",\n mediaType: primary?.mediaType || \"unknown\",\n tracks\n };\n}\n\nfunction computeOggCrc(bytes, offset, length)\n{\n let crc = 0;\n for (let i = 0; i < length; i++)\n {\n const relative = i;\n const value = relative >= 22 && relative < 26 ? 0 : bytes[offset + relative];\n crc ^= value << 24;\n for (let bit = 0; bit < 8; bit++)\n {\n crc = (crc & 0x80000000) ? ((crc << 1) ^ 0x04c11db7) : (crc << 1);\n }\n }\n return crc >>> 0;\n}\n\nfunction collectFirstPacket(stream, bytes, payloadOffset, tableOffset, segmentCount)\n{\n let cursor = payloadOffset;\n let lastLength = 0;\n for (let i = 0; i < segmentCount; i++)\n {\n const length = bytes[tableOffset + i];\n if (!stream.firstPacketComplete && stream.packetBytes < 64)\n {\n const copyLength = Math.min(length, 64 - stream.packetBytes);\n stream.firstPacket.push(...bytes.subarray(cursor, cursor + copyLength));\n stream.packetBytes += copyLength;\n }\n cursor += length;\n lastLength = length;\n if (length < 255)\n {\n if (!stream.firstPacketComplete) stream.firstPacketComplete = true;\n }\n }\n stream.packetOpen = segmentCount > 0 && lastLength === 255;\n}\n\nfunction decodeCodec(stream)\n{\n const packet = Uint8Array.from(stream.firstPacket);\n if (matches(packet, [ 1, 0x76, 0x6f, 0x72, 0x62, 0x69, 0x73 ]))\n {\n if (packet.length < 30) throw new Error(`ogg: truncated Vorbis identification header for stream ${stream.serial}`);\n if (readU32LE(packet, 7) !== 0 || !packet[11] || !readU32LE(packet, 12))\n {\n throw new Error(`ogg: invalid Vorbis identification header for stream ${stream.serial}`);\n }\n stream.codec = \"vorbis\";\n stream.mediaType = \"audio\";\n stream.channels = packet[11] || 0;\n stream.sampleRate = readU32LE(packet, 12);\n stream.bitrateMaximum = readS32LE(packet, 16);\n stream.bitrateNominal = readS32LE(packet, 20);\n stream.bitrateMinimum = readS32LE(packet, 24);\n addAudioTiming(stream, 0);\n }\n else if (matches(packet, [ 0x4f, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64 ]))\n {\n if (packet.length < 19 || packet[8] !== 1 || !packet[9] || (packet[18] && packet.length < 21 + packet[9]))\n {\n throw new Error(`ogg: invalid OpusHead packet for stream ${stream.serial}`);\n }\n stream.codec = \"opus\";\n stream.mediaType = \"audio\";\n stream.channels = packet[9] || 0;\n stream.preSkip = readU16LE(packet, 10);\n stream.inputSampleRate = readU32LE(packet, 12);\n stream.sampleRate = 48000;\n stream.outputGain = readS16LE(packet, 16);\n stream.mappingFamily = packet[18] || 0;\n addAudioTiming(stream, stream.preSkip);\n }\n else if (matches(packet, [ 0x80, 0x74, 0x68, 0x65, 0x6f, 0x72, 0x61 ]))\n {\n if (packet.length < 42) throw new Error(`ogg: truncated Theora identification header for stream ${stream.serial}`);\n stream.codec = \"theora\";\n stream.mediaType = \"video\";\n stream.frameWidth = readU16BE(packet, 10) * 16;\n stream.frameHeight = readU16BE(packet, 12) * 16;\n stream.width = readU24BE(packet, 14);\n stream.height = readU24BE(packet, 17);\n stream.frameRateNumerator = readU32BE(packet, 22);\n stream.frameRateDenominator = readU32BE(packet, 26);\n stream.frameRate = stream.frameRateDenominator\n ? stream.frameRateNumerator / stream.frameRateDenominator\n : 0;\n stream.pixelAspectNumerator = readU24BE(packet, 30);\n stream.pixelAspectDenominator = readU24BE(packet, 33);\n stream.pixelAspectRatio = stream.pixelAspectDenominator\n ? stream.pixelAspectNumerator / stream.pixelAspectDenominator\n : 0;\n stream.colorSpace = packet[36] || 0;\n }\n delete stream.firstPacket;\n delete stream.packetBytes;\n delete stream.firstPacketComplete;\n delete stream.packetOpen;\n return stream;\n}\n\nfunction addAudioTiming(stream, preSkip)\n{\n stream.granulePosition = stream.lastGranulePosition;\n const granule = typeof stream.lastGranulePosition === \"number\"\n ? stream.lastGranulePosition\n : typeof stream.lastGranulePosition === \"string\" && /^\\d+$/u.test(stream.lastGranulePosition)\n ? Number(stream.lastGranulePosition)\n : null;\n if (granule === null || !Number.isSafeInteger(granule)) return;\n stream.durationSamples = Math.max(0, granule - preSkip);\n stream.durationSeconds = stream.sampleRate ? stream.durationSamples / stream.sampleRate : 0;\n}\n\nfunction matches(bytes, signature)\n{\n return signature.every((value, index) => bytes[index] === value);\n}\n\nfunction ascii(bytes, offset, length)\n{\n return String.fromCharCode(...bytes.subarray(offset, offset + length));\n}\n\nfunction readU16LE(bytes, offset)\n{\n return (bytes[offset] || 0) | ((bytes[offset + 1] || 0) << 8);\n}\n\nfunction readU16BE(bytes, offset)\n{\n return ((bytes[offset] || 0) << 8) | (bytes[offset + 1] || 0);\n}\n\nfunction readU24BE(bytes, offset)\n{\n return ((bytes[offset] || 0) * 0x10000) + ((bytes[offset + 1] || 0) << 8) + (bytes[offset + 2] || 0);\n}\n\nfunction readS16LE(bytes, offset)\n{\n const value = readU16LE(bytes, offset);\n return value & 0x8000 ? value - 0x10000 : value;\n}\n\nfunction readU32LE(bytes, offset)\n{\n return ((bytes[offset] || 0) | ((bytes[offset + 1] || 0) << 8) | ((bytes[offset + 2] || 0) << 16) | ((bytes[offset + 3] || 0) * 0x1000000)) >>> 0;\n}\n\nfunction readU32BE(bytes, offset)\n{\n return (((bytes[offset] || 0) * 0x1000000) + ((bytes[offset + 1] || 0) << 16) + ((bytes[offset + 2] || 0) << 8) + (bytes[offset + 3] || 0)) >>> 0;\n}\n\nfunction readS32LE(bytes, offset)\n{\n return readU32LE(bytes, offset) | 0;\n}\n\nfunction readU64LE(bytes, offset)\n{\n let value = 0n;\n for (let i = 7; i >= 0; i--) value = (value << 8n) | BigInt(bytes[offset + i] || 0);\n if (value === 0xffffffffffffffffn) return null;\n return value <= BigInt(Number.MAX_SAFE_INTEGER) ? Number(value) : value.toString();\n}\n"],"names":["OUTPUT_RAW","OUTPUT_JSON","OUTPUT_PCM","OUTPUT_AUDIO","DEFAULT_VALUES","Object","freeze","emit","inputType","source","normalizeValues","base","options","readerName","Array","isArray","TypeError","allowed","Set","key","keys","has","JSON","stringify","values","includes","toBytes","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","isOGG","bytes","ascii","inspectWithValues","expectedType","metadata","inspectOgg","sourceFormat","probeSupportWithValues","mimeType","getOggMimeType","variants","kind","payloadType","codec","supported","reason","mediaType","push","pcmSupported","format","confidence","preferredOutput","warnings","errors","error","message","readWithValues","Error","code","decoded","decodeVorbis","data","Float32Array","sampleCount","channels","channel","samples","channelData","i","audioFormat","sampleFormat","sampleRate","interleaving","frameCount","durationSeconds","vendor","comments","loop","toJsonValue","value","map","output","entry","entries","streams","Map","offset","pageCount","version","headerType","granulePosition","readU64LE","serial","readU32LE","sequence","segmentCount","tableOffset","payloadOffset","payloadLength","pageLength","expectedChecksum","computeOggCrc","stream","get","pages","firstPacket","packetBytes","firstPacketComplete","packetOpen","payloadBytes","continued","eosSeen","lastSequence","undefined","firstSequence","firstGranulePosition","bos","collectFirstPacket","lastGranulePosition","eos","set","tracks","from","decodeCodec","primary","find","track","mediaTypes","streamCount","length","crc","relative","bit","cursor","lastLength","copyLength","Math","min","subarray","packet","matches","bitrateMaximum","readS32LE","bitrateNominal","bitrateMinimum","addAudioTiming","preSkip","readU16LE","inputSampleRate","outputGain","readS16LE","mappingFamily","frameWidth","readU16BE","frameHeight","width","readU24BE","height","frameRateNumerator","readU32BE","frameRateDenominator","frameRate","pixelAspectNumerator","pixelAspectDenominator","pixelAspectRatio","colorSpace","granule","test","Number","isSafeInteger","durationSamples","max","signature","every","index","String","fromCharCode","BigInt","MAX_SAFE_INTEGER","toString"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { CjsFormat } from '../../format/CjsFormat.js';
1
2
  import { PICKLE_PROTOCOL_0_LIMITS, CjsPickleProtocol0Reader } from './core/CjsPickleProtocol0Reader.js';
2
3
 
3
4
  const OUTPUT_JSON = "json";
@@ -15,7 +16,7 @@ const DEFAULT_VALUES = {
15
16
  * JSON-compatible values or identity-preserving payload graphs while rejecting
16
17
  * callable and object-construction opcodes.
17
18
  */
18
- class CjsPickleFormat {
19
+ class CjsPickleFormat extends CjsFormat {
19
20
  #values = DEFAULT_VALUES;
20
21
 
21
22
  /**
@@ -24,6 +25,7 @@ class CjsPickleFormat {
24
25
  * @param {object} [options] Emit mode and bounded decoder limits.
25
26
  */
26
27
  constructor(options = {}) {
28
+ super();
27
29
  this.SetValues(options);
28
30
  }
29
31
 
@@ -161,6 +163,54 @@ class CjsPickleFormat {
161
163
  return CjsPickleProtocol0Reader.ToJSON(value);
162
164
  }
163
165
 
166
+ /** Validate protocol-0 structure and return format metadata. */
167
+ static inspect(input, options = {}) {
168
+ const {
169
+ source: _source,
170
+ ...readOptions
171
+ } = options;
172
+ const value = this.readPayload(input, readOptions);
173
+ const byteLength = input instanceof ArrayBuffer ? input.byteLength : ArrayBuffer.isView(input) ? input.byteLength : 0;
174
+ return {
175
+ protocol: 0,
176
+ byteLength,
177
+ rootType: value === null ? "null" : Array.isArray(value) ? "array" : typeof value
178
+ };
179
+ }
180
+
181
+ /** Return synchronous advisory support from a bounded protocol-0 decode. */
182
+ static probeSupport(input, options = {}) {
183
+ try {
184
+ return {
185
+ format: this.id,
186
+ recognized: true,
187
+ supported: true,
188
+ preferredOutput: OUTPUT_JSON,
189
+ metadata: this.inspect(input, options),
190
+ variants: [{
191
+ kind: OUTPUT_JSON,
192
+ supported: true
193
+ }, {
194
+ kind: OUTPUT_PAYLOAD,
195
+ supported: true
196
+ }, {
197
+ kind: OUTPUT_RAW,
198
+ supported: true
199
+ }],
200
+ reason: "The input is a supported inert protocol-0 pickle."
201
+ };
202
+ } catch (error) {
203
+ return {
204
+ format: this.id,
205
+ recognized: false,
206
+ supported: false,
207
+ metadata: null,
208
+ reason: error.message,
209
+ errors: [error.message]
210
+ };
211
+ }
212
+ }
213
+
164
214
  /**
165
215
  * Normalize a format profile and partial override into detached effective
166
216
  * values.
@@ -203,11 +253,20 @@ class CjsPickleFormat {
203
253
  static supportedProtocols = Object.freeze([0]);
204
254
  static id = "pickle";
205
255
  static extensions = Object.freeze([".pickle"]);
206
- static type = Object.freeze(["data"]);
207
256
  static mediaTypes = Object.freeze(["data"]);
208
- static inputTypes = Object.freeze(["pickle"]);
209
- static outputTypes = Object.freeze([OUTPUT_JSON, OUTPUT_PAYLOAD]);
210
- static debugOutputTypes = Object.freeze([OUTPUT_RAW]);
257
+ static outputs = CjsFormat.defineOutputs({
258
+ json: {
259
+ default: true,
260
+ decoded: true
261
+ },
262
+ payload: {
263
+ decoded: true
264
+ },
265
+ raw: {
266
+ role: "debug",
267
+ decoded: true
268
+ }
269
+ });
211
270
  }
212
271
 
213
272
  export { CjsPickleFormat };
@@ -1 +1 @@
1
- {"version":3,"file":"CjsPickleFormat.js","sources":["../../../../src/formats/pickle/CjsPickleFormat.js"],"sourcesContent":["import {\n CjsPickleProtocol0Reader,\n PICKLE_PROTOCOL_0_LIMITS\n} from \"./core/CjsPickleProtocol0Reader.js\";\n\nconst OUTPUT_JSON = \"json\";\nconst OUTPUT_PAYLOAD = \"payload\";\nconst OUTPUT_RAW = \"raw\";\nconst OUTPUTS = new Set([ OUTPUT_JSON, OUTPUT_PAYLOAD, OUTPUT_RAW ]);\nconst OPTION_NAMES = new Set([ \"emit\", \"limits\" ]);\nconst DEFAULT_VALUES = {\n emit: OUTPUT_JSON,\n limits: PICKLE_PROTOCOL_0_LIMITS\n};\n\n/**\n * Data-only Python pickle format facade that currently decodes protocol 0 into\n * JSON-compatible values or identity-preserving payload graphs while rejecting\n * callable and object-construction opcodes.\n */\nexport class CjsPickleFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable protocol-0 pickle format profile.\n *\n * @param {object} [options] Emit mode and bounded decoder limits.\n */\n constructor(options = {})\n {\n this.SetValues(options);\n }\n\n /**\n * Apply supported format options to this profile.\n *\n * @param {object} [options] Emit mode and partial decoder limits.\n * @returns {CjsPickleFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = this.constructor.normalizeValues(this.#values, options);\n return this;\n }\n\n /**\n * Return normalized format values with optional per-call overrides.\n *\n * @param {object} [options] Per-call format options.\n * @returns {object} Detached effective values.\n */\n GetValues(options = {})\n {\n return this.constructor.normalizeValues(this.#values, options);\n }\n\n /**\n * Decode according to the effective emit mode.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Per-call format options.\n * @returns {*} Decoded value graph.\n */\n Read(input, options = {})\n {\n return CjsPickleFormat.read(input, this.GetValues(options));\n }\n\n /**\n * Decode a JSON-compatible graph, rejecting cyclic memo references.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Per-call format options.\n * @returns {*} JSON-compatible decoded graph.\n */\n ReadJSON(input, options = {})\n {\n return CjsPickleFormat.readJSON(input, this.GetValues(options));\n }\n\n /**\n * Decode the inert payload while preserving memo object identity.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Per-call format options.\n * @returns {*} Decoded payload graph.\n */\n ReadPayload(input, options = {})\n {\n return CjsPickleFormat.readPayload(input, this.GetValues(options));\n }\n\n /**\n * Decode the exact inert graph while preserving memo aliases and cycles.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Per-call format options.\n * @returns {*} Decoded raw graph.\n */\n ReadRaw(input, options = {})\n {\n return CjsPickleFormat.readRaw(input, this.GetValues(options));\n }\n\n /**\n * Verify that a decoded graph is JSON-compatible without changing its shape.\n *\n * @param {*} value Candidate decoded graph.\n * @returns {*} The supplied value.\n */\n ToJSON(value)\n {\n return CjsPickleFormat.toJSON(value);\n }\n\n /**\n * Decode according to the requested emit mode.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Format options.\n * @returns {*} Decoded value graph.\n */\n static read(input, options = {})\n {\n const values = this.normalizeValues(DEFAULT_VALUES, options);\n if (values.emit === OUTPUT_RAW) return this.readRaw(input, values);\n if (values.emit === OUTPUT_PAYLOAD) return this.readPayload(input, values);\n return this.readJSON(input, values);\n }\n\n /**\n * Decode a JSON-compatible graph through the protocol-0 implementation.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Format options.\n * @returns {*} JSON-compatible decoded graph.\n */\n static readJSON(input, options = {})\n {\n const values = this.normalizeValues(DEFAULT_VALUES, options);\n return new CjsPickleProtocol0Reader(input, values).ReadJSON();\n }\n\n /**\n * Decode an inert payload while preserving pickle memo identity.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Format options.\n * @returns {*} Decoded payload graph.\n */\n static readPayload(input, options = {})\n {\n const values = this.normalizeValues(DEFAULT_VALUES, options);\n return new CjsPickleProtocol0Reader(input, values).Read();\n }\n\n /**\n * Decode the exact inert graph while preserving memo aliases and cycles.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Format options.\n * @returns {*} Decoded raw graph.\n */\n static readRaw(input, options = {})\n {\n return this.readPayload(input, options);\n }\n\n /**\n * Verify that a decoded graph is JSON-compatible without changing its shape.\n *\n * @param {*} value Candidate decoded graph.\n * @returns {*} The supplied value.\n */\n static toJSON(value)\n {\n return CjsPickleProtocol0Reader.ToJSON(value);\n }\n\n /**\n * Normalize a format profile and partial override into detached effective\n * values.\n *\n * @param {object} base Existing normalized values.\n * @param {object} [options] Partial emit and limit overrides.\n * @returns {object} Detached normalized values.\n */\n static normalizeValues(base, options = {})\n {\n if (!options || typeof options !== \"object\" || Array.isArray(options))\n {\n throw new TypeError(\"CjsPickleFormat options must be an object.\");\n }\n for (const name of Object.keys(options))\n {\n if (!OPTION_NAMES.has(name))\n {\n throw new TypeError(`CjsPickleFormat unknown option ${JSON.stringify(name)}.`);\n }\n }\n\n const emit = options.emit ?? base.emit;\n if (!OUTPUTS.has(emit))\n {\n throw new TypeError(`CjsPickleFormat unknown emit value ${JSON.stringify(emit)}.`);\n }\n\n const baseLimits = base.limits || PICKLE_PROTOCOL_0_LIMITS;\n const optionLimits = options.limits ?? {};\n if (!optionLimits || typeof optionLimits !== \"object\" || Array.isArray(optionLimits))\n {\n throw new TypeError(\"CjsPickleFormat limits must be an object.\");\n }\n\n return {\n emit,\n limits: {\n ...baseLimits,\n ...optionLimits\n }\n };\n }\n\n static Output = Object.freeze({\n JSON: OUTPUT_JSON,\n PAYLOAD: OUTPUT_PAYLOAD,\n RAW: OUTPUT_RAW\n });\n static supportedProtocols = Object.freeze([ 0 ]);\n static id = \"pickle\";\n static extensions = Object.freeze([ \".pickle\" ]);\n static type = Object.freeze([ \"data\" ]);\n static mediaTypes = Object.freeze([ \"data\" ]);\n static inputTypes = Object.freeze([ \"pickle\" ]);\n static outputTypes = Object.freeze([ OUTPUT_JSON, OUTPUT_PAYLOAD ]);\n static debugOutputTypes = Object.freeze([ OUTPUT_RAW ]);\n}\n\nexport default CjsPickleFormat;\n"],"names":["OUTPUT_JSON","OUTPUT_PAYLOAD","OUTPUT_RAW","OUTPUTS","Set","OPTION_NAMES","DEFAULT_VALUES","emit","limits","PICKLE_PROTOCOL_0_LIMITS","CjsPickleFormat","constructor","options","SetValues","normalizeValues","GetValues","Read","input","read","ReadJSON","readJSON","ReadPayload","readPayload","ReadRaw","readRaw","ToJSON","value","toJSON","values","CjsPickleProtocol0Reader","base","Array","isArray","TypeError","name","Object","keys","has","JSON","stringify","baseLimits","optionLimits","Output","freeze","PAYLOAD","RAW","supportedProtocols","id","extensions","type","mediaTypes","inputTypes","outputTypes","debugOutputTypes"],"mappings":"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"}
1
+ {"version":3,"file":"CjsPickleFormat.js","sources":["../../../../src/formats/pickle/CjsPickleFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n CjsPickleProtocol0Reader,\n PICKLE_PROTOCOL_0_LIMITS\n} from \"./core/CjsPickleProtocol0Reader.js\";\n\nconst OUTPUT_JSON = \"json\";\nconst OUTPUT_PAYLOAD = \"payload\";\nconst OUTPUT_RAW = \"raw\";\nconst OUTPUTS = new Set([ OUTPUT_JSON, OUTPUT_PAYLOAD, OUTPUT_RAW ]);\nconst OPTION_NAMES = new Set([ \"emit\", \"limits\" ]);\nconst DEFAULT_VALUES = {\n emit: OUTPUT_JSON,\n limits: PICKLE_PROTOCOL_0_LIMITS\n};\n\n/**\n * Data-only Python pickle format facade that currently decodes protocol 0 into\n * JSON-compatible values or identity-preserving payload graphs while rejecting\n * callable and object-construction opcodes.\n */\nexport class CjsPickleFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable protocol-0 pickle format profile.\n *\n * @param {object} [options] Emit mode and bounded decoder limits.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Apply supported format options to this profile.\n *\n * @param {object} [options] Emit mode and partial decoder limits.\n * @returns {CjsPickleFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = this.constructor.normalizeValues(this.#values, options);\n return this;\n }\n\n /**\n * Return normalized format values with optional per-call overrides.\n *\n * @param {object} [options] Per-call format options.\n * @returns {object} Detached effective values.\n */\n GetValues(options = {})\n {\n return this.constructor.normalizeValues(this.#values, options);\n }\n\n /**\n * Decode according to the effective emit mode.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Per-call format options.\n * @returns {*} Decoded value graph.\n */\n Read(input, options = {})\n {\n return CjsPickleFormat.read(input, this.GetValues(options));\n }\n\n /**\n * Decode a JSON-compatible graph, rejecting cyclic memo references.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Per-call format options.\n * @returns {*} JSON-compatible decoded graph.\n */\n ReadJSON(input, options = {})\n {\n return CjsPickleFormat.readJSON(input, this.GetValues(options));\n }\n\n /**\n * Decode the inert payload while preserving memo object identity.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Per-call format options.\n * @returns {*} Decoded payload graph.\n */\n ReadPayload(input, options = {})\n {\n return CjsPickleFormat.readPayload(input, this.GetValues(options));\n }\n\n /**\n * Decode the exact inert graph while preserving memo aliases and cycles.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Per-call format options.\n * @returns {*} Decoded raw graph.\n */\n ReadRaw(input, options = {})\n {\n return CjsPickleFormat.readRaw(input, this.GetValues(options));\n }\n\n /**\n * Verify that a decoded graph is JSON-compatible without changing its shape.\n *\n * @param {*} value Candidate decoded graph.\n * @returns {*} The supplied value.\n */\n ToJSON(value)\n {\n return CjsPickleFormat.toJSON(value);\n }\n\n /**\n * Decode according to the requested emit mode.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Format options.\n * @returns {*} Decoded value graph.\n */\n static read(input, options = {})\n {\n const values = this.normalizeValues(DEFAULT_VALUES, options);\n if (values.emit === OUTPUT_RAW) return this.readRaw(input, values);\n if (values.emit === OUTPUT_PAYLOAD) return this.readPayload(input, values);\n return this.readJSON(input, values);\n }\n\n /**\n * Decode a JSON-compatible graph through the protocol-0 implementation.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Format options.\n * @returns {*} JSON-compatible decoded graph.\n */\n static readJSON(input, options = {})\n {\n const values = this.normalizeValues(DEFAULT_VALUES, options);\n return new CjsPickleProtocol0Reader(input, values).ReadJSON();\n }\n\n /**\n * Decode an inert payload while preserving pickle memo identity.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Format options.\n * @returns {*} Decoded payload graph.\n */\n static readPayload(input, options = {})\n {\n const values = this.normalizeValues(DEFAULT_VALUES, options);\n return new CjsPickleProtocol0Reader(input, values).Read();\n }\n\n /**\n * Decode the exact inert graph while preserving memo aliases and cycles.\n *\n * @param {ArrayBuffer|ArrayBufferView} input Pickle bytes.\n * @param {object} [options] Format options.\n * @returns {*} Decoded raw graph.\n */\n static readRaw(input, options = {})\n {\n return this.readPayload(input, options);\n }\n\n /**\n * Verify that a decoded graph is JSON-compatible without changing its shape.\n *\n * @param {*} value Candidate decoded graph.\n * @returns {*} The supplied value.\n */\n static toJSON(value)\n {\n return CjsPickleProtocol0Reader.ToJSON(value);\n }\n\n /** Validate protocol-0 structure and return format metadata. */\n static inspect(input, options = {})\n {\n const { source: _source, ...readOptions } = options;\n const value = this.readPayload(input, readOptions);\n const byteLength = input instanceof ArrayBuffer\n ? input.byteLength\n : ArrayBuffer.isView(input) ? input.byteLength : 0;\n return {\n protocol: 0,\n byteLength,\n rootType: value === null ? \"null\" : Array.isArray(value) ? \"array\" : typeof value\n };\n }\n\n /** Return synchronous advisory support from a bounded protocol-0 decode. */\n static probeSupport(input, options = {})\n {\n try\n {\n return {\n format: this.id,\n recognized: true,\n supported: true,\n preferredOutput: OUTPUT_JSON,\n metadata: this.inspect(input, options),\n variants: [\n { kind: OUTPUT_JSON, supported: true },\n { kind: OUTPUT_PAYLOAD, supported: true },\n { kind: OUTPUT_RAW, supported: true }\n ],\n reason: \"The input is a supported inert protocol-0 pickle.\"\n };\n }\n catch (error)\n {\n return {\n format: this.id,\n recognized: false,\n supported: false,\n metadata: null,\n reason: error.message,\n errors: [ error.message ]\n };\n }\n }\n\n /**\n * Normalize a format profile and partial override into detached effective\n * values.\n *\n * @param {object} base Existing normalized values.\n * @param {object} [options] Partial emit and limit overrides.\n * @returns {object} Detached normalized values.\n */\n static normalizeValues(base, options = {})\n {\n if (!options || typeof options !== \"object\" || Array.isArray(options))\n {\n throw new TypeError(\"CjsPickleFormat options must be an object.\");\n }\n for (const name of Object.keys(options))\n {\n if (!OPTION_NAMES.has(name))\n {\n throw new TypeError(`CjsPickleFormat unknown option ${JSON.stringify(name)}.`);\n }\n }\n\n const emit = options.emit ?? base.emit;\n if (!OUTPUTS.has(emit))\n {\n throw new TypeError(`CjsPickleFormat unknown emit value ${JSON.stringify(emit)}.`);\n }\n\n const baseLimits = base.limits || PICKLE_PROTOCOL_0_LIMITS;\n const optionLimits = options.limits ?? {};\n if (!optionLimits || typeof optionLimits !== \"object\" || Array.isArray(optionLimits))\n {\n throw new TypeError(\"CjsPickleFormat limits must be an object.\");\n }\n\n return {\n emit,\n limits: {\n ...baseLimits,\n ...optionLimits\n }\n };\n }\n\n static Output = Object.freeze({\n JSON: OUTPUT_JSON,\n PAYLOAD: OUTPUT_PAYLOAD,\n RAW: OUTPUT_RAW\n });\n static supportedProtocols = Object.freeze([ 0 ]);\n static id = \"pickle\";\n static extensions = Object.freeze([ \".pickle\" ]);\n static mediaTypes = Object.freeze([ \"data\" ]);\n static outputs = CjsFormat.defineOutputs({\n json: { default: true, decoded: true },\n payload: { decoded: true },\n raw: { role: \"debug\", decoded: true }\n });\n}\n\nexport default CjsPickleFormat;\n"],"names":["OUTPUT_JSON","OUTPUT_PAYLOAD","OUTPUT_RAW","OUTPUTS","Set","OPTION_NAMES","DEFAULT_VALUES","emit","limits","PICKLE_PROTOCOL_0_LIMITS","CjsPickleFormat","CjsFormat","constructor","options","SetValues","normalizeValues","GetValues","Read","input","read","ReadJSON","readJSON","ReadPayload","readPayload","ReadRaw","readRaw","ToJSON","value","toJSON","values","CjsPickleProtocol0Reader","inspect","source","_source","readOptions","byteLength","ArrayBuffer","isView","protocol","rootType","Array","isArray","probeSupport","format","id","recognized","supported","preferredOutput","metadata","variants","kind","reason","error","message","errors","base","TypeError","name","Object","keys","has","JSON","stringify","baseLimits","optionLimits","Output","freeze","PAYLOAD","RAW","supportedProtocols","extensions","mediaTypes","outputs","defineOutputs","json","default","decoded","payload","raw","role"],"mappings":";;;AAMA,MAAMA,WAAW,GAAG,MAAM;AAC1B,MAAMC,cAAc,GAAG,SAAS;AAChC,MAAMC,UAAU,GAAG,KAAK;AACxB,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAAC,CAAEJ,WAAW,EAAEC,cAAc,EAAEC,UAAU,CAAE,CAAC;AACpE,MAAMG,YAAY,GAAG,IAAID,GAAG,CAAC,CAAE,MAAM,EAAE,QAAQ,CAAE,CAAC;AAClD,MAAME,cAAc,GAAG;AACrBC,EAAAA,IAAI,EAAEP,WAAW;AACjBQ,EAAAA,MAAM,EAAEC;AACV,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMC,eAAe,SAASC,SAAS,CAC9C;EACE,OAAO,GAAGL,cAAc;;AAExB;AACF;AACA;AACA;AACA;AACEM,EAAAA,WAAWA,CAACC,OAAO,GAAG,EAAE,EACxB;AACE,IAAA,KAAK,EAAE;AACP,IAAA,IAAI,CAACC,SAAS,CAACD,OAAO,CAAC;AACzB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,SAASA,CAACD,OAAO,GAAG,EAAE,EACtB;AACE,IAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAACD,WAAW,CAACG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAEF,OAAO,CAAC;AACtE,IAAA,OAAO,IAAI;AACb,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEG,EAAAA,SAASA,CAACH,OAAO,GAAG,EAAE,EACtB;AACE,IAAA,OAAO,IAAI,CAACD,WAAW,CAACG,eAAe,CAAC,IAAI,CAAC,OAAO,EAAEF,OAAO,CAAC;AAChE,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACEI,EAAAA,IAAIA,CAACC,KAAK,EAAEL,OAAO,GAAG,EAAE,EACxB;AACE,IAAA,OAAOH,eAAe,CAACS,IAAI,CAACD,KAAK,EAAE,IAAI,CAACF,SAAS,CAACH,OAAO,CAAC,CAAC;AAC7D,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACEO,EAAAA,QAAQA,CAACF,KAAK,EAAEL,OAAO,GAAG,EAAE,EAC5B;AACE,IAAA,OAAOH,eAAe,CAACW,QAAQ,CAACH,KAAK,EAAE,IAAI,CAACF,SAAS,CAACH,OAAO,CAAC,CAAC;AACjE,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACES,EAAAA,WAAWA,CAACJ,KAAK,EAAEL,OAAO,GAAG,EAAE,EAC/B;AACE,IAAA,OAAOH,eAAe,CAACa,WAAW,CAACL,KAAK,EAAE,IAAI,CAACF,SAAS,CAACH,OAAO,CAAC,CAAC;AACpE,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACEW,EAAAA,OAAOA,CAACN,KAAK,EAAEL,OAAO,GAAG,EAAE,EAC3B;AACE,IAAA,OAAOH,eAAe,CAACe,OAAO,CAACP,KAAK,EAAE,IAAI,CAACF,SAAS,CAACH,OAAO,CAAC,CAAC;AAChE,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACEa,MAAMA,CAACC,KAAK,EACZ;AACE,IAAA,OAAOjB,eAAe,CAACkB,MAAM,CAACD,KAAK,CAAC;AACtC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAOR,IAAIA,CAACD,KAAK,EAAEL,OAAO,GAAG,EAAE,EAC/B;IACE,MAAMgB,MAAM,GAAG,IAAI,CAACd,eAAe,CAACT,cAAc,EAAEO,OAAO,CAAC;AAC5D,IAAA,IAAIgB,MAAM,CAACtB,IAAI,KAAKL,UAAU,EAAE,OAAO,IAAI,CAACuB,OAAO,CAACP,KAAK,EAAEW,MAAM,CAAC;AAClE,IAAA,IAAIA,MAAM,CAACtB,IAAI,KAAKN,cAAc,EAAE,OAAO,IAAI,CAACsB,WAAW,CAACL,KAAK,EAAEW,MAAM,CAAC;AAC1E,IAAA,OAAO,IAAI,CAACR,QAAQ,CAACH,KAAK,EAAEW,MAAM,CAAC;AACrC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAOR,QAAQA,CAACH,KAAK,EAAEL,OAAO,GAAG,EAAE,EACnC;IACE,MAAMgB,MAAM,GAAG,IAAI,CAACd,eAAe,CAACT,cAAc,EAAEO,OAAO,CAAC;IAC5D,OAAO,IAAIiB,wBAAwB,CAACZ,KAAK,EAAEW,MAAM,CAAC,CAACT,QAAQ,EAAE;AAC/D,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAOG,WAAWA,CAACL,KAAK,EAAEL,OAAO,GAAG,EAAE,EACtC;IACE,MAAMgB,MAAM,GAAG,IAAI,CAACd,eAAe,CAACT,cAAc,EAAEO,OAAO,CAAC;IAC5D,OAAO,IAAIiB,wBAAwB,CAACZ,KAAK,EAAEW,MAAM,CAAC,CAACZ,IAAI,EAAE;AAC3D,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAOQ,OAAOA,CAACP,KAAK,EAAEL,OAAO,GAAG,EAAE,EAClC;AACE,IAAA,OAAO,IAAI,CAACU,WAAW,CAACL,KAAK,EAAEL,OAAO,CAAC;AACzC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACE,OAAOe,MAAMA,CAACD,KAAK,EACnB;AACE,IAAA,OAAOG,wBAAwB,CAACJ,MAAM,CAACC,KAAK,CAAC;AAC/C,EAAA;;AAEA;EACA,OAAOI,OAAOA,CAACb,KAAK,EAAEL,OAAO,GAAG,EAAE,EAClC;IACE,MAAM;AAAEmB,MAAAA,MAAM,EAAEC,OAAO;MAAE,GAAGC;AAAY,KAAC,GAAGrB,OAAO;IACnD,MAAMc,KAAK,GAAG,IAAI,CAACJ,WAAW,CAACL,KAAK,EAAEgB,WAAW,CAAC;IAClD,MAAMC,UAAU,GAAGjB,KAAK,YAAYkB,WAAW,GAC3ClB,KAAK,CAACiB,UAAU,GAChBC,WAAW,CAACC,MAAM,CAACnB,KAAK,CAAC,GAAGA,KAAK,CAACiB,UAAU,GAAG,CAAC;IACpD,OAAO;AACLG,MAAAA,QAAQ,EAAE,CAAC;MACXH,UAAU;AACVI,MAAAA,QAAQ,EAAEZ,KAAK,KAAK,IAAI,GAAG,MAAM,GAAGa,KAAK,CAACC,OAAO,CAACd,KAAK,CAAC,GAAG,OAAO,GAAG,OAAOA;KAC7E;AACH,EAAA;;AAEA;EACA,OAAOe,YAAYA,CAACxB,KAAK,EAAEL,OAAO,GAAG,EAAE,EACvC;IACE,IACA;MACE,OAAO;QACL8B,MAAM,EAAE,IAAI,CAACC,EAAE;AACfC,QAAAA,UAAU,EAAE,IAAI;AAChBC,QAAAA,SAAS,EAAE,IAAI;AACfC,QAAAA,eAAe,EAAE/C,WAAW;QAC5BgD,QAAQ,EAAE,IAAI,CAACjB,OAAO,CAACb,KAAK,EAAEL,OAAO,CAAC;AACtCoC,QAAAA,QAAQ,EAAE,CACR;AAAEC,UAAAA,IAAI,EAAElD,WAAW;AAAE8C,UAAAA,SAAS,EAAE;AAAK,SAAC,EACtC;AAAEI,UAAAA,IAAI,EAAEjD,cAAc;AAAE6C,UAAAA,SAAS,EAAE;AAAK,SAAC,EACzC;AAAEI,UAAAA,IAAI,EAAEhD,UAAU;AAAE4C,UAAAA,SAAS,EAAE;AAAK,SAAC,CACtC;AACDK,QAAAA,MAAM,EAAE;OACT;IACH,CAAC,CACD,OAAOC,KAAK,EACZ;MACE,OAAO;QACLT,MAAM,EAAE,IAAI,CAACC,EAAE;AACfC,QAAAA,UAAU,EAAE,KAAK;AACjBC,QAAAA,SAAS,EAAE,KAAK;AAChBE,QAAAA,QAAQ,EAAE,IAAI;QACdG,MAAM,EAAEC,KAAK,CAACC,OAAO;AACrBC,QAAAA,MAAM,EAAE,CAAEF,KAAK,CAACC,OAAO;OACxB;AACH,IAAA;AACF,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOtC,eAAeA,CAACwC,IAAI,EAAE1C,OAAO,GAAG,EAAE,EACzC;AACE,IAAA,IAAI,CAACA,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,IAAI2B,KAAK,CAACC,OAAO,CAAC5B,OAAO,CAAC,EACrE;AACE,MAAA,MAAM,IAAI2C,SAAS,CAAC,4CAA4C,CAAC;AACnE,IAAA;IACA,KAAK,MAAMC,IAAI,IAAIC,MAAM,CAACC,IAAI,CAAC9C,OAAO,CAAC,EACvC;AACE,MAAA,IAAI,CAACR,YAAY,CAACuD,GAAG,CAACH,IAAI,CAAC,EAC3B;QACE,MAAM,IAAID,SAAS,CAAC,CAAA,+BAAA,EAAkCK,IAAI,CAACC,SAAS,CAACL,IAAI,CAAC,CAAA,CAAA,CAAG,CAAC;AAChF,MAAA;AACF,IAAA;IAEA,MAAMlD,IAAI,GAAGM,OAAO,CAACN,IAAI,IAAIgD,IAAI,CAAChD,IAAI;AACtC,IAAA,IAAI,CAACJ,OAAO,CAACyD,GAAG,CAACrD,IAAI,CAAC,EACtB;MACE,MAAM,IAAIiD,SAAS,CAAC,CAAA,mCAAA,EAAsCK,IAAI,CAACC,SAAS,CAACvD,IAAI,CAAC,CAAA,CAAA,CAAG,CAAC;AACpF,IAAA;AAEA,IAAA,MAAMwD,UAAU,GAAGR,IAAI,CAAC/C,MAAM,IAAIC,wBAAwB;AAC1D,IAAA,MAAMuD,YAAY,GAAGnD,OAAO,CAACL,MAAM,IAAI,EAAE;AACzC,IAAA,IAAI,CAACwD,YAAY,IAAI,OAAOA,YAAY,KAAK,QAAQ,IAAIxB,KAAK,CAACC,OAAO,CAACuB,YAAY,CAAC,EACpF;AACE,MAAA,MAAM,IAAIR,SAAS,CAAC,2CAA2C,CAAC;AAClE,IAAA;IAEA,OAAO;MACLjD,IAAI;AACJC,MAAAA,MAAM,EAAE;AACN,QAAA,GAAGuD,UAAU;QACb,GAAGC;AACL;KACD;AACH,EAAA;AAEA,EAAA,OAAOC,MAAM,GAAGP,MAAM,CAACQ,MAAM,CAAC;AAC5BL,IAAAA,IAAI,EAAE7D,WAAW;AACjBmE,IAAAA,OAAO,EAAElE,cAAc;AACvBmE,IAAAA,GAAG,EAAElE;AACP,GAAC,CAAC;EACF,OAAOmE,kBAAkB,GAAGX,MAAM,CAACQ,MAAM,CAAC,CAAE,CAAC,CAAE,CAAC;EAChD,OAAOtB,EAAE,GAAG,QAAQ;EACpB,OAAO0B,UAAU,GAAGZ,MAAM,CAACQ,MAAM,CAAC,CAAE,SAAS,CAAE,CAAC;EAChD,OAAOK,UAAU,GAAGb,MAAM,CAACQ,MAAM,CAAC,CAAE,MAAM,CAAE,CAAC;AAC7C,EAAA,OAAOM,OAAO,GAAG7D,SAAS,CAAC8D,aAAa,CAAC;AACrCC,IAAAA,IAAI,EAAE;AAAEC,MAAAA,OAAO,EAAE,IAAI;AAAEC,MAAAA,OAAO,EAAE;KAAM;AACtCC,IAAAA,OAAO,EAAE;AAAED,MAAAA,OAAO,EAAE;KAAM;AAC1BE,IAAAA,GAAG,EAAE;AAAEC,MAAAA,IAAI,EAAE,OAAO;AAAEH,MAAAA,OAAO,EAAE;AAAK;AACxC,GAAC,CAAC;AACJ;;;;"}
@@ -1,4 +1,5 @@
1
- import { DEFAULT_VALUES, normalizeValues, readWithValues, readWithValuesAsync, inspectWithValues, isSupportedWithValues, toJsonValue, isPNG, toBytes, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, OUTPUT_IMAGE } from './core/helpers.js';
1
+ import { CjsFormat } from '../../format/CjsFormat.js';
2
+ import { DEFAULT_VALUES, normalizeValues, readWithValues, readWithValuesAsync, inspectWithValues, toJsonValue, probeSupportWithValues, isPNG, toBytes, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, OUTPUT_IMAGE } from './core/helpers.js';
2
3
 
3
4
  const FORMAT_NAME = "CjsPngFormat";
4
5
 
@@ -7,7 +8,7 @@ const FORMAT_NAME = "CjsPngFormat";
7
8
  * and emits raw bytes or debug JSON, with RGBA decoding available on the
8
9
  * asynchronous read path.
9
10
  */
10
- class CjsPngFormat {
11
+ class CjsPngFormat extends CjsFormat {
11
12
  #values = DEFAULT_VALUES;
12
13
 
13
14
  /**
@@ -16,6 +17,7 @@ class CjsPngFormat {
16
17
  * @param {object} [options] Default read/inspect options.
17
18
  */
18
19
  constructor(options = {}) {
20
+ super();
19
21
  this.SetValues(options);
20
22
  }
21
23
 
@@ -79,17 +81,6 @@ class CjsPngFormat {
79
81
  return inspectWithValues(input, this.GetValues(options), "png");
80
82
  }
81
83
 
82
- /**
83
- * Report whether PNG input and requested output variants are supported.
84
- *
85
- * @param {Uint8Array|ArrayBuffer|DataView} input PNG bytes.
86
- * @param {object} [options] Per-call values.
87
- * @returns {object} Support/probe report.
88
- */
89
- IsSupported(input, options = {}) {
90
- return isSupportedWithValues(input, this.GetValues(options), "png");
91
- }
92
-
93
84
  /**
94
85
  * Convert format output into JSON-compatible debug data.
95
86
  *
@@ -149,8 +140,8 @@ class CjsPngFormat {
149
140
  * @param {object} [options] Probe options.
150
141
  * @returns {object} Support/probe report.
151
142
  */
152
- static isSupported(input, options = {}) {
153
- return isSupportedWithValues(input, normalizeValues(DEFAULT_VALUES, {
143
+ static probeSupport(input, options = {}) {
144
+ return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, {
154
145
  inputType: "png",
155
146
  ...options
156
147
  }, FORMAT_NAME), "png");
@@ -190,11 +181,29 @@ class CjsPngFormat {
190
181
  JSON: OUTPUT_JSON
191
182
  });
192
183
  static OUTPUT_PNG_JSON = "pngJson";
193
- static type = Object.freeze(["image"]);
184
+ static id = "png";
194
185
  static mediaTypes = Object.freeze(["image"]);
195
- static inputTypes = Object.freeze(["png"]);
196
- static outputTypes = Object.freeze([OUTPUT_IMAGE, OUTPUT_RGBA]);
197
- static debugOutputTypes = Object.freeze(["pngJson", OUTPUT_RAW]);
186
+ static outputs = CjsFormat.defineOutputs({
187
+ image: {
188
+ readMode: "async",
189
+ decoded: true,
190
+ probes: ["image", "rgba"]
191
+ },
192
+ rgba: {
193
+ readMode: "async",
194
+ decoded: true
195
+ },
196
+ pngJson: {
197
+ role: "debug",
198
+ probes: ["pngJson", "raw"]
199
+ },
200
+ raw: {
201
+ role: "debug",
202
+ default: true,
203
+ passthrough: true
204
+ }
205
+ });
206
+ static extensions = Object.freeze([".png"]);
198
207
  }
199
208
 
200
209
  export { CjsPngFormat };