@vived/core 1.4.2 → 1.4.4

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 (528) hide show
  1. package/README.md +142 -20
  2. package/dist/cjs/AppObject/AppObject.js +53 -0
  3. package/dist/cjs/AppObject/AppObject.js.map +1 -1
  4. package/dist/cjs/AppObject/AppObjectComponent.js +78 -0
  5. package/dist/cjs/AppObject/AppObjectComponent.js.map +1 -1
  6. package/dist/cjs/AppObject/AppObjectController.js +22 -0
  7. package/dist/cjs/AppObject/AppObjectController.js.map +1 -1
  8. package/dist/cjs/AppObject/AppObjectEntity.js +52 -0
  9. package/dist/cjs/AppObject/AppObjectEntity.js.map +1 -1
  10. package/dist/cjs/AppObject/AppObjectEntityRepo.js +75 -1
  11. package/dist/cjs/AppObject/AppObjectEntityRepo.js.map +1 -1
  12. package/dist/cjs/AppObject/AppObjectPM.js +46 -0
  13. package/dist/cjs/AppObject/AppObjectPM.js.map +1 -1
  14. package/dist/cjs/AppObject/AppObjectRepo.js +20 -0
  15. package/dist/cjs/AppObject/AppObjectRepo.js.map +1 -1
  16. package/dist/cjs/AppObject/AppObjectUC.js +23 -0
  17. package/dist/cjs/AppObject/AppObjectUC.js.map +1 -1
  18. package/dist/cjs/AppObject/AppObjectView.js +22 -0
  19. package/dist/cjs/AppObject/AppObjectView.js.map +1 -1
  20. package/dist/cjs/AppObject/getSingletonComponent.js +19 -0
  21. package/dist/cjs/AppObject/getSingletonComponent.js.map +1 -1
  22. package/dist/cjs/Entities/MemoizedAngle.js +21 -0
  23. package/dist/cjs/Entities/MemoizedAngle.js.map +1 -1
  24. package/dist/cjs/Entities/MemoizedBoolean.js +21 -0
  25. package/dist/cjs/Entities/MemoizedBoolean.js.map +1 -1
  26. package/dist/cjs/Entities/MemoizedColor.js +21 -0
  27. package/dist/cjs/Entities/MemoizedColor.js.map +1 -1
  28. package/dist/cjs/Entities/MemoizedNumber.js +21 -0
  29. package/dist/cjs/Entities/MemoizedNumber.js.map +1 -1
  30. package/dist/cjs/Entities/MemoizedQuaternion.js +21 -0
  31. package/dist/cjs/Entities/MemoizedQuaternion.js.map +1 -1
  32. package/dist/cjs/Entities/MemoizedString.js +21 -0
  33. package/dist/cjs/Entities/MemoizedString.js.map +1 -1
  34. package/dist/cjs/Entities/MemoizedVector2.js +21 -0
  35. package/dist/cjs/Entities/MemoizedVector2.js.map +1 -1
  36. package/dist/cjs/Entities/MemoizedVector3.js +21 -0
  37. package/dist/cjs/Entities/MemoizedVector3.js.map +1 -1
  38. package/dist/cjs/Entities/ObservableEntity.js +17 -0
  39. package/dist/cjs/Entities/ObservableEntity.js.map +1 -1
  40. package/dist/cjs/Entities/ObserverList.js +21 -0
  41. package/dist/cjs/Entities/ObserverList.js.map +1 -1
  42. package/dist/cjs/Entities/RangedNumber.js +29 -0
  43. package/dist/cjs/Entities/RangedNumber.js.map +1 -1
  44. package/dist/cjs/ExampleFeature/Adapters/examplePmAdapter.js +64 -0
  45. package/dist/cjs/ExampleFeature/Adapters/examplePmAdapter.js.map +1 -0
  46. package/dist/cjs/ExampleFeature/Adapters/exampleSingletonPmAdapter.js +60 -0
  47. package/dist/cjs/ExampleFeature/Adapters/exampleSingletonPmAdapter.js.map +1 -0
  48. package/dist/cjs/ExampleFeature/Adapters/index.js +19 -0
  49. package/dist/cjs/ExampleFeature/Adapters/index.js.map +1 -0
  50. package/dist/cjs/ExampleFeature/Controllers/index.js +19 -0
  51. package/dist/cjs/ExampleFeature/Controllers/index.js.map +1 -0
  52. package/dist/cjs/ExampleFeature/Controllers/setExampleText.js +48 -0
  53. package/dist/cjs/ExampleFeature/Controllers/setExampleText.js.map +1 -0
  54. package/dist/cjs/ExampleFeature/Controllers/toggleExampleBoolean.js +47 -0
  55. package/dist/cjs/ExampleFeature/Controllers/toggleExampleBoolean.js.map +1 -0
  56. package/dist/cjs/ExampleFeature/Entities/ExampleEntity.js +90 -0
  57. package/dist/cjs/ExampleFeature/Entities/ExampleEntity.js.map +1 -0
  58. package/dist/cjs/ExampleFeature/Entities/ExampleRepo.js +113 -0
  59. package/dist/cjs/ExampleFeature/Entities/ExampleRepo.js.map +1 -0
  60. package/dist/cjs/ExampleFeature/Entities/ExampleSingletonEntity.js +69 -0
  61. package/dist/cjs/ExampleFeature/Entities/ExampleSingletonEntity.js.map +1 -0
  62. package/dist/cjs/ExampleFeature/Entities/index.js +20 -0
  63. package/dist/cjs/ExampleFeature/Entities/index.js.map +1 -0
  64. package/dist/cjs/ExampleFeature/Factory/index.js +18 -0
  65. package/dist/cjs/ExampleFeature/Factory/index.js.map +1 -0
  66. package/dist/cjs/ExampleFeature/Factory/setupExampleFeature.js +29 -0
  67. package/dist/cjs/ExampleFeature/Factory/setupExampleFeature.js.map +1 -0
  68. package/dist/cjs/ExampleFeature/Mocks/MockEditExampleStringUC.js +47 -0
  69. package/dist/cjs/ExampleFeature/Mocks/MockEditExampleStringUC.js.map +1 -0
  70. package/dist/cjs/ExampleFeature/Mocks/MockExamplePM.js +48 -0
  71. package/dist/cjs/ExampleFeature/Mocks/MockExamplePM.js.map +1 -0
  72. package/dist/cjs/ExampleFeature/Mocks/MockExampleSingletonPM.js +59 -0
  73. package/dist/cjs/ExampleFeature/Mocks/MockExampleSingletonPM.js.map +1 -0
  74. package/dist/cjs/ExampleFeature/Mocks/MockToggleExampleBooleanUC.js +57 -0
  75. package/dist/cjs/ExampleFeature/Mocks/MockToggleExampleBooleanUC.js.map +1 -0
  76. package/dist/cjs/ExampleFeature/Mocks/index.js +21 -0
  77. package/dist/cjs/ExampleFeature/Mocks/index.js.map +1 -0
  78. package/dist/cjs/ExampleFeature/PMs/ExamplePM.js +97 -0
  79. package/dist/cjs/ExampleFeature/PMs/ExamplePM.js.map +1 -0
  80. package/dist/cjs/ExampleFeature/PMs/ExampleSingletonPM.js +102 -0
  81. package/dist/cjs/ExampleFeature/PMs/ExampleSingletonPM.js.map +1 -0
  82. package/dist/cjs/ExampleFeature/PMs/index.js +19 -0
  83. package/dist/cjs/ExampleFeature/PMs/index.js.map +1 -0
  84. package/dist/cjs/ExampleFeature/UCs/EditExampleStringUC.js +87 -0
  85. package/dist/cjs/ExampleFeature/UCs/EditExampleStringUC.js.map +1 -0
  86. package/dist/cjs/ExampleFeature/UCs/ToggleExampleBooleanUC.js +79 -0
  87. package/dist/cjs/ExampleFeature/UCs/ToggleExampleBooleanUC.js.map +1 -0
  88. package/dist/cjs/ExampleFeature/UCs/index.js +19 -0
  89. package/dist/cjs/ExampleFeature/UCs/index.js.map +1 -0
  90. package/dist/cjs/ExampleFeature/index.js +24 -0
  91. package/dist/cjs/ExampleFeature/index.js.map +1 -0
  92. package/dist/cjs/Types/PmAdapter.js.map +1 -1
  93. package/dist/cjs/Types/SingletonPmAdapter.js.map +1 -1
  94. package/dist/cjs/ValueObjects/Angle.js +1 -1
  95. package/dist/cjs/ValueObjects/Angle.js.map +1 -1
  96. package/dist/cjs/ValueObjects/LineSegment2D.js +6 -6
  97. package/dist/cjs/ValueObjects/LineSegment2D.js.map +1 -1
  98. package/dist/cjs/ValueObjects/Matrix.js +6 -6
  99. package/dist/cjs/ValueObjects/Matrix.js.map +1 -1
  100. package/dist/cjs/ValueObjects/Quaternion.js +17 -17
  101. package/dist/cjs/ValueObjects/Quaternion.js.map +1 -1
  102. package/dist/cjs/ValueObjects/Vector2.js +15 -8
  103. package/dist/cjs/ValueObjects/Vector2.js.map +1 -1
  104. package/dist/cjs/index.js +1 -0
  105. package/dist/cjs/index.js.map +1 -1
  106. package/dist/esm/AppObject/AppObject.js +53 -0
  107. package/dist/esm/AppObject/AppObject.js.map +1 -1
  108. package/dist/esm/AppObject/AppObjectComponent.js +78 -0
  109. package/dist/esm/AppObject/AppObjectComponent.js.map +1 -1
  110. package/dist/esm/AppObject/AppObjectController.js +22 -0
  111. package/dist/esm/AppObject/AppObjectController.js.map +1 -1
  112. package/dist/esm/AppObject/AppObjectEntity.js +52 -0
  113. package/dist/esm/AppObject/AppObjectEntity.js.map +1 -1
  114. package/dist/esm/AppObject/AppObjectEntityRepo.js +75 -1
  115. package/dist/esm/AppObject/AppObjectEntityRepo.js.map +1 -1
  116. package/dist/esm/AppObject/AppObjectPM.js +46 -0
  117. package/dist/esm/AppObject/AppObjectPM.js.map +1 -1
  118. package/dist/esm/AppObject/AppObjectRepo.js +20 -0
  119. package/dist/esm/AppObject/AppObjectRepo.js.map +1 -1
  120. package/dist/esm/AppObject/AppObjectUC.js +24 -1
  121. package/dist/esm/AppObject/AppObjectUC.js.map +1 -1
  122. package/dist/esm/AppObject/AppObjectView.js +23 -1
  123. package/dist/esm/AppObject/AppObjectView.js.map +1 -1
  124. package/dist/esm/AppObject/getSingletonComponent.js +19 -0
  125. package/dist/esm/AppObject/getSingletonComponent.js.map +1 -1
  126. package/dist/esm/Entities/MemoizedAngle.js +21 -0
  127. package/dist/esm/Entities/MemoizedAngle.js.map +1 -1
  128. package/dist/esm/Entities/MemoizedBoolean.js +21 -0
  129. package/dist/esm/Entities/MemoizedBoolean.js.map +1 -1
  130. package/dist/esm/Entities/MemoizedColor.js +21 -0
  131. package/dist/esm/Entities/MemoizedColor.js.map +1 -1
  132. package/dist/esm/Entities/MemoizedNumber.js +21 -0
  133. package/dist/esm/Entities/MemoizedNumber.js.map +1 -1
  134. package/dist/esm/Entities/MemoizedQuaternion.js +21 -0
  135. package/dist/esm/Entities/MemoizedQuaternion.js.map +1 -1
  136. package/dist/esm/Entities/MemoizedString.js +21 -0
  137. package/dist/esm/Entities/MemoizedString.js.map +1 -1
  138. package/dist/esm/Entities/MemoizedVector2.js +21 -0
  139. package/dist/esm/Entities/MemoizedVector2.js.map +1 -1
  140. package/dist/esm/Entities/MemoizedVector3.js +21 -0
  141. package/dist/esm/Entities/MemoizedVector3.js.map +1 -1
  142. package/dist/esm/Entities/ObservableEntity.js +17 -0
  143. package/dist/esm/Entities/ObservableEntity.js.map +1 -1
  144. package/dist/esm/Entities/ObserverList.js +21 -0
  145. package/dist/esm/Entities/ObserverList.js.map +1 -1
  146. package/dist/esm/Entities/RangedNumber.js +29 -0
  147. package/dist/esm/Entities/RangedNumber.js.map +1 -1
  148. package/dist/esm/ExampleFeature/Adapters/examplePmAdapter.js +61 -0
  149. package/dist/esm/ExampleFeature/Adapters/examplePmAdapter.js.map +1 -0
  150. package/dist/esm/ExampleFeature/Adapters/exampleSingletonPmAdapter.js +57 -0
  151. package/dist/esm/ExampleFeature/Adapters/exampleSingletonPmAdapter.js.map +1 -0
  152. package/dist/esm/ExampleFeature/Adapters/index.js +3 -0
  153. package/dist/esm/ExampleFeature/Adapters/index.js.map +1 -0
  154. package/dist/esm/ExampleFeature/Controllers/index.js +3 -0
  155. package/dist/esm/ExampleFeature/Controllers/index.js.map +1 -0
  156. package/dist/esm/ExampleFeature/Controllers/setExampleText.js +45 -0
  157. package/dist/esm/ExampleFeature/Controllers/setExampleText.js.map +1 -0
  158. package/dist/esm/ExampleFeature/Controllers/toggleExampleBoolean.js +44 -0
  159. package/dist/esm/ExampleFeature/Controllers/toggleExampleBoolean.js.map +1 -0
  160. package/dist/esm/ExampleFeature/Entities/ExampleEntity.js +85 -0
  161. package/dist/esm/ExampleFeature/Entities/ExampleEntity.js.map +1 -0
  162. package/dist/esm/ExampleFeature/Entities/ExampleRepo.js +108 -0
  163. package/dist/esm/ExampleFeature/Entities/ExampleRepo.js.map +1 -0
  164. package/dist/esm/ExampleFeature/Entities/ExampleSingletonEntity.js +64 -0
  165. package/dist/esm/ExampleFeature/Entities/ExampleSingletonEntity.js.map +1 -0
  166. package/dist/esm/ExampleFeature/Entities/index.js +4 -0
  167. package/dist/esm/ExampleFeature/Entities/index.js.map +1 -0
  168. package/dist/esm/ExampleFeature/Factory/index.js +2 -0
  169. package/dist/esm/ExampleFeature/Factory/index.js.map +1 -0
  170. package/dist/esm/ExampleFeature/Factory/setupExampleFeature.js +26 -0
  171. package/dist/esm/ExampleFeature/Factory/setupExampleFeature.js.map +1 -0
  172. package/dist/esm/ExampleFeature/Mocks/MockEditExampleStringUC.js +43 -0
  173. package/dist/esm/ExampleFeature/Mocks/MockEditExampleStringUC.js.map +1 -0
  174. package/dist/esm/ExampleFeature/Mocks/MockExamplePM.js +44 -0
  175. package/dist/esm/ExampleFeature/Mocks/MockExamplePM.js.map +1 -0
  176. package/dist/esm/ExampleFeature/Mocks/MockExampleSingletonPM.js +54 -0
  177. package/dist/esm/ExampleFeature/Mocks/MockExampleSingletonPM.js.map +1 -0
  178. package/dist/esm/ExampleFeature/Mocks/MockToggleExampleBooleanUC.js +52 -0
  179. package/dist/esm/ExampleFeature/Mocks/MockToggleExampleBooleanUC.js.map +1 -0
  180. package/dist/esm/ExampleFeature/Mocks/index.js +5 -0
  181. package/dist/esm/ExampleFeature/Mocks/index.js.map +1 -0
  182. package/dist/esm/ExampleFeature/PMs/ExamplePM.js +92 -0
  183. package/dist/esm/ExampleFeature/PMs/ExamplePM.js.map +1 -0
  184. package/dist/esm/ExampleFeature/PMs/ExampleSingletonPM.js +97 -0
  185. package/dist/esm/ExampleFeature/PMs/ExampleSingletonPM.js.map +1 -0
  186. package/dist/esm/ExampleFeature/PMs/index.js +3 -0
  187. package/dist/esm/ExampleFeature/PMs/index.js.map +1 -0
  188. package/dist/esm/ExampleFeature/UCs/EditExampleStringUC.js +82 -0
  189. package/dist/esm/ExampleFeature/UCs/EditExampleStringUC.js.map +1 -0
  190. package/dist/esm/ExampleFeature/UCs/ToggleExampleBooleanUC.js +74 -0
  191. package/dist/esm/ExampleFeature/UCs/ToggleExampleBooleanUC.js.map +1 -0
  192. package/dist/esm/ExampleFeature/UCs/index.js +3 -0
  193. package/dist/esm/ExampleFeature/UCs/index.js.map +1 -0
  194. package/dist/esm/ExampleFeature/index.js +8 -0
  195. package/dist/esm/ExampleFeature/index.js.map +1 -0
  196. package/dist/esm/Types/PmAdapter.js.map +1 -1
  197. package/dist/esm/Types/SingletonPmAdapter.js.map +1 -1
  198. package/dist/esm/ValueObjects/Angle.js +1 -1
  199. package/dist/esm/ValueObjects/Angle.js.map +1 -1
  200. package/dist/esm/ValueObjects/LineSegment2D.js +6 -6
  201. package/dist/esm/ValueObjects/LineSegment2D.js.map +1 -1
  202. package/dist/esm/ValueObjects/Matrix.js +6 -6
  203. package/dist/esm/ValueObjects/Matrix.js.map +1 -1
  204. package/dist/esm/ValueObjects/Quaternion.js +17 -17
  205. package/dist/esm/ValueObjects/Quaternion.js.map +1 -1
  206. package/dist/esm/ValueObjects/Vector2.js +15 -8
  207. package/dist/esm/ValueObjects/Vector2.js.map +1 -1
  208. package/dist/esm/index.js +1 -0
  209. package/dist/esm/index.js.map +1 -1
  210. package/dist/types/AppObject/AppObject.d.ts +42 -0
  211. package/dist/types/AppObject/AppObject.d.ts.map +1 -1
  212. package/dist/types/AppObject/AppObjectComponent.d.ts +80 -0
  213. package/dist/types/AppObject/AppObjectComponent.d.ts.map +1 -1
  214. package/dist/types/AppObject/AppObjectController.d.ts +22 -0
  215. package/dist/types/AppObject/AppObjectController.d.ts.map +1 -1
  216. package/dist/types/AppObject/AppObjectEntity.d.ts +55 -0
  217. package/dist/types/AppObject/AppObjectEntity.d.ts.map +1 -1
  218. package/dist/types/AppObject/AppObjectEntityRepo.d.ts +75 -0
  219. package/dist/types/AppObject/AppObjectEntityRepo.d.ts.map +1 -1
  220. package/dist/types/AppObject/AppObjectPM.d.ts +53 -0
  221. package/dist/types/AppObject/AppObjectPM.d.ts.map +1 -1
  222. package/dist/types/AppObject/AppObjectRepo.d.ts +124 -0
  223. package/dist/types/AppObject/AppObjectRepo.d.ts.map +1 -1
  224. package/dist/types/AppObject/AppObjectUC.d.ts +23 -0
  225. package/dist/types/AppObject/AppObjectUC.d.ts.map +1 -1
  226. package/dist/types/AppObject/AppObjectView.d.ts +22 -0
  227. package/dist/types/AppObject/AppObjectView.d.ts.map +1 -1
  228. package/dist/types/AppObject/getSingletonComponent.d.ts +19 -0
  229. package/dist/types/AppObject/getSingletonComponent.d.ts.map +1 -1
  230. package/dist/types/Entities/MemoizedAngle.d.ts +21 -0
  231. package/dist/types/Entities/MemoizedAngle.d.ts.map +1 -1
  232. package/dist/types/Entities/MemoizedBoolean.d.ts +21 -0
  233. package/dist/types/Entities/MemoizedBoolean.d.ts.map +1 -1
  234. package/dist/types/Entities/MemoizedColor.d.ts +21 -0
  235. package/dist/types/Entities/MemoizedColor.d.ts.map +1 -1
  236. package/dist/types/Entities/MemoizedNumber.d.ts +21 -0
  237. package/dist/types/Entities/MemoizedNumber.d.ts.map +1 -1
  238. package/dist/types/Entities/MemoizedQuaternion.d.ts +21 -0
  239. package/dist/types/Entities/MemoizedQuaternion.d.ts.map +1 -1
  240. package/dist/types/Entities/MemoizedString.d.ts +21 -0
  241. package/dist/types/Entities/MemoizedString.d.ts.map +1 -1
  242. package/dist/types/Entities/MemoizedVector2.d.ts +21 -0
  243. package/dist/types/Entities/MemoizedVector2.d.ts.map +1 -1
  244. package/dist/types/Entities/MemoizedVector3.d.ts +21 -0
  245. package/dist/types/Entities/MemoizedVector3.d.ts.map +1 -1
  246. package/dist/types/Entities/ObservableEntity.d.ts +20 -0
  247. package/dist/types/Entities/ObservableEntity.d.ts.map +1 -1
  248. package/dist/types/Entities/ObserverList.d.ts +21 -0
  249. package/dist/types/Entities/ObserverList.d.ts.map +1 -1
  250. package/dist/types/Entities/RangedNumber.d.ts +37 -0
  251. package/dist/types/Entities/RangedNumber.d.ts.map +1 -1
  252. package/dist/types/ExampleFeature/Adapters/examplePmAdapter.d.ts +29 -0
  253. package/dist/types/ExampleFeature/Adapters/examplePmAdapter.d.ts.map +1 -0
  254. package/dist/types/ExampleFeature/Adapters/exampleSingletonPmAdapter.d.ts +31 -0
  255. package/dist/types/ExampleFeature/Adapters/exampleSingletonPmAdapter.d.ts.map +1 -0
  256. package/dist/types/ExampleFeature/Adapters/index.d.ts +3 -0
  257. package/dist/types/ExampleFeature/Adapters/index.d.ts.map +1 -0
  258. package/dist/types/ExampleFeature/Controllers/index.d.ts +3 -0
  259. package/dist/types/ExampleFeature/Controllers/index.d.ts.map +1 -0
  260. package/dist/types/ExampleFeature/Controllers/setExampleText.d.ts +35 -0
  261. package/dist/types/ExampleFeature/Controllers/setExampleText.d.ts.map +1 -0
  262. package/dist/types/ExampleFeature/Controllers/toggleExampleBoolean.d.ts +34 -0
  263. package/dist/types/ExampleFeature/Controllers/toggleExampleBoolean.d.ts.map +1 -0
  264. package/dist/types/ExampleFeature/Entities/ExampleEntity.d.ts +55 -0
  265. package/dist/types/ExampleFeature/Entities/ExampleEntity.d.ts.map +1 -0
  266. package/dist/types/ExampleFeature/Entities/ExampleRepo.d.ts +62 -0
  267. package/dist/types/ExampleFeature/Entities/ExampleRepo.d.ts.map +1 -0
  268. package/dist/types/ExampleFeature/Entities/ExampleSingletonEntity.d.ts +43 -0
  269. package/dist/types/ExampleFeature/Entities/ExampleSingletonEntity.d.ts.map +1 -0
  270. package/dist/types/ExampleFeature/Entities/index.d.ts +4 -0
  271. package/dist/types/ExampleFeature/Entities/index.d.ts.map +1 -0
  272. package/dist/types/ExampleFeature/Factory/index.d.ts +2 -0
  273. package/dist/types/ExampleFeature/Factory/index.d.ts.map +1 -0
  274. package/dist/types/ExampleFeature/Factory/setupExampleFeature.d.ts +17 -0
  275. package/dist/types/ExampleFeature/Factory/setupExampleFeature.d.ts.map +1 -0
  276. package/dist/types/ExampleFeature/Mocks/MockEditExampleStringUC.d.ts +42 -0
  277. package/dist/types/ExampleFeature/Mocks/MockEditExampleStringUC.d.ts.map +1 -0
  278. package/dist/types/ExampleFeature/Mocks/MockExamplePM.d.ts +41 -0
  279. package/dist/types/ExampleFeature/Mocks/MockExamplePM.d.ts.map +1 -0
  280. package/dist/types/ExampleFeature/Mocks/MockExampleSingletonPM.d.ts +49 -0
  281. package/dist/types/ExampleFeature/Mocks/MockExampleSingletonPM.d.ts.map +1 -0
  282. package/dist/types/ExampleFeature/Mocks/MockToggleExampleBooleanUC.d.ts +47 -0
  283. package/dist/types/ExampleFeature/Mocks/MockToggleExampleBooleanUC.d.ts.map +1 -0
  284. package/dist/types/ExampleFeature/Mocks/index.d.ts +5 -0
  285. package/dist/types/ExampleFeature/Mocks/index.d.ts.map +1 -0
  286. package/dist/types/ExampleFeature/PMs/ExamplePM.d.ts +42 -0
  287. package/dist/types/ExampleFeature/PMs/ExamplePM.d.ts.map +1 -0
  288. package/dist/types/ExampleFeature/PMs/ExampleSingletonPM.d.ts +52 -0
  289. package/dist/types/ExampleFeature/PMs/ExampleSingletonPM.d.ts.map +1 -0
  290. package/dist/types/ExampleFeature/PMs/index.d.ts +3 -0
  291. package/dist/types/ExampleFeature/PMs/index.d.ts.map +1 -0
  292. package/dist/types/ExampleFeature/UCs/EditExampleStringUC.d.ts +52 -0
  293. package/dist/types/ExampleFeature/UCs/EditExampleStringUC.d.ts.map +1 -0
  294. package/dist/types/ExampleFeature/UCs/ToggleExampleBooleanUC.d.ts +44 -0
  295. package/dist/types/ExampleFeature/UCs/ToggleExampleBooleanUC.d.ts.map +1 -0
  296. package/dist/types/ExampleFeature/UCs/index.d.ts +3 -0
  297. package/dist/types/ExampleFeature/UCs/index.d.ts.map +1 -0
  298. package/dist/types/ExampleFeature/index.d.ts +8 -0
  299. package/dist/types/ExampleFeature/index.d.ts.map +1 -0
  300. package/dist/types/Types/PmAdapter.d.ts +60 -0
  301. package/dist/types/Types/PmAdapter.d.ts.map +1 -1
  302. package/dist/types/Types/SingletonPmAdapter.d.ts +55 -0
  303. package/dist/types/Types/SingletonPmAdapter.d.ts.map +1 -1
  304. package/dist/types/ValueObjects/Angle.d.ts +1 -1
  305. package/dist/types/ValueObjects/Matrix.d.ts +5 -5
  306. package/dist/types/ValueObjects/Matrix.d.ts.map +1 -1
  307. package/dist/types/ValueObjects/Quaternion.d.ts +17 -17
  308. package/dist/types/ValueObjects/Vector2.d.ts +8 -3
  309. package/dist/types/ValueObjects/Vector2.d.ts.map +1 -1
  310. package/dist/types/index.d.ts +1 -0
  311. package/dist/types/index.d.ts.map +1 -1
  312. package/package.json +6 -4
  313. package/dist/cjs/AppObject/AppObject.test.js +0 -113
  314. package/dist/cjs/AppObject/AppObject.test.js.map +0 -1
  315. package/dist/cjs/AppObject/AppObjectComponent.test.js +0 -132
  316. package/dist/cjs/AppObject/AppObjectComponent.test.js.map +0 -1
  317. package/dist/cjs/AppObject/AppObjectEntity.test.js +0 -108
  318. package/dist/cjs/AppObject/AppObjectEntity.test.js.map +0 -1
  319. package/dist/cjs/AppObject/AppObjectEntityRepo.test.js +0 -149
  320. package/dist/cjs/AppObject/AppObjectEntityRepo.test.js.map +0 -1
  321. package/dist/cjs/AppObject/AppObjectPM.test.js +0 -103
  322. package/dist/cjs/AppObject/AppObjectPM.test.js.map +0 -1
  323. package/dist/cjs/AppObject/AppObjectRepo.test.js +0 -213
  324. package/dist/cjs/AppObject/AppObjectRepo.test.js.map +0 -1
  325. package/dist/cjs/AppObject/getSingletonComponent.test.js +0 -13
  326. package/dist/cjs/AppObject/getSingletonComponent.test.js.map +0 -1
  327. package/dist/cjs/Entities/MemoizedAngle.test.js +0 -30
  328. package/dist/cjs/Entities/MemoizedAngle.test.js.map +0 -1
  329. package/dist/cjs/Entities/MemoizedBoolean.test.js +0 -34
  330. package/dist/cjs/Entities/MemoizedBoolean.test.js.map +0 -1
  331. package/dist/cjs/Entities/MemoizedColor.test.js +0 -32
  332. package/dist/cjs/Entities/MemoizedColor.test.js.map +0 -1
  333. package/dist/cjs/Entities/MemoizedNumber.test.js +0 -29
  334. package/dist/cjs/Entities/MemoizedNumber.test.js.map +0 -1
  335. package/dist/cjs/Entities/MemoizedQuaternion.test.js +0 -32
  336. package/dist/cjs/Entities/MemoizedQuaternion.test.js.map +0 -1
  337. package/dist/cjs/Entities/MemoizedString.test.js +0 -29
  338. package/dist/cjs/Entities/MemoizedString.test.js.map +0 -1
  339. package/dist/cjs/Entities/MemoizedVector2.test.js +0 -32
  340. package/dist/cjs/Entities/MemoizedVector2.test.js.map +0 -1
  341. package/dist/cjs/Entities/MemoizedVector3.test.js +0 -32
  342. package/dist/cjs/Entities/MemoizedVector3.test.js.map +0 -1
  343. package/dist/cjs/Entities/ObservableEntity.test.js +0 -25
  344. package/dist/cjs/Entities/ObservableEntity.test.js.map +0 -1
  345. package/dist/cjs/Entities/ObserverList.test.js +0 -44
  346. package/dist/cjs/Entities/ObserverList.test.js.map +0 -1
  347. package/dist/cjs/Entities/RangedNumber.test.js +0 -96
  348. package/dist/cjs/Entities/RangedNumber.test.js.map +0 -1
  349. package/dist/cjs/Utilities/LengthConverters.test.js +0 -24
  350. package/dist/cjs/Utilities/LengthConverters.test.js.map +0 -1
  351. package/dist/cjs/Utilities/LerpNumber.test.js +0 -90
  352. package/dist/cjs/Utilities/LerpNumber.test.js.map +0 -1
  353. package/dist/cjs/Utilities/addAlphaToHex.test.js +0 -34
  354. package/dist/cjs/Utilities/addAlphaToHex.test.js.map +0 -1
  355. package/dist/cjs/Utilities/alphaToHex.test.js +0 -75
  356. package/dist/cjs/Utilities/alphaToHex.test.js.map +0 -1
  357. package/dist/cjs/Utilities/degreesToRadians.test.js +0 -9
  358. package/dist/cjs/Utilities/degreesToRadians.test.js.map +0 -1
  359. package/dist/cjs/Utilities/easeFunctions.test.js +0 -209
  360. package/dist/cjs/Utilities/easeFunctions.test.js.map +0 -1
  361. package/dist/cjs/Utilities/interpolateNumber.test.js +0 -26
  362. package/dist/cjs/Utilities/interpolateNumber.test.js.map +0 -1
  363. package/dist/cjs/ValueObjects/Angle.test.js +0 -28
  364. package/dist/cjs/ValueObjects/Angle.test.js.map +0 -1
  365. package/dist/cjs/ValueObjects/Color.test.js +0 -147
  366. package/dist/cjs/ValueObjects/Color.test.js.map +0 -1
  367. package/dist/cjs/ValueObjects/LineSegment2D.test.js +0 -102
  368. package/dist/cjs/ValueObjects/LineSegment2D.test.js.map +0 -1
  369. package/dist/cjs/ValueObjects/Matrix.test.js +0 -385
  370. package/dist/cjs/ValueObjects/Matrix.test.js.map +0 -1
  371. package/dist/cjs/ValueObjects/ParametricLine.test.js +0 -126
  372. package/dist/cjs/ValueObjects/ParametricLine.test.js.map +0 -1
  373. package/dist/cjs/ValueObjects/ParametricPlane.test.js +0 -101
  374. package/dist/cjs/ValueObjects/ParametricPlane.test.js.map +0 -1
  375. package/dist/cjs/ValueObjects/Quaternion.test.js +0 -240
  376. package/dist/cjs/ValueObjects/Quaternion.test.js.map +0 -1
  377. package/dist/cjs/ValueObjects/Rectangle.test.js +0 -32
  378. package/dist/cjs/ValueObjects/Rectangle.test.js.map +0 -1
  379. package/dist/cjs/ValueObjects/Vector2.test.js +0 -136
  380. package/dist/cjs/ValueObjects/Vector2.test.js.map +0 -1
  381. package/dist/cjs/ValueObjects/Vector3.test.js +0 -188
  382. package/dist/cjs/ValueObjects/Vector3.test.js.map +0 -1
  383. package/dist/cjs/ValueObjects/Version.test.js +0 -310
  384. package/dist/cjs/ValueObjects/Version.test.js.map +0 -1
  385. package/dist/esm/AppObject/AppObject.test.js +0 -110
  386. package/dist/esm/AppObject/AppObject.test.js.map +0 -1
  387. package/dist/esm/AppObject/AppObjectComponent.test.js +0 -130
  388. package/dist/esm/AppObject/AppObjectComponent.test.js.map +0 -1
  389. package/dist/esm/AppObject/AppObjectEntity.test.js +0 -106
  390. package/dist/esm/AppObject/AppObjectEntity.test.js.map +0 -1
  391. package/dist/esm/AppObject/AppObjectEntityRepo.test.js +0 -147
  392. package/dist/esm/AppObject/AppObjectEntityRepo.test.js.map +0 -1
  393. package/dist/esm/AppObject/AppObjectPM.test.js +0 -101
  394. package/dist/esm/AppObject/AppObjectPM.test.js.map +0 -1
  395. package/dist/esm/AppObject/AppObjectRepo.test.js +0 -211
  396. package/dist/esm/AppObject/AppObjectRepo.test.js.map +0 -1
  397. package/dist/esm/AppObject/getSingletonComponent.test.js +0 -11
  398. package/dist/esm/AppObject/getSingletonComponent.test.js.map +0 -1
  399. package/dist/esm/Entities/MemoizedAngle.test.js +0 -28
  400. package/dist/esm/Entities/MemoizedAngle.test.js.map +0 -1
  401. package/dist/esm/Entities/MemoizedBoolean.test.js +0 -32
  402. package/dist/esm/Entities/MemoizedBoolean.test.js.map +0 -1
  403. package/dist/esm/Entities/MemoizedColor.test.js +0 -30
  404. package/dist/esm/Entities/MemoizedColor.test.js.map +0 -1
  405. package/dist/esm/Entities/MemoizedNumber.test.js +0 -27
  406. package/dist/esm/Entities/MemoizedNumber.test.js.map +0 -1
  407. package/dist/esm/Entities/MemoizedQuaternion.test.js +0 -30
  408. package/dist/esm/Entities/MemoizedQuaternion.test.js.map +0 -1
  409. package/dist/esm/Entities/MemoizedString.test.js +0 -27
  410. package/dist/esm/Entities/MemoizedString.test.js.map +0 -1
  411. package/dist/esm/Entities/MemoizedVector2.test.js +0 -30
  412. package/dist/esm/Entities/MemoizedVector2.test.js.map +0 -1
  413. package/dist/esm/Entities/MemoizedVector3.test.js +0 -30
  414. package/dist/esm/Entities/MemoizedVector3.test.js.map +0 -1
  415. package/dist/esm/Entities/ObservableEntity.test.js +0 -23
  416. package/dist/esm/Entities/ObservableEntity.test.js.map +0 -1
  417. package/dist/esm/Entities/ObserverList.test.js +0 -42
  418. package/dist/esm/Entities/ObserverList.test.js.map +0 -1
  419. package/dist/esm/Entities/RangedNumber.test.js +0 -94
  420. package/dist/esm/Entities/RangedNumber.test.js.map +0 -1
  421. package/dist/esm/Utilities/LengthConverters.test.js +0 -22
  422. package/dist/esm/Utilities/LengthConverters.test.js.map +0 -1
  423. package/dist/esm/Utilities/LerpNumber.test.js +0 -88
  424. package/dist/esm/Utilities/LerpNumber.test.js.map +0 -1
  425. package/dist/esm/Utilities/addAlphaToHex.test.js +0 -32
  426. package/dist/esm/Utilities/addAlphaToHex.test.js.map +0 -1
  427. package/dist/esm/Utilities/alphaToHex.test.js +0 -73
  428. package/dist/esm/Utilities/alphaToHex.test.js.map +0 -1
  429. package/dist/esm/Utilities/degreesToRadians.test.js +0 -7
  430. package/dist/esm/Utilities/degreesToRadians.test.js.map +0 -1
  431. package/dist/esm/Utilities/easeFunctions.test.js +0 -207
  432. package/dist/esm/Utilities/easeFunctions.test.js.map +0 -1
  433. package/dist/esm/Utilities/interpolateNumber.test.js +0 -24
  434. package/dist/esm/Utilities/interpolateNumber.test.js.map +0 -1
  435. package/dist/esm/ValueObjects/Angle.test.js +0 -26
  436. package/dist/esm/ValueObjects/Angle.test.js.map +0 -1
  437. package/dist/esm/ValueObjects/Color.test.js +0 -145
  438. package/dist/esm/ValueObjects/Color.test.js.map +0 -1
  439. package/dist/esm/ValueObjects/LineSegment2D.test.js +0 -100
  440. package/dist/esm/ValueObjects/LineSegment2D.test.js.map +0 -1
  441. package/dist/esm/ValueObjects/Matrix.test.js +0 -383
  442. package/dist/esm/ValueObjects/Matrix.test.js.map +0 -1
  443. package/dist/esm/ValueObjects/ParametricLine.test.js +0 -124
  444. package/dist/esm/ValueObjects/ParametricLine.test.js.map +0 -1
  445. package/dist/esm/ValueObjects/ParametricPlane.test.js +0 -99
  446. package/dist/esm/ValueObjects/ParametricPlane.test.js.map +0 -1
  447. package/dist/esm/ValueObjects/Quaternion.test.js +0 -238
  448. package/dist/esm/ValueObjects/Quaternion.test.js.map +0 -1
  449. package/dist/esm/ValueObjects/Rectangle.test.js +0 -30
  450. package/dist/esm/ValueObjects/Rectangle.test.js.map +0 -1
  451. package/dist/esm/ValueObjects/Vector2.test.js +0 -134
  452. package/dist/esm/ValueObjects/Vector2.test.js.map +0 -1
  453. package/dist/esm/ValueObjects/Vector3.test.js +0 -186
  454. package/dist/esm/ValueObjects/Vector3.test.js.map +0 -1
  455. package/dist/esm/ValueObjects/Version.test.js +0 -308
  456. package/dist/esm/ValueObjects/Version.test.js.map +0 -1
  457. package/dist/types/AppObject/AppObject.test.d.ts +0 -7
  458. package/dist/types/AppObject/AppObject.test.d.ts.map +0 -1
  459. package/dist/types/AppObject/AppObjectComponent.test.d.ts +0 -2
  460. package/dist/types/AppObject/AppObjectComponent.test.d.ts.map +0 -1
  461. package/dist/types/AppObject/AppObjectEntity.test.d.ts +0 -2
  462. package/dist/types/AppObject/AppObjectEntity.test.d.ts.map +0 -1
  463. package/dist/types/AppObject/AppObjectEntityRepo.test.d.ts +0 -2
  464. package/dist/types/AppObject/AppObjectEntityRepo.test.d.ts.map +0 -1
  465. package/dist/types/AppObject/AppObjectPM.test.d.ts +0 -2
  466. package/dist/types/AppObject/AppObjectPM.test.d.ts.map +0 -1
  467. package/dist/types/AppObject/AppObjectRepo.test.d.ts +0 -2
  468. package/dist/types/AppObject/AppObjectRepo.test.d.ts.map +0 -1
  469. package/dist/types/AppObject/getSingletonComponent.test.d.ts +0 -2
  470. package/dist/types/AppObject/getSingletonComponent.test.d.ts.map +0 -1
  471. package/dist/types/Entities/MemoizedAngle.test.d.ts +0 -2
  472. package/dist/types/Entities/MemoizedAngle.test.d.ts.map +0 -1
  473. package/dist/types/Entities/MemoizedBoolean.test.d.ts +0 -2
  474. package/dist/types/Entities/MemoizedBoolean.test.d.ts.map +0 -1
  475. package/dist/types/Entities/MemoizedColor.test.d.ts +0 -2
  476. package/dist/types/Entities/MemoizedColor.test.d.ts.map +0 -1
  477. package/dist/types/Entities/MemoizedNumber.test.d.ts +0 -2
  478. package/dist/types/Entities/MemoizedNumber.test.d.ts.map +0 -1
  479. package/dist/types/Entities/MemoizedQuaternion.test.d.ts +0 -2
  480. package/dist/types/Entities/MemoizedQuaternion.test.d.ts.map +0 -1
  481. package/dist/types/Entities/MemoizedString.test.d.ts +0 -2
  482. package/dist/types/Entities/MemoizedString.test.d.ts.map +0 -1
  483. package/dist/types/Entities/MemoizedVector2.test.d.ts +0 -2
  484. package/dist/types/Entities/MemoizedVector2.test.d.ts.map +0 -1
  485. package/dist/types/Entities/MemoizedVector3.test.d.ts +0 -2
  486. package/dist/types/Entities/MemoizedVector3.test.d.ts.map +0 -1
  487. package/dist/types/Entities/ObservableEntity.test.d.ts +0 -2
  488. package/dist/types/Entities/ObservableEntity.test.d.ts.map +0 -1
  489. package/dist/types/Entities/ObserverList.test.d.ts +0 -2
  490. package/dist/types/Entities/ObserverList.test.d.ts.map +0 -1
  491. package/dist/types/Entities/RangedNumber.test.d.ts +0 -2
  492. package/dist/types/Entities/RangedNumber.test.d.ts.map +0 -1
  493. package/dist/types/Utilities/LengthConverters.test.d.ts +0 -2
  494. package/dist/types/Utilities/LengthConverters.test.d.ts.map +0 -1
  495. package/dist/types/Utilities/LerpNumber.test.d.ts +0 -2
  496. package/dist/types/Utilities/LerpNumber.test.d.ts.map +0 -1
  497. package/dist/types/Utilities/addAlphaToHex.test.d.ts +0 -2
  498. package/dist/types/Utilities/addAlphaToHex.test.d.ts.map +0 -1
  499. package/dist/types/Utilities/alphaToHex.test.d.ts +0 -2
  500. package/dist/types/Utilities/alphaToHex.test.d.ts.map +0 -1
  501. package/dist/types/Utilities/degreesToRadians.test.d.ts +0 -2
  502. package/dist/types/Utilities/degreesToRadians.test.d.ts.map +0 -1
  503. package/dist/types/Utilities/easeFunctions.test.d.ts +0 -2
  504. package/dist/types/Utilities/easeFunctions.test.d.ts.map +0 -1
  505. package/dist/types/Utilities/interpolateNumber.test.d.ts +0 -2
  506. package/dist/types/Utilities/interpolateNumber.test.d.ts.map +0 -1
  507. package/dist/types/ValueObjects/Angle.test.d.ts +0 -2
  508. package/dist/types/ValueObjects/Angle.test.d.ts.map +0 -1
  509. package/dist/types/ValueObjects/Color.test.d.ts +0 -2
  510. package/dist/types/ValueObjects/Color.test.d.ts.map +0 -1
  511. package/dist/types/ValueObjects/LineSegment2D.test.d.ts +0 -2
  512. package/dist/types/ValueObjects/LineSegment2D.test.d.ts.map +0 -1
  513. package/dist/types/ValueObjects/Matrix.test.d.ts +0 -2
  514. package/dist/types/ValueObjects/Matrix.test.d.ts.map +0 -1
  515. package/dist/types/ValueObjects/ParametricLine.test.d.ts +0 -2
  516. package/dist/types/ValueObjects/ParametricLine.test.d.ts.map +0 -1
  517. package/dist/types/ValueObjects/ParametricPlane.test.d.ts +0 -2
  518. package/dist/types/ValueObjects/ParametricPlane.test.d.ts.map +0 -1
  519. package/dist/types/ValueObjects/Quaternion.test.d.ts +0 -2
  520. package/dist/types/ValueObjects/Quaternion.test.d.ts.map +0 -1
  521. package/dist/types/ValueObjects/Rectangle.test.d.ts +0 -2
  522. package/dist/types/ValueObjects/Rectangle.test.d.ts.map +0 -1
  523. package/dist/types/ValueObjects/Vector2.test.d.ts +0 -2
  524. package/dist/types/ValueObjects/Vector2.test.d.ts.map +0 -1
  525. package/dist/types/ValueObjects/Vector3.test.d.ts +0 -2
  526. package/dist/types/ValueObjects/Vector3.test.d.ts.map +0 -1
  527. package/dist/types/ValueObjects/Version.test.d.ts +0 -2
  528. package/dist/types/ValueObjects/Version.test.d.ts.map +0 -1
