@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (929) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/utils/bytes.js +22 -4
  80. package/dist/global/utils/bytes.js.map +1 -1
  81. package/dist/global/utils/checksum.js +80 -0
  82. package/dist/global/utils/checksum.js.map +1 -0
  83. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  84. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  85. package/dist/global/utils/errors/CjsError.js +21 -52
  86. package/dist/global/utils/errors/CjsError.js.map +1 -1
  87. package/dist/global/utils/errors/abort.js +1 -1
  88. package/dist/global/utils/errors/abort.js.map +1 -1
  89. package/dist/global/utils/errors/index.js +2 -1
  90. package/dist/global/utils/errors/index.js.map +1 -1
  91. package/dist/global/utils/index.js +4 -2
  92. package/dist/global/utils/index.js.map +1 -1
  93. package/dist/index.js +95 -35
  94. package/dist/index.js.map +1 -1
  95. package/dist/input/Tr2MainWindow.js +7 -9
  96. package/dist/input/Tr2MainWindow.js.map +1 -1
  97. package/dist/resource/CjsResMan.js +33 -39
  98. package/dist/resource/CjsResMan.js.map +1 -1
  99. package/dist/resource/CjsResource.js +19 -5
  100. package/dist/resource/CjsResource.js.map +1 -1
  101. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  102. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  103. package/dist/resource/audio/CjsAudioRes.js +4 -5
  104. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  105. package/dist/resource/format/CjsBitReader.js +263 -0
  106. package/dist/resource/format/CjsBitReader.js.map +1 -0
  107. package/dist/resource/format/CjsByteReader.js +130 -125
  108. package/dist/resource/format/CjsByteReader.js.map +1 -1
  109. package/dist/resource/format/CjsFormat.js +11 -4
  110. package/dist/resource/format/CjsFormat.js.map +1 -1
  111. package/dist/resource/format/CjsFormatError.js +37 -1
  112. package/dist/resource/format/CjsFormatError.js.map +1 -1
  113. package/dist/resource/format/CjsResourceProbe.js +41 -37
  114. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  115. package/dist/resource/format/carbonRecordGuard.js +33 -0
  116. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  117. package/dist/resource/format/imageSignatures.js +202 -0
  118. package/dist/resource/format/imageSignatures.js.map +1 -0
  119. package/dist/resource/format/index.js +2 -1
  120. package/dist/resource/format/index.js.map +1 -1
  121. package/dist/resource/format/jsonPolicies.js +180 -0
  122. package/dist/resource/format/jsonPolicies.js.map +1 -0
  123. package/dist/resource/formats/black/core/helpers.js +18 -29
  124. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  125. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  126. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  127. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  128. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  129. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  130. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  132. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  133. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  134. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  136. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  138. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  140. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  142. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  144. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  145. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  146. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  147. package/dist/resource/formats/cmf/core/binary.js +54 -60
  148. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  149. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  150. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  151. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  152. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  153. package/dist/resource/formats/dds/core/bc7.js +28 -24
  154. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  155. package/dist/resource/formats/dds/core/helpers.js +7 -133
  156. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  157. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  158. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  159. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  160. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  162. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  163. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  164. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  166. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  167. package/dist/resource/formats/flac/core/helpers.js +1 -62
  168. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  170. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  171. package/dist/resource/formats/gif/core/helpers.js +1 -63
  172. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  174. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  175. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  176. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  178. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  179. package/dist/resource/formats/gr2/core/container.js +1 -10
  180. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  181. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  182. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/shared.js +193 -189
  184. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  185. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  186. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  187. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  188. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  189. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  190. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  191. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  192. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  194. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  195. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  196. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  198. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  199. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  200. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  202. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  203. package/dist/resource/formats/obj/core/helpers.js +93 -115
  204. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  206. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  207. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  208. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  210. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  211. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  212. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  213. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  214. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  215. package/dist/resource/formats/png/core/helpers.js +13 -152
  216. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  217. package/dist/resource/formats/png/core/writer.js +3 -27
  218. package/dist/resource/formats/png/core/writer.js.map +1 -1
  219. package/dist/resource/formats/red/core/helpers.js +19 -29
  220. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  222. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  223. package/dist/resource/formats/stl/core/helpers.js +44 -66
  224. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  226. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  227. package/dist/resource/formats/tga/core/helpers.js +7 -153
  228. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  230. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  231. package/dist/resource/formats/vta/core/helpers.js +1 -17
  232. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  234. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  235. package/dist/resource/formats/wav/core/helpers.js +1 -15
  236. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  238. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  239. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +52 -4
  240. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  241. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  242. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  243. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  244. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  245. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  246. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  247. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  248. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  249. package/dist/resource/formats/webm/core/helpers.js +1 -73
  250. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  251. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  252. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  253. package/dist/resource/formats/webp/core/helpers.js +1 -62
  254. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  255. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  256. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  257. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  258. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  259. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  260. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  261. package/dist/resource/formats/wem/core/helpers.js +1 -15
  262. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  263. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  264. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  265. package/dist/resource/geometry/MeshDecalData.js +23 -25
  266. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  267. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  268. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  269. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  270. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  271. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  272. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  273. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  274. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  276. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  278. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  280. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  281. package/dist/resource/geometry/TriJointBinding.js +16 -24
  282. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  283. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  284. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  285. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  286. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  287. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  288. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  289. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  290. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  291. package/dist/resource/index.js +1 -1
  292. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  293. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  294. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  295. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  296. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  297. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  299. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  301. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  303. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  305. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  307. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  309. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  310. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  311. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  312. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  313. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  314. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  315. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  316. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  317. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  318. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  319. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  320. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  321. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  322. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  323. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  324. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  325. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  327. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  329. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  333. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  335. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  336. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  337. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  338. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  339. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  340. package/dist/resource/worker/protocol.js +18 -1
  341. package/dist/resource/worker/protocol.js.map +1 -1
  342. package/dist/sof/EveSOF.js +2 -222
  343. package/dist/sof/EveSOF.js.map +1 -1
  344. package/dist/sof/SofDocumentBuilder.js +205 -0
  345. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  346. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  347. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  348. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  349. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  350. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  351. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  352. package/dist/sof/faction/index.js +3 -1
  353. package/dist/sof/faction/index.js.map +1 -1
  354. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  355. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  356. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  357. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  358. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  359. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  360. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  361. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  362. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  363. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  364. package/dist/sof/generic/index.js +5 -1
  365. package/dist/sof/generic/index.js.map +1 -1
  366. package/dist/sof/index.js +23 -7
  367. package/dist/sof/index.js.map +1 -1
  368. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  369. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  370. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  371. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  372. package/dist/sof/pattern/index.js +2 -1
  373. package/dist/sof/pattern/index.js.map +1 -1
  374. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  375. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  376. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  377. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  378. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  379. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  380. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  381. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  382. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  383. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  384. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  385. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  386. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  387. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  388. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  389. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  390. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  391. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  392. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  393. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  395. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  398. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  399. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  400. package/dist/sof/shared/index.js +13 -4
  401. package/dist/sof/shared/index.js.map +1 -1
  402. package/dist/sof/sofDocumentValues.js +33 -0
  403. package/dist/sof/sofDocumentValues.js.map +1 -0
  404. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  405. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  406. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  407. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  408. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  409. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  410. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  411. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  412. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  413. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  414. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  415. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  416. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  417. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  418. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  419. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  420. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  421. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  424. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  425. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  426. package/dist/trinity/controllers/index.js +5 -2
  427. package/dist/trinity/controllers/index.js.map +1 -1
  428. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  429. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  430. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  431. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  432. package/dist/trinity/core/ITr2Updateable.js +2 -1
  433. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  434. package/dist/trinity/core/Tr2Blitter.js +6 -3
  435. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  436. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  437. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  438. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  439. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  440. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  441. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  442. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  443. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  444. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  445. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  446. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  447. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  448. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  449. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  450. package/dist/trinity/core/Tr2Renderer.js +146 -1
  451. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  452. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  453. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  454. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  455. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  456. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  457. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  458. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  459. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  460. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  461. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  462. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  463. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  464. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  465. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  466. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  467. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  468. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  469. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  470. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  471. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  472. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  473. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  474. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  475. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  476. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  477. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  478. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  479. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  480. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  481. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  482. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  483. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  484. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  485. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  486. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  487. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  488. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  489. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  490. package/dist/trinity/core/index.js +42 -15
  491. package/dist/trinity/core/index.js.map +1 -1
  492. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  493. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  494. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  495. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  496. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  497. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  498. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  499. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  500. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  501. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  502. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  503. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  504. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  505. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  506. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  507. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  508. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  509. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  510. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  511. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  512. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  513. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  514. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  515. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  516. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  517. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  519. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  520. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  521. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  522. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  547. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  549. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  550. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  551. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  552. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  553. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  573. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  575. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  577. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  578. package/dist/trinity/core/variable/TriVariable.js +83 -83
  579. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  580. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  581. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  582. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  583. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  584. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  585. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  586. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  587. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  588. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  589. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  590. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  591. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  592. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  593. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  594. package/dist/trinity/eve/IEveTransform.js +2 -1
  595. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  596. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  597. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  598. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  599. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  600. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  601. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  602. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  603. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  604. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  605. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  606. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  607. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  608. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  609. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  610. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  611. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  612. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  613. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  614. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  615. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  616. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  617. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  619. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  621. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  622. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  623. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  624. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  625. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  626. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  627. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  628. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  629. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  631. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  632. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  633. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  634. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  635. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  636. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  639. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  640. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  641. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  643. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  645. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  647. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  648. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  649. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  650. package/dist/trinity/eve/index.js +10 -4
  651. package/dist/trinity/eve/index.js.map +1 -1
  652. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  653. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  654. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  655. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  656. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  657. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  658. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  659. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  660. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  661. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  662. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  663. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  664. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  665. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  666. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  667. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  668. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  669. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  670. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  671. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  672. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  673. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  674. package/dist/trinity/generated/index.js +0 -1
  675. package/dist/trinity/generated/index.js.map +1 -1
  676. package/dist/trinity/generated/trinityCore/index.js +0 -1
  677. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  678. package/dist/trinity/index.js +59 -23
  679. package/dist/trinity/index.js.map +1 -1
  680. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  681. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  682. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  683. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  684. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  685. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  686. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  687. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  688. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  689. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  690. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  691. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  692. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  693. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  694. package/dist/trinity/particle/index.js +2 -1
  695. package/dist/trinity/particle/index.js.map +1 -1
  696. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  697. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  698. package/dist/trinity/shader/Tr2Effect.js +131 -58
  699. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  700. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  701. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  702. package/dist/trinity/shader/Tr2Material.js +21 -4
  703. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  704. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  705. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  706. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  707. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  708. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  709. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  710. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  711. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  712. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  713. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  714. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  715. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  716. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  717. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  718. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  719. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  720. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  721. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  724. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  728. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  729. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  730. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  731. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  732. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  733. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  734. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  735. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  736. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  737. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  740. package/dist/trinityal/index.js +22 -9
  741. package/dist/trinityal/index.js.map +1 -1
  742. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  743. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  744. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  745. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  746. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  747. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  749. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  751. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  752. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  753. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  754. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  755. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  756. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  757. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  758. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  759. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  761. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  762. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  763. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  764. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  765. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  766. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  767. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  769. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  771. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  772. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  773. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  774. package/dist/trinityal/stub/index.js +8 -4
  775. package/dist/trinityal/stub/index.js.map +1 -1
  776. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  777. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  778. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  779. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  780. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  781. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  782. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  783. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  785. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  787. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  789. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  791. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  793. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  795. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  796. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  797. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  799. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  800. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  801. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  802. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  803. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  804. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  807. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  813. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  815. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  817. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  821. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  822. package/dist/trinityal/webgpu/internal.js +12 -11
  823. package/dist/trinityal/webgpu/internal.js.map +1 -1
  824. package/docs/audio/reference/classes/trinity.md +44 -34
  825. package/docs/character/architecture.md +276 -0
  826. package/docs/character/reference/character-appearance-plans.md +30 -66
  827. package/docs/character/reference/prepared-libraries.md +14 -30
  828. package/docs/global/reference/api.md +2 -1
  829. package/docs/global/reference/classes/README.md +53 -71
  830. package/docs/global/reference/classes/dropped.md +16 -0
  831. package/docs/resource/README.md +19 -15
  832. package/docs/resource/architecture.md +9 -2
  833. package/docs/resource/concepts/format-capabilities.md +124 -80
  834. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  835. package/docs/resource/formats/README.md +230 -224
  836. package/docs/resource/formats/bitknit2.md +221 -0
  837. package/docs/resource/formats/carbon-effect-container.md +184 -269
  838. package/docs/resource/formats/gr2.md +6 -1
  839. package/docs/resource/formats/schemabound.md +28 -48
  840. package/docs/resource/formats/static.md +70 -97
  841. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  842. package/docs/resource/formats/webgl/decl-io.md +165 -256
  843. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  844. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  845. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  846. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  847. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  848. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +104 -260
  849. package/docs/resource/reference/classes/core.md +256 -236
  850. package/docs/resource/reference/classes/formats.md +1668 -1672
  851. package/docs/resource/reference/workers.md +4 -2
  852. package/docs/sof/reference/classes/core.md +1 -1
  853. package/docs/sof/reference/classes/faction.md +2 -2
  854. package/docs/sof/reference/classes/generic.md +4 -4
  855. package/docs/sof/reference/classes/pattern.md +1 -1
  856. package/docs/sof/reference/classes/shared.md +10 -10
  857. package/docs/trinity/architecture.md +55 -44
  858. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  859. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  860. package/docs/trinity/reference/classes/dropped.md +0 -189
  861. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  862. package/docs/trinity/reference/classes/generated.md +0 -10
  863. package/docs/trinity/reference/classes/particle.md +2 -2
  864. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  865. package/docs/trinity/reference/implementation-status.md +50 -75
  866. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  867. package/docs/trinityal/reference/classes/README.md +77 -27
  868. package/docs/trinityal/reference/classes/dropped.md +82 -0
  869. package/docs/trinityal/webgpu/README.md +3 -1
  870. package/docs/trinityal/webgpu/architecture.md +121 -228
  871. package/docs/trinityal/webgpu/reference/api.md +5 -5
  872. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  873. package/format-notices/gr2/NOTICE +18 -12
  874. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  875. package/package.json +4 -1
  876. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  877. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  878. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  879. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  880. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  881. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  882. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  883. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  884. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  885. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  886. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  887. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  888. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  889. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  890. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  891. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  892. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  893. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  894. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  895. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  896. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  897. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  898. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  899. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  900. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  901. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  902. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  903. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  904. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  905. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  906. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  907. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  908. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  909. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  910. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  911. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  912. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  913. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  914. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  915. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  916. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  917. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  918. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  919. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  920. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  921. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  922. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  923. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CjsControllerExpressionProgram.js","sources":["../../../../../src/trinity/controllers/expression/CjsControllerExpressionProgram.js"],"sourcesContent":["// Source: parser/include/ccpparser.h (CcpParser::Parse, Program, Observer)\r\n// Behavioral reference: ccpwgl/src/unsupported/state/expression/Tr2ExpressionProgram.js\r\n//\r\n// This IS a port of Carbon's expression program, and the contract is Carbon's:\r\n// parse an expression against a set of externals, evaluate it, and report the\r\n// variables and functions it referenced. Carbon reports those through\r\n// Observer::OnVariable/OnFunction; we expose the same names for dirty tracking.\r\n//\r\n// THE REPRESENTATION DIFFERS, AND THAT IS THE BROWSER CONSTRAINT. Carbon\r\n// compiles to bytecode - Program holds a std::vector<uint8_t> and evaluates it\r\n// with a caller-supplied temp arena (ccpparser.h:26-40). The JavaScript\r\n// shortcut equivalent to that is new Function / eval, which is unavailable\r\n// under a content security policy and is a code-injection surface for\r\n// expressions arriving in asset data. So this compiles to an AST and walks it.\r\n// The file is long because the bytecode VM is absent, not because it is a\r\n// second design.\r\n//\r\n// An earlier version of this comment said Carbon has Tr2ControllerExpression\r\n// and no Tr2ExpressionProgram runtime class. That is true of trinity/ and\r\n// false of Carbon: CcpParser lives in the parser repo. It was read as evidence\r\n// of invention during the 2026-09-04 fidelity audit. Carbon is 32 repositories.\r\n\r\nconst BLOCKED_IDENTIFIERS = new Set([\"__proto__\", \"prototype\", \"constructor\", \"Function\", \"eval\", \"process\", \"global\", \"globalThis\", \"window\", \"document\", \"this\"]);\r\nconst CONSTANTS = {\r\n true: 1,\r\n false: 0,\r\n pi: Math.PI,\r\n pi2: Math.PI * 2,\r\n _pi: Math.PI,\r\n _e: Math.E\r\n};\r\nconst CONTROLLER_EXPRESSION_TERMS = [\r\n [\"Controller\", \"StateTime\", \"time in seconds the current state is running\"],\r\n [\"Controller\", \"AnimationTime\", \"geometry animation duration for the given name\"],\r\n [\"Controller\", \"CurveSetTime\", \"duration in seconds of the named curve set\"],\r\n [\"Controller\", \"GetExternalControllerVariable\", \"external controller variable lookup\"],\r\n [\"Controller\", \"IsAnimationPlaying\", \"returns 1 if the named animation layer is playing\"],\r\n [\"Controller\", \"ShipSpeed\", \"owning ship speed\"],\r\n [\"Controller\", \"ShipMaxSpeed\", \"owning ship maximum speed\"],\r\n [\"Controller\", \"ShipBoosterIntensity\", \"owning ship booster intensity\"],\r\n [\"Controller\", \"Random\", \"random integer from min to max - 1\"],\r\n [\"Controller\", \"KillCount\", \"owning ship kill count\"],\r\n [\"Controller\", \"BoundingSphereRadius\", \"owning object's bounding sphere radius\"],\r\n [\"GraphicSettings\", \"ShaderQuality\", \"user shader quality setting\"],\r\n [\"DateTime\", \"IsWeekend\", \"returns 1 on Saturday or Sunday\"],\r\n [\"DateTime\", \"ServerYear\", \"current server year\"],\r\n [\"DateTime\", \"ServerMonth\", \"current server month\"],\r\n [\"DateTime\", \"ServerDay\", \"current server day of month\"],\r\n [\"DateTime\", \"ServerDayOfWeek\", \"current server day of week\"],\r\n [\"DateTime\", \"ServerHour\", \"current server hour\"],\r\n [\"DateTime\", \"ServerMinute\", \"current server minute\"],\r\n [\"DateTime\", \"ServerSecond\", \"current server second\"],\r\n [\"DateTime\", \"ServerTimePhase\", \"seconds phase in a server-time period\"],\r\n [\"DateTime\", \"ServerTimeGreaterThan\", \"server-time comparison\"],\r\n [\"DateTime\", \"ServerTimeLessThanOrEqual\", \"server-time comparison\"],\r\n [\"DateTime\", \"ServerTimeEqual\", \"server-time equality comparison\"],\r\n [\"DateTime\", \"DaysSinceServerTime\", \"days since the supplied server date\"]\r\n].map(([group, name, description]) => ({ group, name, description, kind: \"function\" }));\r\nconst CURVE_EXPRESSION_TERMS = [\r\n [\"Random\", \"fractal\", \"function\", \"x, alpha, beta, n\", \"fractal noise\"],\r\n [\"Random\", \"noise\", \"function\", \"x\", \"simple one-octave noise\"],\r\n [\"Random\", \"randomConstant\", \"function\", \"a, b\", \"random per-curve constant in range [a, b)\"],\r\n [\"Random\", \"randconst\", \"function\", \"a, b\", \"random per-curve constant in range [a, b)\"],\r\n [\"Random\", \"random\", \"function\", \"a, b\", \"random value in range [a, b)\"],\r\n [\"Random\", \"randhash\", \"function\", \"a, b, x\", \"random value in range [a, b) based on value x\"],\r\n [\"Inputs\", \"input\", \"function\", \"n\", \"n-th input curve value at current time\"],\r\n [\"Inputs\", \"inputAt\", \"function\", \"n, t\", \"input curve value at time t\"],\r\n [\"Math\", \"clamp\", \"function\", \"x, min, max\", \"value x clamped to [min, max] range\"],\r\n [\"Inputs\", \"input1\", \"variable\", null, \"input1 attribute\"],\r\n [\"Inputs\", \"input2\", \"variable\", null, \"input2 attribute\"],\r\n [\"Inputs\", \"input3\", \"variable\", null, \"input3 attribute\"],\r\n [\"Inputs\", \"input4\", \"variable\", null, \"input4 attribute\"],\r\n [\"Inputs\", \"time\", \"variable\", null, \"current time\"],\r\n [\"Math\", \"pi\", \"variable\", null, \"Pi value\"],\r\n [\"Math\", \"pi2\", \"variable\", null, \"Pi x 2 value\"]\r\n].map(([group, name, kind, parameters, description]) => ({\r\n group,\r\n name,\r\n kind,\r\n ...(parameters ? { parameters } : {}),\r\n description\r\n}));\r\n\r\n/**\r\n * Compiles a Carbon controller or curve expression into an AST and evaluates it\r\n * without dynamic JavaScript eval, exposing the referenced variable and function\r\n * names for dirty tracking.\r\n */\r\nexport class CjsControllerExpressionProgram\r\n{\r\n source = \"\";\r\n\r\n options = {};\r\n\r\n ast = null;\r\n\r\n error = \"\";\r\n\r\n variableNames = new Set();\r\n\r\n functionNames = new Set();\r\n\r\n #error = null;\r\n\r\n /**\r\n * Creates a program and immediately compiles the supplied source; compilation\r\n * failures are captured in `error` rather than thrown.\r\n */\r\n constructor(source = \"\", options = {})\r\n {\r\n this.Compile(source, options);\r\n }\r\n\r\n /**\r\n * Compiles a constrained expression into an AST.\r\n */\r\n Compile(source = this.source, options = this.options)\r\n {\r\n this.source = source || \"\";\r\n this.options = options || {};\r\n this.error = \"\";\r\n this.#error = null;\r\n this.variableNames.clear();\r\n this.functionNames.clear();\r\n if (!this.source)\r\n {\r\n this.ast = {\r\n type: \"literal\",\r\n value: this.options.emptyValue ?? 1\r\n };\r\n return this;\r\n }\r\n try\r\n {\r\n const parser = new CjsControllerExpressionParser(this.source, this.options);\r\n this.ast = parser.Parse();\r\n this.variableNames = parser.variableNames;\r\n this.functionNames = parser.functionNames;\r\n }\r\n catch (err)\r\n {\r\n this.ast = null;\r\n this.#error = err instanceof Error ? err : new Error(String(err));\r\n this.error = this.#error.message;\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Evaluates the compiled expression without using dynamic JavaScript eval.\r\n */\r\n Evaluate(context = {})\r\n {\r\n if (!this.ast)\r\n {\r\n if (this.#error)\r\n {\r\n throw this.#error;\r\n }\r\n return 0;\r\n }\r\n return EvaluateNode(this.ast, context, this);\r\n }\r\n\r\n /**\r\n * Evaluates the compiled expression as a Carbon-style numeric boolean.\r\n */\r\n EvaluateBoolean(context = {})\r\n {\r\n return ToBoolean(this.Evaluate(context));\r\n }\r\n\r\n /**\r\n * Checks whether the expression compiled successfully.\r\n */\r\n IsValid()\r\n {\r\n return !!this.ast && !this.error;\r\n }\r\n\r\n /**\r\n * Gets variable names referenced by the expression.\r\n */\r\n GetVariableNames()\r\n {\r\n return Array.from(this.variableNames);\r\n }\r\n\r\n /**\r\n * Gets function names referenced by the expression.\r\n */\r\n GetFunctionNames()\r\n {\r\n return Array.from(this.functionNames);\r\n }\r\n\r\n /**\r\n * Checks whether any referenced function can change without variable dirties.\r\n */\r\n HasNonPureFunctions()\r\n {\r\n for (const name of this.functionNames)\r\n {\r\n if (!IsFunctionPure(name, this.options))\r\n {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Creates the mutable per-action cache record that compileCached and\r\n * makeActionContext operate on, holding the last compiled program, its source,\r\n * and the action's start and last evaluation times.\r\n */\r\n static createRuntimeState()\r\n {\r\n return {\r\n controller: null,\r\n program: null,\r\n source: \"\",\r\n startTime: 0,\r\n lastTime: 0\r\n };\r\n }\r\n\r\n /**\r\n * Recompiles into the supplied runtime state only when the expression text has\r\n * changed, so per-frame evaluation does not re-parse.\r\n */\r\n static compileCached(state, expression, emptyValue = 0, functions)\r\n {\r\n if (!state.program || state.source !== expression)\r\n {\r\n state.program = this.Compile(expression, { emptyValue, functions });\r\n state.source = expression;\r\n }\r\n return state.program;\r\n }\r\n\r\n /**\r\n * Builds the evaluation context for an action, deriving `stateTime` from the\r\n * runtime state's start and last times and delegating to the controller's own\r\n * GetExpressionContext when it has one.\r\n */\r\n static makeActionContext(controller, owner, state, extra = {})\r\n {\r\n const stateTime = state.lastTime - state.startTime;\r\n if (controller?.GetExpressionContext)\r\n {\r\n return controller.GetExpressionContext(owner, null, { ...extra, stateTime });\r\n }\r\n return {\r\n ...extra,\r\n controller: controller ?? undefined,\r\n owner,\r\n stateTime,\r\n time: state.lastTime\r\n };\r\n }\r\n\r\n /**\r\n * Samples an arbitrary curve-like object at a time, trying GetValueAt,\r\n * GetValue and Update in that order before falling back to a currentValue\r\n * property or a plain numeric coercion.\r\n */\r\n static getCurveValue(curve, time)\r\n {\r\n if (HasFunction(curve, \"GetValueAt\"))\r\n {\r\n return ToNumber(curve.GetValueAt(time));\r\n }\r\n if (HasFunction(curve, \"GetValue\"))\r\n {\r\n return ToNumber(curve.GetValue(time));\r\n }\r\n if (HasFunction(curve, \"Update\"))\r\n {\r\n return ToNumber(curve.Update(time));\r\n }\r\n return HasProperty(curve, \"currentValue\") ? ToNumber(curve.currentValue) : ToNumber(curve);\r\n }\r\n\r\n /**\r\n * Appends the controller, graphics-setting and server-date expression terms to\r\n * an editor term list, skipping group/name pairs already present and adding\r\n * the `Curve` term only when the caller declares a curve.\r\n */\r\n static addControllerTermInfo(out, options = {})\r\n {\r\n for (const term of CONTROLLER_EXPRESSION_TERMS)\r\n {\r\n if (!out.some(item => item.group === term.group && item.name === term.name))\r\n {\r\n out.push(term);\r\n }\r\n }\r\n if (options.curve && !out.some(item => item.group === \"Controller\" && item.name === \"Curve\"))\r\n {\r\n out.push({\r\n group: \"Controller\",\r\n name: \"Curve\",\r\n description: \"action curve value at time x\",\r\n kind: \"function\"\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Returns a fresh copy of the curve-expression term list for editor\r\n * autocompletion, optionally including the `radians` function.\r\n */\r\n static getCurveTermInfo(options = {})\r\n {\r\n const terms = CURVE_EXPRESSION_TERMS.map(term => ({ ...term }));\r\n if (options.includeRadians)\r\n {\r\n terms.splice(9, 0, {\r\n group: \"Math\",\r\n name: \"radians\",\r\n kind: \"function\",\r\n parameters: \"x\",\r\n description: \"convert x degrees to radians\"\r\n });\r\n }\r\n return terms;\r\n }\r\n\r\n /**\r\n * Static factory that compiles expression source into a ready program, the\r\n * form callers use instead of constructing and compiling in two steps.\r\n */\r\n static Compile(source, options = {})\r\n {\r\n return new CjsControllerExpressionProgram(source, options);\r\n }\r\n}\r\n\r\n/**\r\n * Recursive-descent parser turning expression source into the AST evaluated by\r\n * CjsControllerExpressionProgram, collecting referenced variable and function\r\n * names and rejecting identifiers that could reach the JavaScript prototype\r\n * chain.\r\n */\r\nclass CjsControllerExpressionParser\r\n{\r\n source;\r\n options;\r\n tokens;\r\n index = 0;\r\n\r\n variableNames = new Set();\r\n\r\n functionNames = new Set();\r\n\r\n /**\r\n * Tokenizes the source up front; a malformed character or unterminated string\r\n * throws a CjsControllerExpressionCompileError here rather than during Parse.\r\n */\r\n constructor(source, options)\r\n {\r\n this.source = source;\r\n this.options = options || {};\r\n this.tokens = Tokenize(source);\r\n }\r\n\r\n /**\r\n * Parses the whole source as a single expression and requires that all input\r\n * is consumed.\r\n */\r\n Parse()\r\n {\r\n const expression = this.ParseConditional();\r\n this.Expect(\"eof\");\r\n return expression;\r\n }\r\n\r\n /**\r\n * Parses the ternary `cond ? a : b` level, which is right-associative and the\r\n * lowest-precedence form.\r\n */\r\n ParseConditional()\r\n {\r\n const condition = this.ParseLogicalOr();\r\n if (this.Match(\"operator\", \"?\"))\r\n {\r\n const consequent = this.ParseConditional();\r\n this.Expect(\"operator\", \":\");\r\n const alternate = this.ParseConditional();\r\n return {\r\n type: \"conditional\",\r\n condition,\r\n consequent,\r\n alternate\r\n };\r\n }\r\n return condition;\r\n }\r\n\r\n /** Parses left-associative `||` chains. */\r\n ParseLogicalOr()\r\n {\r\n let node = this.ParseLogicalAnd();\r\n while (this.Match(\"operator\", \"||\"))\r\n {\r\n node = {\r\n type: \"binary\",\r\n operator: \"||\",\r\n left: node,\r\n right: this.ParseLogicalAnd()\r\n };\r\n }\r\n return node;\r\n }\r\n\r\n /** Parses left-associative `&&` chains, which bind tighter than `||`. */\r\n ParseLogicalAnd()\r\n {\r\n let node = this.ParseEquality();\r\n while (this.Match(\"operator\", \"&&\"))\r\n {\r\n node = {\r\n type: \"binary\",\r\n operator: \"&&\",\r\n left: node,\r\n right: this.ParseEquality()\r\n };\r\n }\r\n return node;\r\n }\r\n\r\n /** Parses left-associative `==` and `!=` chains. */\r\n ParseEquality()\r\n {\r\n let node = this.ParseComparison();\r\n while (true)\r\n {\r\n if (this.Match(\"operator\", \"==\"))\r\n {\r\n node = {\r\n type: \"binary\",\r\n operator: \"==\",\r\n left: node,\r\n right: this.ParseComparison()\r\n };\r\n }\r\n else if (this.Match(\"operator\", \"!=\"))\r\n {\r\n node = {\r\n type: \"binary\",\r\n operator: \"!=\",\r\n left: node,\r\n right: this.ParseComparison()\r\n };\r\n }\r\n else\r\n {\r\n return node;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Parses left-associative `<`, `<=`, `>` and `>=` chains, which bind tighter\r\n * than equality.\r\n */\r\n ParseComparison()\r\n {\r\n let node = this.ParseTerm();\r\n while (true)\r\n {\r\n if (this.Match(\"operator\", \"<\"))\r\n {\r\n node = {\r\n type: \"binary\",\r\n operator: \"<\",\r\n left: node,\r\n right: this.ParseTerm()\r\n };\r\n }\r\n else if (this.Match(\"operator\", \"<=\"))\r\n {\r\n node = {\r\n type: \"binary\",\r\n operator: \"<=\",\r\n left: node,\r\n right: this.ParseTerm()\r\n };\r\n }\r\n else if (this.Match(\"operator\", \">\"))\r\n {\r\n node = {\r\n type: \"binary\",\r\n operator: \">\",\r\n left: node,\r\n right: this.ParseTerm()\r\n };\r\n }\r\n else if (this.Match(\"operator\", \">=\"))\r\n {\r\n node = {\r\n type: \"binary\",\r\n operator: \">=\",\r\n left: node,\r\n right: this.ParseTerm()\r\n };\r\n }\r\n else\r\n {\r\n return node;\r\n }\r\n }\r\n }\r\n\r\n /** Parses left-associative `+` and `-` chains. */\r\n ParseTerm()\r\n {\r\n let node = this.ParseFactor();\r\n while (true)\r\n {\r\n if (this.Match(\"operator\", \"+\"))\r\n {\r\n node = {\r\n type: \"binary\",\r\n operator: \"+\",\r\n left: node,\r\n right: this.ParseFactor()\r\n };\r\n }\r\n else if (this.Match(\"operator\", \"-\"))\r\n {\r\n node = {\r\n type: \"binary\",\r\n operator: \"-\",\r\n left: node,\r\n right: this.ParseFactor()\r\n };\r\n }\r\n else\r\n {\r\n return node;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Parses left-associative `*`, `/` and `%` chains, which bind tighter than\r\n * addition.\r\n */\r\n ParseFactor()\r\n {\r\n let node = this.ParseExponent();\r\n while (true)\r\n {\r\n if (this.Match(\"operator\", \"*\"))\r\n {\r\n node = {\r\n type: \"binary\",\r\n operator: \"*\",\r\n left: node,\r\n right: this.ParseExponent()\r\n };\r\n }\r\n else if (this.Match(\"operator\", \"/\"))\r\n {\r\n node = {\r\n type: \"binary\",\r\n operator: \"/\",\r\n left: node,\r\n right: this.ParseExponent()\r\n };\r\n }\r\n else if (this.Match(\"operator\", \"%\"))\r\n {\r\n node = {\r\n type: \"binary\",\r\n operator: \"%\",\r\n left: node,\r\n right: this.ParseExponent()\r\n };\r\n }\r\n else\r\n {\r\n return node;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Parses `^` power chains; unlike most languages this level is\r\n * left-associative here.\r\n */\r\n ParseExponent()\r\n {\r\n let node = this.ParseUnary();\r\n while (this.Match(\"operator\", \"^\"))\r\n {\r\n node = {\r\n type: \"binary\",\r\n operator: \"^\",\r\n left: node,\r\n right: this.ParseUnary()\r\n };\r\n }\r\n return node;\r\n }\r\n\r\n /**\r\n * Parses right-nested prefix `!`, `-` and `+` operators, falling through to a\r\n * primary when none is present.\r\n */\r\n ParseUnary()\r\n {\r\n if (this.Match(\"operator\", \"!\"))\r\n {\r\n return {\r\n type: \"unary\",\r\n operator: \"!\",\r\n argument: this.ParseUnary()\r\n };\r\n }\r\n if (this.Match(\"operator\", \"-\"))\r\n {\r\n return {\r\n type: \"unary\",\r\n operator: \"-\",\r\n argument: this.ParseUnary()\r\n };\r\n }\r\n if (this.Match(\"operator\", \"+\"))\r\n {\r\n return {\r\n type: \"unary\",\r\n operator: \"+\",\r\n argument: this.ParseUnary()\r\n };\r\n }\r\n return this.ParsePrimary();\r\n }\r\n\r\n /**\r\n * Parses a number, string, parenthesized expression, function call, built-in\r\n * constant, or a variable identifier, recording bare identifiers in\r\n * `variableNames`.\r\n */\r\n ParsePrimary()\r\n {\r\n const token = this.Peek();\r\n if (this.Match(\"number\"))\r\n {\r\n return {\r\n type: \"literal\",\r\n value: token.value\r\n };\r\n }\r\n if (this.Match(\"string\"))\r\n {\r\n return {\r\n type: \"literal\",\r\n value: token.value\r\n };\r\n }\r\n if (this.Match(\"identifier\"))\r\n {\r\n const name = String(token.value);\r\n this.AssertSafeIdentifier(name);\r\n if (this.Match(\"operator\", \"(\"))\r\n {\r\n return this.ParseCall(name);\r\n }\r\n if (name in CONSTANTS)\r\n {\r\n return {\r\n type: \"literal\",\r\n value: CONSTANTS[name]\r\n };\r\n }\r\n this.variableNames.add(name);\r\n return {\r\n type: \"identifier\",\r\n name\r\n };\r\n }\r\n if (this.Match(\"operator\", \"(\"))\r\n {\r\n const node = this.ParseConditional();\r\n this.Expect(\"operator\", \")\");\r\n return node;\r\n }\r\n throw this.Error(`Unexpected token '${String(token.value)}'`);\r\n }\r\n\r\n /**\r\n * Parses a call argument list after the opening parenthesis and fails\r\n * compilation when the name resolves to no built-in or caller-supplied\r\n * function, so unknown functions cannot reach evaluation.\r\n */\r\n ParseCall(name)\r\n {\r\n this.AssertSafeIdentifier(name);\r\n if (!GetFunction(name, this.options))\r\n {\r\n throw this.Error(`Unknown function '${name}'`);\r\n }\r\n const args = [];\r\n if (!this.Match(\"operator\", \")\"))\r\n {\r\n do\r\n {\r\n args.push(this.ParseConditional());\r\n } while (this.Match(\"operator\", \",\"));\r\n this.Expect(\"operator\", \")\");\r\n }\r\n this.functionNames.add(name);\r\n return {\r\n type: \"call\",\r\n name,\r\n args\r\n };\r\n }\r\n\r\n /**\r\n * Rejects identifiers such as `__proto__`, `constructor` and `globalThis` that\r\n * could be used to escape the sandboxed evaluator.\r\n */\r\n AssertSafeIdentifier(name)\r\n {\r\n if (BLOCKED_IDENTIFIERS.has(name))\r\n {\r\n throw this.Error(`Unsafe identifier '${name}'`);\r\n }\r\n }\r\n\r\n /**\r\n * Returns the token at the cursor without consuming it; the stream always ends\r\n * with an `eof` token.\r\n */\r\n Peek()\r\n {\r\n return this.tokens[this.index];\r\n }\r\n\r\n /**\r\n * Consumes the next token and returns true when it has the given type and, if\r\n * supplied, the given value; otherwise leaves the cursor untouched.\r\n */\r\n Match(type, value)\r\n {\r\n const token = this.Peek();\r\n if (!token || token.type !== type)\r\n {\r\n return false;\r\n }\r\n if (value !== undefined && token.value !== value)\r\n {\r\n return false;\r\n }\r\n this.index++;\r\n return true;\r\n }\r\n\r\n /**\r\n * Consumes and returns the next token, throwing a compile error naming the\r\n * expected form when it does not match.\r\n */\r\n Expect(type, value)\r\n {\r\n const token = this.Peek();\r\n if (this.Match(type, value))\r\n {\r\n return token;\r\n }\r\n throw this.Error(`Expected ${value || type}, got '${token ? String(token.value) : \"end of input\"}'`);\r\n }\r\n\r\n /**\r\n * Builds a compile error carrying the source text and the character position\r\n * of the current token.\r\n */\r\n Error(message)\r\n {\r\n const token = this.Peek();\r\n return new CjsControllerExpressionCompileError({\r\n expression: this.source,\r\n reason: message,\r\n position: token ? token.position : this.source.length\r\n });\r\n }\r\n}\r\nfunction Tokenize(source)\r\n{\r\n const tokens = [];\r\n let i = 0;\r\n while (i < source.length)\r\n {\r\n const c = source[i];\r\n if (/\\s/.test(c))\r\n {\r\n i++;\r\n continue;\r\n }\r\n if (IsDigit(c) || c === \".\" && IsDigit(source[i + 1]))\r\n {\r\n const start = i;\r\n i = ReadNumber(source, i);\r\n tokens.push({\r\n type: \"number\",\r\n value: Number(source.slice(start, i)),\r\n position: start\r\n });\r\n continue;\r\n }\r\n if (c === '\"' || c === \"'\")\r\n {\r\n const start = i;\r\n const result = ReadString(source, i);\r\n i = result.end;\r\n tokens.push({\r\n type: \"string\",\r\n value: result.value,\r\n position: start\r\n });\r\n continue;\r\n }\r\n if (IsIdentifierStart(c))\r\n {\r\n const start = i;\r\n i++;\r\n while (IsIdentifierPart(source[i]))\r\n {\r\n i++;\r\n }\r\n tokens.push({\r\n type: \"identifier\",\r\n value: source.slice(start, i),\r\n position: start\r\n });\r\n continue;\r\n }\r\n const two = source.slice(i, i + 2);\r\n if (two === \"&&\" || two === \"||\" || two === \"<=\" || two === \">=\" || two === \"==\" || two === \"!=\")\r\n {\r\n tokens.push({\r\n type: \"operator\",\r\n value: two,\r\n position: i\r\n });\r\n i += 2;\r\n continue;\r\n }\r\n if (\"+-*/%^<>()!,?:\".includes(c))\r\n {\r\n tokens.push({\r\n type: \"operator\",\r\n value: c,\r\n position: i\r\n });\r\n i++;\r\n continue;\r\n }\r\n throw new CjsControllerExpressionCompileError({\r\n expression: source,\r\n reason: `Unexpected character '${c}'`,\r\n position: i\r\n });\r\n }\r\n tokens.push({\r\n type: \"eof\",\r\n value: \"\",\r\n position: source.length\r\n });\r\n return tokens;\r\n}\r\nfunction ReadNumber(source, index)\r\n{\r\n let i = index;\r\n while (IsDigit(source[i]))\r\n {\r\n i++;\r\n }\r\n if (source[i] === \".\")\r\n {\r\n i++;\r\n while (IsDigit(source[i]))\r\n {\r\n i++;\r\n }\r\n }\r\n if (source[i] === \"e\" || source[i] === \"E\")\r\n {\r\n const exp = i;\r\n i++;\r\n if (source[i] === \"+\" || source[i] === \"-\")\r\n {\r\n i++;\r\n }\r\n const digits = i;\r\n while (IsDigit(source[i]))\r\n {\r\n i++;\r\n }\r\n if (digits === i)\r\n {\r\n return exp;\r\n }\r\n }\r\n return i;\r\n}\r\nfunction ReadString(source, index)\r\n{\r\n const quote = source[index];\r\n let value = \"\";\r\n let i = index + 1;\r\n while (i < source.length)\r\n {\r\n const c = source[i++];\r\n if (c === quote)\r\n {\r\n return {\r\n value,\r\n end: i\r\n };\r\n }\r\n if (c === \"\\\\\")\r\n {\r\n const n = source[i++];\r\n switch (n)\r\n {\r\n case \"n\":\r\n value += \"\\n\";\r\n break;\r\n case \"r\":\r\n value += \"\\r\";\r\n break;\r\n case \"t\":\r\n value += \"\\t\";\r\n break;\r\n default:\r\n value += n;\r\n break;\r\n }\r\n }\r\n else\r\n {\r\n value += c;\r\n }\r\n }\r\n throw new CjsControllerExpressionCompileError({\r\n expression: source,\r\n reason: \"Unterminated string\",\r\n position: index\r\n });\r\n}\r\nfunction EvaluateNode(node, context, program)\r\n{\r\n switch (node.type)\r\n {\r\n case \"literal\":\r\n return node.value;\r\n case \"identifier\":\r\n return ResolveIdentifier(node.name, context);\r\n case \"unary\":\r\n return EvaluateUnary(node.operator, EvaluateNode(node.argument, context, program));\r\n case \"binary\":\r\n return EvaluateBinary(node.operator, node.left, node.right, context, program);\r\n case \"conditional\":\r\n return ToBoolean(EvaluateNode(node.condition, context, program)) ? EvaluateNode(node.consequent, context, program) : EvaluateNode(node.alternate, context, program);\r\n case \"call\":\r\n return EvaluateCall(node, context, program);\r\n }\r\n}\r\nfunction EvaluateUnary(operator, value)\r\n{\r\n switch (operator)\r\n {\r\n case \"!\":\r\n return ToBoolean(value) ? 0 : 1;\r\n case \"-\":\r\n return -ToNumber(value);\r\n case \"+\":\r\n return ToNumber(value);\r\n default:\r\n return 0;\r\n }\r\n}\r\nfunction EvaluateBinary(operator, leftNode, rightNode, context, program)\r\n{\r\n if (operator === \"&&\")\r\n {\r\n return ToBoolean(EvaluateNode(leftNode, context, program)) && ToBoolean(EvaluateNode(rightNode, context, program)) ? 1 : 0;\r\n }\r\n if (operator === \"||\")\r\n {\r\n return ToBoolean(EvaluateNode(leftNode, context, program)) || ToBoolean(EvaluateNode(rightNode, context, program)) ? 1 : 0;\r\n }\r\n const left = EvaluateNode(leftNode, context, program);\r\n const right = EvaluateNode(rightNode, context, program);\r\n switch (operator)\r\n {\r\n case \"+\":\r\n return ToNumber(left) + ToNumber(right);\r\n case \"-\":\r\n return ToNumber(left) - ToNumber(right);\r\n case \"*\":\r\n return ToNumber(left) * ToNumber(right);\r\n case \"/\":\r\n return ToNumber(right) === 0 ? 0 : ToNumber(left) / ToNumber(right);\r\n case \"%\":\r\n return ToNumber(right) === 0 ? 0 : ToNumber(left) % ToNumber(right);\r\n case \"^\":\r\n return Math.pow(ToNumber(left), ToNumber(right));\r\n case \"<\":\r\n return ToNumber(left) < ToNumber(right) ? 1 : 0;\r\n case \"<=\":\r\n return ToNumber(left) <= ToNumber(right) ? 1 : 0;\r\n case \">\":\r\n return ToNumber(left) > ToNumber(right) ? 1 : 0;\r\n case \">=\":\r\n return ToNumber(left) >= ToNumber(right) ? 1 : 0;\r\n case \"==\":\r\n // Carbon's CcpParser numeric/string coercion is closer to loose JS here.\r\n // deno-lint-ignore eqeqeq\r\n return left == right ? 1 : 0;\r\n case \"!=\":\r\n // deno-lint-ignore eqeqeq\r\n return left != right ? 1 : 0;\r\n default:\r\n return 0;\r\n }\r\n}\r\nfunction EvaluateCall(node, context, program)\r\n{\r\n const fn = GetFunction(node.name, program.options);\r\n if (!fn)\r\n {\r\n throw new CjsControllerExpressionEvaluateError({\r\n expression: program.source,\r\n reason: `Unknown function '${node.name}'`\r\n });\r\n }\r\n const args = node.args.map(arg => EvaluateNode(arg, context, program));\r\n return fn(context || {}, ...args);\r\n}\r\nfunction ResolveIdentifier(name, context = {})\r\n{\r\n if (name in CONSTANTS)\r\n {\r\n return CONSTANTS[name];\r\n }\r\n if (context.variables)\r\n {\r\n if (context.variables instanceof Map && context.variables.has(name))\r\n {\r\n return NormalizeValue(context.variables.get(name));\r\n }\r\n if (!(context.variables instanceof Map) && Object.prototype.hasOwnProperty.call(context.variables, name))\r\n {\r\n return NormalizeValue(context.variables[name]);\r\n }\r\n }\r\n const value = context.controller?.GetVariableValue?.(name, undefined);\r\n if (value !== undefined)\r\n {\r\n return NormalizeValue(value);\r\n }\r\n if (Object.prototype.hasOwnProperty.call(context, name))\r\n {\r\n return NormalizeValue(context[name]);\r\n }\r\n return 0;\r\n}\r\nfunction GetFunction(name, options = {})\r\n{\r\n if (options.functions?.[name])\r\n {\r\n return options.functions[name];\r\n }\r\n return DEFAULT_FUNCTIONS[name] || null;\r\n}\r\nfunction IsFunctionPure(name, options = {})\r\n{\r\n if (options.functions?.[name])\r\n {\r\n const pureFunctions = options.pureFunctions;\r\n return pureFunctions instanceof Set ? pureFunctions.has(name) : Array.isArray(pureFunctions) && pureFunctions.includes(name);\r\n }\r\n return PURE_DEFAULT_FUNCTIONS.has(name);\r\n}\r\nconst PURE_DEFAULT_FUNCTIONS = new Set([\"abs\", \"min\", \"max\", \"floor\", \"ceil\", \"round\", \"sqrt\", \"pow\", \"sin\", \"cos\", \"tan\", \"asin\", \"acos\", \"atan\", \"sinh\", \"cosh\", \"tanh\", \"asinh\", \"acosh\", \"atanh\", \"log2\", \"log10\", \"log\", \"ln\", \"exp\", \"sign\", \"rint\", \"sum\", \"avg\", \"clamp\", \"radians\", \"mod\", \"lerp\"]);\r\nconst DEFAULT_FUNCTIONS = {\r\n abs: (_ctx, x) => Math.abs(ToNumber(x)),\r\n min: (_ctx, ...args) => Math.min(...args.map(ToNumber)),\r\n max: (_ctx, ...args) => Math.max(...args.map(ToNumber)),\r\n floor: (_ctx, x) => Math.floor(ToNumber(x)),\r\n ceil: (_ctx, x) => Math.ceil(ToNumber(x)),\r\n round: (_ctx, x) => Math.round(ToNumber(x)),\r\n sqrt: (_ctx, x) => Math.sqrt(Math.max(0, ToNumber(x))),\r\n pow: (_ctx, x, y) => Math.pow(ToNumber(x), ToNumber(y)),\r\n sin: (_ctx, x) => Math.sin(ToNumber(x)),\r\n cos: (_ctx, x) => Math.cos(ToNumber(x)),\r\n tan: (_ctx, x) => Math.tan(ToNumber(x)),\r\n asin: (_ctx, x) => Math.asin(ToNumber(x)),\r\n acos: (_ctx, x) => Math.acos(ToNumber(x)),\r\n atan: (_ctx, x) => Math.atan(ToNumber(x)),\r\n sinh: (_ctx, x) => Math.sinh(ToNumber(x)),\r\n cosh: (_ctx, x) => Math.cosh(ToNumber(x)),\r\n tanh: (_ctx, x) => Math.tanh(ToNumber(x)),\r\n asinh: (_ctx, x) => Math.asinh(ToNumber(x)),\r\n acosh: (_ctx, x) => Math.acosh(ToNumber(x)),\r\n atanh: (_ctx, x) => Math.atanh(ToNumber(x)),\r\n log2: (_ctx, x) => Math.log2(ToNumber(x)),\r\n log10: (_ctx, x) => Math.log10(ToNumber(x)),\r\n log: (_ctx, x) => Math.log(ToNumber(x)),\r\n ln: (_ctx, x) => Math.log(ToNumber(x)),\r\n exp: (_ctx, x) => Math.exp(ToNumber(x)),\r\n sign: (_ctx, x) =>\r\n {\r\n const value = ToNumber(x);\r\n return value > 0 ? 1 : value < 0 ? -1 : 0;\r\n },\r\n rint: (_ctx, x) => RoundHalfToEven(ToNumber(x)),\r\n sum: (_ctx, ...args) => SumValues(args),\r\n avg: (_ctx, ...args) => args.length ? SumValues(args) / args.length : 0,\r\n clamp: (_ctx, x, min, max) => Math.min(ToNumber(max), Math.max(ToNumber(min), ToNumber(x))),\r\n radians: (_ctx, x) => ToNumber(x) * Math.PI / 180,\r\n mod: (_ctx, x, y) => ToNumber(y) === 0 ? 0 : ToNumber(x) % ToNumber(y),\r\n lerp: (_ctx, a, b, x) => ToNumber(a) * (1 - ToNumber(x)) + ToNumber(b) * ToNumber(x),\r\n random: (_ctx, min = 0, max = 1) => ToNumber(min) + Math.random() * (ToNumber(max) - ToNumber(min)),\r\n Random: (_ctx, min = 0, max = 1) => RandomInteger(min, max),\r\n randomConstant: (ctx, min = 0, max = 1) => ToNumber(min) + GetRandomConstant(ctx) * (ToNumber(max) - ToNumber(min)),\r\n randconst: (ctx, min = 0, max = 1) => DEFAULT_FUNCTIONS.randomConstant(ctx, min, max),\r\n randhash: (_ctx, min = 0, max = 1, value = 0) => ToNumber(min) + Hash01(ToNumber(value)) * (ToNumber(max) - ToNumber(min)),\r\n noise: (ctx, x) => Hash01(ToNumber(x) + GetRandomConstant(ctx)),\r\n fractal: (ctx, x) => Hash01(ToNumber(x) + GetRandomConstant(ctx)),\r\n input: (ctx, index) => GetInputValue(ctx, index),\r\n inputAt: (ctx, index, time) => GetInputValue(ctx, index, time),\r\n StateTime: ctx => ctx.stateMachine?.GetStateTime ? ctx.stateMachine.GetStateTime() : ToNumber(ctx.stateTime),\r\n CurveSetTime: (ctx, name) => GetCurveSetTime(ctx, name),\r\n AnimationTime: (ctx, name) => CallContextFunction(ctx, \"AnimationTime\", name),\r\n IsAnimationPlaying: (ctx, name) => CallContextFunction(ctx, \"IsAnimationPlaying\", name),\r\n GetExternalControllerVariable: (ctx, name, fallback = 0) => GetExternalControllerVariable(ctx, name, fallback),\r\n ShipSpeed: ctx => CallContextFunction(ctx, \"ShipSpeed\"),\r\n ShipMaxSpeed: ctx => CallContextFunction(ctx, \"ShipMaxSpeed\", undefined, 1),\r\n ShipBoosterIntensity: ctx => CallContextFunction(ctx, \"ShipBoosterIntensity\"),\r\n KillCount: ctx => CallContextFunction(ctx, \"KillCount\"),\r\n BoundingSphereRadius: ctx => CallContextFunction(ctx, \"BoundingSphereRadius\"),\r\n ShaderQuality: ctx => CallContextFunction(ctx, \"ShaderQuality\"),\r\n IsWeekend: ctx => GetServerDatePart(ctx, \"dayOfWeek\") % 6 === 0 ? 1 : 0,\r\n ServerYear: ctx => GetServerDatePart(ctx, \"year\"),\r\n ServerMonth: ctx => GetServerDatePart(ctx, \"month\"),\r\n ServerDay: ctx => GetServerDatePart(ctx, \"day\"),\r\n ServerDayOfWeek: ctx => GetServerDatePart(ctx, \"dayOfWeek\"),\r\n ServerHour: ctx => GetServerDatePart(ctx, \"hour\"),\r\n ServerMinute: ctx => GetServerDatePart(ctx, \"minute\"),\r\n ServerSecond: ctx => GetServerDatePart(ctx, \"second\"),\r\n ServerTimePhase: (ctx, period) => GetServerTimePhase(ctx, period),\r\n ServerTimeGreaterThan: (ctx, year, month, day, hour, minute, second) => ServerTimeComparison(ctx, [year, month, day, hour, minute, second], 1),\r\n ServerTimeLessThanOrEqual: (ctx, year, month, day, hour, minute, second) => ServerTimeComparison(ctx, [year, month, day, hour, minute, second], -1),\r\n ServerTimeEqual: (ctx, year, month, day, hour, minute, second) => ServerTimeComparison(ctx, [year, month, day, hour, minute, second], 0),\r\n DaysSinceServerTime: (ctx, year, month, day) => DaysSinceServerTime(ctx, year, month, day)\r\n};\r\nfunction GetRandomConstant(context)\r\n{\r\n const source = context.curve ?? context.self ?? context.expression;\r\n if (HasFunction(source, \"GetRandomConstant\"))\r\n {\r\n return ToNumber(source.GetRandomConstant());\r\n }\r\n if (HasProperty(source, \"randomConstant\"))\r\n {\r\n return ToNumber(source.randomConstant);\r\n }\r\n return 0;\r\n}\r\nfunction GetInputValue(context, index, time)\r\n{\r\n const source = context.curve ?? context.self ?? context.expression ?? context;\r\n if (HasFunction(source, \"GetInputValue\"))\r\n {\r\n return ToNumber(source.GetInputValue(RoundInputIndex(index), time));\r\n }\r\n const inputs = HasProperty(source, \"inputs\") ? source.inputs : context.inputs;\r\n const input = Array.isArray(inputs) ? inputs[RoundInputIndex(index)] : null;\r\n if (!input)\r\n {\r\n return 0;\r\n }\r\n if (time !== undefined && HasFunction(input, \"GetValueAt\"))\r\n {\r\n return ToNumber(input.GetValueAt(ToNumber(time)));\r\n }\r\n if (HasFunction(input, \"GetValueAt\"))\r\n {\r\n return ToNumber(input.GetValueAt(ToNumber(context.time)));\r\n }\r\n if (HasProperty(input, \"currentValue\"))\r\n {\r\n return ToNumber(input.currentValue);\r\n }\r\n return ToNumber(input);\r\n}\r\nfunction RoundInputIndex(index)\r\n{\r\n return Math.trunc(ToNumber(index) + 0.5);\r\n}\r\nfunction GetCurveSetTime(context, name)\r\n{\r\n const owner = context.owner;\r\n if (owner)\r\n {\r\n if (HasFunction(owner, \"GetRangeDuration\") && typeof name === \"string\" && name.includes(\"/\"))\r\n {\r\n const parts = name.split(\"/\");\r\n return ToNumber(owner.GetRangeDuration(parts[0], parts.slice(1).join(\"/\")));\r\n }\r\n if (HasFunction(owner, \"GetCurveSetDuration\"))\r\n {\r\n return ToNumber(owner.GetCurveSetDuration(name));\r\n }\r\n }\r\n return CallContextFunction(context, \"CurveSetTime\", name);\r\n}\r\nfunction GetExternalControllerVariable(context, name, fallback)\r\n{\r\n if (HasProperty(context, \"externalControllerVariables\") && context.externalControllerVariables && typeof context.externalControllerVariables === \"object\" && Object.prototype.hasOwnProperty.call(context.externalControllerVariables, String(name)))\r\n {\r\n return ToNumber(context.externalControllerVariables[String(name)]);\r\n }\r\n if (HasFunction(context.owner, \"GetControllerValueByName\"))\r\n {\r\n const value = context.owner.GetControllerValueByName(name);\r\n return value === undefined || value === null ? ToNumber(fallback) : ToNumber(value);\r\n }\r\n return ToNumber(fallback);\r\n}\r\nfunction RandomInteger(min, max)\r\n{\r\n const minValue = ToNumber(min);\r\n const span = Math.trunc(ToNumber(max) - minValue);\r\n if (span <= 0)\r\n {\r\n return minValue;\r\n }\r\n return minValue + Math.floor(Math.random() * span);\r\n}\r\nfunction GetServerDatePart(context, part)\r\n{\r\n const override = TryCallContextFunction(context, `Server${Capitalize(part)}`);\r\n if (override !== null)\r\n {\r\n return override;\r\n }\r\n const date = GetServerDate(context);\r\n switch (part)\r\n {\r\n case \"year\":\r\n return date.getFullYear();\r\n case \"month\":\r\n return date.getMonth() + 1;\r\n case \"day\":\r\n return date.getDate();\r\n case \"dayOfWeek\":\r\n return date.getDay();\r\n case \"hour\":\r\n return date.getHours();\r\n case \"minute\":\r\n return date.getMinutes();\r\n case \"second\":\r\n return date.getSeconds();\r\n }\r\n}\r\nfunction GetServerTimePhase(context, period)\r\n{\r\n const value = Math.abs(ToNumber(period));\r\n if (value === 0)\r\n {\r\n return 0;\r\n }\r\n return GetServerTimeSeconds(context) % value;\r\n}\r\nfunction ServerTimeComparison(context, values, mode)\r\n{\r\n const parts = [GetServerDatePart(context, \"year\"), GetServerDatePart(context, \"month\"), GetServerDatePart(context, \"day\"), GetServerDatePart(context, \"hour\"), GetServerDatePart(context, \"minute\"), GetServerDatePart(context, \"second\")];\r\n for (let i = 0; i < parts.length; i++)\r\n {\r\n const expected = ToNumber(values[i], -1);\r\n if (expected === -1)\r\n {\r\n continue;\r\n }\r\n if (mode === 0)\r\n {\r\n if (parts[i] !== expected)\r\n {\r\n return 0;\r\n }\r\n continue;\r\n }\r\n if (parts[i] > expected)\r\n {\r\n return mode === 1 ? 1 : 0;\r\n }\r\n if (parts[i] < expected)\r\n {\r\n return mode === -1 ? 1 : 0;\r\n }\r\n }\r\n return 1;\r\n}\r\nfunction DaysSinceServerTime(context, year, month, day)\r\n{\r\n const currentYear = GetServerDatePart(context, \"year\");\r\n const currentMonth = GetServerDatePart(context, \"month\");\r\n const currentDay = GetServerDatePart(context, \"day\");\r\n const targetYear = ToNumber(year, -1) === -1 ? currentYear : ToNumber(year);\r\n const targetMonth = ToNumber(month, -1) === -1 ? currentMonth : ToNumber(month);\r\n const targetDay = ToNumber(day, -1) === -1 ? currentDay : ToNumber(day);\r\n const target = Date.UTC(targetYear, targetMonth, targetDay);\r\n const current = Date.UTC(currentYear, currentMonth, currentDay);\r\n if (!Number.isFinite(target) || !Number.isFinite(current))\r\n {\r\n return Number.MIN_VALUE;\r\n }\r\n return (current - target) / (60 * 60 * 24 * 1000);\r\n}\r\nfunction GetServerDate(context)\r\n{\r\n const value = GetServerTimeValue(context);\r\n if (value instanceof Date)\r\n {\r\n return value;\r\n }\r\n if (typeof value === \"number\" && Number.isFinite(value))\r\n {\r\n return new Date(NormalizeServerTimeMilliseconds(value));\r\n }\r\n return new Date();\r\n}\r\nfunction GetServerTimeSeconds(context)\r\n{\r\n const value = GetServerTimeValue(context);\r\n if (value instanceof Date)\r\n {\r\n return value.getTime() / 1000;\r\n }\r\n if (typeof value === \"number\" && Number.isFinite(value))\r\n {\r\n return NormalizeServerTimeMilliseconds(value) / 1000;\r\n }\r\n return Date.now() / 1000;\r\n}\r\nfunction GetServerTimeValue(context)\r\n{\r\n if (HasProperty(context, \"serverTime\"))\r\n {\r\n const value = context.serverTime;\r\n if (value instanceof Date || typeof value === \"number\")\r\n {\r\n return value;\r\n }\r\n }\r\n if (HasProperty(context, \"functions\") && context.functions && typeof context.functions === \"object\" && HasFunction(context.functions, \"GetServerTime\"))\r\n {\r\n const value = context.functions.GetServerTime(context);\r\n if (value instanceof Date || typeof value === \"number\")\r\n {\r\n return value;\r\n }\r\n }\r\n if (HasFunction(context.owner, \"GetServerTime\"))\r\n {\r\n const value = context.owner.GetServerTime();\r\n if (value instanceof Date || typeof value === \"number\")\r\n {\r\n return value;\r\n }\r\n }\r\n return null;\r\n}\r\nfunction NormalizeServerTimeMilliseconds(value)\r\n{\r\n if (Math.abs(value) > 1e14)\r\n {\r\n return value / 10000;\r\n }\r\n if (Math.abs(value) < 1e10)\r\n {\r\n return value * 1000;\r\n }\r\n return value;\r\n}\r\nfunction CallContextFunction(context, name, arg, fallback = 0)\r\n{\r\n const value = TryCallContextFunction(context, name, arg);\r\n return value === null ? fallback : value;\r\n}\r\nfunction TryCallContextFunction(context, name, arg)\r\n{\r\n if (HasProperty(context, \"functions\") && context.functions && typeof context.functions === \"object\" && HasFunction(context.functions, name))\r\n {\r\n return ToNumber(context.functions[name](arg, context));\r\n }\r\n if (HasFunction(context.owner, name))\r\n {\r\n return ToNumber(context.owner[name](arg));\r\n }\r\n return null;\r\n}\r\nfunction RoundHalfToEven(value)\r\n{\r\n const floor = Math.floor(value);\r\n const diff = value - floor;\r\n if (diff < 0.5)\r\n {\r\n return floor;\r\n }\r\n if (diff > 0.5)\r\n {\r\n return floor + 1;\r\n }\r\n return floor % 2 === 0 ? floor : floor + 1;\r\n}\r\nfunction SumValues(values)\r\n{\r\n let total = 0;\r\n for (const value of values)\r\n {\r\n total += ToNumber(value);\r\n }\r\n return total;\r\n}\r\nfunction Hash01(value)\r\n{\r\n const x = Math.sin(value * 12.9898 + 78.233) * 43758.5453;\r\n return x - Math.floor(x);\r\n}\r\nfunction NormalizeValue(value)\r\n{\r\n if (value === true)\r\n {\r\n return 1;\r\n }\r\n if (value === false)\r\n {\r\n return 0;\r\n }\r\n if (value === undefined || value === null)\r\n {\r\n return 0;\r\n }\r\n return value;\r\n}\r\nfunction ToNumber(value, fallback = 0)\r\n{\r\n value = NormalizeValue(value);\r\n\r\n const number = Number(value);\r\n return Number.isFinite(number) ? number : fallback;\r\n}\r\nfunction Capitalize(value)\r\n{\r\n return value.charAt(0).toUpperCase() + value.slice(1);\r\n}\r\nfunction ToBoolean(value)\r\n{\r\n if (typeof value === \"string\")\r\n {\r\n return value.length > 0;\r\n }\r\n return ToNumber(value) !== 0;\r\n}\r\nfunction IsDigit(c)\r\n{\r\n return !!c && c >= \"0\" && c <= \"9\";\r\n}\r\nfunction IsIdentifierStart(c)\r\n{\r\n return !!c && /[A-Za-z_]/.test(c);\r\n}\r\nfunction IsIdentifierPart(c)\r\n{\r\n return !!c && /[A-Za-z0-9_]/.test(c);\r\n}\r\nfunction HasProperty(value, key)\r\n{\r\n return !!value && typeof value === \"object\" && key in value;\r\n}\r\nfunction HasFunction(value, key)\r\n{\r\n return HasProperty(value, key) && typeof value[key] === \"function\";\r\n}\r\n\r\n/**\r\n * Error raised while tokenizing or parsing an expression, carrying the source\r\n * text, the reason, and the character position at which parsing failed.\r\n */\r\nexport class CjsControllerExpressionCompileError extends Error\r\n{\r\n expression;\r\n reason;\r\n position;\r\n\r\n /**\r\n * Formats the message as the position, reason and full expression so a failed\r\n * compile is diagnosable from the message alone.\r\n */\r\n constructor(data)\r\n {\r\n super(`Error compiling expression at ${data.position}: ${data.reason} (${data.expression})`);\r\n this.name = \"CjsControllerExpressionCompileError\";\r\n this.expression = data.expression;\r\n this.reason = data.reason;\r\n this.position = data.position;\r\n }\r\n}\r\n\r\n/**\r\n * Error raised while evaluating a compiled expression, carrying the source text\r\n * and the reason.\r\n */\r\nexport class CjsControllerExpressionEvaluateError extends Error\r\n{\r\n expression;\r\n reason;\r\n\r\n /**\r\n * Formats the message as the reason and the full expression; unlike compile\r\n * errors there is no meaningful source position at evaluation time.\r\n */\r\n constructor(data)\r\n {\r\n super(`Error evaluating expression: ${data.reason} (${data.expression})`);\r\n this.name = \"CjsControllerExpressionEvaluateError\";\r\n this.expression = data.expression;\r\n this.reason = data.reason;\r\n }\r\n}\r\n"],"names":["BLOCKED_IDENTIFIERS","Set","CONSTANTS","true","false","pi","Math","PI","pi2","_pi","_e","E","CONTROLLER_EXPRESSION_TERMS","map","group","name","description","kind","CURVE_EXPRESSION_TERMS","parameters","CjsControllerExpressionProgram","source","options","ast","error","variableNames","functionNames","constructor","Compile","clear","type","value","emptyValue","parser","CjsControllerExpressionParser","Parse","err","Error","String","message","Evaluate","context","EvaluateNode","EvaluateBoolean","ToBoolean","IsValid","GetVariableNames","Array","from","GetFunctionNames","HasNonPureFunctions","IsFunctionPure","createRuntimeState","controller","program","startTime","lastTime","compileCached","state","expression","functions","makeActionContext","owner","extra","stateTime","GetExpressionContext","undefined","time","getCurveValue","curve","HasFunction","ToNumber","GetValueAt","GetValue","Update","HasProperty","currentValue","addControllerTermInfo","out","term","some","item","push","getCurveTermInfo","terms","includeRadians","splice","tokens","index","Tokenize","ParseConditional","Expect","condition","ParseLogicalOr","Match","consequent","alternate","node","ParseLogicalAnd","operator","left","right","ParseEquality","ParseComparison","ParseTerm","ParseFactor","ParseExponent","ParseUnary","argument","ParsePrimary","token","Peek","AssertSafeIdentifier","ParseCall","add","GetFunction","args","has","CjsControllerExpressionCompileError","reason","position","length","i","c","test","IsDigit","start","ReadNumber","Number","slice","result","ReadString","end","IsIdentifierStart","IsIdentifierPart","two","includes","exp","digits","quote","n","ResolveIdentifier","EvaluateUnary","EvaluateBinary","EvaluateCall","leftNode","rightNode","pow","fn","CjsControllerExpressionEvaluateError","arg","variables","Map","NormalizeValue","get","Object","prototype","hasOwnProperty","call","GetVariableValue","DEFAULT_FUNCTIONS","pureFunctions","isArray","PURE_DEFAULT_FUNCTIONS","abs","_ctx","x","min","max","floor","ceil","round","sqrt","y","sin","cos","tan","asin","acos","atan","sinh","cosh","tanh","asinh","acosh","atanh","log2","log10","log","ln","sign","rint","RoundHalfToEven","sum","SumValues","avg","clamp","radians","mod","lerp","a","b","random","Random","RandomInteger","randomConstant","ctx","GetRandomConstant","randconst","randhash","Hash01","noise","fractal","input","GetInputValue","inputAt","StateTime","stateMachine","GetStateTime","CurveSetTime","GetCurveSetTime","AnimationTime","CallContextFunction","IsAnimationPlaying","GetExternalControllerVariable","fallback","ShipSpeed","ShipMaxSpeed","ShipBoosterIntensity","KillCount","BoundingSphereRadius","ShaderQuality","IsWeekend","GetServerDatePart","ServerYear","ServerMonth","ServerDay","ServerDayOfWeek","ServerHour","ServerMinute","ServerSecond","ServerTimePhase","period","GetServerTimePhase","ServerTimeGreaterThan","year","month","day","hour","minute","second","ServerTimeComparison","ServerTimeLessThanOrEqual","ServerTimeEqual","DaysSinceServerTime","self","RoundInputIndex","inputs","trunc","parts","split","GetRangeDuration","join","GetCurveSetDuration","externalControllerVariables","GetControllerValueByName","minValue","span","part","override","TryCallContextFunction","Capitalize","date","GetServerDate","getFullYear","getMonth","getDate","getDay","getHours","getMinutes","getSeconds","GetServerTimeSeconds","values","mode","expected","currentYear","currentMonth","currentDay","targetYear","targetMonth","targetDay","target","Date","UTC","current","isFinite","MIN_VALUE","GetServerTimeValue","NormalizeServerTimeMilliseconds","getTime","now","serverTime","GetServerTime","diff","total","number","charAt","toUpperCase","key","data"],"mappings":"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"}
