@esengine/ecs-framework 2.3.0 → 2.3.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 (491) hide show
  1. package/dist/index.cjs +2 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.ts +13451 -0
  4. package/dist/index.es5.js +4 -0
  5. package/dist/index.es5.js.map +1 -0
  6. package/dist/index.mjs +2 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/dist/index.umd.js +4 -0
  9. package/dist/index.umd.js.map +1 -0
  10. package/dist/package.json +47 -0
  11. package/package.json +87 -84
  12. package/bin/Core/DI/Decorators.d.ts +0 -206
  13. package/bin/Core/DI/Decorators.d.ts.map +0 -1
  14. package/bin/Core/DI/Decorators.js +0 -253
  15. package/bin/Core/DI/Decorators.js.map +0 -1
  16. package/bin/Core/DI/index.d.ts +0 -8
  17. package/bin/Core/DI/index.d.ts.map +0 -1
  18. package/bin/Core/DI/index.js +0 -7
  19. package/bin/Core/DI/index.js.map +0 -1
  20. package/bin/Core/Plugin.d.ts +0 -112
  21. package/bin/Core/Plugin.d.ts.map +0 -1
  22. package/bin/Core/Plugin.js +0 -19
  23. package/bin/Core/Plugin.js.map +0 -1
  24. package/bin/Core/PluginManager.d.ts +0 -118
  25. package/bin/Core/PluginManager.d.ts.map +0 -1
  26. package/bin/Core/PluginManager.js +0 -229
  27. package/bin/Core/PluginManager.js.map +0 -1
  28. package/bin/Core/ServiceContainer.d.ts +0 -221
  29. package/bin/Core/ServiceContainer.d.ts.map +0 -1
  30. package/bin/Core/ServiceContainer.js +0 -352
  31. package/bin/Core/ServiceContainer.js.map +0 -1
  32. package/bin/Core.d.ts +0 -379
  33. package/bin/Core.d.ts.map +0 -1
  34. package/bin/Core.js +0 -553
  35. package/bin/Core.js.map +0 -1
  36. package/bin/ECS/Component.d.ts +0 -104
  37. package/bin/ECS/Component.d.ts.map +0 -1
  38. package/bin/ECS/Component.js +0 -105
  39. package/bin/ECS/Component.js.map +0 -1
  40. package/bin/ECS/Components/HierarchyComponent.d.ts +0 -46
  41. package/bin/ECS/Components/HierarchyComponent.d.ts.map +0 -1
  42. package/bin/ECS/Components/HierarchyComponent.js +0 -65
  43. package/bin/ECS/Components/HierarchyComponent.js.map +0 -1
  44. package/bin/ECS/Components/index.d.ts +0 -2
  45. package/bin/ECS/Components/index.d.ts.map +0 -1
  46. package/bin/ECS/Components/index.js +0 -2
  47. package/bin/ECS/Components/index.js.map +0 -1
  48. package/bin/ECS/Core/ArchetypeSystem.d.ts +0 -103
  49. package/bin/ECS/Core/ArchetypeSystem.d.ts.map +0 -1
  50. package/bin/ECS/Core/ArchetypeSystem.js +0 -244
  51. package/bin/ECS/Core/ArchetypeSystem.js.map +0 -1
  52. package/bin/ECS/Core/CommandBuffer.d.ts +0 -154
  53. package/bin/ECS/Core/CommandBuffer.d.ts.map +0 -1
  54. package/bin/ECS/Core/CommandBuffer.js +0 -244
  55. package/bin/ECS/Core/CommandBuffer.js.map +0 -1
  56. package/bin/ECS/Core/ComponentPool.d.ts +0 -139
  57. package/bin/ECS/Core/ComponentPool.d.ts.map +0 -1
  58. package/bin/ECS/Core/ComponentPool.js +0 -276
  59. package/bin/ECS/Core/ComponentPool.js.map +0 -1
  60. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts +0 -127
  61. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.d.ts.map +0 -1
  62. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js +0 -235
  63. package/bin/ECS/Core/ComponentStorage/ComponentRegistry.js.map +0 -1
  64. package/bin/ECS/Core/ComponentStorage.d.ts +0 -185
  65. package/bin/ECS/Core/ComponentStorage.d.ts.map +0 -1
  66. package/bin/ECS/Core/ComponentStorage.js +0 -321
  67. package/bin/ECS/Core/ComponentStorage.js.map +0 -1
  68. package/bin/ECS/Core/EntityLifecyclePolicy.d.ts +0 -26
  69. package/bin/ECS/Core/EntityLifecyclePolicy.d.ts.map +0 -1
  70. package/bin/ECS/Core/EntityLifecyclePolicy.js +0 -2
  71. package/bin/ECS/Core/EntityLifecyclePolicy.js.map +0 -1
  72. package/bin/ECS/Core/EventBus.d.ts +0 -210
  73. package/bin/ECS/Core/EventBus.d.ts.map +0 -1
  74. package/bin/ECS/Core/EventBus.js +0 -370
  75. package/bin/ECS/Core/EventBus.js.map +0 -1
  76. package/bin/ECS/Core/EventSystem.d.ts +0 -225
  77. package/bin/ECS/Core/EventSystem.d.ts.map +0 -1
  78. package/bin/ECS/Core/EventSystem.js +0 -448
  79. package/bin/ECS/Core/EventSystem.js.map +0 -1
  80. package/bin/ECS/Core/Events/index.d.ts +0 -3
  81. package/bin/ECS/Core/Events/index.d.ts.map +0 -1
  82. package/bin/ECS/Core/Events/index.js +0 -3
  83. package/bin/ECS/Core/Events/index.js.map +0 -1
  84. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts +0 -35
  85. package/bin/ECS/Core/FluentAPI/ComponentBuilder.d.ts.map +0 -1
  86. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js +0 -48
  87. package/bin/ECS/Core/FluentAPI/ComponentBuilder.js.map +0 -1
  88. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts +0 -135
  89. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.d.ts.map +0 -1
  90. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js +0 -166
  91. package/bin/ECS/Core/FluentAPI/ECSFluentAPI.js.map +0 -1
  92. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts +0 -58
  93. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.d.ts.map +0 -1
  94. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js +0 -85
  95. package/bin/ECS/Core/FluentAPI/EntityBatchOperator.js.map +0 -1
  96. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts +0 -110
  97. package/bin/ECS/Core/FluentAPI/EntityBuilder.d.ts.map +0 -1
  98. package/bin/ECS/Core/FluentAPI/EntityBuilder.js +0 -181
  99. package/bin/ECS/Core/FluentAPI/EntityBuilder.js.map +0 -1
  100. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts +0 -53
  101. package/bin/ECS/Core/FluentAPI/SceneBuilder.d.ts.map +0 -1
  102. package/bin/ECS/Core/FluentAPI/SceneBuilder.js +0 -79
  103. package/bin/ECS/Core/FluentAPI/SceneBuilder.js.map +0 -1
  104. package/bin/ECS/Core/FluentAPI/index.d.ts +0 -6
  105. package/bin/ECS/Core/FluentAPI/index.d.ts.map +0 -1
  106. package/bin/ECS/Core/FluentAPI/index.js +0 -6
  107. package/bin/ECS/Core/FluentAPI/index.js.map +0 -1
  108. package/bin/ECS/Core/FluentAPI.d.ts +0 -2
  109. package/bin/ECS/Core/FluentAPI.d.ts.map +0 -1
  110. package/bin/ECS/Core/FluentAPI.js +0 -3
  111. package/bin/ECS/Core/FluentAPI.js.map +0 -1
  112. package/bin/ECS/Core/Query/TypedQuery.d.ts +0 -214
  113. package/bin/ECS/Core/Query/TypedQuery.d.ts.map +0 -1
  114. package/bin/ECS/Core/Query/TypedQuery.js +0 -294
  115. package/bin/ECS/Core/Query/TypedQuery.js.map +0 -1
  116. package/bin/ECS/Core/Query/index.d.ts +0 -3
  117. package/bin/ECS/Core/Query/index.d.ts.map +0 -1
  118. package/bin/ECS/Core/Query/index.js +0 -3
  119. package/bin/ECS/Core/Query/index.js.map +0 -1
  120. package/bin/ECS/Core/QuerySystem.d.ts +0 -458
  121. package/bin/ECS/Core/QuerySystem.d.ts.map +0 -1
  122. package/bin/ECS/Core/QuerySystem.js +0 -1069
  123. package/bin/ECS/Core/QuerySystem.js.map +0 -1
  124. package/bin/ECS/Core/QueryTypes.d.ts +0 -34
  125. package/bin/ECS/Core/QueryTypes.d.ts.map +0 -1
  126. package/bin/ECS/Core/QueryTypes.js +0 -13
  127. package/bin/ECS/Core/QueryTypes.js.map +0 -1
  128. package/bin/ECS/Core/ReactiveQuery.d.ts +0 -211
  129. package/bin/ECS/Core/ReactiveQuery.d.ts.map +0 -1
  130. package/bin/ECS/Core/ReactiveQuery.js +0 -401
  131. package/bin/ECS/Core/ReactiveQuery.js.map +0 -1
  132. package/bin/ECS/Core/ReferenceTracker.d.ts +0 -111
  133. package/bin/ECS/Core/ReferenceTracker.d.ts.map +0 -1
  134. package/bin/ECS/Core/ReferenceTracker.js +0 -254
  135. package/bin/ECS/Core/ReferenceTracker.js.map +0 -1
  136. package/bin/ECS/Core/SoASerializer.d.ts +0 -28
  137. package/bin/ECS/Core/SoASerializer.d.ts.map +0 -1
  138. package/bin/ECS/Core/SoASerializer.js +0 -85
  139. package/bin/ECS/Core/SoASerializer.js.map +0 -1
  140. package/bin/ECS/Core/SoAStorage.d.ts +0 -129
  141. package/bin/ECS/Core/SoAStorage.d.ts.map +0 -1
  142. package/bin/ECS/Core/SoAStorage.js +0 -685
  143. package/bin/ECS/Core/SoAStorage.js.map +0 -1
  144. package/bin/ECS/Core/SoATypeRegistry.d.ts +0 -50
  145. package/bin/ECS/Core/SoATypeRegistry.d.ts.map +0 -1
  146. package/bin/ECS/Core/SoATypeRegistry.js +0 -135
  147. package/bin/ECS/Core/SoATypeRegistry.js.map +0 -1
  148. package/bin/ECS/Core/Storage/index.d.ts +0 -4
  149. package/bin/ECS/Core/Storage/index.d.ts.map +0 -1
  150. package/bin/ECS/Core/Storage/index.js +0 -4
  151. package/bin/ECS/Core/Storage/index.js.map +0 -1
  152. package/bin/ECS/Core/StorageDecorators.d.ts +0 -20
  153. package/bin/ECS/Core/StorageDecorators.d.ts.map +0 -1
  154. package/bin/ECS/Core/StorageDecorators.js +0 -27
  155. package/bin/ECS/Core/StorageDecorators.js.map +0 -1
  156. package/bin/ECS/CoreEvents.d.ts +0 -131
  157. package/bin/ECS/CoreEvents.d.ts.map +0 -1
  158. package/bin/ECS/CoreEvents.js +0 -163
  159. package/bin/ECS/CoreEvents.js.map +0 -1
  160. package/bin/ECS/Decorators/EntityRefDecorator.d.ts +0 -46
  161. package/bin/ECS/Decorators/EntityRefDecorator.d.ts.map +0 -1
  162. package/bin/ECS/Decorators/EntityRefDecorator.js +0 -118
  163. package/bin/ECS/Decorators/EntityRefDecorator.js.map +0 -1
  164. package/bin/ECS/Decorators/PropertyDecorator.d.ts +0 -168
  165. package/bin/ECS/Decorators/PropertyDecorator.d.ts.map +0 -1
  166. package/bin/ECS/Decorators/PropertyDecorator.js +0 -40
  167. package/bin/ECS/Decorators/PropertyDecorator.js.map +0 -1
  168. package/bin/ECS/Decorators/TypeDecorators.d.ts +0 -124
  169. package/bin/ECS/Decorators/TypeDecorators.d.ts.map +0 -1
  170. package/bin/ECS/Decorators/TypeDecorators.js +0 -151
  171. package/bin/ECS/Decorators/TypeDecorators.js.map +0 -1
  172. package/bin/ECS/Decorators/index.d.ts +0 -7
  173. package/bin/ECS/Decorators/index.d.ts.map +0 -1
  174. package/bin/ECS/Decorators/index.js +0 -4
  175. package/bin/ECS/Decorators/index.js.map +0 -1
  176. package/bin/ECS/Entity.d.ts +0 -415
  177. package/bin/ECS/Entity.d.ts.map +0 -1
  178. package/bin/ECS/Entity.js +0 -683
  179. package/bin/ECS/Entity.js.map +0 -1
  180. package/bin/ECS/EntityTags.d.ts +0 -71
  181. package/bin/ECS/EntityTags.d.ts.map +0 -1
  182. package/bin/ECS/EntityTags.js +0 -82
  183. package/bin/ECS/EntityTags.js.map +0 -1
  184. package/bin/ECS/IScene.d.ts +0 -308
  185. package/bin/ECS/IScene.d.ts.map +0 -1
  186. package/bin/ECS/IScene.js +0 -2
  187. package/bin/ECS/IScene.js.map +0 -1
  188. package/bin/ECS/Scene.d.ts +0 -799
  189. package/bin/ECS/Scene.d.ts.map +0 -1
  190. package/bin/ECS/Scene.js +0 -1203
  191. package/bin/ECS/Scene.js.map +0 -1
  192. package/bin/ECS/SceneManager.d.ts +0 -197
  193. package/bin/ECS/SceneManager.d.ts.map +0 -1
  194. package/bin/ECS/SceneManager.js +0 -264
  195. package/bin/ECS/SceneManager.js.map +0 -1
  196. package/bin/ECS/Serialization/ComponentSerializer.d.ts +0 -106
  197. package/bin/ECS/Serialization/ComponentSerializer.d.ts.map +0 -1
  198. package/bin/ECS/Serialization/ComponentSerializer.js +0 -251
  199. package/bin/ECS/Serialization/ComponentSerializer.js.map +0 -1
  200. package/bin/ECS/Serialization/EntitySerializer.d.ts +0 -111
  201. package/bin/ECS/Serialization/EntitySerializer.d.ts.map +0 -1
  202. package/bin/ECS/Serialization/EntitySerializer.js +0 -155
  203. package/bin/ECS/Serialization/EntitySerializer.js.map +0 -1
  204. package/bin/ECS/Serialization/IncrementalSerializer.d.ts +0 -259
  205. package/bin/ECS/Serialization/IncrementalSerializer.d.ts.map +0 -1
  206. package/bin/ECS/Serialization/IncrementalSerializer.js +0 -500
  207. package/bin/ECS/Serialization/IncrementalSerializer.js.map +0 -1
  208. package/bin/ECS/Serialization/SceneSerializer.d.ts +0 -213
  209. package/bin/ECS/Serialization/SceneSerializer.d.ts.map +0 -1
  210. package/bin/ECS/Serialization/SceneSerializer.js +0 -387
  211. package/bin/ECS/Serialization/SceneSerializer.js.map +0 -1
  212. package/bin/ECS/Serialization/SerializationDecorators.d.ts +0 -136
  213. package/bin/ECS/Serialization/SerializationDecorators.d.ts.map +0 -1
  214. package/bin/ECS/Serialization/SerializationDecorators.js +0 -216
  215. package/bin/ECS/Serialization/SerializationDecorators.js.map +0 -1
  216. package/bin/ECS/Serialization/VersionMigration.d.ts +0 -156
  217. package/bin/ECS/Serialization/VersionMigration.d.ts.map +0 -1
  218. package/bin/ECS/Serialization/VersionMigration.js +0 -279
  219. package/bin/ECS/Serialization/VersionMigration.js.map +0 -1
  220. package/bin/ECS/Serialization/index.d.ts +0 -18
  221. package/bin/ECS/Serialization/index.d.ts.map +0 -1
  222. package/bin/ECS/Serialization/index.js +0 -18
  223. package/bin/ECS/Serialization/index.js.map +0 -1
  224. package/bin/ECS/Systems/EntityCache.d.ts +0 -114
  225. package/bin/ECS/Systems/EntityCache.d.ts.map +0 -1
  226. package/bin/ECS/Systems/EntityCache.js +0 -145
  227. package/bin/ECS/Systems/EntityCache.js.map +0 -1
  228. package/bin/ECS/Systems/EntitySystem.d.ts +0 -591
  229. package/bin/ECS/Systems/EntitySystem.d.ts.map +0 -1
  230. package/bin/ECS/Systems/EntitySystem.js +0 -1102
  231. package/bin/ECS/Systems/EntitySystem.js.map +0 -1
  232. package/bin/ECS/Systems/HierarchySystem.d.ts +0 -155
  233. package/bin/ECS/Systems/HierarchySystem.d.ts.map +0 -1
  234. package/bin/ECS/Systems/HierarchySystem.js +0 -498
  235. package/bin/ECS/Systems/HierarchySystem.js.map +0 -1
  236. package/bin/ECS/Systems/IntervalSystem.d.ts +0 -33
  237. package/bin/ECS/Systems/IntervalSystem.d.ts.map +0 -1
  238. package/bin/ECS/Systems/IntervalSystem.js +0 -50
  239. package/bin/ECS/Systems/IntervalSystem.js.map +0 -1
  240. package/bin/ECS/Systems/PassiveSystem.d.ts +0 -17
  241. package/bin/ECS/Systems/PassiveSystem.d.ts.map +0 -1
  242. package/bin/ECS/Systems/PassiveSystem.js +0 -19
  243. package/bin/ECS/Systems/PassiveSystem.js.map +0 -1
  244. package/bin/ECS/Systems/ProcessingSystem.d.ts +0 -21
  245. package/bin/ECS/Systems/ProcessingSystem.d.ts.map +0 -1
  246. package/bin/ECS/Systems/ProcessingSystem.js +0 -20
  247. package/bin/ECS/Systems/ProcessingSystem.js.map +0 -1
  248. package/bin/ECS/Systems/WorkerEntitySystem.d.ts +0 -313
  249. package/bin/ECS/Systems/WorkerEntitySystem.d.ts.map +0 -1
  250. package/bin/ECS/Systems/WorkerEntitySystem.js +0 -792
  251. package/bin/ECS/Systems/WorkerEntitySystem.js.map +0 -1
  252. package/bin/ECS/Systems/index.d.ts +0 -8
  253. package/bin/ECS/Systems/index.d.ts.map +0 -1
  254. package/bin/ECS/Systems/index.js +0 -8
  255. package/bin/ECS/Systems/index.js.map +0 -1
  256. package/bin/ECS/TypedEntity.d.ts +0 -192
  257. package/bin/ECS/TypedEntity.d.ts.map +0 -1
  258. package/bin/ECS/TypedEntity.js +0 -254
  259. package/bin/ECS/TypedEntity.js.map +0 -1
  260. package/bin/ECS/Utils/BigIntCompatibility.d.ts +0 -151
  261. package/bin/ECS/Utils/BigIntCompatibility.d.ts.map +0 -1
  262. package/bin/ECS/Utils/BigIntCompatibility.js +0 -476
  263. package/bin/ECS/Utils/BigIntCompatibility.js.map +0 -1
  264. package/bin/ECS/Utils/BitMaskHashMap.d.ts +0 -28
  265. package/bin/ECS/Utils/BitMaskHashMap.d.ts.map +0 -1
  266. package/bin/ECS/Utils/BitMaskHashMap.js +0 -127
  267. package/bin/ECS/Utils/BitMaskHashMap.js.map +0 -1
  268. package/bin/ECS/Utils/Bits.d.ts +0 -154
  269. package/bin/ECS/Utils/Bits.d.ts.map +0 -1
  270. package/bin/ECS/Utils/Bits.js +0 -331
  271. package/bin/ECS/Utils/Bits.js.map +0 -1
  272. package/bin/ECS/Utils/ComponentSparseSet.d.ts +0 -143
  273. package/bin/ECS/Utils/ComponentSparseSet.d.ts.map +0 -1
  274. package/bin/ECS/Utils/ComponentSparseSet.js +0 -347
  275. package/bin/ECS/Utils/ComponentSparseSet.js.map +0 -1
  276. package/bin/ECS/Utils/EntityList.d.ts +0 -115
  277. package/bin/ECS/Utils/EntityList.d.ts.map +0 -1
  278. package/bin/ECS/Utils/EntityList.js +0 -258
  279. package/bin/ECS/Utils/EntityList.js.map +0 -1
  280. package/bin/ECS/Utils/EntityProcessorList.d.ts +0 -56
  281. package/bin/ECS/Utils/EntityProcessorList.d.ts.map +0 -1
  282. package/bin/ECS/Utils/EntityProcessorList.js +0 -113
  283. package/bin/ECS/Utils/EntityProcessorList.js.map +0 -1
  284. package/bin/ECS/Utils/IdentifierPool.d.ts +0 -203
  285. package/bin/ECS/Utils/IdentifierPool.d.ts.map +0 -1
  286. package/bin/ECS/Utils/IdentifierPool.js +0 -325
  287. package/bin/ECS/Utils/IdentifierPool.js.map +0 -1
  288. package/bin/ECS/Utils/Matcher.d.ts +0 -171
  289. package/bin/ECS/Utils/Matcher.d.ts.map +0 -1
  290. package/bin/ECS/Utils/Matcher.js +0 -293
  291. package/bin/ECS/Utils/Matcher.js.map +0 -1
  292. package/bin/ECS/Utils/SparseSet.d.ts +0 -170
  293. package/bin/ECS/Utils/SparseSet.d.ts.map +0 -1
  294. package/bin/ECS/Utils/SparseSet.js +0 -280
  295. package/bin/ECS/Utils/SparseSet.js.map +0 -1
  296. package/bin/ECS/Utils/index.d.ts +0 -9
  297. package/bin/ECS/Utils/index.d.ts.map +0 -1
  298. package/bin/ECS/Utils/index.js +0 -10
  299. package/bin/ECS/Utils/index.js.map +0 -1
  300. package/bin/ECS/World.d.ts +0 -238
  301. package/bin/ECS/World.d.ts.map +0 -1
  302. package/bin/ECS/World.js +0 -416
  303. package/bin/ECS/World.js.map +0 -1
  304. package/bin/ECS/WorldManager.d.ts +0 -224
  305. package/bin/ECS/WorldManager.d.ts.map +0 -1
  306. package/bin/ECS/WorldManager.js +0 -365
  307. package/bin/ECS/WorldManager.js.map +0 -1
  308. package/bin/ECS/index.d.ts +0 -26
  309. package/bin/ECS/index.d.ts.map +0 -1
  310. package/bin/ECS/index.js +0 -21
  311. package/bin/ECS/index.js.map +0 -1
  312. package/bin/Platform/IPlatformAdapter.d.ts +0 -169
  313. package/bin/Platform/IPlatformAdapter.d.ts.map +0 -1
  314. package/bin/Platform/IPlatformAdapter.js +0 -2
  315. package/bin/Platform/IPlatformAdapter.js.map +0 -1
  316. package/bin/Platform/PlatformDetector.d.ts +0 -56
  317. package/bin/Platform/PlatformDetector.d.ts.map +0 -1
  318. package/bin/Platform/PlatformDetector.js +0 -247
  319. package/bin/Platform/PlatformDetector.js.map +0 -1
  320. package/bin/Platform/PlatformManager.d.ts +0 -50
  321. package/bin/Platform/PlatformManager.d.ts.map +0 -1
  322. package/bin/Platform/PlatformManager.js +0 -114
  323. package/bin/Platform/PlatformManager.js.map +0 -1
  324. package/bin/Platform/index.d.ts +0 -19
  325. package/bin/Platform/index.d.ts.map +0 -1
  326. package/bin/Platform/index.js +0 -29
  327. package/bin/Platform/index.js.map +0 -1
  328. package/bin/Plugins/DebugPlugin.d.ts +0 -156
  329. package/bin/Plugins/DebugPlugin.d.ts.map +0 -1
  330. package/bin/Plugins/DebugPlugin.js +0 -248
  331. package/bin/Plugins/DebugPlugin.js.map +0 -1
  332. package/bin/Plugins/index.d.ts +0 -2
  333. package/bin/Plugins/index.d.ts.map +0 -1
  334. package/bin/Plugins/index.js +0 -2
  335. package/bin/Plugins/index.js.map +0 -1
  336. package/bin/Types/IUpdatable.d.ts +0 -18
  337. package/bin/Types/IUpdatable.d.ts.map +0 -1
  338. package/bin/Types/IUpdatable.js +0 -7
  339. package/bin/Types/IUpdatable.js.map +0 -1
  340. package/bin/Types/TypeHelpers.d.ts +0 -238
  341. package/bin/Types/TypeHelpers.d.ts.map +0 -1
  342. package/bin/Types/TypeHelpers.js +0 -19
  343. package/bin/Types/TypeHelpers.js.map +0 -1
  344. package/bin/Types/index.d.ts +0 -466
  345. package/bin/Types/index.d.ts.map +0 -1
  346. package/bin/Types/index.js +0 -7
  347. package/bin/Types/index.js.map +0 -1
  348. package/bin/Utils/BinarySerializer.d.ts +0 -23
  349. package/bin/Utils/BinarySerializer.d.ts.map +0 -1
  350. package/bin/Utils/BinarySerializer.js +0 -100
  351. package/bin/Utils/BinarySerializer.js.map +0 -1
  352. package/bin/Utils/Debug/AdvancedProfilerCollector.d.ts +0 -153
  353. package/bin/Utils/Debug/AdvancedProfilerCollector.d.ts.map +0 -1
  354. package/bin/Utils/Debug/AdvancedProfilerCollector.js +0 -406
  355. package/bin/Utils/Debug/AdvancedProfilerCollector.js.map +0 -1
  356. package/bin/Utils/Debug/ComponentDataCollector.d.ts +0 -32
  357. package/bin/Utils/Debug/ComponentDataCollector.d.ts.map +0 -1
  358. package/bin/Utils/Debug/ComponentDataCollector.js +0 -250
  359. package/bin/Utils/Debug/ComponentDataCollector.js.map +0 -1
  360. package/bin/Utils/Debug/DebugConfigService.d.ts +0 -16
  361. package/bin/Utils/Debug/DebugConfigService.d.ts.map +0 -1
  362. package/bin/Utils/Debug/DebugConfigService.js +0 -42
  363. package/bin/Utils/Debug/DebugConfigService.js.map +0 -1
  364. package/bin/Utils/Debug/DebugManager.d.ts +0 -131
  365. package/bin/Utils/Debug/DebugManager.d.ts.map +0 -1
  366. package/bin/Utils/Debug/DebugManager.js +0 -848
  367. package/bin/Utils/Debug/DebugManager.js.map +0 -1
  368. package/bin/Utils/Debug/EntityDataCollector.d.ts +0 -115
  369. package/bin/Utils/Debug/EntityDataCollector.d.ts.map +0 -1
  370. package/bin/Utils/Debug/EntityDataCollector.js +0 -870
  371. package/bin/Utils/Debug/EntityDataCollector.js.map +0 -1
  372. package/bin/Utils/Debug/PerformanceDataCollector.d.ts +0 -31
  373. package/bin/Utils/Debug/PerformanceDataCollector.d.ts.map +0 -1
  374. package/bin/Utils/Debug/PerformanceDataCollector.js +0 -203
  375. package/bin/Utils/Debug/PerformanceDataCollector.js.map +0 -1
  376. package/bin/Utils/Debug/SceneDataCollector.d.ts +0 -18
  377. package/bin/Utils/Debug/SceneDataCollector.d.ts.map +0 -1
  378. package/bin/Utils/Debug/SceneDataCollector.js +0 -43
  379. package/bin/Utils/Debug/SceneDataCollector.js.map +0 -1
  380. package/bin/Utils/Debug/SystemDataCollector.d.ts +0 -14
  381. package/bin/Utils/Debug/SystemDataCollector.d.ts.map +0 -1
  382. package/bin/Utils/Debug/SystemDataCollector.js +0 -60
  383. package/bin/Utils/Debug/SystemDataCollector.js.map +0 -1
  384. package/bin/Utils/Debug/WebSocketManager.d.ts +0 -54
  385. package/bin/Utils/Debug/WebSocketManager.d.ts.map +0 -1
  386. package/bin/Utils/Debug/WebSocketManager.js +0 -141
  387. package/bin/Utils/Debug/WebSocketManager.js.map +0 -1
  388. package/bin/Utils/Debug/index.d.ts +0 -11
  389. package/bin/Utils/Debug/index.d.ts.map +0 -1
  390. package/bin/Utils/Debug/index.js +0 -10
  391. package/bin/Utils/Debug/index.js.map +0 -1
  392. package/bin/Utils/Emitter.d.ts +0 -61
  393. package/bin/Utils/Emitter.d.ts.map +0 -1
  394. package/bin/Utils/Emitter.js +0 -101
  395. package/bin/Utils/Emitter.js.map +0 -1
  396. package/bin/Utils/Extensions/NumberExtension.d.ts +0 -13
  397. package/bin/Utils/Extensions/NumberExtension.d.ts.map +0 -1
  398. package/bin/Utils/Extensions/NumberExtension.js +0 -17
  399. package/bin/Utils/Extensions/NumberExtension.js.map +0 -1
  400. package/bin/Utils/Extensions/TypeUtils.d.ts +0 -13
  401. package/bin/Utils/Extensions/TypeUtils.d.ts.map +0 -1
  402. package/bin/Utils/Extensions/TypeUtils.js +0 -15
  403. package/bin/Utils/Extensions/TypeUtils.js.map +0 -1
  404. package/bin/Utils/Extensions/index.d.ts +0 -3
  405. package/bin/Utils/Extensions/index.d.ts.map +0 -1
  406. package/bin/Utils/Extensions/index.js +0 -4
  407. package/bin/Utils/Extensions/index.js.map +0 -1
  408. package/bin/Utils/GlobalManager.d.ts +0 -29
  409. package/bin/Utils/GlobalManager.d.ts.map +0 -1
  410. package/bin/Utils/GlobalManager.js +0 -50
  411. package/bin/Utils/GlobalManager.js.map +0 -1
  412. package/bin/Utils/Logger/ConsoleLogger.d.ts +0 -74
  413. package/bin/Utils/Logger/ConsoleLogger.d.ts.map +0 -1
  414. package/bin/Utils/Logger/ConsoleLogger.js +0 -187
  415. package/bin/Utils/Logger/ConsoleLogger.js.map +0 -1
  416. package/bin/Utils/Logger/Constants.d.ts +0 -36
  417. package/bin/Utils/Logger/Constants.d.ts.map +0 -1
  418. package/bin/Utils/Logger/Constants.js +0 -40
  419. package/bin/Utils/Logger/Constants.js.map +0 -1
  420. package/bin/Utils/Logger/LoggerManager.d.ts +0 -91
  421. package/bin/Utils/Logger/LoggerManager.d.ts.map +0 -1
  422. package/bin/Utils/Logger/LoggerManager.js +0 -167
  423. package/bin/Utils/Logger/LoggerManager.js.map +0 -1
  424. package/bin/Utils/Logger/Types.d.ts +0 -40
  425. package/bin/Utils/Logger/Types.d.ts.map +0 -1
  426. package/bin/Utils/Logger/Types.js +0 -2
  427. package/bin/Utils/Logger/Types.js.map +0 -1
  428. package/bin/Utils/Logger/index.d.ts +0 -5
  429. package/bin/Utils/Logger/index.d.ts.map +0 -1
  430. package/bin/Utils/Logger/index.js +0 -5
  431. package/bin/Utils/Logger/index.js.map +0 -1
  432. package/bin/Utils/PerformanceMonitor.d.ts +0 -196
  433. package/bin/Utils/PerformanceMonitor.d.ts.map +0 -1
  434. package/bin/Utils/PerformanceMonitor.js +0 -244
  435. package/bin/Utils/PerformanceMonitor.js.map +0 -1
  436. package/bin/Utils/Pool/IPoolable.d.ts +0 -29
  437. package/bin/Utils/Pool/IPoolable.d.ts.map +0 -1
  438. package/bin/Utils/Pool/IPoolable.js +0 -2
  439. package/bin/Utils/Pool/IPoolable.js.map +0 -1
  440. package/bin/Utils/Pool/Pool.d.ts +0 -109
  441. package/bin/Utils/Pool/Pool.d.ts.map +0 -1
  442. package/bin/Utils/Pool/Pool.js +0 -238
  443. package/bin/Utils/Pool/Pool.js.map +0 -1
  444. package/bin/Utils/Pool/PoolManager.d.ts +0 -96
  445. package/bin/Utils/Pool/PoolManager.d.ts.map +0 -1
  446. package/bin/Utils/Pool/PoolManager.js +0 -199
  447. package/bin/Utils/Pool/PoolManager.js.map +0 -1
  448. package/bin/Utils/Pool/index.d.ts +0 -4
  449. package/bin/Utils/Pool/index.d.ts.map +0 -1
  450. package/bin/Utils/Pool/index.js +0 -4
  451. package/bin/Utils/Pool/index.js.map +0 -1
  452. package/bin/Utils/Profiler/AutoProfiler.d.ts +0 -160
  453. package/bin/Utils/Profiler/AutoProfiler.d.ts.map +0 -1
  454. package/bin/Utils/Profiler/AutoProfiler.js +0 -503
  455. package/bin/Utils/Profiler/AutoProfiler.js.map +0 -1
  456. package/bin/Utils/Profiler/ProfilerSDK.d.ts +0 -175
  457. package/bin/Utils/Profiler/ProfilerSDK.d.ts.map +0 -1
  458. package/bin/Utils/Profiler/ProfilerSDK.js +0 -727
  459. package/bin/Utils/Profiler/ProfilerSDK.js.map +0 -1
  460. package/bin/Utils/Profiler/ProfilerTypes.d.ts +0 -218
  461. package/bin/Utils/Profiler/ProfilerTypes.d.ts.map +0 -1
  462. package/bin/Utils/Profiler/ProfilerTypes.js +0 -47
  463. package/bin/Utils/Profiler/ProfilerTypes.js.map +0 -1
  464. package/bin/Utils/Profiler/index.d.ts +0 -8
  465. package/bin/Utils/Profiler/index.d.ts.map +0 -1
  466. package/bin/Utils/Profiler/index.js +0 -7
  467. package/bin/Utils/Profiler/index.js.map +0 -1
  468. package/bin/Utils/Time.d.ts +0 -47
  469. package/bin/Utils/Time.d.ts.map +0 -1
  470. package/bin/Utils/Time.js +0 -64
  471. package/bin/Utils/Time.js.map +0 -1
  472. package/bin/Utils/Timers/ITimer.d.ts +0 -16
  473. package/bin/Utils/Timers/ITimer.d.ts.map +0 -1
  474. package/bin/Utils/Timers/ITimer.js +0 -2
  475. package/bin/Utils/Timers/ITimer.js.map +0 -1
  476. package/bin/Utils/Timers/Timer.d.ts +0 -30
  477. package/bin/Utils/Timers/Timer.d.ts.map +0 -1
  478. package/bin/Utils/Timers/Timer.js +0 -58
  479. package/bin/Utils/Timers/Timer.js.map +0 -1
  480. package/bin/Utils/Timers/TimerManager.d.ts +0 -26
  481. package/bin/Utils/Timers/TimerManager.d.ts.map +0 -1
  482. package/bin/Utils/Timers/TimerManager.js +0 -48
  483. package/bin/Utils/Timers/TimerManager.js.map +0 -1
  484. package/bin/Utils/index.d.ts +0 -11
  485. package/bin/Utils/index.d.ts.map +0 -1
  486. package/bin/Utils/index.js +0 -11
  487. package/bin/Utils/index.js.map +0 -1
  488. package/bin/index.d.ts +0 -29
  489. package/bin/index.d.ts.map +0 -1
  490. package/bin/index.js +0 -36
  491. package/bin/index.js.map +0 -1