@@ -0,0 +1,3 @@
1
+ export * from "./EditExampleStringUC";
2
+ export * from "./ToggleExampleBooleanUC";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ExampleFeature/UCs/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from "./Adapters";
2
+ export * from "./Controllers";
3
+ export * from "./Entities";
4
+ export * from "./Factory";
5
+ export * from "./Mocks";
6
+ export * from "./PMs";
7
+ export * from "./UCs";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ExampleFeature/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC"}
@@ -1,7 +1,67 @@
1
1
  import { AppObjectRepo } from "../AppObject";
2
+ /**
3
+ * PmAdapter interface defines a bridge between UI components and AppObjectPM (Presentation Manager) components.
4
+ * It allows UI frameworks (like React, Vue, Angular, etc.) to subscribe to view model updates from specific AppObjects.
5
+ *
6
+ * This adapter is used for AppObject-specific subscriptions, where each UI component subscribes to
7
+ * a particular AppObject's presentation manager, identified by its ID.
8
+ *
9
+ * Usage example with React:
10
+ * ```typescript
11
+ * // Define an adapter for a specific view model type
12
+ * class MyComponentAdapter implements PmAdapter<MyViewModel> {
13
+ * // Default view model when no data is available
14
+ * defaultVM: MyViewModel = { value: 0, label: "" };
15
+ *
16
+ * // Subscribe to updates from a specific AppObject's presentation manager
17
+ * subscribe(id: string, appObjects: AppObjectRepo, setVM: (vm: MyViewModel) => void): void {
18
+ * const appObject = appObjects.get(id);
19
+ * if (!appObject) return;
20
+ *
21
+ * const pm = appObject.getComponent<MyPM>("MyPresentationManager");
22
+ * if (pm) {
23
+ * pm.addView(setVM);
24
+ * // Initial update with current view model if available
25
+ * if (pm.lastVM) setVM(pm.lastVM);
26
+ * }
27
+ * }
28
+ *
29
+ * // Unsubscribe when component unmounts
30
+ * unsubscribe(id: string, appObjects: AppObjectRepo, setVM: (vm: MyViewModel) => void): void {
31
+ * const appObject = appObjects.get(id);
32
+ * if (!appObject) return;
33
+ *
34
+ * const pm = appObject.getComponent<MyPM>("MyPresentationManager");
35
+ * if (pm) {
36
+ * pm.removeView(setVM);
37
+ * }
38
+ * }
39
+ * }
40
+ * ```
41
+ *
42
+ * @typeparam VM The view model type provided by this adapter
43
+ */
2
44
  export interface PmAdapter<VM> {
45
+ /**
46
+ * Default view model to use when no data is available
47
+ * This prevents null/undefined handling in UI components
48
+ */
3
49
  defaultVM: VM;
50
+ /**
51
+ * Subscribe to view model updates from an AppObject's presentation manager
52
+ *
53
+ * @param id The ID of the AppObject to subscribe to
54
+ * @param appObjects The repository containing the AppObjects
55
+ * @param setVM Callback function that updates the UI with new view models
56
+ */
4
57
  subscribe(id: string, appObjects: AppObjectRepo, setVM: (vm: VM) => void): void;
58
+ /**
59
+ * Unsubscribe from view model updates when a component is being unmounted or no longer needs updates
60
+ *
61
+ * @param id The ID of the AppObject to unsubscribe from
62
+ * @param appObjects The repository containing the AppObjects
63
+ * @param setVM The same callback function that was provided to subscribe
64
+ */
5
65
  unsubscribe(id: string, appObjects: AppObjectRepo, setVM: (vm: VM) => void): void;
6
66
  }