1
+ {"version":3,"file":"CjsControllerExpressionProgram.js","sources":["../../../../../src/trinity/controllers/expression/CjsControllerExpressionProgram.js"],"sourcesContent":["// Source: parser/include/ccpparser.h (CcpParser::Parse, Program, Observer)\r\n// Behavioral reference: ccpwgl/src/unsupported/state/expression/Tr2ExpressionProgram.js\r\n//\r\n// This IS a port of Carbon's expression program, and the contract is Carbon's:\r\n// parse an expression against a set of externals, evaluate it, and report the\r\n// variables and functions it referenced. Carbon reports those through\r\n// Observer::OnVariable/OnFunction; we expose the same names for dirty tracking.\r\n//\r\n// THE REPRESENTATION DIFFERS, AND THAT IS THE BROWSER CONSTRAINT. Carbon\r\n// compiles to bytecode - Program holds a std::vector<uint8_t> and evaluates it\r\n// with a caller-supplied temp arena (ccpparser.h:26-40). The JavaScript\r\n// shortcut equivalent to that is new Function / eval, which is unavailable\r\n// under a content security policy and is a code-injection surface for\r\n// expressions arriving in asset data. So this compiles to an AST and walks it.\r\n// The file is long because the bytecode VM is absent, not because it is a\r\n// second design.\r\n//\r\n// An earlier version of this comment said Carbon has Tr2ControllerExpression\r\n// and no Tr2ExpressionProgram runtime class. That is true of trinity/ and\r\n// false of Carbon: CcpParser lives in the parser repo. It was read as evidence\r\n// of invention during the 2026-09-04 fidelity audit. Carbon is 32 repositories.\r\nimport { CjsControllerExpressionParser } from \"./CjsControllerExpressionParser.js\";\r\nimport { DaysSinceServerTime, EvaluateNode, GetExternalControllerVariable, HasFunction, HasProperty, IsFunctionPure, ToBoolean, ToNumber } from \"./expressionRuntime.js\";\r\nconst CONTROLLER_EXPRESSION_TERMS = [\r\n [\"Controller\", \"StateTime\", \"time in seconds the current state is running\"],\r\n [\"Controller\", \"AnimationTime\", \"geometry animation duration for the given name\"],\r\n [\"Controller\", \"CurveSetTime\", \"duration in seconds of the named curve set\"],\r\n [\"Controller\", \"GetExternalControllerVariable\", \"external controller variable lookup\"],\r\n [\"Controller\", \"IsAnimationPlaying\", \"returns 1 if the named animation layer is playing\"],\r\n [\"Controller\", \"ShipSpeed\", \"owning ship speed\"],\r\n [\"Controller\", \"ShipMaxSpeed\", \"owning ship maximum speed\"],\r\n [\"Controller\", \"ShipBoosterIntensity\", \"owning ship booster intensity\"],\r\n [\"Controller\", \"Random\", \"random integer from min to max - 1\"],\r\n [\"Controller\", \"KillCount\", \"owning ship kill count\"],\r\n [\"Controller\", \"BoundingSphereRadius\", \"owning object's bounding sphere radius\"],\r\n [\"GraphicSettings\", \"ShaderQuality\", \"user shader quality setting\"],\r\n [\"DateTime\", \"IsWeekend\", \"returns 1 on Saturday or Sunday\"],\r\n [\"DateTime\", \"ServerYear\", \"current server year\"],\r\n [\"DateTime\", \"ServerMonth\", \"current server month\"],\r\n [\"DateTime\", \"ServerDay\", \"current server day of month\"],\r\n [\"DateTime\", \"ServerDayOfWeek\", \"current server day of week\"],\r\n [\"DateTime\", \"ServerHour\", \"current server hour\"],\r\n [\"DateTime\", \"ServerMinute\", \"current server minute\"],\r\n [\"DateTime\", \"ServerSecond\", \"current server second\"],\r\n [\"DateTime\", \"ServerTimePhase\", \"seconds phase in a server-time period\"],\r\n [\"DateTime\", \"ServerTimeGreaterThan\", \"server-time comparison\"],\r\n [\"DateTime\", \"ServerTimeLessThanOrEqual\", \"server-time comparison\"],\r\n [\"DateTime\", \"ServerTimeEqual\", \"server-time equality comparison\"],\r\n [\"DateTime\", \"DaysSinceServerTime\", \"days since the supplied server date\"]\r\n].map(([group, name, description]) => ({ group, name, description, kind: \"function\" }));\r\nconst CURVE_EXPRESSION_TERMS = [\r\n [\"Random\", \"fractal\", \"function\", \"x, alpha, beta, n\", \"fractal noise\"],\r\n [\"Random\", \"noise\", \"function\", \"x\", \"simple one-octave noise\"],\r\n [\"Random\", \"randomConstant\", \"function\", \"a, b\", \"random per-curve constant in range [a, b)\"],\r\n [\"Random\", \"randconst\", \"function\", \"a, b\", \"random per-curve constant in range [a, b)\"],\r\n [\"Random\", \"random\", \"function\", \"a, b\", \"random value in range [a, b)\"],\r\n [\"Random\", \"randhash\", \"function\", \"a, b, x\", \"random value in range [a, b) based on value x\"],\r\n [\"Inputs\", \"input\", \"function\", \"n\", \"n-th input curve value at current time\"],\r\n [\"Inputs\", \"inputAt\", \"function\", \"n, t\", \"input curve value at time t\"],\r\n [\"Math\", \"clamp\", \"function\", \"x, min, max\", \"value x clamped to [min, max] range\"],\r\n [\"Inputs\", \"input1\", \"variable\", null, \"input1 attribute\"],\r\n [\"Inputs\", \"input2\", \"variable\", null, \"input2 attribute\"],\r\n [\"Inputs\", \"input3\", \"variable\", null, \"input3 attribute\"],\r\n [\"Inputs\", \"input4\", \"variable\", null, \"input4 attribute\"],\r\n [\"Inputs\", \"time\", \"variable\", null, \"current time\"],\r\n [\"Math\", \"pi\", \"variable\", null, \"Pi value\"],\r\n [\"Math\", \"pi2\", \"variable\", null, \"Pi x 2 value\"]\r\n].map(([group, name, kind, parameters, description]) => ({\r\n group,\r\n name,\r\n kind,\r\n ...(parameters ? { parameters } : {}),\r\n description\r\n}));\r\n/**\r\n * Compiles a Carbon controller or curve expression into an AST and evaluates it\r\n * without dynamic JavaScript eval, exposing the referenced variable and function\r\n * names for dirty tracking.\r\n */\r\nexport class CjsControllerExpressionProgram\r\n{\r\n source = \"\";\r\n\r\n options = {};\r\n\r\n ast = null;\r\n\r\n error = \"\";\r\n\r\n variableNames = new Set();\r\n\r\n functionNames = new Set();\r\n\r\n #error = null;\r\n\r\n /**\r\n * Creates a program and immediately compiles the supplied source; compilation\r\n * failures are captured in `error` rather than thrown.\r\n */\r\n constructor(source = \"\", options = {})\r\n {\r\n this.Compile(source, options);\r\n }\r\n\r\n /**\r\n * Compiles a constrained expression into an AST.\r\n */\r\n Compile(source = this.source, options = this.options)\r\n {\r\n this.source = source || \"\";\r\n this.options = options || {};\r\n this.error = \"\";\r\n this.#error = null;\r\n this.variableNames.clear();\r\n this.functionNames.clear();\r\n if (!this.source)\r\n {\r\n this.ast = {\r\n type: \"literal\",\r\n value: this.options.emptyValue ?? 1\r\n };\r\n return this;\r\n }\r\n try\r\n {\r\n const parser = new CjsControllerExpressionParser(this.source, this.options);\r\n this.ast = parser.Parse();\r\n this.variableNames = parser.variableNames;\r\n this.functionNames = parser.functionNames;\r\n }\r\n catch (err)\r\n {\r\n this.ast = null;\r\n this.#error = err instanceof Error ? err : new Error(String(err));\r\n this.error = this.#error.message;\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Evaluates the compiled expression without using dynamic JavaScript eval.\r\n */\r\n Evaluate(context = {})\r\n {\r\n if (!this.ast)\r\n {\r\n if (this.#error)\r\n {\r\n throw this.#error;\r\n }\r\n return 0;\r\n }\r\n return EvaluateNode(this.ast, context, this);\r\n }\r\n\r\n /**\r\n * Evaluates the compiled expression as a Carbon-style numeric boolean.\r\n */\r\n EvaluateBoolean(context = {})\r\n {\r\n return ToBoolean(this.Evaluate(context));\r\n }\r\n\r\n /**\r\n * Checks whether the expression compiled successfully.\r\n */\r\n IsValid()\r\n {\r\n return !!this.ast && !this.error;\r\n }\r\n\r\n /**\r\n * Gets variable names referenced by the expression.\r\n */\r\n GetVariableNames()\r\n {\r\n return Array.from(this.variableNames);\r\n }\r\n\r\n /**\r\n * Gets function names referenced by the expression.\r\n */\r\n GetFunctionNames()\r\n {\r\n return Array.from(this.functionNames);\r\n }\r\n\r\n /**\r\n * Checks whether any referenced function can change without variable dirties.\r\n */\r\n HasNonPureFunctions()\r\n {\r\n for (const name of this.functionNames)\r\n {\r\n if (!IsFunctionPure(name, this.options))\r\n {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Creates the mutable per-action cache record that compileCached and\r\n * makeActionContext operate on, holding the last compiled program, its source,\r\n * and the action's start and last evaluation times.\r\n */\r\n static createRuntimeState()\r\n {\r\n return {\r\n controller: null,\r\n program: null,\r\n source: \"\",\r\n startTime: 0,\r\n lastTime: 0\r\n };\r\n }\r\n\r\n /**\r\n * Recompiles into the supplied runtime state only when the expression text has\r\n * changed, so per-frame evaluation does not re-parse.\r\n */\r\n static compileCached(state, expression, emptyValue = 0, functions)\r\n {\r\n if (!state.program || state.source !== expression)\r\n {\r\n state.program = this.Compile(expression, { emptyValue, functions });\r\n state.source = expression;\r\n }\r\n return state.program;\r\n }\r\n\r\n /**\r\n * Builds the evaluation context for an action, deriving `stateTime` from the\r\n * runtime state's start and last times and delegating to the controller's own\r\n * GetExpressionContext when it has one.\r\n */\r\n static makeActionContext(controller, owner, state, extra = {})\r\n {\r\n const stateTime = state.lastTime - state.startTime;\r\n if (controller?.GetExpressionContext)\r\n {\r\n return controller.GetExpressionContext(owner, null, { ...extra, stateTime });\r\n }\r\n return {\r\n ...extra,\r\n controller: controller ?? undefined,\r\n owner,\r\n stateTime,\r\n time: state.lastTime\r\n };\r\n }\r\n\r\n /**\r\n * Samples an arbitrary curve-like object at a time, trying GetValueAt,\r\n * GetValue and Update in that order before falling back to a currentValue\r\n * property or a plain numeric coercion.\r\n */\r\n static getCurveValue(curve, time)\r\n {\r\n if (HasFunction(curve, \"GetValueAt\"))\r\n {\r\n return ToNumber(curve.GetValueAt(time));\r\n }\r\n if (HasFunction(curve, \"GetValue\"))\r\n {\r\n return ToNumber(curve.GetValue(time));\r\n }\r\n if (HasFunction(curve, \"Update\"))\r\n {\r\n return ToNumber(curve.Update(time));\r\n }\r\n return HasProperty(curve, \"currentValue\") ? ToNumber(curve.currentValue) : ToNumber(curve);\r\n }\r\n\r\n /**\r\n * Appends the controller, graphics-setting and server-date expression terms to\r\n * an editor term list, skipping group/name pairs already present and adding\r\n * the `Curve` term only when the caller declares a curve.\r\n */\r\n static addControllerTermInfo(out, options = {})\r\n {\r\n for (const term of CONTROLLER_EXPRESSION_TERMS)\r\n {\r\n if (!out.some(item => item.group === term.group && item.name === term.name))\r\n {\r\n out.push(term);\r\n }\r\n }\r\n if (options.curve && !out.some(item => item.group === \"Controller\" && item.name === \"Curve\"))\r\n {\r\n out.push({\r\n group: \"Controller\",\r\n name: \"Curve\",\r\n description: \"action curve value at time x\",\r\n kind: \"function\"\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Returns a fresh copy of the curve-expression term list for editor\r\n * autocompletion, optionally including the `radians` function.\r\n */\r\n static getCurveTermInfo(options = {})\r\n {\r\n const terms = CURVE_EXPRESSION_TERMS.map(term => ({ ...term }));\r\n if (options.includeRadians)\r\n {\r\n terms.splice(9, 0, {\r\n group: \"Math\",\r\n name: \"radians\",\r\n kind: \"function\",\r\n parameters: \"x\",\r\n description: \"convert x degrees to radians\"\r\n });\r\n }\r\n return terms;\r\n }\r\n\r\n /**\r\n * Static factory that compiles expression source into a ready program, the\r\n * form callers use instead of constructing and compiling in two steps.\r\n */\r\n static Compile(source, options = {})\r\n {\r\n return new CjsControllerExpressionProgram(source, options);\r\n }\r\n}\r\n\r\n/**\r\n * Recursive-descent parser turning expression source into the AST evaluated by\r\n * CjsControllerExpressionProgram, collecting referenced variable and function\r\n * names and rejecting identifiers that could reach the JavaScript prototype\r\n * chain.\r\n */\r\n"],"names":["CONTROLLER_EXPRESSION_TERMS","map","group","name","description","kind","CURVE_EXPRESSION_TERMS","parameters","CjsControllerExpressionProgram","source","options","ast","error","variableNames","Set","functionNames","constructor","Compile","clear","type","value","emptyValue","parser","CjsControllerExpressionParser","Parse","err","Error","String","message","Evaluate","context","EvaluateNode","EvaluateBoolean","ToBoolean","IsValid","GetVariableNames","Array","from","GetFunctionNames","HasNonPureFunctions","IsFunctionPure","createRuntimeState","controller","program","startTime","lastTime","compileCached","state","expression","functions","makeActionContext","owner","extra","stateTime","GetExpressionContext","undefined","time","getCurveValue","curve","HasFunction","ToNumber","GetValueAt","GetValue","Update","HasProperty","currentValue","addControllerTermInfo","out","term","some","item","push","getCurveTermInfo","terms","includeRadians","splice"],"mappings":"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"}