@@ -1,160 +0,0 @@
1
- /**
2
- * 自动性能分析器
3
- *
4
- * 提供自动函数包装和采样分析功能,无需手动埋点即可收集性能数据。
5
- *
6
- * 支持三种分析模式:
7
- * 1. 自动包装模式 - 使用 Proxy 自动包装类的所有方法
8
- * 2. 采样分析模式 - 定时采样调用栈(需要浏览器支持)
9
- * 3. 装饰器模式 - 使用 @Profile() 装饰器手动标记方法
10
- */
11
- import { ProfileCategory } from './ProfilerTypes';
12
- /**
13
- * 自动分析配置
14
- */
15
- export interface AutoProfilerConfig {
16
- /** 是否启用自动包装 */
17
- enabled: boolean;
18
- /** 采样间隔(毫秒),用于采样分析器 */
19
- sampleInterval: number;
20
- /** 最小记录耗时(毫秒),低于此值的调用不记录 */
21
- minDuration: number;
22
- /** 是否追踪异步方法 */
23
- trackAsync: boolean;
24
- /** 排除的方法名模式 */
25
- excludePatterns: RegExp[];
26
- /** 最大采样缓冲区大小 */
27
- maxBufferSize: number;
28
- }
29
- /**
30
- * 采样数据
31
- */
32
- interface SampleData {
33
- timestamp: number;
34
- stack: string[];
35
- duration?: number;
36
- }
37
- /**
38
- * 自动性能分析器
39
- */
40
- export declare class AutoProfiler {
41
- private static instance;
42
- private config;
43
- private wrappedObjects;
44
- private samplingProfiler;
45
- private registeredClasses;
46
- private constructor();
47
- /**
48
- * 获取单例实例
49
- */
50
- static getInstance(config?: Partial<AutoProfilerConfig>): AutoProfiler;
51
- /**
52
- * 重置实例
53
- */
54
- static resetInstance(): void;
55
- /**
56
- * 启用/禁用自动分析
57
- */
58
- static setEnabled(enabled: boolean): void;
59
- /**
60
- * 注册类以进行自动分析
61
- * 该类的所有实例方法都会被自动包装
62
- */
63
- static registerClass<T extends new (...args: any[]) => any>(constructor: T, category?: ProfileCategory, className?: string): T;
64
- /**
65
- * 包装对象实例的所有方法
66
- */
67
- static wrapInstance<T extends object>(instance: T, className: string, category?: ProfileCategory): T;
68
- /**
69
- * 包装单个函数
70
- */
71
- static wrapFunction<T extends (...args: any[]) => any>(fn: T, name: string, category?: ProfileCategory): T;
72
- /**
73
- * 启动采样分析器
74
- */
75
- static startSampling(): void;
76
- /**
77
- * 停止采样分析器
78
- */
79
- static stopSampling(): SampleData[];
80
- /**
81
- * 设置启用状态
82
- */
83
- setEnabled(enabled: boolean): void;
84
- /**
85
- * 注册类以进行自动分析
86
- */
87
- registerClass<T extends new (...args: any[]) => any>(constructor: T, category?: ProfileCategory, className?: string): T;
88
- /**
89
- * 包装对象实例的所有方法
90
- */
91
- wrapInstance<T extends object>(instance: T, className: string, category?: ProfileCategory): T;
92
- /**
93
- * 包装单个函数
94
- */
95
- wrapFunction<T extends (...args: any[]) => any>(fn: T, name: string, category?: ProfileCategory): T;
96
- /**
97
- * 启动采样分析器
98
- */
99
- startSampling(): void;
100
- /**
101
- * 停止采样分析器
102
- */
103
- stopSampling(): SampleData[];
104
- /**
105
- * 释放资源
106
- */
107
- dispose(): void;
108
- /**
109
- * 创建包装后的方法
110
- */
111
- private createWrappedMethod;
112
- /**
113
- * 获取对象的所有方法名
114
- */
115
- private getAllMethodNames;
116
- /**
117
- * 获取属性描述符
118
- */
119
- private getPropertyDescriptor;
120
- /**
121
- * 判断是否应该排除该方法
122
- */
123
- private shouldExcludeMethod;
124
- }
125
- /**
126
- * @Profile 装饰器
127
- * 用于标记需要性能分析的方法
128
- *
129
- * @example
130
- * ```typescript
131
- * class MySystem extends System {
132
- * @Profile()
133
- * update() {
134
- * // 方法执行时间会被自动记录
135
- * }
136
- *
137
- * @Profile('customName', ProfileCategory.Physics)
138
- * calculatePhysics() {
139
- * // 使用自定义名称和分类
140
- * }
141
- * }
142
- * ```
143
- */
144
- export declare function Profile(name?: string, category?: ProfileCategory): MethodDecorator;
145
- /**
146
- * @ProfileClass 装饰器
147
- * 用于自动包装类的所有方法
148
- *
149
- * @example
150
- * ```typescript
151
- * @ProfileClass(ProfileCategory.Physics)
152
- * class PhysicsSystem extends System {
153
- * update() { ... } // 自动被包装
154
- * calculate() { ... } // 自动被包装
155
- * }
156
- * ```
157
- */
158
- export declare function ProfileClass(category?: ProfileCategory): ClassDecorator;
159
- export {};
160
- //# sourceMappingURL=AutoProfiler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoProfiler.d.ts","sourceRoot":"","sources":["../../../src/Utils/Profiler/AutoProfiler.ts"],"names":[],"mappings":"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"}
@@ -1,503 +0,0 @@
1
- /**
2
- * 自动性能分析器
3
- *
4
- * 提供自动函数包装和采样分析功能,无需手动埋点即可收集性能数据。
5
- *
6
- * 支持三种分析模式:
7
- * 1. 自动包装模式 - 使用 Proxy 自动包装类的所有方法
8
- * 2. 采样分析模式 - 定时采样调用栈(需要浏览器支持)
9
- * 3. 装饰器模式 - 使用 @Profile() 装饰器手动标记方法
10
- */
11
- import { ProfilerSDK } from './ProfilerSDK';
12
- import { ProfileCategory } from './ProfilerTypes';
13
- const DEFAULT_CONFIG = {
14
- enabled: true,
15
- sampleInterval: 10,
16
- minDuration: 0.1, // 0.1ms
17
- trackAsync: true,
18
- excludePatterns: [
19
- /^_/, // 私有方法
20
- /^get[A-Z]/, // getter 方法
21
- /^set[A-Z]/, // setter 方法
22
- /^is[A-Z]/, // 布尔检查方法
23
- /^has[A-Z]/, // 存在检查方法
24
- ],
25
- maxBufferSize: 10000
26
- };
27
- /**
28
- * 自动性能分析器
29
- */
30
- export class AutoProfiler {
31
- constructor(config) {
32
- this.wrappedObjects = new WeakMap();
33
- this.samplingProfiler = null;
34
- this.registeredClasses = new Map();
35
- this.config = { ...DEFAULT_CONFIG, ...config };
36
- }
37
- /**
38
- * 获取单例实例
39
- */
40
- static getInstance(config) {
41
- if (!AutoProfiler.instance) {
42
- AutoProfiler.instance = new AutoProfiler(config);
43
- }
44
- return AutoProfiler.instance;
45
- }
46
- /**
47
- * 重置实例
48
- */
49
- static resetInstance() {
50
- if (AutoProfiler.instance) {
51
- AutoProfiler.instance.dispose();
52
- AutoProfiler.instance = null;
53
- }
54
- }
55
- /**
56
- * 启用/禁用自动分析
57
- */
58
- static setEnabled(enabled) {
59
- AutoProfiler.getInstance().setEnabled(enabled);
60
- }
61
- /**
62
- * 注册类以进行自动分析
63
- * 该类的所有实例方法都会被自动包装
64
- */
65
- static registerClass(constructor, category = ProfileCategory.Custom, className) {
66
- return AutoProfiler.getInstance().registerClass(constructor, category, className);
67
- }
68
- /**
69
- * 包装对象实例的所有方法
70
- */
71
- static wrapInstance(instance, className, category = ProfileCategory.Custom) {
72
- return AutoProfiler.getInstance().wrapInstance(instance, className, category);
73
- }
74
- /**
75
- * 包装单个函数
76
- */
77
- static wrapFunction(fn, name, category = ProfileCategory.Custom) {
78
- return AutoProfiler.getInstance().wrapFunction(fn, name, category);
79
- }
80
- /**
81
- * 启动采样分析器
82
- */
83
- static startSampling() {
84
- AutoProfiler.getInstance().startSampling();
85
- }
86
- /**
87
- * 停止采样分析器
88
- */
89
- static stopSampling() {
90
- return AutoProfiler.getInstance().stopSampling();
91
- }
92
- /**
93
- * 设置启用状态
94
- */
95
- setEnabled(enabled) {
96
- this.config.enabled = enabled;
97
- if (!enabled && this.samplingProfiler) {
98
- this.samplingProfiler.stop();
99
- }
100
- }
101
- /**
102
- * 注册类以进行自动分析
103
- */
104
- registerClass(constructor, category = ProfileCategory.Custom, className) {
105
- const name = className || constructor.name;
106
- this.registeredClasses.set(name, { constructor, category });
107
- // eslint-disable-next-line @typescript-eslint/no-this-alias -- Required for Proxy construct handler
108
- const self = this;
109
- // 创建代理类
110
- const ProxiedClass = new Proxy(constructor, {
111
- construct(target, args, newTarget) {
112
- const instance = Reflect.construct(target, args, newTarget);
113
- if (self.config.enabled) {
114
- self.wrapInstance(instance, name, category);
115
- }
116
- return instance;
117
- }
118
- });
119
- return ProxiedClass;
120
- }
121
- /**
122
- * 包装对象实例的所有方法
123
- */
124
- wrapInstance(instance, className, category = ProfileCategory.Custom) {
125
- if (!this.config.enabled) {
126
- return instance;
127
- }
128
- // 检查是否已经包装过
129
- if (this.wrappedObjects.has(instance)) {
130
- return instance;
131
- }
132
- const wrapInfoMap = new Map();
133
- this.wrappedObjects.set(instance, wrapInfoMap);
134
- // 获取所有方法(包括原型链上的)
135
- const methodNames = this.getAllMethodNames(instance);
136
- for (const methodName of methodNames) {
137
- if (this.shouldExcludeMethod(methodName)) {
138
- continue;
139
- }
140
- const descriptor = this.getPropertyDescriptor(instance, methodName);
141
- if (!descriptor || typeof descriptor.value !== 'function') {
142
- continue;
143
- }
144
- const original = descriptor.value;
145
- const wrapped = this.createWrappedMethod(original, className, methodName, category);
146
- wrapInfoMap.set(methodName, {
147
- className,
148
- methodName,
149
- category,
150
- original
151
- });
152
- try {
153
- instance[methodName] = wrapped;
154
- }
155
- catch {
156
- // 某些属性可能是只读的
157
- }
158
- }
159
- return instance;
160
- }
161
- /**
162
- * 包装单个函数
163
- */
164
- wrapFunction(fn, name, category = ProfileCategory.Custom) {
165
- if (!this.config.enabled)
166
- return fn;
167
- // eslint-disable-next-line @typescript-eslint/no-this-alias -- Required for wrapped function closure
168
- const self = this;
169
- const wrapped = function (...args) {
170
- const handle = ProfilerSDK.beginSample(name, category);
171
- try {
172
- const result = fn.apply(this, args);
173
- // 处理 Promise
174
- if (self.config.trackAsync && result instanceof Promise) {
175
- return result.finally(() => {
176
- ProfilerSDK.endSample(handle);
177
- });
178
- }
179
- // 同步函数,立即结束采样
180
- ProfilerSDK.endSample(handle);
181
- return result;
182
- }
183
- catch (error) {
184
- // 发生错误时也要结束采样
185
- ProfilerSDK.endSample(handle);
186
- throw error;
187
- }
188
- };
189
- // 保留原函数的属性
190
- Object.defineProperty(wrapped, 'name', { value: fn.name || name });
191
- Object.defineProperty(wrapped, 'length', { value: fn.length });
192
- return wrapped;
193
- }
194
- /**
195
- * 启动采样分析器
196
- */
197
- startSampling() {
198
- if (!this.samplingProfiler) {
199
- this.samplingProfiler = new SamplingProfiler(this.config);
200
- }
201
- this.samplingProfiler.start();
202
- }
203
- /**
204
- * 停止采样分析器
205
- */
206
- stopSampling() {
207
- if (!this.samplingProfiler) {
208
- return [];
209
- }
210
- return this.samplingProfiler.stop();
211
- }
212
- /**
213
- * 释放资源
214
- */
215
- dispose() {
216
- if (this.samplingProfiler) {
217
- this.samplingProfiler.stop();
218
- this.samplingProfiler = null;
219
- }
220
- this.registeredClasses.clear();
221
- }
222
- /**
223
- * 创建包装后的方法
224
- */
225
- createWrappedMethod(original, className, methodName, category) {
226
- // eslint-disable-next-line @typescript-eslint/no-this-alias -- Required for wrapped method closure
227
- const self = this;
228
- const fullName = `${className}.${methodName}`;
229
- const minDuration = this.config.minDuration;
230
- return function (...args) {
231
- if (!self.config.enabled || !ProfilerSDK.isEnabled()) {
232
- return original.apply(this, args);
233
- }
234
- const startTime = performance.now();
235
- const handle = ProfilerSDK.beginSample(fullName, category);
236
- try {
237
- const result = original.apply(this, args);
238
- // 处理异步方法
239
- if (self.config.trackAsync && result instanceof Promise) {
240
- return result.then((value) => {
241
- const duration = performance.now() - startTime;
242
- if (duration >= minDuration) {
243
- ProfilerSDK.endSample(handle);
244
- }
245
- return value;
246
- }, (error) => {
247
- ProfilerSDK.endSample(handle);
248
- throw error;
249
- });
250
- }
251
- // 同步方法,检查最小耗时后结束采样
252
- const duration = performance.now() - startTime;
253
- if (duration >= minDuration) {
254
- ProfilerSDK.endSample(handle);
255
- }
256
- return result;
257
- }
258
- catch (error) {
259
- // 发生错误时也要结束采样
260
- ProfilerSDK.endSample(handle);
261
- throw error;
262
- }
263
- };
264
- }
265
- /**
266
- * 获取对象的所有方法名
267
- */
268
- getAllMethodNames(obj) {
269
- const methods = new Set();
270
- let current = obj;
271
- while (current && current !== Object.prototype) {
272
- for (const name of Object.getOwnPropertyNames(current)) {
273
- if (name !== 'constructor') {
274
- methods.add(name);
275
- }
276
- }
277
- current = Object.getPrototypeOf(current);
278
- }
279
- return Array.from(methods);
280
- }
281
- /**
282
- * 获取属性描述符
283
- */
284
- getPropertyDescriptor(obj, name) {
285
- let current = obj;
286
- while (current && current !== Object.prototype) {
287
- const descriptor = Object.getOwnPropertyDescriptor(current, name);
288
- if (descriptor)
289
- return descriptor;
290
- current = Object.getPrototypeOf(current);
291
- }
292
- return undefined;
293
- }
294
- /**
295
- * 判断是否应该排除该方法
296
- */
297
- shouldExcludeMethod(methodName) {
298
- // 排除构造函数和内置方法
299
- if (methodName === 'constructor' || methodName.startsWith('__')) {
300
- return true;
301
- }
302
- // 检查排除模式
303
- for (const pattern of this.config.excludePatterns) {
304
- if (pattern.test(methodName)) {
305
- return true;
306
- }
307
- }
308
- return false;
309
- }
310
- }
311
- AutoProfiler.instance = null;
312
- /**
313
- * 采样分析器
314
- * 使用定时器定期采样调用栈信息
315
- */
316
- class SamplingProfiler {
317
- constructor(config) {
318
- this.samples = [];
319
- this.intervalId = null;
320
- this.isRunning = false;
321
- this.config = config;
322
- }
323
- /**
324
- * 开始采样
325
- */
326
- start() {
327
- if (this.isRunning)
328
- return;
329
- this.isRunning = true;
330
- this.samples = [];
331
- // 使用 requestAnimationFrame 或 setInterval 进行采样
332
- const sample = () => {
333
- if (!this.isRunning)
334
- return;
335
- const stack = this.captureStack();
336
- if (stack.length > 0) {
337
- this.samples.push({
338
- timestamp: performance.now(),
339
- stack
340
- });
341
- // 限制缓冲区大小
342
- if (this.samples.length > this.config.maxBufferSize) {
343
- this.samples.shift();
344
- }
345
- }
346
- // 继续采样
347
- if (this.config.sampleInterval < 16) {
348
- // 高频采样使用 setTimeout
349
- this.intervalId = setTimeout(sample, this.config.sampleInterval);
350
- }
351
- else {
352
- this.intervalId = setTimeout(sample, this.config.sampleInterval);
353
- }
354
- };
355
- sample();
356
- }
357
- /**
358
- * 停止采样并返回数据
359
- */
360
- stop() {
361
- this.isRunning = false;
362
- if (this.intervalId !== null) {
363
- clearTimeout(this.intervalId);
364
- this.intervalId = null;
365
- }
366
- return [...this.samples];
367
- }
368
- /**
369
- * 捕获当前调用栈
370
- */
371
- captureStack() {
372
- try {
373
- // 创建 Error 对象获取调用栈
374
- const error = new Error();
375
- const stack = error.stack || '';
376
- // 解析调用栈
377
- const lines = stack.split('\n').slice(3); // 跳过 Error 和 captureStack/sample
378
- const frames = [];
379
- for (const line of lines) {
380
- const frame = this.parseStackFrame(line);
381
- if (frame && !this.isInternalFrame(frame)) {
382
- frames.push(frame);
383
- }
384
- }
385
- return frames;
386
- }
387
- catch {
388
- return [];
389
- }
390
- }
391
- /**
392
- * 解析调用栈帧
393
- */
394
- parseStackFrame(line) {
395
- // Chrome/Edge 格式: " at functionName (file:line:col)"
396
- // Firefox 格式: "functionName@file:line:col"
397
- // Safari 格式: "functionName@file:line:col"
398
- line = line.trim();
399
- // Chrome 格式
400
- let match = line.match(/at\s+(.+?)\s+\(/);
401
- if (match && match[1]) {
402
- return match[1];
403
- }
404
- // Chrome 匿名函数格式
405
- match = line.match(/at\s+(.+)/);
406
- if (match && match[1]) {
407
- const name = match[1];
408
- if (!name.includes('(')) {
409
- return name;
410
- }
411
- }
412
- // Firefox/Safari 格式
413
- match = line.match(/^(.+?)@/);
414
- if (match && match[1]) {
415
- return match[1];
416
- }
417
- return null;
418
- }
419
- /**
420
- * 判断是否是内部帧(应该过滤掉)
421
- */
422
- isInternalFrame(frame) {
423
- const internalPatterns = [
424
- 'SamplingProfiler',
425
- 'AutoProfiler',
426
- 'ProfilerSDK',
427
- 'setTimeout',
428
- 'setInterval',
429
- 'requestAnimationFrame',
430
- '<anonymous>',
431
- 'eval'
432
- ];
433
- return internalPatterns.some(pattern => frame.includes(pattern));
434
- }
435
- }
436
- /**
437
- * @Profile 装饰器
438
- * 用于标记需要性能分析的方法
439
- *
440
- * @example
441
- * ```typescript
442
- * class MySystem extends System {
443
- * @Profile()
444
- * update() {
445
- * // 方法执行时间会被自动记录
446
- * }
447
- *
448
- * @Profile('customName', ProfileCategory.Physics)
449
- * calculatePhysics() {
450
- * // 使用自定义名称和分类
451
- * }
452
- * }
453
- * ```
454
- */
455
- export function Profile(name, category = ProfileCategory.Custom) {
456
- return function (target, propertyKey, descriptor) {
457
- const original = descriptor.value;
458
- const methodName = name || `${target.constructor.name}.${String(propertyKey)}`;
459
- descriptor.value = function (...args) {
460
- if (!ProfilerSDK.isEnabled()) {
461
- return original.apply(this, args);
462
- }
463
- const handle = ProfilerSDK.beginSample(methodName, category);
464
- try {
465
- const result = original.apply(this, args);
466
- // 处理异步方法
467
- if (result instanceof Promise) {
468
- return result.finally(() => {
469
- ProfilerSDK.endSample(handle);
470
- });
471
- }
472
- // 同步方法,立即结束采样
473
- ProfilerSDK.endSample(handle);
474
- return result;
475
- }
476
- catch (error) {
477
- // 发生错误时也要结束采样
478
- ProfilerSDK.endSample(handle);
479
- throw error;
480
- }
481
- };
482
- return descriptor;
483
- };
484
- }
485
- /**
486
- * @ProfileClass 装饰器
487
- * 用于自动包装类的所有方法
488
- *
489
- * @example
490
- * ```typescript
491
- * @ProfileClass(ProfileCategory.Physics)
492
- * class PhysicsSystem extends System {
493
- * update() { ... } // 自动被包装
494
- * calculate() { ... } // 自动被包装
495
- * }
496
- * ```
497
- */
498
- export function ProfileClass(category = ProfileCategory.Custom) {
499
- return function (constructor) {
500
- return AutoProfiler.registerClass(constructor, category);
501
- };
502
- }
503
- //# sourceMappingURL=AutoProfiler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AutoProfiler.js","sourceRoot":"","sources":["../../../src/Utils/Profiler/AutoProfiler.ts"],"names":[],"mappings":"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"}