7
67
  //# sourceMappingURL=PmAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PmAdapter.d.ts","sourceRoot":"","sources":["../../../src/Types/PmAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,SAAS,CAAC,EAAE;IAC3B,SAAS,EAAE,EAAE,CAAC;IACd,SAAS,CACP,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,EACzB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,GACtB,IAAI,CAAC;IACR,WAAW,CACT,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,EACzB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,GACtB,IAAI,CAAC;CACT"}
1
+ {"version":3,"file":"PmAdapter.d.ts","sourceRoot":"","sources":["../../../src/Types/PmAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,WAAW,SAAS,CAAC,EAAE;IAC3B;;;OAGG;IACH,SAAS,EAAE,EAAE,CAAC;IAEd;;;;;;OAMG;IACH,SAAS,CACP,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,EACzB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,GACtB,IAAI,CAAC;IAER;;;;;;OAMG;IACH,WAAW,CACT,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,EACzB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,GACtB,IAAI,CAAC;CACT"}
@@ -1,7 +1,62 @@
1
1
  import { AppObjectRepo } from "../AppObject";
2
+ /**
3
+ * SingletonPmAdapter interface defines a bridge between UI components and singleton presentation managers.
4
+ * It's similar to PmAdapter but designed for components that subscribe to a singleton PM
5
+ * (a PM that exists only once in the application).
6
+ *
7
+ * This adapter simplifies the subscription process when there's only one instance of a specific
8
+ * presentation manager type in the entire application, eliminating the need to specify an AppObject ID.
9
+ *
10
+ * Usage example with React:
11
+ * ```typescript
12
+ * // Define an adapter for a singleton presentation manager
13
+ * class GlobalSettingsPMAdapter implements SingletonPmAdapter<SettingsViewModel> {
14
+ * // Default view model when no data is available
15
+ * defaultVM: SettingsViewModel = { theme: "light", fontSize: "medium" };
16
+ *
17
+ * // Subscribe to updates from the singleton presentation manager
18
+ * subscribe(appObjects: AppObjectRepo, setVM: (vm: SettingsViewModel) => void): void {
19
+ * // Get the singleton PM
20
+ * const settingsPM = appObjects.getSingleton<SettingsPM>("SettingsPM");
21
+ * if (settingsPM) {
22
+ * // Register the update callback
23
+ * settingsPM.addView(setVM);
24
+ * // Initial update with current view model if available
25
+ * if (settingsPM.lastVM) setVM(settingsPM.lastVM);
26
+ * }
27
+ * }
28
+ *
29
+ * // Unsubscribe when component unmounts
30
+ * unsubscribe(appObjects: AppObjectRepo, setVM: (vm: SettingsViewModel) => void): void {
31
+ * const settingsPM = appObjects.getSingleton<SettingsPM>("SettingsPM");
32
+ * if (settingsPM) {
33
+ * settingsPM.removeView(setVM);
34
+ * }
35
+ * }
36
+ * }
37
+ * ```
38
+ *
39
+ * @typeparam VM The view model type provided by this adapter
40
+ */
2
41
  export interface SingletonPmAdapter<VM> {
42
+ /**
43
+ * Default view model to use when no data is available
44
+ * This prevents null/undefined handling in UI components
45
+ */
3
46
  defaultVM: VM;
47
+ /**
48
+ * Subscribe to view model updates from a singleton presentation manager
49
+ *
50
+ * @param appObjects The repository containing the AppObjects
51
+ * @param setVM Callback function that updates the UI with new view models
52
+ */
4
53
  subscribe(appObjects: AppObjectRepo, setVM: (vm: VM) => void): void;
54
+ /**
55
+ * Unsubscribe from view model updates when a component is being unmounted or no longer needs updates
56
+ *
57
+ * @param appObjects The repository containing the AppObjects
58
+ * @param setVM The same callback function that was provided to subscribe
59
+ */
5
60
  unsubscribe(appObjects: AppObjectRepo, setVM: (vm: VM) => void): void;
6
61
  }
7
62
  //# sourceMappingURL=SingletonPmAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SingletonPmAdapter.d.ts","sourceRoot":"","sources":["../../../src/Types/SingletonPmAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,kBAAkB,CAAC,EAAE;IACpC,SAAS,EAAE,EAAE,CAAC;IACd,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACpE,WAAW,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;CACvE"}
1
+ {"version":3,"file":"SingletonPmAdapter.d.ts","sourceRoot":"","sources":["../../../src/Types/SingletonPmAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,WAAW,kBAAkB,CAAC,EAAE;IACpC;;;OAGG;IACH,SAAS,EAAE,EAAE,CAAC;IAEd;;;;;OAKG;IACH,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAEpE;;;;;OAKG;IACH,WAAW,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;CACvE"}
@@ -16,7 +16,7 @@ export declare class Angle {
16
16
  * @param a Angle A
17
17
  * @param b Angle B
18
18
  * @param tolerance Tolerance for "Close" in degrees. Defaults to 0.001;
19
- * @returns True if the difference between A and B (in degress) is less than the tolerance
19
+ * @returns True if the difference between A and B (in degrees) is less than the tolerance
20
20
  */
21
21
  static Close(a: Angle, b: Angle, tolerance?: number): boolean;
22
22
  private _degrees;
@@ -21,17 +21,17 @@ export type MatrixArray = [
21
21
  ];
22
22
  export declare class Matrix {
23
23
  /**
24
- * Consructs an identity matrix
24
+ * Constructs an identity matrix
25
25
  * @returns An identity matrix
26
26
  */
27
27
  static Identity(): Matrix;
28
28
  /**
29
- * Constructs an matrix of zeros
29
+ * Constructs a matrix of zeros
30
30
  * @returns A matrix of zeros
31
31
  */
32
32
  static Zero(): Matrix;
33
33
  /**
34
- * Compares two matricies
34
+ * Compares two matrices
35
35
  * @param a Matrix A
36
36
  * @param b Matrix B
37
37
  * @returns True if all the elements in matrix A are equal to all the elements of matrix B
@@ -41,7 +41,7 @@ export declare class Matrix {
41
41
  * Checks to see if Matrix A is close to Matrix B by comparing elements
42
42
  * @param a Matrix A
43
43
  * @param b Matrix B
44
- * @param threshold "Close" thershold. Defaults to 0.001
44
+ * @param threshold "Close" threshold. Defaults to 0.001
45
45
  * @returns True if all the difference between the elements in each array is less than the threshold
46
46
  */
47
47
  static Close(a: Matrix, b: Matrix, threshold?: number): boolean;
@@ -53,7 +53,7 @@ export declare class Matrix {
53
53
  */
54
54
  static Multiply(a: Matrix, b: Matrix): Matrix;
55
55
  /**
56
- * Composes a matrix from a scale vector, rotation quaterion, and translation vector
56
+ * Composes a matrix from a scale vector, rotation quaternion, and translation vector
57
57
  * @param scale The scale of the transformation matrix
58
58
  * @param rotation The rotation of the transformation matrix
59
59
  * @param translation The translation of the transformation matrix
@@ -1 +1 @@
1
- {"version":3,"file":"Matrix.d.ts","sourceRoot":"","sources":["../../../src/ValueObjects/Matrix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC;AAEF,qBAAa,MAAM;IACjB;;;OAGG;WACW,QAAQ,IAAI,MAAM;IAIhC;;;OAGG;WACW,IAAI,IAAI,MAAM;IAI5B;;;;;OAKG;WACW,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAWlD;;;;;;OAMG;WACW,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO;IAerE;;;;;OAKG;WACW,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IA+EpD;;;;;;OAMG;WACW,OAAO,CACnB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,UAAU,EACpB,WAAW,EAAE,OAAO,GACnB,MAAM;IAgDT;;;;OAIG;WACW,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAqF5C;;;;;OAKG;WACW,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM;IA8BxE;;;;;OAKG;WACW,oBAAoB,CAChC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,OAAO,GACnB,MAAM;IAST;;;;;OAKG;WACW,iBAAiB,CAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,UAAU,GACnB,MAAM;IAOT;;;;;OAKG;WACW,cAAc,CAC1B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,OAAO,GACb,MAAM;WAOK,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;WA4B7C,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;WAW/C,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAU9D;;OAEG;IACH,IAAW,WAAW,IAAI,MAAM,CAgC/B;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,OAAO,CAsBnB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,UAAU,CAEzB;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,CA0B3B;IAGD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAc;IACjC,IAAI,CAAC,IAAI,WAAW,CAEnB;gBAEW,CAAC,EAAE,WAAW;CAG3B"}
1
+ {"version":3,"file":"Matrix.d.ts","sourceRoot":"","sources":["../../../src/ValueObjects/Matrix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC;AAEF,qBAAa,MAAM;IACjB;;;OAGG;WACW,QAAQ,IAAI,MAAM;IAIhC;;;OAGG;WACW,IAAI,IAAI,MAAM;IAI5B;;;;;OAKG;WACW,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IAWlD;;;;;;OAMG;WACW,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,SAAQ,GAAG,OAAO;IAerE;;;;;OAKG;WACW,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IA+EpD;;;;;;OAMG;WACW,OAAO,CACnB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,UAAU,EACpB,WAAW,EAAE,OAAO,GACnB,MAAM;IAgDT;;;;OAIG;WACW,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAqF5C;;;;;OAKG;WACW,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM;IA8BxE;;;;;OAKG;WACW,oBAAoB,CAChC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,OAAO,GACnB,MAAM;IAST;;;;;OAKG;WACW,iBAAiB,CAC7B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,UAAU,GACnB,MAAM;IAOT;;;;;OAKG;WACW,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM;WAOxD,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;WA4B7C,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;WAW/C,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAU9D;;OAEG;IACH,IAAW,WAAW,IAAI,MAAM,CAgC/B;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,OAAO,CAsBnB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,UAAU,CAEzB;IAED;;OAEG;IACH,IAAI,cAAc,IAAI,MAAM,CA0B3B;IAGD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAc;IACjC,IAAI,CAAC,IAAI,WAAW,CAEnB;gBAEW,CAAC,EAAE,WAAW;CAG3B"}
@@ -17,27 +17,27 @@ export declare class Quaternion {
17
17
  static Equal(a: Quaternion, b: Quaternion): boolean;
18
18
  /**
19
19
  * Checks two quaternions to see if they are close
20
- * @param a Quaterion A
21
- * @param b Quaterion B
20
+ * @param a Quaternion A
21
+ * @param b Quaternion B
22
22
  * @param threshold "Close" threshold. Defaults to 0.001
23
- * @returns True if each of Quaterion's components are within the threshold of each other
23
+ * @returns True if each of Quaternion's components are within the threshold of each other
24
24
  */
25
25
  static Close(a: Quaternion, b: Quaternion, threshold?: number): boolean;
26
26
  /**
27
27
  * Multiplies A*B
28
- * @param a Quaterion A
28
+ * @param a Quaternion A
29
29
  * @param b Quaternion B
30
30
  * @returns The result of A*B
31
31
  */
32
32
  static Multiply(a: Quaternion, b: Quaternion): Quaternion;
33
33
  /**
34
- * Creates a new Quaterion from an array of values
35
- * @param values The four values of the Quaterion: [x,y,z,w]
36
- * @returns A Quaterion
34
+ * Creates a new Quaternion from an array of values
35
+ * @param values The four values of the Quaternion: [x,y,z,w]
36
+ * @returns A Quaternion
37
37
  */
38
38
  static FromArray(values: [number, number, number, number]): Quaternion;
39
39
  /**
40
- * Creates a Quaterion from a Data Transfer Object
40
+ * Creates a Quaternion from a Data Transfer Object
41
41
  * @param dto The Data Transfer Object
42
42
  * @returns The Quaternion
43
43
  */
@@ -48,19 +48,19 @@ export declare class Quaternion {
48
48
  */
49
49
  static Identity(): Quaternion;
50
50
  /**
51
- * Creates an quaterion about an axis for a given angle
51
+ * Creates a quaternion about an axis for a given angle
52
52
  * @param axis The rotation axis
53
53
  * @param angle The rotation angle
54
- * @returns The resulting Quaterion
54
+ * @returns The resulting Quaternion
55
55
  */
56
56
  static FromAngleAxis(axis: Vector3, angle: Angle): Quaternion;
57
57
  static FromDirectionVector(direction: Vector3): Quaternion;
58
58
  /**
59
- * Froms up a Quaternion from the Yaw-Pitch-Roll (Tait-Bryan) convetion
59
+ * Forms a Quaternion from the Yaw-Pitch-Roll (Tait-Bryan) convention
60
60
  * @param yaw defines the rotation around the y axis
61
61
  * @param pitch defines the rotation around the x axis
62
62
  * @param roll defines the rotation around the z axis
63
- * @returns the resulting quaterion
63
+ * @returns the resulting quaternion
64
64
  */
65
65
  static FromYawPitchRoll(yaw: Angle, pitch: Angle, roll: Angle): Quaternion;
66
66
  /**
@@ -68,7 +68,7 @@ export declare class Quaternion {
68
68
  * @param x Rotation about the x axis
69
69
  * @param y Rotation about the y axis
70
70
  * @param z Rotation about the z axis
71
- * @returns The Quaterion
71
+ * @returns The Quaternion
72
72
  */
73
73
  static FromEuler(x: Angle, y: Angle, z: Angle): Quaternion;
74
74
  /**
@@ -81,15 +81,15 @@ export declare class Quaternion {
81
81
  /**
82
82
  * Spherically interpolates between two quaternions
83
83
  * @param initial The initial quaternion
84
- * @param final The final quaterion
85
- * @param percent The percent along the slerp. 0 will return the initial quaterion and 1 will return the final quaterion
86
- * @returns The interpolated quaterion
84
+ * @param final The final quaternion
85
+ * @param percent The percent along the slerp. 0 will return the initial quaternion and 1 will return the final quaternion
86
+ * @returns The interpolated quaternion
87
87
  */
88
88
  static Slerp(initial: Quaternion, final: Quaternion, percent: number): Quaternion;
89
89
  /**
90
90
  * Calculates a Quaternion from a rotation matrix
91
91
  * @param rotationMatrix A normalized, non-scaled rotation matrix
92
- * @returns The Quaterion
92
+ * @returns The Quaternion
93
93
  */
94
94
  static FromRotationMatrix(rotationMatrix: Matrix): Quaternion;
95
95
  static ToRotationMatrix(quat: Quaternion): Matrix;
@@ -63,7 +63,7 @@ export declare class Vector2 {
63
63
  */
64
64
  static Scale: (vector: Vector2, scale: number) => Vector2;
65
65
  /**
66
- * Creates a new vector of a given lenght and a unit that is equal to the original vector
66
+ * Creates a new vector of a given length and a unit that is equal to the original vector
67
67
  * @param vector The original vector. This determines the unit of the final vector
68
68
  * @param length The desired length of the final vector
69
69
  * @returns The final vector
@@ -95,18 +95,23 @@ export declare class Vector2 {
95
95
  /**
96
96
  * Get the magnitude (length) of the vector
97
97
  */
98
+ get magnitude(): number;
99
+ /**
100
+ * @deprecated Use magnitude instead - this property is kept for backward compatibility
101
+ * Get the magnitude (length) of the vector
102
+ */
98
103
  get magnitued(): number;
99
104
  /**
100
105
  * Get the unit vector
101
106
  */
102
107
  get unit(): Vector2;
103
108
  /**
104
- * Returns the angle of the direction of this angle in degrees.
109
+ * Returns the angle of the direction of this vector in degrees.
105
110
  * A right vector [1,0] will return 0, a left vector [-1,0] will return 180, an up vector [0,1] will return 90 and a down vector [0,-1] will return -90
106
111
  */
107
112
  get theta(): number;
108
113
  /**
109
- * Retuns the vector as an array of numbers [x,y]
114
+ * Returns the vector as an array of numbers [x,y]
110
115
  */
111
116
  get array(): [number, number];
112
117
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Vector2.d.ts","sourceRoot":"","sources":["../../../src/ValueObjects/Vector2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;AAE1B,qBAAa,OAAO;IAClB;;;OAGG;WACW,IAAI,IAAI,OAAO;IAI7B;;;OAGG;WACW,GAAG,IAAI,OAAO;IAI5B;;;;;OAKG;WACW,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO;IAMpD;;;;OAIG;WACW,OAAO,CAAC,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAI7D;;;;;OAKG;WACW,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO;IAIlD;;;;;OAKG;WACW,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO;IAIvD;;;;;;OAMG;IACH,OAAc,KAAK,GACjB,GAAG,OAAO,EACV,GAAG,OAAO,EACV,YAAW,MAAa,KACvB,OAAO,CAMR;IAEF;;;;;OAKG;IACH,OAAc,MAAM,GAAI,KAAK,OAAO,EAAE,OAAO,KAAK,KAAG,OAAO,CAI1D;IAEF;;;;;OAKG;IACH,OAAc,KAAK,GAAI,QAAQ,OAAO,EAAE,OAAO,MAAM,KAAG,OAAO,CAI7D;IAEF;;;;;OAKG;IACH,OAAc,iBAAiB,GAC7B,QAAQ,OAAO,EACf,QAAQ,MAAM,KACb,OAAO,CAKR;IAEF;;;;;OAKG;IACH,OAAc,GAAG,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,MAAM,CAElD;IAEF;;;;;OAKG;IACH,OAAc,YAAY,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,KAAK,CAO1D;IAEF;;;;;OAKG;IACH,OAAc,KAAK,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,MAAM,CAEpD;IAEF,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAMtB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,OAAO,CASlB;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAE5B;IAED;;OAEG;IACH,IAAI,GAAG,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAElC;gBAEW,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;CAIjC"}
1
+ {"version":3,"file":"Vector2.d.ts","sourceRoot":"","sources":["../../../src/ValueObjects/Vector2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;AAE1B,qBAAa,OAAO;IAClB;;;OAGG;WACW,IAAI,IAAI,OAAO;IAI7B;;;OAGG;WACW,GAAG,IAAI,OAAO;IAI5B;;;;;OAKG;WACW,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO;IAMpD;;;;OAIG;WACW,OAAO,CAAC,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAI7D;;;;;OAKG;WACW,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO;IAIlD;;;;;OAKG;WACW,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO;IAIvD;;;;;;OAMG;IACH,OAAc,KAAK,GACjB,GAAG,OAAO,EACV,GAAG,OAAO,EACV,YAAW,MAAa,KACvB,OAAO,CAMR;IAEF;;;;;OAKG;IACH,OAAc,MAAM,GAAI,KAAK,OAAO,EAAE,OAAO,KAAK,KAAG,OAAO,CAI1D;IAEF;;;;;OAKG;IACH,OAAc,KAAK,GAAI,QAAQ,OAAO,EAAE,OAAO,MAAM,KAAG,OAAO,CAI7D;IAEF;;;;;OAKG;IACH,OAAc,iBAAiB,GAC7B,QAAQ,OAAO,EACf,QAAQ,MAAM,KACb,OAAO,CAKR;IAEF;;;;;OAKG;IACH,OAAc,GAAG,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,MAAM,CAElD;IAEF;;;;;OAKG;IACH,OAAc,YAAY,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,KAAK,CAO1D;IAEF;;;;;OAKG;IACH,OAAc,KAAK,GAAI,GAAG,OAAO,EAAE,GAAG,OAAO,KAAG,MAAM,CAEpD;IAEF,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAMtB;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,OAAO,CASlB;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAE5B;IAED;;OAEG;IACH,IAAI,GAAG,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAElC;gBAEW,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;CAIjC"}
@@ -1,5 +1,6 @@
1
1
  export * from "./AppObject";
2
2
  export * from "./Entities";
3
+ export * from "./ExampleFeature";
3
4
  export * from "./Types";
4
5
  export * from "./Utilities";
5
6
  export * from "./ValueObjects";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vived/core",
3
- "version": "1.4.2",
3
+ "version": "1.4.4",
4
4
  "description": "Core Components for VIVED Apps and Hosts",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -13,15 +13,17 @@
13
13
  }
14
14
  },
15
15
  "scripts": {
16
- "test": "jest --watch --config jestconfig.json",
17
- "testOnce": "jest --config jestconfig.json",
16
+ "test": "jest --watch --config jestconfig.json --testPathIgnorePatterns=\\.integration\\.test\\.ts$",
17
+ "testOnce": "jest --config jestconfig.json --testPathIgnorePatterns=\\.integration\\.test\\.ts$",
18
+ "test:integration": "jest --config jestconfig.json \".*\\.integration\\.test\\.ts$\"",
19
+ "test:integration:watch": "jest --watch --config jestconfig.json \".*\\.integration\\.test\\.ts$\"",
18
20
  "build": "npm run build:esm && npm run build:cjs",
19
21
  "build:esm": "tsc",
20
22
  "build:cjs": "tsc -p tsconfig.cjs.json",
21
23
  "format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
22
24
  "lint": "tslint -p tsconfig.json",
23
25
  "prepare": "npm run build",
24
- "prepublishOnly": "npm run testOnce && npm run lint",
26
+ "prepublishOnly": "npm run testOnce && npm run test:integration && npm run lint",
25
27
  "preversion": "npm run lint",
26
28
  "version": "npm run format && git add -A src",
27
29
  "postversion": "git push && git push --tags"
@@ -1,113 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.makeTestRig = makeTestRig;
4
- const AppObject_1 = require("./AppObject");
5
- const AppObjectComponent_1 = require("./AppObjectComponent");
6
- const AppObjectRepo_1 = require("./AppObjectRepo");
7
- function makeTestRig() {
8
- const repo = (0, AppObjectRepo_1.makeAppObjectRepo)();
9
- const appObj = (0, AppObject_1.makeAppObject)("obj id", repo);
10
- const observer = jest.fn();
11
- appObj.addObserver(observer);
12
- return { repo, appObj, observer };
13
- }
14
- describe("App Object", () => {
15
- it("Adds itself to the repo", () => {
16
- const { repo, appObj } = makeTestRig();
17
- expect(repo.has(appObj.id)).toEqual(true);
18
- });
19
- it("Removes itself from the repo when disposed", () => {
20
- const { repo, appObj } = makeTestRig();
21
- appObj.dispose();
22
- expect(repo.has(appObj.id)).toEqual(false);
23
- });
24
- it("Checks to see it has a component", () => {
25
- const { appObj } = makeTestRig();
26
- expect(appObj.hasComponent(MockComponent.type)).toEqual(false);
27
- new MockComponent(appObj);
28
- expect(appObj.hasComponent(MockComponent.type)).toEqual(true);
29
- });
30
- it("Notifies when an component is added", () => {
31
- const { appObj, observer } = makeTestRig();
32
- new MockComponent(appObj);
33
- expect(observer).toBeCalled();
34
- });
35
- it("Gets a component", () => {
36
- const { appObj } = makeTestRig();
37
- expect(appObj.getComponent(MockComponent.type)).toEqual(undefined);
38
- const mockComponent = new MockComponent(appObj);
39
- expect(appObj.getComponent(MockComponent.type)).toEqual(mockComponent);
40
- });
41
- it("Warns if a component is replaced", () => {
42
- const { appObj } = makeTestRig();
43
- console.warn = jest.fn();
44
- const mockComponent = new MockComponent(appObj);
45
- appObj.addComponent(mockComponent);
46
- appObj.addComponent(new MockComponent(appObj));
47
- expect(console.warn).toBeCalled();
48
- });
49
- it("Returns the component list", () => {
50
- const { appObj } = makeTestRig();
51
- expect(appObj.allComponents()).toEqual([]);
52
- const mockComponent = new MockComponent(appObj);
53
- appObj.addComponent(mockComponent);
54
- const anotherMockComponent = new AnotherMockComponent(appObj);
55
- appObj.addComponent(anotherMockComponent);
56
- expect(appObj.allComponents()).toEqual([mockComponent, anotherMockComponent]);
57
- });
58
- it("Removes a component", () => {
59
- const { appObj } = makeTestRig();
60
- const comp = new MockComponent(appObj);
61
- appObj.addComponent(comp);
62
- expect(appObj.hasComponent(MockComponent.type)).toEqual(true);
63
- appObj.removeComponent(MockComponent.type);
64
- expect(appObj.hasComponent(MockComponent.type)).toEqual(false);
65
- });
66
- it("Notifies when an component is removed", () => {
67
- const { appObj, observer } = makeTestRig();
68
- const comp = new MockComponent(appObj);
69
- appObj.addComponent(comp);
70
- observer.mockClear();
71
- appObj.removeComponent(MockComponent.type);
72
- appObj.removeComponent(MockComponent.type);
73
- appObj.removeComponent(MockComponent.type);
74
- expect(observer).toHaveBeenCalledTimes(1);
75
- });
76
- it("Disposes all components when the App Object is disposed", () => {
77
- const { appObj } = makeTestRig();
78
- const comp = new MockComponent(appObj);
79
- appObj.addComponent(comp);
80
- const spy = jest.spyOn(comp, "dispose");
81
- appObj.dispose();
82
- expect(spy).toBeCalled();
83
- });
84
- it("Clears the component list when disposed", () => {
85
- const { appObj } = makeTestRig();
86
- const comp = new MockComponent(appObj);
87
- appObj.addComponent(comp);
88
- expect(appObj.allComponents()).toHaveLength(1);
89
- appObj.dispose();
90
- expect(appObj.allComponents()).toHaveLength(0);
91
- });
92
- it("If an entity is replace, it disposes the original", () => {
93
- const { appObj } = makeTestRig();
94
- const comp = new MockComponent(appObj);
95
- appObj.addComponent(comp);
96
- const spy = jest.spyOn(comp, "dispose");
97
- appObj.addComponent(new MockComponent(appObj));
98
- expect(spy).toBeCalled();
99
- });
100
- });
101
- class MockComponent extends AppObjectComponent_1.AppObjectComponent {
102
- constructor(appObject) {
103
- super(appObject, MockComponent.type);
104
- }
105
- }
106
- MockComponent.type = "mockComponent";
107
- class AnotherMockComponent extends AppObjectComponent_1.AppObjectComponent {
108
- constructor(appObject) {
109
- super(appObject, AnotherMockComponent.type);
110
- }
111
- }
112
- AnotherMockComponent.type = "mockComponent2";
113
- //# sourceMappingURL=AppObject.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AppObject.test.js","sourceRoot":"","sources":["../../../src/AppObject/AppObject.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, makeAppObject } from \"./AppObject\";\r\nimport { AppObjectComponent } from \"./AppObjectComponent\";\r\nimport { makeAppObjectRepo } from \"./AppObjectRepo\";\r\n\r\nexport function makeTestRig() {\r\n const repo = makeAppObjectRepo();\r\n const appObj = makeAppObject(\"obj id\", repo);\r\n const observer = jest.fn();\r\n appObj.addObserver(observer);\r\n\r\n return { repo, appObj, observer };\r\n}\r\n\r\ndescribe(\"App Object\", () => {\r\n it(\"Adds itself to the repo\", () => {\r\n const { repo, appObj } = makeTestRig();\r\n\r\n expect(repo.has(appObj.id)).toEqual(true);\r\n });\r\n\r\n it(\"Removes itself from the repo when disposed\", () => {\r\n const { repo, appObj } = makeTestRig();\r\n\r\n appObj.dispose();\r\n expect(repo.has(appObj.id)).toEqual(false);\r\n });\r\n\r\n it(\"Checks to see it has a component\", () => {\r\n const { appObj } = makeTestRig();\r\n\r\n expect(appObj.hasComponent(MockComponent.type)).toEqual(false);\r\n\r\n new MockComponent(appObj);\r\n\r\n expect(appObj.hasComponent(MockComponent.type)).toEqual(true);\r\n });\r\n\r\n it(\"Notifies when an component is added\", () => {\r\n const { appObj, observer } = makeTestRig();\r\n\r\n new MockComponent(appObj);\r\n\r\n expect(observer).toBeCalled();\r\n });\r\n\r\n it(\"Gets a component\", () => {\r\n const { appObj } = makeTestRig();\r\n\r\n expect(appObj.getComponent(MockComponent.type)).toEqual(undefined);\r\n\r\n const mockComponent = new MockComponent(appObj);\r\n\r\n expect(appObj.getComponent(MockComponent.type)).toEqual(mockComponent);\r\n });\r\n\r\n it(\"Warns if a component is replaced\", () => {\r\n const { appObj } = makeTestRig();\r\n\r\n console.warn = jest.fn();\r\n\r\n const mockComponent = new MockComponent(appObj);\r\n appObj.addComponent(mockComponent);\r\n appObj.addComponent(new MockComponent(appObj));\r\n\r\n expect(console.warn).toBeCalled();\r\n });\r\n\r\n it(\"Returns the component list\", () => {\r\n const { appObj } = makeTestRig();\r\n\r\n expect(appObj.allComponents()).toEqual([]);\r\n\r\n const mockComponent = new MockComponent(appObj);\r\n appObj.addComponent(mockComponent);\r\n\r\n const anotherMockComponent = new AnotherMockComponent(appObj);\r\n appObj.addComponent(anotherMockComponent)\r\n\r\n expect(appObj.allComponents()).toEqual([mockComponent, anotherMockComponent]);\r\n });\r\n\r\n it(\"Removes a component\", () => {\r\n const { appObj } = makeTestRig();\r\n const comp = new MockComponent(appObj);\r\n appObj.addComponent(comp)\r\n\r\n expect(appObj.hasComponent(MockComponent.type)).toEqual(true);\r\n\r\n appObj.removeComponent(MockComponent.type);\r\n\r\n expect(appObj.hasComponent(MockComponent.type)).toEqual(false);\r\n });\r\n\r\n it(\"Notifies when an component is removed\", () => {\r\n const { appObj, observer } = makeTestRig();\r\n const comp = new MockComponent(appObj);\r\n appObj.addComponent(comp)\r\n observer.mockClear();\r\n\r\n appObj.removeComponent(MockComponent.type);\r\n appObj.removeComponent(MockComponent.type);\r\n appObj.removeComponent(MockComponent.type);\r\n\r\n expect(observer).toHaveBeenCalledTimes(1);\r\n });\r\n\r\n it(\"Disposes all components when the App Object is disposed\", () => {\r\n const { appObj } = makeTestRig();\r\n\r\n const comp = new MockComponent(appObj);\r\n appObj.addComponent(comp)\r\n\r\n const spy = jest.spyOn(comp, \"dispose\");\r\n\r\n appObj.dispose();\r\n\r\n expect(spy).toBeCalled();\r\n });\r\n\r\n it(\"Clears the component list when disposed\", () => {\r\n const { appObj } = makeTestRig();\r\n\r\n const comp = new MockComponent(appObj);\r\n appObj.addComponent(comp)\r\n\r\n expect(appObj.allComponents()).toHaveLength(1);\r\n\r\n appObj.dispose();\r\n\r\n expect(appObj.allComponents()).toHaveLength(0);\r\n });\r\n\r\n it(\"If an entity is replace, it disposes the original\", () => {\r\n const { appObj } = makeTestRig();\r\n\r\n const comp = new MockComponent(appObj);\r\n appObj.addComponent(comp)\r\n\r\n const spy = jest.spyOn(comp, \"dispose\");\r\n appObj.addComponent(new MockComponent(appObj))\r\n\r\n expect(spy).toBeCalled();\r\n });\r\n});\r\n\r\nclass MockComponent extends AppObjectComponent {\r\n static readonly type: string = \"mockComponent\";\r\n constructor(appObject: AppObject) {\r\n super(appObject, MockComponent.type)\r\n }\r\n}\r\n\r\nclass AnotherMockComponent extends AppObjectComponent {\r\n static readonly type: string = \"mockComponent2\";\r\n constructor(appObject: AppObject) {\r\n super(appObject, AnotherMockComponent.type)\r\n }\r\n}"]}