@vived/host 5.2.2 → 5.2.3

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 (320) hide show
  1. package/dist/cjs/AppSandbox/Adapters/babylonInspectorSupportedAdapter.js +24 -0
  2. package/dist/cjs/AppSandbox/Adapters/babylonInspectorSupportedAdapter.js.map +1 -0
  3. package/dist/cjs/AppSandbox/Adapters/index.js +1 -0
  4. package/dist/cjs/AppSandbox/Adapters/index.js.map +1 -1
  5. package/dist/cjs/AppSandbox/Controller/index.js +1 -0
  6. package/dist/cjs/AppSandbox/Controller/index.js.map +1 -1
  7. package/dist/cjs/AppSandbox/Controller/setBabylonInspectorSupported.js +13 -0
  8. package/dist/cjs/AppSandbox/Controller/setBabylonInspectorSupported.js.map +1 -0
  9. package/dist/cjs/AppSandbox/Entities/AppSandboxEntity.js +7 -0
  10. package/dist/cjs/AppSandbox/Entities/AppSandboxEntity.js.map +1 -1
  11. package/dist/cjs/AppSandbox/Factories/AppSandboxFeatureFactory.js +1 -0
  12. package/dist/cjs/AppSandbox/Factories/AppSandboxFeatureFactory.js.map +1 -1
  13. package/dist/cjs/AppSandbox/Factories/index.js.map +1 -1
  14. package/dist/cjs/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.js +16 -0
  15. package/dist/cjs/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.js.map +1 -0
  16. package/dist/cjs/AppSandbox/Mocks/index.js +1 -0
  17. package/dist/cjs/AppSandbox/Mocks/index.js.map +1 -1
  18. package/dist/cjs/AppSandbox/PMs/BabylonInspectorSupportedPM.js +37 -0
  19. package/dist/cjs/AppSandbox/PMs/BabylonInspectorSupportedPM.js.map +1 -0
  20. package/dist/cjs/AppSandbox/PMs/DevFeaturesEnabledPM.js.map +1 -1
  21. package/dist/cjs/AppSandbox/PMs/ShowInspectorPM.js.map +1 -1
  22. package/dist/cjs/AppSandbox/PMs/StartInZSpacePM.js.map +1 -1
  23. package/dist/cjs/AppSandbox/PMs/index.js +1 -0
  24. package/dist/cjs/AppSandbox/PMs/index.js.map +1 -1
  25. package/dist/cjs/Apps/Entities/AppEntity.js.map +1 -1
  26. package/dist/cjs/Apps/Entities/AppRepo.js.map +1 -1
  27. package/dist/cjs/Apps/Factories/AppsFeatureFactory.js.map +1 -1
  28. package/dist/cjs/Apps/Factories/index.js.map +1 -1
  29. package/dist/cjs/Apps/UCs/Mounters/MounterUC.js.map +1 -1
  30. package/dist/cjs/Apps/UCs/Mounters/SandboxMounterUC.js.map +1 -1
  31. package/dist/cjs/Apps/UCs/StartAppUC.js.map +1 -1
  32. package/dist/cjs/Apps/UCs/StopAppUC.js.map +1 -1
  33. package/dist/cjs/Apps/index.js.map +1 -1
  34. package/dist/cjs/AssetPlugin/Factories/AssetPluginFeatureFactory.js.map +1 -1
  35. package/dist/cjs/AssetPlugin/Factories/index.js.map +1 -1
  36. package/dist/cjs/Assets/Adapters/assetFileAdapter.js.map +1 -1
  37. package/dist/cjs/Assets/Controllers/archiveAsset.js.map +1 -1
  38. package/dist/cjs/Assets/Controllers/deleteAsset.js.map +1 -1
  39. package/dist/cjs/Assets/Controllers/downloadAssetFile.js.map +1 -1
  40. package/dist/cjs/Assets/Controllers/editAppAsset.js.map +1 -1
  41. package/dist/cjs/Assets/Controllers/fetchAssetFile.js.map +1 -1
  42. package/dist/cjs/Assets/Controllers/getAppAssets.js.map +1 -1
  43. package/dist/cjs/Assets/Controllers/index.js.map +1 -1
  44. package/dist/cjs/Assets/Controllers/newAppAsset.js.map +1 -1
  45. package/dist/cjs/Assets/Controllers/toggleShowArchivedAssets.js.map +1 -1
  46. package/dist/cjs/Assets/Controllers/updateAppAssetMeta.js.map +1 -1
  47. package/dist/cjs/Assets/Controllers/updateAssetFile.js.map +1 -1
  48. package/dist/cjs/Assets/Entities/AppAssetsEntity.js.map +1 -1
  49. package/dist/cjs/Assets/Entities/AssetEntity.js.map +1 -1
  50. package/dist/cjs/Assets/Entities/AssetRepo.js.map +1 -1
  51. package/dist/cjs/Assets/Factories/AssetsFactory.js.map +1 -1
  52. package/dist/cjs/Assets/Factories/SandboxAssetsFactory.js.map +1 -1
  53. package/dist/cjs/Assets/Factories/index.js.map +1 -1
  54. package/dist/cjs/Assets/PMs/AssetFilePM.js.map +1 -1
  55. package/dist/cjs/Assets/PMs/AssetPM.js.map +1 -1
  56. package/dist/cjs/Assets/PMs/ShowArchivedAppAssetPM.js.map +1 -1
  57. package/dist/cjs/Assets/UCs/ArchiveAssetUC.js.map +1 -1
  58. package/dist/cjs/Assets/UCs/DeleteAssetUC.js.map +1 -1
  59. package/dist/cjs/Assets/UCs/DownloadAssetFileUC.js.map +1 -1
  60. package/dist/cjs/Assets/UCs/EditAppAssetUC.js.map +1 -1
  61. package/dist/cjs/Assets/UCs/GetAssetBlobURLUC.js.map +1 -1
  62. package/dist/cjs/Assets/UCs/GetAssetFileUC.js.map +1 -1
  63. package/dist/cjs/Assets/UCs/GetAssetUC.js.map +1 -1
  64. package/dist/cjs/Assets/UCs/NewAppAssetUC.js.map +1 -1
  65. package/dist/cjs/Assets/UCs/NewAssetUC.js.map +1 -1
  66. package/dist/cjs/Assets/UCs/UpdateAppAssetMetaUC.js.map +1 -1
  67. package/dist/cjs/Assets/UCs/UpdateAssetFileUC.js.map +1 -1
  68. package/dist/cjs/Assets/UCs/index.js.map +1 -1
  69. package/dist/cjs/Cache/Factories/CacheFeatureFactory.js.map +1 -1
  70. package/dist/cjs/Cache/Factories/index.js.map +1 -1
  71. package/dist/cjs/ChallengeResults/Entities/ChallengeResults.js.map +1 -1
  72. package/dist/cjs/ChallengeResults/Factories/ChallengeResultsFactory.js.map +1 -1
  73. package/dist/cjs/ChallengeResults/PMs/ChallengeResultsListPM.js.map +1 -1
  74. package/dist/cjs/ChallengeResults/PMs/HasChallengeResultsPM.js.map +1 -1
  75. package/dist/cjs/Dialog/Factories/SandboxDialogFactory.js +1 -2
  76. package/dist/cjs/Dialog/Factories/SandboxDialogFactory.js.map +1 -1
  77. package/dist/cjs/Handler/UCs/SubmitResultHandler.js.map +1 -1
  78. package/dist/cjs/Logger/Factories/SandboxLoggerFactory.js.map +1 -1
  79. package/dist/cjs/Logger/PMs/ForwardLogsToConsolePM.js.map +1 -1
  80. package/dist/cjs/StateMachine/Controllers/index.js.map +1 -1
  81. package/dist/cjs/StateMachine/Controllers/setTransitionDuration.js.map +1 -1
  82. package/dist/cjs/StateMachine/Factories/SandboxStateMachineFactory.js.map +1 -1
  83. package/dist/cjs/StateMachine/PMs/HostStatePM.js.map +1 -1
  84. package/dist/cjs/ThemeColors/Controllers/index.js.map +1 -1
  85. package/dist/cjs/ThemeColors/Controllers/setThemeByName.js.map +1 -1
  86. package/dist/cjs/ThemeColors/Factories/ThemeFactory.js.map +1 -1
  87. package/dist/cjs/ThemeColors/Mocks/MockSetThemeUC.js.map +1 -1
  88. package/dist/cjs/ThemeColors/Mocks/index.js.map +1 -1
  89. package/dist/cjs/VivedAPI/Adapters/apiStageAdapter.js.map +1 -1
  90. package/dist/cjs/VivedAPI/Adapters/index.js.map +1 -1
  91. package/dist/cjs/VivedAPI/Adapters/userTokenAdapter.js.map +1 -1
  92. package/dist/cjs/VivedAPI/Controllers/index.js.map +1 -1
  93. package/dist/cjs/VivedAPI/Controllers/loginUser.js.map +1 -1
  94. package/dist/cjs/VivedAPI/Controllers/logoutUser.js.map +1 -1
  95. package/dist/cjs/VivedAPI/Controllers/setApiStage.js.map +1 -1
  96. package/dist/cjs/VivedAPI/Entities/VivedAPIEntity.js.map +1 -1
  97. package/dist/cjs/VivedAPI/Entities/index.js.map +1 -1
  98. package/dist/cjs/VivedAPI/Factories/SandboxVivedAPIFactory.js.map +1 -1
  99. package/dist/cjs/VivedAPI/Factories/VivedAPIFactory.js.map +1 -1
  100. package/dist/cjs/VivedAPI/Factories/index.js.map +1 -1
  101. package/dist/cjs/VivedAPI/Factories/setupAPI.js.map +1 -1
  102. package/dist/cjs/VivedAPI/Factories/setupVivedAPIForSandbox.js.map +1 -1
  103. package/dist/cjs/VivedAPI/Mocks/MockJsonRequestUC.js.map +1 -1
  104. package/dist/cjs/VivedAPI/Mocks/index.js.map +1 -1
  105. package/dist/cjs/VivedAPI/PMs/ApiStagePM.js.map +1 -1
  106. package/dist/cjs/VivedAPI/PMs/UserTokenPM.js.map +1 -1
  107. package/dist/cjs/VivedAPI/PMs/index.js.map +1 -1
  108. package/dist/cjs/VivedAPI/UCs/BasicFetchUC.js.map +1 -1
  109. package/dist/cjs/VivedAPI/UCs/BlobRequestUC.js.map +1 -1
  110. package/dist/cjs/VivedAPI/UCs/DeleteAssetOnAPIUC.js.map +1 -1
  111. package/dist/cjs/VivedAPI/UCs/FileUploadUC.js.map +1 -1
  112. package/dist/cjs/VivedAPI/UCs/JsonRequestUC.js.map +1 -1
  113. package/dist/cjs/VivedAPI/UCs/PostNewAssetUC.js.map +1 -1
  114. package/dist/cjs/VivedAPI/UCs/SignedAuthTokenUC.js.map +1 -1
  115. package/dist/cjs/VivedAPI/UCs/UserAuthUC.js.map +1 -1
  116. package/dist/cjs/VivedAPI/UCs/index.js.map +1 -1
  117. package/dist/cjs/VivedAPI/index.js.map +1 -1
  118. package/dist/cjs/ZSpaceHost/Adapters/index.js +1 -0
  119. package/dist/cjs/ZSpaceHost/Adapters/index.js.map +1 -1
  120. package/dist/cjs/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.js +24 -0
  121. package/dist/cjs/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.js.map +1 -0
  122. package/dist/cjs/ZSpaceHost/Controllers/index.js.map +1 -1
  123. package/dist/cjs/ZSpaceHost/Controllers/setZSpaceIsSupported.js.map +1 -1
  124. package/dist/cjs/ZSpaceHost/Factories/SandboxZSpaceFactory.js +1 -0
  125. package/dist/cjs/ZSpaceHost/Factories/SandboxZSpaceFactory.js.map +1 -1
  126. package/dist/cjs/ZSpaceHost/Factories/setupZSpaceForSandbox.js +1 -0
  127. package/dist/cjs/ZSpaceHost/Factories/setupZSpaceForSandbox.js.map +1 -1
  128. package/dist/cjs/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.js +16 -0
  129. package/dist/cjs/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.js.map +1 -0
  130. package/dist/cjs/ZSpaceHost/Mocks/index.js +1 -0
  131. package/dist/cjs/ZSpaceHost/Mocks/index.js.map +1 -1
  132. package/dist/cjs/ZSpaceHost/PMs/EmulateZSpacePM.js.map +1 -1
  133. package/dist/cjs/ZSpaceHost/PMs/ZSpaceIsActivePM.js.map +1 -1
  134. package/dist/cjs/ZSpaceHost/PMs/ZSpaceIsSupportedPM.js +40 -0
  135. package/dist/cjs/ZSpaceHost/PMs/ZSpaceIsSupportedPM.js.map +1 -0
  136. package/dist/cjs/ZSpaceHost/PMs/index.js +1 -0
  137. package/dist/cjs/ZSpaceHost/PMs/index.js.map +1 -1
  138. package/dist/esm/AppSandbox/Adapters/babylonInspectorSupportedAdapter.js +21 -0
  139. package/dist/esm/AppSandbox/Adapters/babylonInspectorSupportedAdapter.js.map +1 -0
  140. package/dist/esm/AppSandbox/Adapters/index.js +1 -0
  141. package/dist/esm/AppSandbox/Adapters/index.js.map +1 -1
  142. package/dist/esm/AppSandbox/Controller/index.js +1 -0
  143. package/dist/esm/AppSandbox/Controller/index.js.map +1 -1
  144. package/dist/esm/AppSandbox/Controller/setBabylonInspectorSupported.js +10 -0
  145. package/dist/esm/AppSandbox/Controller/setBabylonInspectorSupported.js.map +1 -0
  146. package/dist/esm/AppSandbox/Entities/AppSandboxEntity.js +7 -0
  147. package/dist/esm/AppSandbox/Entities/AppSandboxEntity.js.map +1 -1
  148. package/dist/esm/AppSandbox/Factories/AppSandboxFeatureFactory.js +2 -1
  149. package/dist/esm/AppSandbox/Factories/AppSandboxFeatureFactory.js.map +1 -1
  150. package/dist/esm/AppSandbox/Factories/index.js.map +1 -1
  151. package/dist/esm/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.js +11 -0
  152. package/dist/esm/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.js.map +1 -0
  153. package/dist/esm/AppSandbox/Mocks/index.js +1 -0
  154. package/dist/esm/AppSandbox/Mocks/index.js.map +1 -1
  155. package/dist/esm/AppSandbox/PMs/BabylonInspectorSupportedPM.js +32 -0
  156. package/dist/esm/AppSandbox/PMs/BabylonInspectorSupportedPM.js.map +1 -0
  157. package/dist/esm/AppSandbox/PMs/DevFeaturesEnabledPM.js.map +1 -1
  158. package/dist/esm/AppSandbox/PMs/ShowInspectorPM.js.map +1 -1
  159. package/dist/esm/AppSandbox/PMs/StartInZSpacePM.js.map +1 -1
  160. package/dist/esm/AppSandbox/PMs/index.js +1 -0
  161. package/dist/esm/AppSandbox/PMs/index.js.map +1 -1
  162. package/dist/esm/Apps/Entities/AppEntity.js.map +1 -1
  163. package/dist/esm/Apps/Entities/AppRepo.js.map +1 -1
  164. package/dist/esm/Apps/Factories/AppsFeatureFactory.js.map +1 -1
  165. package/dist/esm/Apps/Factories/index.js.map +1 -1
  166. package/dist/esm/Apps/UCs/Mounters/MounterUC.js.map +1 -1
  167. package/dist/esm/Apps/UCs/Mounters/SandboxMounterUC.js.map +1 -1
  168. package/dist/esm/Apps/UCs/StartAppUC.js.map +1 -1
  169. package/dist/esm/Apps/UCs/StopAppUC.js.map +1 -1
  170. package/dist/esm/Apps/index.js.map +1 -1
  171. package/dist/esm/AssetPlugin/Factories/AssetPluginFeatureFactory.js.map +1 -1
  172. package/dist/esm/AssetPlugin/Factories/index.js.map +1 -1
  173. package/dist/esm/Assets/Adapters/assetFileAdapter.js.map +1 -1
  174. package/dist/esm/Assets/Controllers/archiveAsset.js.map +1 -1
  175. package/dist/esm/Assets/Controllers/deleteAsset.js.map +1 -1
  176. package/dist/esm/Assets/Controllers/downloadAssetFile.js.map +1 -1
  177. package/dist/esm/Assets/Controllers/editAppAsset.js.map +1 -1
  178. package/dist/esm/Assets/Controllers/fetchAssetFile.js.map +1 -1
  179. package/dist/esm/Assets/Controllers/getAppAssets.js.map +1 -1
  180. package/dist/esm/Assets/Controllers/index.js.map +1 -1
  181. package/dist/esm/Assets/Controllers/newAppAsset.js.map +1 -1
  182. package/dist/esm/Assets/Controllers/toggleShowArchivedAssets.js.map +1 -1
  183. package/dist/esm/Assets/Controllers/updateAppAssetMeta.js.map +1 -1
  184. package/dist/esm/Assets/Controllers/updateAssetFile.js.map +1 -1
  185. package/dist/esm/Assets/Entities/AppAssetsEntity.js.map +1 -1
  186. package/dist/esm/Assets/Entities/AssetEntity.js.map +1 -1
  187. package/dist/esm/Assets/Entities/AssetRepo.js.map +1 -1
  188. package/dist/esm/Assets/Factories/AssetsFactory.js.map +1 -1
  189. package/dist/esm/Assets/Factories/SandboxAssetsFactory.js.map +1 -1
  190. package/dist/esm/Assets/Factories/index.js.map +1 -1
  191. package/dist/esm/Assets/PMs/AssetFilePM.js.map +1 -1
  192. package/dist/esm/Assets/PMs/AssetPM.js.map +1 -1
  193. package/dist/esm/Assets/PMs/ShowArchivedAppAssetPM.js.map +1 -1
  194. package/dist/esm/Assets/UCs/ArchiveAssetUC.js.map +1 -1
  195. package/dist/esm/Assets/UCs/DeleteAssetUC.js.map +1 -1
  196. package/dist/esm/Assets/UCs/DownloadAssetFileUC.js.map +1 -1
  197. package/dist/esm/Assets/UCs/EditAppAssetUC.js.map +1 -1
  198. package/dist/esm/Assets/UCs/GetAssetBlobURLUC.js.map +1 -1
  199. package/dist/esm/Assets/UCs/GetAssetFileUC.js.map +1 -1
  200. package/dist/esm/Assets/UCs/GetAssetUC.js.map +1 -1
  201. package/dist/esm/Assets/UCs/NewAppAssetUC.js.map +1 -1
  202. package/dist/esm/Assets/UCs/NewAssetUC.js.map +1 -1
  203. package/dist/esm/Assets/UCs/UpdateAppAssetMetaUC.js.map +1 -1
  204. package/dist/esm/Assets/UCs/UpdateAssetFileUC.js.map +1 -1
  205. package/dist/esm/Assets/UCs/index.js.map +1 -1
  206. package/dist/esm/Cache/Factories/CacheFeatureFactory.js.map +1 -1
  207. package/dist/esm/Cache/Factories/index.js.map +1 -1
  208. package/dist/esm/ChallengeResults/Entities/ChallengeResults.js.map +1 -1
  209. package/dist/esm/ChallengeResults/Factories/ChallengeResultsFactory.js.map +1 -1
  210. package/dist/esm/ChallengeResults/PMs/ChallengeResultsListPM.js.map +1 -1
  211. package/dist/esm/ChallengeResults/PMs/HasChallengeResultsPM.js.map +1 -1
  212. package/dist/esm/Dialog/Factories/SandboxDialogFactory.js +1 -2
  213. package/dist/esm/Dialog/Factories/SandboxDialogFactory.js.map +1 -1
  214. package/dist/esm/Handler/UCs/SubmitResultHandler.js.map +1 -1
  215. package/dist/esm/Logger/Factories/SandboxLoggerFactory.js.map +1 -1
  216. package/dist/esm/Logger/PMs/ForwardLogsToConsolePM.js.map +1 -1
  217. package/dist/esm/StateMachine/Controllers/index.js.map +1 -1
  218. package/dist/esm/StateMachine/Controllers/setTransitionDuration.js.map +1 -1
  219. package/dist/esm/StateMachine/Factories/SandboxStateMachineFactory.js.map +1 -1
  220. package/dist/esm/StateMachine/PMs/HostStatePM.js.map +1 -1
  221. package/dist/esm/ThemeColors/Controllers/index.js.map +1 -1
  222. package/dist/esm/ThemeColors/Controllers/setThemeByName.js.map +1 -1
  223. package/dist/esm/ThemeColors/Factories/ThemeFactory.js.map +1 -1
  224. package/dist/esm/ThemeColors/Mocks/MockSetThemeUC.js.map +1 -1
  225. package/dist/esm/ThemeColors/Mocks/index.js.map +1 -1
  226. package/dist/esm/VivedAPI/Adapters/apiStageAdapter.js.map +1 -1
  227. package/dist/esm/VivedAPI/Adapters/index.js.map +1 -1
  228. package/dist/esm/VivedAPI/Adapters/userTokenAdapter.js.map +1 -1
  229. package/dist/esm/VivedAPI/Controllers/index.js.map +1 -1
  230. package/dist/esm/VivedAPI/Controllers/loginUser.js.map +1 -1
  231. package/dist/esm/VivedAPI/Controllers/logoutUser.js.map +1 -1
  232. package/dist/esm/VivedAPI/Controllers/setApiStage.js.map +1 -1
  233. package/dist/esm/VivedAPI/Entities/VivedAPIEntity.js.map +1 -1
  234. package/dist/esm/VivedAPI/Entities/index.js.map +1 -1
  235. package/dist/esm/VivedAPI/Factories/SandboxVivedAPIFactory.js.map +1 -1
  236. package/dist/esm/VivedAPI/Factories/VivedAPIFactory.js.map +1 -1
  237. package/dist/esm/VivedAPI/Factories/index.js.map +1 -1
  238. package/dist/esm/VivedAPI/Factories/setupAPI.js.map +1 -1
  239. package/dist/esm/VivedAPI/Factories/setupVivedAPIForSandbox.js.map +1 -1
  240. package/dist/esm/VivedAPI/Mocks/MockJsonRequestUC.js.map +1 -1
  241. package/dist/esm/VivedAPI/Mocks/index.js.map +1 -1
  242. package/dist/esm/VivedAPI/PMs/ApiStagePM.js.map +1 -1
  243. package/dist/esm/VivedAPI/PMs/UserTokenPM.js.map +1 -1
  244. package/dist/esm/VivedAPI/PMs/index.js.map +1 -1
  245. package/dist/esm/VivedAPI/UCs/BasicFetchUC.js.map +1 -1
  246. package/dist/esm/VivedAPI/UCs/BlobRequestUC.js.map +1 -1
  247. package/dist/esm/VivedAPI/UCs/DeleteAssetOnAPIUC.js.map +1 -1
  248. package/dist/esm/VivedAPI/UCs/FileUploadUC.js.map +1 -1
  249. package/dist/esm/VivedAPI/UCs/JsonRequestUC.js.map +1 -1
  250. package/dist/esm/VivedAPI/UCs/PostNewAssetUC.js.map +1 -1
  251. package/dist/esm/VivedAPI/UCs/SignedAuthTokenUC.js.map +1 -1
  252. package/dist/esm/VivedAPI/UCs/UserAuthUC.js.map +1 -1
  253. package/dist/esm/VivedAPI/UCs/index.js.map +1 -1
  254. package/dist/esm/VivedAPI/index.js.map +1 -1
  255. package/dist/esm/ZSpaceHost/Adapters/index.js +1 -0
  256. package/dist/esm/ZSpaceHost/Adapters/index.js.map +1 -1
  257. package/dist/esm/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.js +21 -0
  258. package/dist/esm/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.js.map +1 -0
  259. package/dist/esm/ZSpaceHost/Controllers/index.js.map +1 -1
  260. package/dist/esm/ZSpaceHost/Controllers/setZSpaceIsSupported.js.map +1 -1
  261. package/dist/esm/ZSpaceHost/Factories/SandboxZSpaceFactory.js +2 -1
  262. package/dist/esm/ZSpaceHost/Factories/SandboxZSpaceFactory.js.map +1 -1
  263. package/dist/esm/ZSpaceHost/Factories/setupZSpaceForSandbox.js +2 -1
  264. package/dist/esm/ZSpaceHost/Factories/setupZSpaceForSandbox.js.map +1 -1
  265. package/dist/esm/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.js +11 -0
  266. package/dist/esm/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.js.map +1 -0
  267. package/dist/esm/ZSpaceHost/Mocks/index.js +1 -0
  268. package/dist/esm/ZSpaceHost/Mocks/index.js.map +1 -1
  269. package/dist/esm/ZSpaceHost/PMs/EmulateZSpacePM.js.map +1 -1
  270. package/dist/esm/ZSpaceHost/PMs/ZSpaceIsActivePM.js.map +1 -1
  271. package/dist/esm/ZSpaceHost/PMs/ZSpaceIsSupportedPM.js +35 -0
  272. package/dist/esm/ZSpaceHost/PMs/ZSpaceIsSupportedPM.js.map +1 -0
  273. package/dist/esm/ZSpaceHost/PMs/index.js +1 -0
  274. package/dist/esm/ZSpaceHost/PMs/index.js.map +1 -1
  275. package/dist/types/AppSandbox/Adapters/babylonInspectorSupportedAdapter.d.ts +3 -0
  276. package/dist/types/AppSandbox/Adapters/babylonInspectorSupportedAdapter.d.ts.map +1 -0
  277. package/dist/types/AppSandbox/Adapters/index.d.ts +1 -0
  278. package/dist/types/AppSandbox/Adapters/index.d.ts.map +1 -1
  279. package/dist/types/AppSandbox/Controller/index.d.ts +1 -0
  280. package/dist/types/AppSandbox/Controller/index.d.ts.map +1 -1
  281. package/dist/types/AppSandbox/Controller/setBabylonInspectorSupported.d.ts +3 -0
  282. package/dist/types/AppSandbox/Controller/setBabylonInspectorSupported.d.ts.map +1 -0
  283. package/dist/types/AppSandbox/Entities/AppSandboxEntity.d.ts +2 -0
  284. package/dist/types/AppSandbox/Entities/AppSandboxEntity.d.ts.map +1 -1
  285. package/dist/types/AppSandbox/Factories/AppSandboxFeatureFactory.d.ts.map +1 -1
  286. package/dist/types/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.d.ts +8 -0
  287. package/dist/types/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.d.ts.map +1 -0
  288. package/dist/types/AppSandbox/Mocks/index.d.ts +1 -0
  289. package/dist/types/AppSandbox/Mocks/index.d.ts.map +1 -1
  290. package/dist/types/AppSandbox/PMs/BabylonInspectorSupportedPM.d.ts +7 -0
  291. package/dist/types/AppSandbox/PMs/BabylonInspectorSupportedPM.d.ts.map +1 -0
  292. package/dist/types/AppSandbox/PMs/index.d.ts +1 -0
  293. package/dist/types/AppSandbox/PMs/index.d.ts.map +1 -1
  294. package/dist/types/Apps/Factories/AppsFeatureFactory.d.ts.map +1 -1
  295. package/dist/types/AssetPlugin/Factories/AssetPluginFeatureFactory.d.ts.map +1 -1
  296. package/dist/types/Assets/Factories/AssetsFactory.d.ts.map +1 -1
  297. package/dist/types/Dialog/Factories/SandboxDialogFactory.d.ts.map +1 -1
  298. package/dist/types/StateMachine/Factories/SandboxStateMachineFactory.d.ts.map +1 -1
  299. package/dist/types/ZSpaceHost/Adapters/index.d.ts +1 -0
  300. package/dist/types/ZSpaceHost/Adapters/index.d.ts.map +1 -1
  301. package/dist/types/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.d.ts +3 -0
  302. package/dist/types/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.d.ts.map +1 -0
  303. package/dist/types/ZSpaceHost/Factories/SandboxZSpaceFactory.d.ts.map +1 -1
  304. package/dist/types/ZSpaceHost/Factories/setupZSpaceForSandbox.d.ts.map +1 -1
  305. package/dist/types/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.d.ts +8 -0
  306. package/dist/types/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.d.ts.map +1 -0
  307. package/dist/types/ZSpaceHost/Mocks/index.d.ts +1 -0
  308. package/dist/types/ZSpaceHost/Mocks/index.d.ts.map +1 -1
  309. package/dist/types/ZSpaceHost/PMs/ZSpaceIsSupportedPM.d.ts +7 -0
  310. package/dist/types/ZSpaceHost/PMs/ZSpaceIsSupportedPM.d.ts.map +1 -0
  311. package/dist/types/ZSpaceHost/PMs/index.d.ts +1 -0
  312. package/dist/types/ZSpaceHost/PMs/index.d.ts.map +1 -1
  313. package/package.json +1 -1
  314. package/README.md +0 -105
  315. package/dist/cjs/Assets/Factories/setupAssets.js +0 -14
  316. package/dist/cjs/Assets/Factories/setupAssets.js.map +0 -1
  317. package/dist/esm/Assets/Factories/setupAssets.js +0 -11
  318. package/dist/esm/Assets/Factories/setupAssets.js.map +0 -1
  319. package/dist/types/Assets/Factories/setupAssets.d.ts +0 -8
  320. package/dist/types/Assets/Factories/setupAssets.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC","sourcesContent":["export * from \"./devFeaturesEnabledAdapter\";\nexport * from \"./sandboxStateAdapter\";\nexport * from \"./showInspectorAdapter\";\nexport * from \"./startInZSpaceAdapter\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Adapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC","sourcesContent":["export * from \"./babylonInspectorSupportedAdapter\";\nexport * from \"./devFeaturesEnabledAdapter\";\nexport * from \"./sandboxStateAdapter\";\nexport * from \"./showInspectorAdapter\";\nexport * from \"./startInZSpaceAdapter\";\n"]}
@@ -1,5 +1,6 @@
1
1
  export * from "./clearSandboxAppContainer";
2
2
  export * from "./mountSandboxApp";
3
+ export * from "./setBabylonInspectorSupported";
3
4
  export * from "./setSandboxAppContainer";
4
5
  export * from "./setSandboxAppState";
5
6
  export * from "./startSandboxApp";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Controller/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC","sourcesContent":["export * from \"./clearSandboxAppContainer\";\nexport * from \"./mountSandboxApp\";\nexport * from \"./setSandboxAppContainer\";\nexport * from \"./setSandboxAppState\";\nexport * from \"./startSandboxApp\";\nexport * from \"./stopSandboxApp\";\nexport * from \"./toggleAllowDevFeatures\";\nexport * from \"./toggleShowInspector\";\nexport * from \"./toggleStartInZSpace\";\nexport * from \"./unmountSandboxApp\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Controller/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC","sourcesContent":["export * from \"./clearSandboxAppContainer\";\nexport * from \"./mountSandboxApp\";\nexport * from \"./setBabylonInspectorSupported\";\nexport * from \"./setSandboxAppContainer\";\nexport * from \"./setSandboxAppState\";\nexport * from \"./startSandboxApp\";\nexport * from \"./stopSandboxApp\";\nexport * from \"./toggleAllowDevFeatures\";\nexport * from \"./toggleShowInspector\";\nexport * from \"./toggleStartInZSpace\";\nexport * from \"./unmountSandboxApp\";\n"]}
@@ -0,0 +1,10 @@
1
+ import { AppSandboxEntity } from "../Entities";
2
+ export function setBabylonInspectorSupported(appObjects, isSupported) {
3
+ const sandbox = AppSandboxEntity.get(appObjects);
4
+ if (!sandbox) {
5
+ appObjects.submitError("setBabylonInspectorSupported", "Unable to find AppSandboxEntity");
6
+ return;
7
+ }
8
+ sandbox.babylonInspectorSupported = isSupported;
9
+ }
10
+ //# sourceMappingURL=setBabylonInspectorSupported.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setBabylonInspectorSupported.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Controller/setBabylonInspectorSupported.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,UAAU,4BAA4B,CAC1C,UAAyB,EACzB,WAAoB;IAEpB,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,UAAU,CAAC,WAAW,CACpB,8BAA8B,EAC9B,iCAAiC,CAClC,CAAC;QACF,OAAO;IACT,CAAC;IAED,OAAO,CAAC,yBAAyB,GAAG,WAAW,CAAC;AAClD,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\nimport { AppSandboxEntity } from \"../Entities\";\n\nexport function setBabylonInspectorSupported(\n appObjects: AppObjectRepo,\n isSupported: boolean\n) {\n const sandbox = AppSandboxEntity.get(appObjects);\n if (!sandbox) {\n appObjects.submitError(\n \"setBabylonInspectorSupported\",\n \"Unable to find AppSandboxEntity\"\n );\n return;\n }\n\n sandbox.babylonInspectorSupported = isSupported;\n}\n"]}
@@ -44,6 +44,12 @@ class AppSandboxEntityImp extends AppSandboxEntity {
44
44
  set showBabylonInspector(val) {
45
45
  this.memoizedShowInspector.val = val;
46
46
  }
47
+ get babylonInspectorSupported() {
48
+ return this.memoizedBabylonInspectorSupported.val;
49
+ }
50
+ set babylonInspectorSupported(val) {
51
+ this.memoizedBabylonInspectorSupported.val = val;
52
+ }
47
53
  get enableDevFeatures() {
48
54
  return this.memoisedEnableDevFeatures.val;
49
55
  }
@@ -66,6 +72,7 @@ class AppSandboxEntityImp extends AppSandboxEntity {
66
72
  this.channelName = "Development Channel";
67
73
  this.memoizedStartInZSpace = new MemoizedBoolean(false, this.notifyOnChange);
68
74
  this.memoizedShowInspector = new MemoizedBoolean(false, this.notifyOnChange);
75
+ this.memoizedBabylonInspectorSupported = new MemoizedBoolean(true, this.notifyOnChange);
69
76
  this.memoisedEnableDevFeatures = new MemoizedBoolean(true, this.notifyOnChange);
70
77
  this.devFeatures = [];
71
78
  this._state = SandboxState.UNMOUNTED;
@@ -1 +1 @@
1
- {"version":3,"file":"AppSandboxEntity.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Entities/AppSandboxEntity.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AppObject,\n AppObjectEntity,\n AppObjectRepo,\n getSingletonComponent,\n MemoizedBoolean\n} from \"@vived/core\";\nimport { AppEntity, makeAppEntity } from \"../../Apps/Entities/AppEntity\";\n\nexport enum SandboxState {\n UNMOUNTED = \"UNMOUNTED\",\n LOADING = \"LOADING\",\n MOUNTED = \"MOUNTED\",\n PLAYING = \"PLAYING\",\n FATAL_ERROR = \"FATAL_ERROR\",\n EDIT_ASSET = \"EDIT_ASSET\",\n NEW_APP_ASSET = \"NEW_APP_ASSET\"\n}\n\nexport abstract class AppSandboxEntity extends AppObjectEntity {\n static type = \"AppSandboxEntity\";\n\n abstract get appID(): string;\n\n abstract get appContainer(): HTMLDivElement | undefined;\n abstract set appContainer(container: HTMLDivElement | undefined);\n\n abstract get channelID(): string;\n abstract set channelID(id: string);\n\n abstract get channelName(): string;\n abstract set channelName(id: string);\n\n abstract get state(): SandboxState;\n abstract set state(val: SandboxState);\n\n abstract get startInZSpace(): boolean;\n abstract set startInZSpace(val: boolean);\n\n abstract get showBabylonInspector(): boolean;\n abstract set showBabylonInspector(render: boolean);\n\n abstract get enableDevFeatures(): boolean;\n abstract set enableDevFeatures(enable: boolean);\n\n abstract mockActivityID: string;\n\n abstract devFeatures: string[];\n\n abstract readonly app: AppEntity;\n\n static get(appObjects: AppObjectRepo) {\n return getSingletonComponent<AppSandboxEntity>(\n AppSandboxEntity.type,\n appObjects\n );\n }\n}\n\nexport function makeAppSandboxEntity(appObject: AppObject): AppSandboxEntity {\n return new AppSandboxEntityImp(appObject);\n}\n\nclass AppSandboxEntityImp extends AppSandboxEntity {\n readonly app: AppEntity;\n\n get appID() {\n return this.appObject.id;\n }\n\n mockActivityID = \"74ec8149-ced4-44b7-a4e4-5238593ab36f\";\n channelID = \"abad8cd4-6379-4325-a7c0-3679c358ebe6\";\n channelName = \"Development Channel\";\n\n private memoizedStartInZSpace = new MemoizedBoolean(\n false,\n this.notifyOnChange\n );\n get startInZSpace() {\n return this.memoizedStartInZSpace.val;\n }\n set startInZSpace(val: boolean) {\n this.memoizedStartInZSpace.val = val;\n }\n\n private _playerContainer?: HTMLDivElement | undefined;\n get appContainer() {\n return this._playerContainer;\n }\n set appContainer(container: HTMLDivElement | undefined) {\n if (container === this._playerContainer) return;\n this._playerContainer = container;\n this.notifyOnChange();\n }\n\n private memoizedShowInspector = new MemoizedBoolean(\n false,\n this.notifyOnChange\n );\n get showBabylonInspector() {\n return this.memoizedShowInspector.val;\n }\n set showBabylonInspector(val: boolean) {\n this.memoizedShowInspector.val = val;\n }\n\n private memoisedEnableDevFeatures = new MemoizedBoolean(\n true,\n this.notifyOnChange\n );\n get enableDevFeatures(): boolean {\n return this.memoisedEnableDevFeatures.val;\n }\n set enableDevFeatures(val: boolean) {\n this.memoisedEnableDevFeatures.val = val;\n }\n devFeatures: string[] = [];\n\n private _state = SandboxState.UNMOUNTED;\n get state(): SandboxState {\n return this._state;\n }\n set state(val: SandboxState) {\n if (this._state === val) return;\n\n this._state = val;\n this.notifyOnChange();\n }\n\n constructor(appObject: AppObject) {\n super(appObject, AppSandboxEntity.type);\n this.app = makeAppEntity(appObject);\n this.appObjects.registerSingleton(this);\n }\n}\n"]}
1
+ {"version":3,"file":"AppSandboxEntity.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Entities/AppSandboxEntity.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AppObject,\n AppObjectEntity,\n AppObjectRepo,\n getSingletonComponent,\n MemoizedBoolean\n} from \"@vived/core\";\nimport { AppEntity, makeAppEntity } from \"../../Apps/Entities/AppEntity\";\n\nexport enum SandboxState {\n UNMOUNTED = \"UNMOUNTED\",\n LOADING = \"LOADING\",\n MOUNTED = \"MOUNTED\",\n PLAYING = \"PLAYING\",\n FATAL_ERROR = \"FATAL_ERROR\",\n EDIT_ASSET = \"EDIT_ASSET\",\n NEW_APP_ASSET = \"NEW_APP_ASSET\"\n}\n\nexport abstract class AppSandboxEntity extends AppObjectEntity {\n static type = \"AppSandboxEntity\";\n\n abstract get appID(): string;\n\n abstract get appContainer(): HTMLDivElement | undefined;\n abstract set appContainer(container: HTMLDivElement | undefined);\n\n abstract get channelID(): string;\n abstract set channelID(id: string);\n\n abstract get channelName(): string;\n abstract set channelName(id: string);\n\n abstract get state(): SandboxState;\n abstract set state(val: SandboxState);\n\n abstract get startInZSpace(): boolean;\n abstract set startInZSpace(val: boolean);\n\n abstract get showBabylonInspector(): boolean;\n abstract set showBabylonInspector(render: boolean);\n\n abstract get babylonInspectorSupported(): boolean;\n abstract set babylonInspectorSupported(val: boolean);\n\n abstract get enableDevFeatures(): boolean;\n abstract set enableDevFeatures(enable: boolean);\n\n abstract mockActivityID: string;\n\n abstract devFeatures: string[];\n\n abstract readonly app: AppEntity;\n\n static get(appObjects: AppObjectRepo) {\n return getSingletonComponent<AppSandboxEntity>(\n AppSandboxEntity.type,\n appObjects\n );\n }\n}\n\nexport function makeAppSandboxEntity(appObject: AppObject): AppSandboxEntity {\n return new AppSandboxEntityImp(appObject);\n}\n\nclass AppSandboxEntityImp extends AppSandboxEntity {\n readonly app: AppEntity;\n\n get appID() {\n return this.appObject.id;\n }\n\n mockActivityID = \"74ec8149-ced4-44b7-a4e4-5238593ab36f\";\n channelID = \"abad8cd4-6379-4325-a7c0-3679c358ebe6\";\n channelName = \"Development Channel\";\n\n private memoizedStartInZSpace = new MemoizedBoolean(\n false,\n this.notifyOnChange\n );\n get startInZSpace() {\n return this.memoizedStartInZSpace.val;\n }\n set startInZSpace(val: boolean) {\n this.memoizedStartInZSpace.val = val;\n }\n\n private _playerContainer?: HTMLDivElement | undefined;\n get appContainer() {\n return this._playerContainer;\n }\n set appContainer(container: HTMLDivElement | undefined) {\n if (container === this._playerContainer) return;\n this._playerContainer = container;\n this.notifyOnChange();\n }\n\n private memoizedShowInspector = new MemoizedBoolean(\n false,\n this.notifyOnChange\n );\n get showBabylonInspector() {\n return this.memoizedShowInspector.val;\n }\n set showBabylonInspector(val: boolean) {\n this.memoizedShowInspector.val = val;\n }\n\n private memoizedBabylonInspectorSupported = new MemoizedBoolean(\n true,\n this.notifyOnChange\n );\n get babylonInspectorSupported() {\n return this.memoizedBabylonInspectorSupported.val;\n }\n set babylonInspectorSupported(val: boolean) {\n this.memoizedBabylonInspectorSupported.val = val;\n }\n\n private memoisedEnableDevFeatures = new MemoizedBoolean(\n true,\n this.notifyOnChange\n );\n get enableDevFeatures(): boolean {\n return this.memoisedEnableDevFeatures.val;\n }\n set enableDevFeatures(val: boolean) {\n this.memoisedEnableDevFeatures.val = val;\n }\n devFeatures: string[] = [];\n\n private _state = SandboxState.UNMOUNTED;\n get state(): SandboxState {\n return this._state;\n }\n set state(val: SandboxState) {\n if (this._state === val) return;\n\n this._state = val;\n this.notifyOnChange();\n }\n\n constructor(appObject: AppObject) {\n super(appObject, AppSandboxEntity.type);\n this.app = makeAppEntity(appObject);\n this.appObjects.registerSingleton(this);\n }\n}\n"]}
@@ -6,7 +6,7 @@ import { makeHostHandlerEntity } from "../../Handler/Entities";
6
6
  import { setupStandardHostHandlers } from "../../Handler/setupStandardHostHandlers";
7
7
  import { SubmitActivityAssetHandler } from "../../Handler";
8
8
  import { makeAppSandboxEntity } from "../Entities";
9
- import { makeDevFeaturesEnabledPM, makeSandboxStatePM, makeShowInspectorPM, makeStartInZSpacePM } from "../PMs";
9
+ import { makeBabylonInspectorSupportedPM, makeDevFeaturesEnabledPM, makeSandboxStatePM, makeShowInspectorPM, makeStartInZSpacePM } from "../PMs";
10
10
  import { makeShowBabylonInspectorUC } from "../UCs";
11
11
  import { makeSubmitActivityAssetHandlerSandbox } from "../UCs/submitActivityAssetHandlerSandbox";
12
12
  import { AppRepoEntity } from "../../Apps/Entities";
@@ -48,6 +48,7 @@ export class AppSandboxFeatureFactory extends DomainFactory {
48
48
  */
49
49
  setupPMs() {
50
50
  // Initialize presentation managers
51
+ makeBabylonInspectorSupportedPM(this.appObject);
51
52
  makeDevFeaturesEnabledPM(this.appObject);
52
53
  makeSandboxStatePM(this.appObject);
53
54
  makeShowInspectorPM(this.appObject);
@@ -1 +1 @@
1
- {"version":3,"file":"AppSandboxFeatureFactory.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Factories/AppSandboxFeatureFactory.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectRepo, DomainFactory } from \"@vived/core\";\r\nimport {\r\n makeSandboxMounter,\r\n makeStartAppUC,\r\n makeStopAppUC\r\n} from \"../../Apps/UCs\";\r\nimport { makeHostDispatchEntity } from \"../../Dispatcher/Entities\";\r\nimport { setupStandardHostDispatchers } from \"../../Dispatcher/setupStandardHostDispatchers\";\r\nimport { makeHostHandlerEntity } from \"../../Handler/Entities\";\r\nimport { setupStandardHostHandlers } from \"../../Handler/setupStandardHostHandlers\";\r\nimport { SubmitActivityAssetHandler } from \"../../Handler\";\r\nimport { AppSandboxEntity, makeAppSandboxEntity } from \"../Entities\";\r\nimport {\r\n makeDevFeaturesEnabledPM,\r\n makeSandboxStatePM,\r\n makeShowInspectorPM,\r\n makeStartInZSpacePM\r\n} from \"../PMs\";\r\nimport { makeShowBabylonInspectorUC } from \"../UCs\";\r\nimport { makeSubmitActivityAssetHandlerSandbox } from \"../UCs/submitActivityAssetHandlerSandbox\";\r\nimport { AppRepoEntity } from \"../../Apps/Entities\";\r\n\r\n/**\r\n * Factory responsible for setting up the AppSandbox domain components.\r\n * This factory initializes all entities, use cases, and presentation models\r\n * required for the AppSandbox functionality.\r\n */\r\nexport class AppSandboxFeatureFactory extends DomainFactory {\r\n // Unique name for this factory\r\n readonly factoryName = \"AppSandboxFeatureFactory\";\r\n\r\n private sandbox?: AppSandboxEntity;\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject);\r\n }\r\n\r\n /**\r\n * Sets up all entities required for the AppSandbox system\r\n */\r\n setupEntities(): void {\r\n // Initialize entities\r\n this.sandbox = makeAppSandboxEntity(this.appObject);\r\n makeHostDispatchEntity(this.appObject);\r\n makeHostHandlerEntity(this.appObject);\r\n }\r\n\r\n /**\r\n * Sets up all use cases for the AppSandbox system\r\n */\r\n setupUCs(): void {\r\n // Setup standard dispatchers and handlers\r\n setupStandardHostDispatchers(this.appObject);\r\n setupStandardHostHandlers(this.appObject);\r\n\r\n // Initialize use cases\r\n makeStartAppUC(this.appObject);\r\n makeStopAppUC(this.appObject);\r\n makeShowBabylonInspectorUC(this.appObject);\r\n makeSandboxMounter(this.appObject);\r\n }\r\n\r\n /**\r\n * Sets up all presentation managers for the AppSandbox system\r\n */\r\n setupPMs(): void {\r\n // Initialize presentation managers\r\n makeDevFeaturesEnabledPM(this.appObject);\r\n makeSandboxStatePM(this.appObject);\r\n makeShowInspectorPM(this.appObject);\r\n makeStartInZSpacePM(this.appObject);\r\n }\r\n\r\n /**\r\n * Performs any final setup operations after all components are initialized\r\n */\r\n finalSetup(): void {\r\n // Setup custom handler for activity asset submission\r\n const submitActivityAssetUC =\r\n this.appObjects.getSingleton<SubmitActivityAssetHandler>(\r\n SubmitActivityAssetHandler.type\r\n );\r\n if (submitActivityAssetUC) {\r\n submitActivityAssetUC.action = makeSubmitActivityAssetHandlerSandbox(\r\n this.appObjects\r\n );\r\n }\r\n\r\n if (!this.sandbox) {\r\n this.error(\"AppSandboxEntity not found during final setup.\");\r\n return;\r\n }\r\n\r\n const apps = AppRepoEntity.get(this.appObjects);\r\n\r\n if (!apps) {\r\n this.error(\"AppRepoEntity not found in AppObjects.\");\r\n return;\r\n }\r\n\r\n apps.add(this.sandbox.app);\r\n }\r\n}\r\n\r\nexport function makeAppSandboxFeatureFactory(\r\n appID: string,\r\n appObjects: AppObjectRepo\r\n): AppSandboxFeatureFactory {\r\n const ao = appObjects.getOrCreate(appID);\r\n return new AppSandboxFeatureFactory(ao);\r\n}\r\n"]}
1
+ {"version":3,"file":"AppSandboxFeatureFactory.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Factories/AppSandboxFeatureFactory.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectRepo, DomainFactory } from \"@vived/core\";\nimport {\n makeSandboxMounter,\n makeStartAppUC,\n makeStopAppUC\n} from \"../../Apps/UCs\";\nimport { makeHostDispatchEntity } from \"../../Dispatcher/Entities\";\nimport { setupStandardHostDispatchers } from \"../../Dispatcher/setupStandardHostDispatchers\";\nimport { makeHostHandlerEntity } from \"../../Handler/Entities\";\nimport { setupStandardHostHandlers } from \"../../Handler/setupStandardHostHandlers\";\nimport { SubmitActivityAssetHandler } from \"../../Handler\";\nimport { AppSandboxEntity, makeAppSandboxEntity } from \"../Entities\";\nimport {\n makeBabylonInspectorSupportedPM,\n makeDevFeaturesEnabledPM,\n makeSandboxStatePM,\n makeShowInspectorPM,\n makeStartInZSpacePM\n} from \"../PMs\";\nimport { makeShowBabylonInspectorUC } from \"../UCs\";\nimport { makeSubmitActivityAssetHandlerSandbox } from \"../UCs/submitActivityAssetHandlerSandbox\";\nimport { AppRepoEntity } from \"../../Apps/Entities\";\n\n/**\n * Factory responsible for setting up the AppSandbox domain components.\n * This factory initializes all entities, use cases, and presentation models\n * required for the AppSandbox functionality.\n */\nexport class AppSandboxFeatureFactory extends DomainFactory {\n // Unique name for this factory\n readonly factoryName = \"AppSandboxFeatureFactory\";\n\n private sandbox?: AppSandboxEntity;\n\n constructor(appObject: AppObject) {\n super(appObject);\n }\n\n /**\n * Sets up all entities required for the AppSandbox system\n */\n setupEntities(): void {\n // Initialize entities\n this.sandbox = makeAppSandboxEntity(this.appObject);\n makeHostDispatchEntity(this.appObject);\n makeHostHandlerEntity(this.appObject);\n }\n\n /**\n * Sets up all use cases for the AppSandbox system\n */\n setupUCs(): void {\n // Setup standard dispatchers and handlers\n setupStandardHostDispatchers(this.appObject);\n setupStandardHostHandlers(this.appObject);\n\n // Initialize use cases\n makeStartAppUC(this.appObject);\n makeStopAppUC(this.appObject);\n makeShowBabylonInspectorUC(this.appObject);\n makeSandboxMounter(this.appObject);\n }\n\n /**\n * Sets up all presentation managers for the AppSandbox system\n */\n setupPMs(): void {\n // Initialize presentation managers\n makeBabylonInspectorSupportedPM(this.appObject);\n makeDevFeaturesEnabledPM(this.appObject);\n makeSandboxStatePM(this.appObject);\n makeShowInspectorPM(this.appObject);\n makeStartInZSpacePM(this.appObject);\n }\n\n /**\n * Performs any final setup operations after all components are initialized\n */\n finalSetup(): void {\n // Setup custom handler for activity asset submission\n const submitActivityAssetUC =\n this.appObjects.getSingleton<SubmitActivityAssetHandler>(\n SubmitActivityAssetHandler.type\n );\n if (submitActivityAssetUC) {\n submitActivityAssetUC.action = makeSubmitActivityAssetHandlerSandbox(\n this.appObjects\n );\n }\n\n if (!this.sandbox) {\n this.error(\"AppSandboxEntity not found during final setup.\");\n return;\n }\n\n const apps = AppRepoEntity.get(this.appObjects);\n\n if (!apps) {\n this.error(\"AppRepoEntity not found in AppObjects.\");\n return;\n }\n\n apps.add(this.sandbox.app);\n }\n}\n\nexport function makeAppSandboxFeatureFactory(\n appID: string,\n appObjects: AppObjectRepo\n): AppSandboxFeatureFactory {\n const ao = appObjects.getOrCreate(appID);\n return new AppSandboxFeatureFactory(ao);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC","sourcesContent":["export * from \"./AppSandboxFeatureFactory\";\r\nexport * from \"./setupAppSandbox\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC","sourcesContent":["export * from \"./AppSandboxFeatureFactory\";\nexport * from \"./setupAppSandbox\";\n"]}
@@ -0,0 +1,11 @@
1
+ import { BabylonInspectorSupportedPM } from "../PMs/BabylonInspectorSupportedPM";
2
+ export class BabylonInspectorSupportedPMMock extends BabylonInspectorSupportedPM {
3
+ constructor(appObject) {
4
+ super(appObject, BabylonInspectorSupportedPM.type);
5
+ this.vmsAreEqual = jest.fn();
6
+ }
7
+ }
8
+ export function makeBabylonInspectorSupportedPMMock(appObjects) {
9
+ return new BabylonInspectorSupportedPMMock(appObjects.getOrCreate("BabylonInspectorSupportedPMMock"));
10
+ }
11
+ //# sourceMappingURL=BabylonInspectorSupportedPMMock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BabylonInspectorSupportedPMMock.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEjF,MAAM,OAAO,+BAAgC,SAAQ,2BAA2B;IAE9E,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,2BAA2B,CAAC,IAAI,CAAC,CAAC;QAFrD,gBAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAGxB,CAAC;CACF;AAED,MAAM,UAAU,mCAAmC,CAAC,UAAyB;IAC3E,OAAO,IAAI,+BAA+B,CACxC,UAAU,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAC1D,CAAC;AACJ,CAAC","sourcesContent":["import { AppObject, AppObjectRepo } from \"@vived/core\";\nimport { BabylonInspectorSupportedPM } from \"../PMs/BabylonInspectorSupportedPM\";\n\nexport class BabylonInspectorSupportedPMMock extends BabylonInspectorSupportedPM {\n vmsAreEqual = jest.fn();\n constructor(appObject: AppObject) {\n super(appObject, BabylonInspectorSupportedPM.type);\n }\n}\n\nexport function makeBabylonInspectorSupportedPMMock(appObjects: AppObjectRepo) {\n return new BabylonInspectorSupportedPMMock(\n appObjects.getOrCreate(\"BabylonInspectorSupportedPMMock\")\n );\n}\n"]}
@@ -1,3 +1,4 @@
1
+ export * from "./BabylonInspectorSupportedPMMock";
1
2
  export * from "./DevFeaturesEnabledPMMock";
2
3
  export * from "./MockShowBabylonInspectorUC";
3
4
  export * from "./RenderAppPMMock";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC","sourcesContent":["export * from \"./DevFeaturesEnabledPMMock\";\nexport * from \"./MockShowBabylonInspectorUC\";\nexport * from \"./RenderAppPMMock\";\nexport * from \"./ShowInspectorPMMock\";\nexport * from \"./StartInZSpacePMMock\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Mocks/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC","sourcesContent":["export * from \"./BabylonInspectorSupportedPMMock\";\nexport * from \"./DevFeaturesEnabledPMMock\";\nexport * from \"./MockShowBabylonInspectorUC\";\nexport * from \"./RenderAppPMMock\";\nexport * from \"./ShowInspectorPMMock\";\nexport * from \"./StartInZSpacePMMock\";\n"]}
@@ -0,0 +1,32 @@
1
+ import { getSingletonComponent, AppObjectSingletonPM } from "@vived/core";
2
+ import { AppSandboxEntity } from "../Entities/AppSandboxEntity";
3
+ export class BabylonInspectorSupportedPM extends AppObjectSingletonPM {
4
+ static get(appObjects) {
5
+ return getSingletonComponent(BabylonInspectorSupportedPM.type, appObjects);
6
+ }
7
+ }
8
+ BabylonInspectorSupportedPM.type = "BabylonInspectorSupportedPM";
9
+ export function makeBabylonInspectorSupportedPM(appObject) {
10
+ return new BabylonInspectorSupportedPMImp(appObject);
11
+ }
12
+ class BabylonInspectorSupportedPMImp extends BabylonInspectorSupportedPM {
13
+ get sandbox() {
14
+ return this.getCachedSingleton(AppSandboxEntity.type);
15
+ }
16
+ vmsAreEqual(a, b) {
17
+ return a === b;
18
+ }
19
+ constructor(appObject) {
20
+ super(appObject, BabylonInspectorSupportedPM.type);
21
+ this.defaultVM = false;
22
+ this.formVM = () => {
23
+ if (!this.sandbox)
24
+ return;
25
+ this.doUpdateView(this.sandbox.babylonInspectorSupported);
26
+ };
27
+ if (this.sandbox) {
28
+ this.observeEntity(this.sandbox);
29
+ }
30
+ }
31
+ }
32
+ //# sourceMappingURL=BabylonInspectorSupportedPM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BabylonInspectorSupportedPM.js","sourceRoot":"","sources":["../../../../src/AppSandbox/PMs/BabylonInspectorSupportedPM.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,oBAAoB,EAErB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,OAAgB,2BAA4B,SAAQ,oBAA6B;IAGrF,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,2BAA2B,CAAC,IAAI,EAChC,UAAU,CACX,CAAC;IACJ,CAAC;;AAPM,gCAAI,GAAG,6BAA6B,CAAC;AAU9C,MAAM,UAAU,+BAA+B,CAC7C,SAAoB;IAEpB,OAAO,IAAI,8BAA8B,CAAC,SAAS,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,8BAA+B,SAAQ,2BAA2B;IAGtE,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,CAAU,EAAE,CAAU;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAOD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,2BAA2B,CAAC,IAAI,CAAC,CAAC;QAhBrD,cAAS,GAAG,KAAK,CAAC;QAUlB,WAAM,GAAG,GAAS,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAC5D,CAAC,CAAC;QAKA,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF","sourcesContent":["import {\n getSingletonComponent,\n AppObject,\n AppObjectSingletonPM,\n AppObjectRepo\n} from \"@vived/core\";\nimport { AppSandboxEntity } from \"../Entities/AppSandboxEntity\";\n\nexport abstract class BabylonInspectorSupportedPM extends AppObjectSingletonPM<boolean> {\n static type = \"BabylonInspectorSupportedPM\";\n\n static get(appObjects: AppObjectRepo) {\n return getSingletonComponent<BabylonInspectorSupportedPM>(\n BabylonInspectorSupportedPM.type,\n appObjects\n );\n }\n}\n\nexport function makeBabylonInspectorSupportedPM(\n appObject: AppObject\n): BabylonInspectorSupportedPM {\n return new BabylonInspectorSupportedPMImp(appObject);\n}\n\nclass BabylonInspectorSupportedPMImp extends BabylonInspectorSupportedPM {\n defaultVM = false;\n\n private get sandbox() {\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\n }\n\n vmsAreEqual(a: boolean, b: boolean): boolean {\n return a === b;\n }\n\n formVM = (): void => {\n if (!this.sandbox) return;\n this.doUpdateView(this.sandbox.babylonInspectorSupported);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, BabylonInspectorSupportedPM.type);\n\n if (this.sandbox) {\n this.observeEntity(this.sandbox);\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DevFeaturesEnabledPM.js","sourceRoot":"","sources":["../../../../src/AppSandbox/PMs/DevFeaturesEnabledPM.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,oBAAoB,EAErB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,OAAgB,oBAAqB,SAAQ,oBAA6B;IAG9E,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,oBAAoB,CAAC,IAAI,EACzB,UAAU,CACX,CAAC;IACJ,CAAC;;AAPM,yBAAI,GAAG,sBAAsB,CAAC;AAUvC,MAAM,UAAU,wBAAwB,CACtC,SAAoB;IAEpB,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,uBAAwB,SAAQ,oBAAoB;IAGxD,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,CAAU,EAAE,CAAU;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAOD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAhB9C,cAAS,GAAG,KAAK,CAAC;QAUlB,WAAM,GAAG,GAAS,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACpD,CAAC,CAAC;QAKA,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF","sourcesContent":["import {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectSingletonPM,\r\n AppObjectRepo\r\n} from \"@vived/core\";\r\nimport { AppSandboxEntity } from \"../Entities/AppSandboxEntity\";\r\n\r\nexport abstract class DevFeaturesEnabledPM extends AppObjectSingletonPM<boolean> {\r\n static type = \"DevFeaturesEnabledPM\";\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return getSingletonComponent<DevFeaturesEnabledPM>(\r\n DevFeaturesEnabledPM.type,\r\n appObjects\r\n );\r\n }\r\n}\r\n\r\nexport function makeDevFeaturesEnabledPM(\r\n appObject: AppObject\r\n): DevFeaturesEnabledPM {\r\n return new DevFeaturesEnabledPMImp(appObject);\r\n}\r\n\r\nclass DevFeaturesEnabledPMImp extends DevFeaturesEnabledPM {\r\n defaultVM = false;\r\n\r\n private get sandbox() {\r\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\r\n }\r\n\r\n vmsAreEqual(a: boolean, b: boolean): boolean {\r\n return a === b;\r\n }\r\n\r\n formVM = (): void => {\r\n if (!this.sandbox) return;\r\n this.doUpdateView(this.sandbox.enableDevFeatures);\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, DevFeaturesEnabledPM.type);\r\n\r\n if (this.sandbox) {\r\n this.observeEntity(this.sandbox);\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"DevFeaturesEnabledPM.js","sourceRoot":"","sources":["../../../../src/AppSandbox/PMs/DevFeaturesEnabledPM.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,oBAAoB,EAErB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,OAAgB,oBAAqB,SAAQ,oBAA6B;IAG9E,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,oBAAoB,CAAC,IAAI,EACzB,UAAU,CACX,CAAC;IACJ,CAAC;;AAPM,yBAAI,GAAG,sBAAsB,CAAC;AAUvC,MAAM,UAAU,wBAAwB,CACtC,SAAoB;IAEpB,OAAO,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,uBAAwB,SAAQ,oBAAoB;IAGxD,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,CAAU,EAAE,CAAU;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAOD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAhB9C,cAAS,GAAG,KAAK,CAAC;QAUlB,WAAM,GAAG,GAAS,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACpD,CAAC,CAAC;QAKA,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF","sourcesContent":["import {\n getSingletonComponent,\n AppObject,\n AppObjectSingletonPM,\n AppObjectRepo\n} from \"@vived/core\";\nimport { AppSandboxEntity } from \"../Entities/AppSandboxEntity\";\n\nexport abstract class DevFeaturesEnabledPM extends AppObjectSingletonPM<boolean> {\n static type = \"DevFeaturesEnabledPM\";\n\n static get(appObjects: AppObjectRepo) {\n return getSingletonComponent<DevFeaturesEnabledPM>(\n DevFeaturesEnabledPM.type,\n appObjects\n );\n }\n}\n\nexport function makeDevFeaturesEnabledPM(\n appObject: AppObject\n): DevFeaturesEnabledPM {\n return new DevFeaturesEnabledPMImp(appObject);\n}\n\nclass DevFeaturesEnabledPMImp extends DevFeaturesEnabledPM {\n defaultVM = false;\n\n private get sandbox() {\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\n }\n\n vmsAreEqual(a: boolean, b: boolean): boolean {\n return a === b;\n }\n\n formVM = (): void => {\n if (!this.sandbox) return;\n this.doUpdateView(this.sandbox.enableDevFeatures);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, DevFeaturesEnabledPM.type);\n\n if (this.sandbox) {\n this.observeEntity(this.sandbox);\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ShowInspectorPM.js","sourceRoot":"","sources":["../../../../src/AppSandbox/PMs/ShowInspectorPM.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,oBAAoB,EAErB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,OAAgB,eAAgB,SAAQ,oBAA6B;IAGzE,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,eAAe,CAAC,IAAI,EACpB,UAAU,CACX,CAAC;IACJ,CAAC;;AAPM,oBAAI,GAAG,iBAAiB,CAAC;AAUlC,MAAM,UAAU,mBAAmB,CAAC,SAAoB;IACtD,OAAO,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,kBAAmB,SAAQ,eAAe;IAG9C,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,CAAU,EAAE,CAAU;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAOD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAhBzC,cAAS,GAAG,KAAK,CAAC;QAUlB,WAAM,GAAG,GAAS,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACvD,CAAC,CAAC;QAKA,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF","sourcesContent":["import {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectSingletonPM,\r\n AppObjectRepo\r\n} from \"@vived/core\";\r\nimport { AppSandboxEntity } from \"../Entities/AppSandboxEntity\";\r\n\r\nexport abstract class ShowInspectorPM extends AppObjectSingletonPM<boolean> {\r\n static type = \"ShowInspectorPM\";\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return getSingletonComponent<ShowInspectorPM>(\r\n ShowInspectorPM.type,\r\n appObjects\r\n );\r\n }\r\n}\r\n\r\nexport function makeShowInspectorPM(appObject: AppObject): ShowInspectorPM {\r\n return new ShowInspectorPMImp(appObject);\r\n}\r\n\r\nclass ShowInspectorPMImp extends ShowInspectorPM {\r\n defaultVM = false;\r\n\r\n private get sandbox() {\r\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\r\n }\r\n\r\n vmsAreEqual(a: boolean, b: boolean): boolean {\r\n return a === b;\r\n }\r\n\r\n formVM = (): void => {\r\n if (!this.sandbox) return;\r\n this.doUpdateView(this.sandbox.showBabylonInspector);\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, ShowInspectorPM.type);\r\n\r\n if (this.sandbox) {\r\n this.observeEntity(this.sandbox);\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ShowInspectorPM.js","sourceRoot":"","sources":["../../../../src/AppSandbox/PMs/ShowInspectorPM.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,oBAAoB,EAErB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,OAAgB,eAAgB,SAAQ,oBAA6B;IAGzE,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,eAAe,CAAC,IAAI,EACpB,UAAU,CACX,CAAC;IACJ,CAAC;;AAPM,oBAAI,GAAG,iBAAiB,CAAC;AAUlC,MAAM,UAAU,mBAAmB,CAAC,SAAoB;IACtD,OAAO,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,kBAAmB,SAAQ,eAAe;IAG9C,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,CAAU,EAAE,CAAU;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAOD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAhBzC,cAAS,GAAG,KAAK,CAAC;QAUlB,WAAM,GAAG,GAAS,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACvD,CAAC,CAAC;QAKA,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF","sourcesContent":["import {\n getSingletonComponent,\n AppObject,\n AppObjectSingletonPM,\n AppObjectRepo\n} from \"@vived/core\";\nimport { AppSandboxEntity } from \"../Entities/AppSandboxEntity\";\n\nexport abstract class ShowInspectorPM extends AppObjectSingletonPM<boolean> {\n static type = \"ShowInspectorPM\";\n\n static get(appObjects: AppObjectRepo) {\n return getSingletonComponent<ShowInspectorPM>(\n ShowInspectorPM.type,\n appObjects\n );\n }\n}\n\nexport function makeShowInspectorPM(appObject: AppObject): ShowInspectorPM {\n return new ShowInspectorPMImp(appObject);\n}\n\nclass ShowInspectorPMImp extends ShowInspectorPM {\n defaultVM = false;\n\n private get sandbox() {\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\n }\n\n vmsAreEqual(a: boolean, b: boolean): boolean {\n return a === b;\n }\n\n formVM = (): void => {\n if (!this.sandbox) return;\n this.doUpdateView(this.sandbox.showBabylonInspector);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, ShowInspectorPM.type);\n\n if (this.sandbox) {\n this.observeEntity(this.sandbox);\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StartInZSpacePM.js","sourceRoot":"","sources":["../../../../src/AppSandbox/PMs/StartInZSpacePM.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,oBAAoB,EAErB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,OAAgB,eAAgB,SAAQ,oBAA6B;IAGzE,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,eAAe,CAAC,IAAI,EACpB,UAAU,CACX,CAAC;IACJ,CAAC;;AAPM,oBAAI,GAAG,iBAAiB,CAAC;AAUlC,MAAM,UAAU,mBAAmB,CAAC,SAAoB;IACtD,OAAO,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,kBAAmB,SAAQ,eAAe;IAG9C,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,CAAU,EAAE,CAAU;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAOD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAhBzC,cAAS,GAAG,KAAK,CAAC;QAUlB,WAAM,GAAG,GAAS,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAChD,CAAC,CAAC;QAKA,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF","sourcesContent":["import {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectSingletonPM,\r\n AppObjectRepo\r\n} from \"@vived/core\";\r\nimport { AppSandboxEntity } from \"../Entities/AppSandboxEntity\";\r\n\r\nexport abstract class StartInZSpacePM extends AppObjectSingletonPM<boolean> {\r\n static type = \"StartInZSpacePM\";\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return getSingletonComponent<StartInZSpacePM>(\r\n StartInZSpacePM.type,\r\n appObjects\r\n );\r\n }\r\n}\r\n\r\nexport function makeStartInZSpacePM(appObject: AppObject): StartInZSpacePM {\r\n return new StartInZSpacePMImp(appObject);\r\n}\r\n\r\nclass StartInZSpacePMImp extends StartInZSpacePM {\r\n defaultVM = false;\r\n\r\n private get sandbox() {\r\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\r\n }\r\n\r\n vmsAreEqual(a: boolean, b: boolean): boolean {\r\n return a === b;\r\n }\r\n\r\n formVM = (): void => {\r\n if (!this.sandbox) return;\r\n this.doUpdateView(this.sandbox.startInZSpace);\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, StartInZSpacePM.type);\r\n\r\n if (this.sandbox) {\r\n this.observeEntity(this.sandbox);\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"StartInZSpacePM.js","sourceRoot":"","sources":["../../../../src/AppSandbox/PMs/StartInZSpacePM.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,oBAAoB,EAErB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,OAAgB,eAAgB,SAAQ,oBAA6B;IAGzE,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,eAAe,CAAC,IAAI,EACpB,UAAU,CACX,CAAC;IACJ,CAAC;;AAPM,oBAAI,GAAG,iBAAiB,CAAC;AAUlC,MAAM,UAAU,mBAAmB,CAAC,SAAoB;IACtD,OAAO,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,kBAAmB,SAAQ,eAAe;IAG9C,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,WAAW,CAAC,CAAU,EAAE,CAAU;QAChC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAOD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;QAhBzC,cAAS,GAAG,KAAK,CAAC;QAUlB,WAAM,GAAG,GAAS,EAAE;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAChD,CAAC,CAAC;QAKA,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF","sourcesContent":["import {\n getSingletonComponent,\n AppObject,\n AppObjectSingletonPM,\n AppObjectRepo\n} from \"@vived/core\";\nimport { AppSandboxEntity } from \"../Entities/AppSandboxEntity\";\n\nexport abstract class StartInZSpacePM extends AppObjectSingletonPM<boolean> {\n static type = \"StartInZSpacePM\";\n\n static get(appObjects: AppObjectRepo) {\n return getSingletonComponent<StartInZSpacePM>(\n StartInZSpacePM.type,\n appObjects\n );\n }\n}\n\nexport function makeStartInZSpacePM(appObject: AppObject): StartInZSpacePM {\n return new StartInZSpacePMImp(appObject);\n}\n\nclass StartInZSpacePMImp extends StartInZSpacePM {\n defaultVM = false;\n\n private get sandbox() {\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\n }\n\n vmsAreEqual(a: boolean, b: boolean): boolean {\n return a === b;\n }\n\n formVM = (): void => {\n if (!this.sandbox) return;\n this.doUpdateView(this.sandbox.startInZSpace);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, StartInZSpacePM.type);\n\n if (this.sandbox) {\n this.observeEntity(this.sandbox);\n }\n }\n}\n"]}
@@ -1,3 +1,4 @@
1
+ export * from "./BabylonInspectorSupportedPM";
1
2
  export * from "./DevFeaturesEnabledPM";
2
3
  export * from "./SandboxStatePM";
3
4
  export * from "./ShowInspectorPM";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AppSandbox/PMs/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC","sourcesContent":["export * from \"./DevFeaturesEnabledPM\";\nexport * from \"./SandboxStatePM\";\nexport * from \"./ShowInspectorPM\";\nexport * from \"./StartInZSpacePM\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AppSandbox/PMs/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC","sourcesContent":["export * from \"./BabylonInspectorSupportedPM\";\nexport * from \"./DevFeaturesEnabledPM\";\nexport * from \"./SandboxStatePM\";\nexport * from \"./ShowInspectorPM\";\nexport * from \"./StartInZSpacePM\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AppEntity.js","sourceRoot":"","sources":["../../../../src/Apps/Entities/AppEntity.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n AppObject,\r\n AppObjectEntity,\r\n AppObjectRepo,\r\n Version,\r\n MemoizedString\r\n} from \"@vived/core\";\r\n\r\n/**\r\n * Enum representing the possible states of an application\r\n *\r\n * @enum {string}\r\n * @property {string} INIT - Initial state before app loading starts\r\n * @property {string} LOADING - App is currently loading resources\r\n * @property {string} READY - App is loaded and ready to use\r\n * @property {string} ERROR - App encountered an error during loading\r\n */\r\nexport enum AppState {\r\n INIT = \"INIT\",\r\n LOADING = \"LOADING\",\r\n READY = \"READY\",\r\n ERROR = \"ERROR\"\r\n}\r\n\r\n/**\r\n * AppEntity - Core entity representing an application in the system\r\n *\r\n * This abstract class defines the properties and behaviors of an application.\r\n * It manages app state, versioning, mounting status, and error handling.\r\n *\r\n * @extends AppObjectEntity from @vived/core\r\n */\r\nexport abstract class AppEntity extends AppObjectEntity {\r\n /** Type identifier for the AppEntity component */\r\n static type = \"AppEntity\";\r\n\r\n /**\r\n * Retrieves an AppEntity from a specific AppObject\r\n * @param appObj - The AppObject to retrieve the AppEntity from\r\n * @returns The AppEntity instance if found, undefined otherwise\r\n * @throws Error if appObj is null or undefined\r\n * @example\r\n * ```typescript\r\n * const appObject = appObjects.getOrCreate(\"myApp\");\r\n * const appEntity = AppEntity.get(appObject);\r\n * ```\r\n */\r\n static get(appObj: AppObject): AppEntity | undefined {\r\n if (!appObj) {\r\n throw new Error(\"AppObject cannot be null or undefined\");\r\n }\r\n return appObj.getComponent<AppEntity>(AppEntity.type);\r\n }\r\n\r\n /**\r\n * Retrieves an AppEntity by ID from the AppObjectRepo\r\n * @param id - The unique identifier of the app\r\n * @param appObjects - The AppObjectRepo to search within\r\n * @returns The AppEntity instance if found, undefined otherwise\r\n * @throws Error if id is empty or appObjects is null\r\n * @example\r\n * ```typescript\r\n * const appEntity = AppEntity.getById(\"myAppId\", appObjects);\r\n * if (appEntity) {\r\n * console.log(`Found app: ${appEntity.name}`);\r\n * }\r\n * ```\r\n */\r\n static getById(id: string, appObjects: AppObjectRepo): AppEntity | undefined {\r\n if (!id) {\r\n throw new Error(\"ID cannot be empty\");\r\n }\r\n if (!appObjects) {\r\n throw new Error(\"AppObjectRepo cannot be null or undefined\");\r\n }\r\n\r\n const ao = appObjects.get(id);\r\n if (!ao) {\r\n appObjects.submitWarning(\r\n \"AppEntity.getById\",\r\n `Unable to find app object by ID: ${id}`\r\n );\r\n return;\r\n }\r\n\r\n return ao.getComponent<AppEntity>(AppEntity.type);\r\n }\r\n\r\n /**\r\n * Safely creates an AppEntity if it doesn't already exist on the AppObject\r\n * @param appObject - The AppObject to add the AppEntity to\r\n * @returns The AppEntity instance (existing or newly created)\r\n * @throws Error if appObject is null or undefined\r\n * @example\r\n * ```typescript\r\n * const appObject = appObjects.getOrCreate(\"newApp\");\r\n * const appEntity = AppEntity.addIfMissing(appObject);\r\n * // appEntity is guaranteed to exist\r\n * ```\r\n */\r\n static addIfMissing(appObject: AppObject): AppEntity {\r\n if (!appObject) {\r\n throw new Error(\"AppObject cannot be null or undefined\");\r\n }\r\n\r\n // Check if AppEntity already exists\r\n const existingEntity = appObject.getComponent<AppEntity>(AppEntity.type);\r\n if (existingEntity) {\r\n return existingEntity;\r\n }\r\n\r\n // Create new AppEntity if it doesn't exist\r\n return makeAppEntity(appObject);\r\n }\r\n\r\n abstract get id(): string;\r\n abstract name: string;\r\n abstract description: string;\r\n abstract image_url: string;\r\n abstract imageAssetId: string | undefined;\r\n abstract versions: Version[];\r\n abstract get latestVersion(): Version | undefined;\r\n abstract errorMessage?: string;\r\n abstract get hasError(): boolean;\r\n abstract state: AppState;\r\n abstract assignedToOwner: boolean;\r\n\r\n abstract get isMounted(): boolean;\r\n abstract appAssetFolderURL?: string;\r\n abstract get updateIsAvailable(): boolean | undefined;\r\n abstract styles: string[];\r\n abstract mountedVersion: Version | undefined;\r\n}\r\n\r\n/**\r\n * Factory function to create a new AppEntity instance\r\n *\r\n * @param appObject - The app object to attach the entity to\r\n * @returns A concrete implementation of AppEntity\r\n */\r\nexport function makeAppEntity(appObject: AppObject): AppEntity {\r\n return new AppEntityImp(appObject);\r\n}\r\n\r\nclass AppEntityImp extends AppEntity {\r\n get id() {\r\n return this.appObject.id;\r\n }\r\n\r\n private memoizedName: MemoizedString = new MemoizedString(\r\n \"\",\r\n this.notifyOnChange\r\n );\r\n\r\n get name(): string {\r\n return this.memoizedName.val;\r\n }\r\n\r\n set name(val: string) {\r\n this.memoizedName.val = val;\r\n }\r\n\r\n private memoizedDescription: MemoizedString = new MemoizedString(\r\n \"\",\r\n this.notifyOnChange\r\n );\r\n\r\n get description(): string {\r\n return this.memoizedDescription.val;\r\n }\r\n\r\n set description(val: string) {\r\n this.memoizedDescription.val = val;\r\n }\r\n\r\n private memoizedImageUrl: MemoizedString = new MemoizedString(\r\n \"\",\r\n this.notifyOnChange\r\n );\r\n\r\n get image_url(): string {\r\n return this.memoizedImageUrl.val;\r\n }\r\n\r\n set image_url(val: string) {\r\n this.memoizedImageUrl.val = val;\r\n }\r\n\r\n private memoizedImageAssetId = new MemoizedString(\"\", this.notifyOnChange);\r\n\r\n get imageAssetId(): string | undefined {\r\n const value = this.memoizedImageAssetId.val;\r\n return value === \"\" ? undefined : value;\r\n }\r\n\r\n set imageAssetId(val: string | undefined) {\r\n this.memoizedImageAssetId.val = val ?? \"\";\r\n }\r\n\r\n versions: Version[] = [];\r\n\r\n get latestVersion(): Version | undefined {\r\n return Version.GetLatest(this.versions);\r\n }\r\n\r\n private _mountedVersion: Version | undefined;\r\n get mountedVersion() {\r\n return this._mountedVersion;\r\n }\r\n set mountedVersion(val: Version | undefined) {\r\n if (this._mountedVersion === val) return;\r\n\r\n this._mountedVersion = val;\r\n this.notifyOnChange();\r\n }\r\n\r\n get updateIsAvailable(): boolean | undefined {\r\n if (this._mountedVersion === undefined) return undefined;\r\n if (this.latestVersion === undefined) return undefined;\r\n\r\n return Version.AreEqual(this._mountedVersion, this.latestVersion)\r\n ? false\r\n : true;\r\n }\r\n\r\n private _state: AppState = AppState.INIT;\r\n get state() {\r\n return this._state;\r\n }\r\n set state(val: AppState) {\r\n this._state = val;\r\n this.notifyOnChange();\r\n }\r\n\r\n private _assignedToOwner: boolean = false;\r\n get assignedToOwner(): boolean {\r\n return this._assignedToOwner;\r\n }\r\n set assignedToOwner(val: boolean) {\r\n this._assignedToOwner = val;\r\n this.notifyOnChange();\r\n }\r\n\r\n get isMounted(): boolean {\r\n return this._mountedVersion === undefined ? false : true;\r\n }\r\n\r\n styles: string[] = [];\r\n appAssetFolderURL: string | undefined;\r\n\r\n private _errorMsg?: string;\r\n get errorMessage() {\r\n return this._errorMsg;\r\n }\r\n set errorMessage(val: string | undefined) {\r\n if (this._errorMsg === val) return;\r\n\r\n this._errorMsg = val;\r\n this.notifyOnChange();\r\n }\r\n get hasError(): boolean {\r\n return this._errorMsg === undefined ? false : true;\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, AppEntity.type);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"AppEntity.js","sourceRoot":"","sources":["../../../../src/Apps/Entities/AppEntity.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AppObject,\n AppObjectEntity,\n AppObjectRepo,\n Version,\n MemoizedString\n} from \"@vived/core\";\n\n/**\n * Enum representing the possible states of an application\n *\n * @enum {string}\n * @property {string} INIT - Initial state before app loading starts\n * @property {string} LOADING - App is currently loading resources\n * @property {string} READY - App is loaded and ready to use\n * @property {string} ERROR - App encountered an error during loading\n */\nexport enum AppState {\n INIT = \"INIT\",\n LOADING = \"LOADING\",\n READY = \"READY\",\n ERROR = \"ERROR\"\n}\n\n/**\n * AppEntity - Core entity representing an application in the system\n *\n * This abstract class defines the properties and behaviors of an application.\n * It manages app state, versioning, mounting status, and error handling.\n *\n * @extends AppObjectEntity from @vived/core\n */\nexport abstract class AppEntity extends AppObjectEntity {\n /** Type identifier for the AppEntity component */\n static type = \"AppEntity\";\n\n /**\n * Retrieves an AppEntity from a specific AppObject\n * @param appObj - The AppObject to retrieve the AppEntity from\n * @returns The AppEntity instance if found, undefined otherwise\n * @throws Error if appObj is null or undefined\n * @example\n * ```typescript\n * const appObject = appObjects.getOrCreate(\"myApp\");\n * const appEntity = AppEntity.get(appObject);\n * ```\n */\n static get(appObj: AppObject): AppEntity | undefined {\n if (!appObj) {\n throw new Error(\"AppObject cannot be null or undefined\");\n }\n return appObj.getComponent<AppEntity>(AppEntity.type);\n }\n\n /**\n * Retrieves an AppEntity by ID from the AppObjectRepo\n * @param id - The unique identifier of the app\n * @param appObjects - The AppObjectRepo to search within\n * @returns The AppEntity instance if found, undefined otherwise\n * @throws Error if id is empty or appObjects is null\n * @example\n * ```typescript\n * const appEntity = AppEntity.getById(\"myAppId\", appObjects);\n * if (appEntity) {\n * console.log(`Found app: ${appEntity.name}`);\n * }\n * ```\n */\n static getById(id: string, appObjects: AppObjectRepo): AppEntity | undefined {\n if (!id) {\n throw new Error(\"ID cannot be empty\");\n }\n if (!appObjects) {\n throw new Error(\"AppObjectRepo cannot be null or undefined\");\n }\n\n const ao = appObjects.get(id);\n if (!ao) {\n appObjects.submitWarning(\n \"AppEntity.getById\",\n `Unable to find app object by ID: ${id}`\n );\n return;\n }\n\n return ao.getComponent<AppEntity>(AppEntity.type);\n }\n\n /**\n * Safely creates an AppEntity if it doesn't already exist on the AppObject\n * @param appObject - The AppObject to add the AppEntity to\n * @returns The AppEntity instance (existing or newly created)\n * @throws Error if appObject is null or undefined\n * @example\n * ```typescript\n * const appObject = appObjects.getOrCreate(\"newApp\");\n * const appEntity = AppEntity.addIfMissing(appObject);\n * // appEntity is guaranteed to exist\n * ```\n */\n static addIfMissing(appObject: AppObject): AppEntity {\n if (!appObject) {\n throw new Error(\"AppObject cannot be null or undefined\");\n }\n\n // Check if AppEntity already exists\n const existingEntity = appObject.getComponent<AppEntity>(AppEntity.type);\n if (existingEntity) {\n return existingEntity;\n }\n\n // Create new AppEntity if it doesn't exist\n return makeAppEntity(appObject);\n }\n\n abstract get id(): string;\n abstract name: string;\n abstract description: string;\n abstract image_url: string;\n abstract imageAssetId: string | undefined;\n abstract versions: Version[];\n abstract get latestVersion(): Version | undefined;\n abstract errorMessage?: string;\n abstract get hasError(): boolean;\n abstract state: AppState;\n abstract assignedToOwner: boolean;\n\n abstract get isMounted(): boolean;\n abstract appAssetFolderURL?: string;\n abstract get updateIsAvailable(): boolean | undefined;\n abstract styles: string[];\n abstract mountedVersion: Version | undefined;\n}\n\n/**\n * Factory function to create a new AppEntity instance\n *\n * @param appObject - The app object to attach the entity to\n * @returns A concrete implementation of AppEntity\n */\nexport function makeAppEntity(appObject: AppObject): AppEntity {\n return new AppEntityImp(appObject);\n}\n\nclass AppEntityImp extends AppEntity {\n get id() {\n return this.appObject.id;\n }\n\n private memoizedName: MemoizedString = new MemoizedString(\n \"\",\n this.notifyOnChange\n );\n\n get name(): string {\n return this.memoizedName.val;\n }\n\n set name(val: string) {\n this.memoizedName.val = val;\n }\n\n private memoizedDescription: MemoizedString = new MemoizedString(\n \"\",\n this.notifyOnChange\n );\n\n get description(): string {\n return this.memoizedDescription.val;\n }\n\n set description(val: string) {\n this.memoizedDescription.val = val;\n }\n\n private memoizedImageUrl: MemoizedString = new MemoizedString(\n \"\",\n this.notifyOnChange\n );\n\n get image_url(): string {\n return this.memoizedImageUrl.val;\n }\n\n set image_url(val: string) {\n this.memoizedImageUrl.val = val;\n }\n\n private memoizedImageAssetId = new MemoizedString(\"\", this.notifyOnChange);\n\n get imageAssetId(): string | undefined {\n const value = this.memoizedImageAssetId.val;\n return value === \"\" ? undefined : value;\n }\n\n set imageAssetId(val: string | undefined) {\n this.memoizedImageAssetId.val = val ?? \"\";\n }\n\n versions: Version[] = [];\n\n get latestVersion(): Version | undefined {\n return Version.GetLatest(this.versions);\n }\n\n private _mountedVersion: Version | undefined;\n get mountedVersion() {\n return this._mountedVersion;\n }\n set mountedVersion(val: Version | undefined) {\n if (this._mountedVersion === val) return;\n\n this._mountedVersion = val;\n this.notifyOnChange();\n }\n\n get updateIsAvailable(): boolean | undefined {\n if (this._mountedVersion === undefined) return undefined;\n if (this.latestVersion === undefined) return undefined;\n\n return Version.AreEqual(this._mountedVersion, this.latestVersion)\n ? false\n : true;\n }\n\n private _state: AppState = AppState.INIT;\n get state() {\n return this._state;\n }\n set state(val: AppState) {\n this._state = val;\n this.notifyOnChange();\n }\n\n private _assignedToOwner: boolean = false;\n get assignedToOwner(): boolean {\n return this._assignedToOwner;\n }\n set assignedToOwner(val: boolean) {\n this._assignedToOwner = val;\n this.notifyOnChange();\n }\n\n get isMounted(): boolean {\n return this._mountedVersion === undefined ? false : true;\n }\n\n styles: string[] = [];\n appAssetFolderURL: string | undefined;\n\n private _errorMsg?: string;\n get errorMessage() {\n return this._errorMsg;\n }\n set errorMessage(val: string | undefined) {\n if (this._errorMsg === val) return;\n\n this._errorMsg = val;\n this.notifyOnChange();\n }\n get hasError(): boolean {\n return this._errorMsg === undefined ? false : true;\n }\n\n constructor(appObject: AppObject) {\n super(appObject, AppEntity.type);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AppRepo.js","sourceRoot":"","sources":["../../../../src/Apps/Entities/AppRepo.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EAGpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAa,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,sCAAmB,CAAA;IACnB,gCAAa,CAAA;IACb,kCAAe,CAAA;AACjB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAED,MAAM,OAAgB,aAAc,SAAQ,mBAA8B;IAGxE,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,UAAU,CAAC,YAAY,CAAgB,aAAa,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;;AAJM,kBAAI,GAAG,eAAe,CAAC;AAkBhC,MAAM,UAAU,WAAW,CAAC,SAAoB;IAC9C,OAAO,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAW,SAAQ,aAAa;IAyCpC,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QAzCvC,oBAAe,GAAoB,eAAe,CAAC,OAAO,CAAC;QAE3D,eAAU,GAAG,CAAC,EAAU,EAAa,EAAE;YACrC,OAAO,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,EAAU,EAAa,EAAE;YACtC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAC7C,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,WAAW,CAAC;YACrB,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,EAAU,EAAyB,EAAE;YAC7C,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC;QAEF,eAAU,GAAG,GAAgB,EAAE;YAC7B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC,CAAC;QAEF,cAAS,GAAG,CAAC,EAAU,EAAQ,EAAE;YAC/B,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEF,kBAAa,GAAG,GAAS,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,EAAU,EAAW,EAAE;YAC/B,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC;QAKA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import {\r\n AppObject,\r\n AppObjectEntityRepo,\r\n AppObjectRepo,\r\n getSingletonComponent\r\n} from \"@vived/core\";\r\nimport { AppEntity, makeAppEntity } from \"./AppEntity\";\r\n\r\nexport enum AppReleaseStage {\r\n RELEASE = \"RELEASE\",\r\n BETA = \"BETA\",\r\n ALPHA = \"ALPHA\"\r\n}\r\n\r\nexport abstract class AppRepoEntity extends AppObjectEntityRepo<AppEntity> {\r\n static type = \"AppRepoEntity\";\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return appObjects.getSingleton<AppRepoEntity>(AppRepoEntity.type);\r\n }\r\n\r\n abstract getOrCreate: (id: string) => AppEntity;\r\n abstract getApp: (id: string) => AppEntity | undefined;\r\n abstract getAllApps: () => AppEntity[];\r\n abstract deleteApp: (id: string) => void;\r\n abstract hasApp: (id: string) => boolean;\r\n abstract appFactory: (id: string) => AppEntity;\r\n\r\n abstract appReleaseStage: AppReleaseStage;\r\n\r\n abstract deleteAllApps: () => void;\r\n}\r\n\r\nexport function makeAppRepo(appObject: AppObject): AppRepoEntity {\r\n return new AppRepoImp(appObject);\r\n}\r\n\r\nclass AppRepoImp extends AppRepoEntity {\r\n appReleaseStage: AppReleaseStage = AppReleaseStage.RELEASE;\r\n\r\n appFactory = (id: string): AppEntity => {\r\n return makeAppEntity(this.appObjects.getOrCreate(id));\r\n };\r\n\r\n getOrCreate = (id: string): AppEntity => {\r\n const existingApp = this.getForAppObject(id);\r\n if (existingApp) {\r\n return existingApp;\r\n }\r\n\r\n const app = this.appFactory(id);\r\n this.add(app);\r\n return app;\r\n };\r\n\r\n getApp = (id: string): AppEntity | undefined => {\r\n return this.getForAppObject(id);\r\n };\r\n\r\n getAllApps = (): AppEntity[] => {\r\n return this.getAll();\r\n };\r\n\r\n deleteApp = (id: string): void => {\r\n this.removeForAppObject(id);\r\n };\r\n\r\n deleteAllApps = (): void => {\r\n const apps = this.getAllApps();\r\n apps.forEach((app) => {\r\n this.deleteApp(app.id);\r\n });\r\n };\r\n\r\n hasApp = (id: string): boolean => {\r\n return this.hasForAppObject(id);\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, AppRepoEntity.type);\r\n\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"AppRepo.js","sourceRoot":"","sources":["../../../../src/Apps/Entities/AppRepo.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EAGpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAa,aAAa,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,sCAAmB,CAAA;IACnB,gCAAa,CAAA;IACb,kCAAe,CAAA;AACjB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AAED,MAAM,OAAgB,aAAc,SAAQ,mBAA8B;IAGxE,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,UAAU,CAAC,YAAY,CAAgB,aAAa,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;;AAJM,kBAAI,GAAG,eAAe,CAAC;AAkBhC,MAAM,UAAU,WAAW,CAAC,SAAoB;IAC9C,OAAO,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAW,SAAQ,aAAa;IAyCpC,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QAzCvC,oBAAe,GAAoB,eAAe,CAAC,OAAO,CAAC;QAE3D,eAAU,GAAG,CAAC,EAAU,EAAa,EAAE;YACrC,OAAO,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC;QAEF,gBAAW,GAAG,CAAC,EAAU,EAAa,EAAE;YACtC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YAC7C,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,WAAW,CAAC;YACrB,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,EAAU,EAAyB,EAAE;YAC7C,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC;QAEF,eAAU,GAAG,GAAgB,EAAE;YAC7B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC,CAAC;QAEF,cAAS,GAAG,CAAC,EAAU,EAAQ,EAAE;YAC/B,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEF,kBAAa,GAAG,GAAS,EAAE;YACzB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,WAAM,GAAG,CAAC,EAAU,EAAW,EAAE;YAC/B,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC;QAKA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import {\n AppObject,\n AppObjectEntityRepo,\n AppObjectRepo,\n getSingletonComponent\n} from \"@vived/core\";\nimport { AppEntity, makeAppEntity } from \"./AppEntity\";\n\nexport enum AppReleaseStage {\n RELEASE = \"RELEASE\",\n BETA = \"BETA\",\n ALPHA = \"ALPHA\"\n}\n\nexport abstract class AppRepoEntity extends AppObjectEntityRepo<AppEntity> {\n static type = \"AppRepoEntity\";\n\n static get(appObjects: AppObjectRepo) {\n return appObjects.getSingleton<AppRepoEntity>(AppRepoEntity.type);\n }\n\n abstract getOrCreate: (id: string) => AppEntity;\n abstract getApp: (id: string) => AppEntity | undefined;\n abstract getAllApps: () => AppEntity[];\n abstract deleteApp: (id: string) => void;\n abstract hasApp: (id: string) => boolean;\n abstract appFactory: (id: string) => AppEntity;\n\n abstract appReleaseStage: AppReleaseStage;\n\n abstract deleteAllApps: () => void;\n}\n\nexport function makeAppRepo(appObject: AppObject): AppRepoEntity {\n return new AppRepoImp(appObject);\n}\n\nclass AppRepoImp extends AppRepoEntity {\n appReleaseStage: AppReleaseStage = AppReleaseStage.RELEASE;\n\n appFactory = (id: string): AppEntity => {\n return makeAppEntity(this.appObjects.getOrCreate(id));\n };\n\n getOrCreate = (id: string): AppEntity => {\n const existingApp = this.getForAppObject(id);\n if (existingApp) {\n return existingApp;\n }\n\n const app = this.appFactory(id);\n this.add(app);\n return app;\n };\n\n getApp = (id: string): AppEntity | undefined => {\n return this.getForAppObject(id);\n };\n\n getAllApps = (): AppEntity[] => {\n return this.getAll();\n };\n\n deleteApp = (id: string): void => {\n this.removeForAppObject(id);\n };\n\n deleteAllApps = (): void => {\n const apps = this.getAllApps();\n apps.forEach((app) => {\n this.deleteApp(app.id);\n });\n };\n\n hasApp = (id: string): boolean => {\n return this.hasForAppObject(id);\n };\n\n constructor(appObject: AppObject) {\n super(appObject, AppRepoEntity.type);\n\n this.appObjects.registerSingleton(this);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AppsFeatureFactory.js","sourceRoot":"","sources":["../../../../src/Apps/Factories/AppsFeatureFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,aAAa,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAiB,WAAW,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAa,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEnD;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IAInD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,CAAC,CAAC;QAJnB,+BAA+B;QACtB,gBAAW,GAAG,oBAAoB,CAAC;IAI5C,CAAC;IAED;;OAEG;IACH,aAAa;QACX,sBAAsB;QACtB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,+DAA+D;QAC/D,0EAA0E;IAC5E,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,qBAAqB;QACrB,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,UAAU;QACR,wCAAwC;IAC1C,CAAC;CACF;AAED,MAAM,UAAU,sBAAsB,CAAC,UAAwB;IAC7D,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,IAAI,kBAAkB,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC","sourcesContent":["import { AppObject, AppObjectRepo, DomainFactory } from \"@vived/core\";\r\nimport { makeAppEntity, makeAppRepo } from \"../Entities\";\r\nimport { makeAppPM, makeAppsListPM } from \"../PMs\";\r\n\r\n/**\r\n * Factory responsible for setting up the Apps domain components.\r\n * This factory initializes all entities, use cases, and presentation models\r\n * required for the Apps functionality.\r\n */\r\nexport class AppsFeatureFactory extends DomainFactory {\r\n // Unique name for this factory\r\n readonly factoryName = \"AppsFeatureFactory\";\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject);\r\n }\r\n\r\n /**\r\n * Sets up all entities required for the Apps system\r\n */\r\n setupEntities(): void {\r\n // Initialize entities\r\n makeAppRepo(this.appObject);\r\n }\r\n\r\n /**\r\n * Sets up all use cases for the Apps system\r\n */\r\n setupUCs(): void {\r\n // Note: App UCs have complex dependencies and should be set up\r\n // separately to avoid circular dependencies during factory initialization\r\n }\r\n\r\n /**\r\n * Sets up all presentation managers for the Apps system\r\n */\r\n setupPMs(): void {\r\n // App Repository PMs\r\n makeAppsListPM(this.appObject);\r\n }\r\n\r\n /**\r\n * Performs any final setup operations after all components are initialized\r\n */\r\n finalSetup(): void {\r\n // No additional setup required for apps\r\n }\r\n}\r\n\r\nexport function makeAppsFeatureFactory(appObjects:AppObjectRepo):AppsFeatureFactory {\r\n const ao = appObjects.getOrCreate(\"Apps\");\r\n return new AppsFeatureFactory(ao);\r\n}"]}
1
+ {"version":3,"file":"AppsFeatureFactory.js","sourceRoot":"","sources":["../../../../src/Apps/Factories/AppsFeatureFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,aAAa,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAiB,WAAW,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAa,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEnD;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IAInD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,CAAC,CAAC;QAJnB,+BAA+B;QACtB,gBAAW,GAAG,oBAAoB,CAAC;IAI5C,CAAC;IAED;;OAEG;IACH,aAAa;QACX,sBAAsB;QACtB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,+DAA+D;QAC/D,0EAA0E;IAC5E,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,qBAAqB;QACrB,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,UAAU;QACR,wCAAwC;IAC1C,CAAC;CACF;AAED,MAAM,UAAU,sBAAsB,CACpC,UAAyB;IAEzB,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,IAAI,kBAAkB,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC","sourcesContent":["import { AppObject, AppObjectRepo, DomainFactory } from \"@vived/core\";\nimport { makeAppEntity, makeAppRepo } from \"../Entities\";\nimport { makeAppPM, makeAppsListPM } from \"../PMs\";\n\n/**\n * Factory responsible for setting up the Apps domain components.\n * This factory initializes all entities, use cases, and presentation models\n * required for the Apps functionality.\n */\nexport class AppsFeatureFactory extends DomainFactory {\n // Unique name for this factory\n readonly factoryName = \"AppsFeatureFactory\";\n\n constructor(appObject: AppObject) {\n super(appObject);\n }\n\n /**\n * Sets up all entities required for the Apps system\n */\n setupEntities(): void {\n // Initialize entities\n makeAppRepo(this.appObject);\n }\n\n /**\n * Sets up all use cases for the Apps system\n */\n setupUCs(): void {\n // Note: App UCs have complex dependencies and should be set up\n // separately to avoid circular dependencies during factory initialization\n }\n\n /**\n * Sets up all presentation managers for the Apps system\n */\n setupPMs(): void {\n // App Repository PMs\n makeAppsListPM(this.appObject);\n }\n\n /**\n * Performs any final setup operations after all components are initialized\n */\n finalSetup(): void {\n // No additional setup required for apps\n }\n}\n\nexport function makeAppsFeatureFactory(\n appObjects: AppObjectRepo\n): AppsFeatureFactory {\n const ao = appObjects.getOrCreate(\"Apps\");\n return new AppsFeatureFactory(ao);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Apps/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC","sourcesContent":["export * from \"./AppsFeatureFactory\";\r\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Apps/Factories/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC","sourcesContent":["export * from \"./AppsFeatureFactory\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MounterUC.js","sourceRoot":"","sources":["../../../../../src/Apps/UCs/Mounters/MounterUC.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC,\r\n Version,\r\n VIVEDApp_3\r\n} from \"@vived/core\";\r\nimport { HostDispatchEntity } from \"../../../Dispatcher/Entities/HostDispatchEntity\";\r\nimport { HostHandlerEntity } from \"../../../Handler/Entities/HostHandler\";\r\nimport { GetAppFromAPIUC } from \"../../../VivedAPI/UCs/GetAppFromAPIUC\";\r\nimport { AppEntity, AppState } from \"../../Entities/AppEntity\";\r\nimport { formAppIDWithVersion } from \"../formAppIDWithVersion\";\r\n\r\n/**\r\n * Abstract base class for app mounting use cases.\r\n *\r\n * The MounterUC is responsible for loading, initializing, and managing app\r\n * lifecycle. It handles script loading, version management, and communication\r\n * setup between the host and app.\r\n *\r\n * @extends AppObjectUC from @vived/core\r\n */\r\nexport abstract class MounterUC extends AppObjectUC {\r\n static type = \"MounterUC\";\r\n\r\n /**\r\n * Mounts a specific version of the app.\r\n *\r\n * @param majorVersion - The major version number\r\n * @param minorVersion - The minor version number\r\n * @returns A promise that resolves when the app is mounted\r\n */\r\n abstract mount(majorVersion: number, minorVersion: number): Promise<void>;\r\n\r\n /**\r\n * Mounts the latest available version of the app.\r\n *\r\n * @returns A promise that resolves when the app is mounted\r\n */\r\n abstract mountLatestVersion(): Promise<void>;\r\n\r\n /**\r\n * Unmounts the app, removing it from the runtime environment.\r\n */\r\n abstract unmount(): void;\r\n\r\n /**\r\n * Loads a script into the document.\r\n *\r\n * @param scriptURL - URL of the script to load\r\n * @param appIDWithVersion - Versioned ID of the app\r\n * @returns A promise that resolves when the script is loaded\r\n */\r\n abstract loadScriptIntoDocument(\r\n scriptURL: string,\r\n appIDWithVersion: string\r\n ): Promise<void>; // Exposed for testing purposes\r\n\r\n /**\r\n * Gets the app interface for a specific version.\r\n *\r\n * @param version - The version to get the interface for\r\n * @returns The app interface or undefined if not found\r\n */\r\n abstract getAppInterface(version: Version): VIVEDApp_3 | undefined; // Exposed for test purposes\r\n\r\n /**\r\n * Retrieves the MounterUC component from an app object.\r\n *\r\n * @param appObject - The app object to get the component from\r\n * @returns The MounterUC component or undefined if not found\r\n */\r\n static get(appObject: AppObject) {\r\n return appObject.getComponent<MounterUC>(MounterUC.type);\r\n }\r\n\r\n /**\r\n * Retrieves the MounterUC component by app object ID.\r\n *\r\n * @param id - The ID of the app object\r\n * @param appObjects - The app object repository\r\n * @returns The MounterUC component or undefined if not found\r\n */\r\n static getById(id: string, appObjects: AppObjectRepo) {\r\n const ao = appObjects.get(id);\r\n return ao?.getComponent<MounterUC>(MounterUC.type);\r\n }\r\n}\r\n\r\n/**\r\n * Factory function to create a new MounterUC instance.\r\n *\r\n * @param appObject - The app object to attach the mounter to\r\n * @returns A new MounterUC instance\r\n */\r\nexport function makeMounterUC(appObject: AppObject): MounterUC {\r\n return new MounterUCImp(appObject);\r\n}\r\n\r\n/**\r\n * Concrete implementation of the MounterUC abstract class.\r\n *\r\n * This implementation provides the standard mounting behavior for loading\r\n * and initializing apps, handling script loading, and managing app lifecycle.\r\n */\r\nclass MounterUCImp extends MounterUC {\r\n /**\r\n * Gets the use case for retrieving apps from the API.\r\n */\r\n private get getAppFromAPI() {\r\n return this.getCachedSingleton<GetAppFromAPIUC>(GetAppFromAPIUC.type);\r\n }\r\n\r\n /**\r\n * Gets the app entity representing the app being mounted.\r\n */\r\n private get app() {\r\n return this.getCachedLocalComponent<AppEntity>(AppEntity.type);\r\n }\r\n\r\n /**\r\n * Gets the host handler entity for receiving messages from apps.\r\n */\r\n private get hostHandler() {\r\n return this.getCachedLocalComponent<HostHandlerEntity>(\r\n HostHandlerEntity.type\r\n );\r\n }\r\n\r\n /**\r\n * Gets the host dispatcher entity for sending messages to apps.\r\n */\r\n private get hostDispatcher() {\r\n return this.getCachedLocalComponent<HostDispatchEntity>(\r\n HostDispatchEntity.type\r\n );\r\n }\r\n\r\n /**\r\n * Helper method to find a specific version of the app.\r\n *\r\n * @param major - Major version number\r\n * @param minor - Minor version number\r\n * @returns The Version object or undefined if not found\r\n */\r\n private getAppVersion(major: number, minor: number): Version | undefined {\r\n if (!this.app) {\r\n return;\r\n }\r\n\r\n let appVersion = Version.GetLatestWithMajorMinor(\r\n this.app.versions,\r\n major,\r\n minor\r\n );\r\n\r\n if (!appVersion) {\r\n appVersion = Version.GetLatestWithMajor(this.app.versions, major);\r\n }\r\n\r\n if (!appVersion) {\r\n this.error(\r\n `Unable to find version ${major}.${minor}.X for App ${this.app.name}`\r\n );\r\n }\r\n\r\n return appVersion;\r\n }\r\n\r\n /**\r\n * Tracks script elements added to the document to enable cleanup.\r\n */\r\n private scriptElements: HTMLScriptElement[] = [];\r\n\r\n /**\r\n * Mounts the latest available version of the app.\r\n *\r\n * @returns A promise that resolves when the app is mounted\r\n */\r\n mountLatestVersion(): Promise<void> {\r\n if (!this.app) {\r\n this.error(\"Missing Components\");\r\n return Promise.reject();\r\n }\r\n\r\n const version = this.app.latestVersion;\r\n if (!version) {\r\n this.error(\"No Version\");\r\n return Promise.reject();\r\n }\r\n\r\n return this.mount(version.major, version.minor);\r\n }\r\n\r\n /**\r\n * Unmounts the app, removing it from the runtime environment.\r\n *\r\n * This removes script elements, cleans up global references,\r\n * and resets app state.\r\n */\r\n unmount = () => {\r\n if (!this.app) return;\r\n if (!this.app.mountedVersion) return;\r\n\r\n const versionID = formAppIDWithVersion(this.app, this.app.mountedVersion);\r\n (window as any)[versionID] = undefined;\r\n delete (window as any)[versionID];\r\n\r\n this.scriptElements.forEach((element) => {\r\n element.remove();\r\n });\r\n this.scriptElements = [];\r\n\r\n this.app.styles = [];\r\n this.app.appAssetFolderURL = undefined;\r\n this.app.mountedVersion = undefined;\r\n this.app.state = AppState.INIT;\r\n };\r\n\r\n /**\r\n * Mounts a specific version of the app.\r\n *\r\n * This method fetches the app from the API, loads scripts,\r\n * establishes communication with the app, and waits for the\r\n * app to be ready.\r\n *\r\n * @param majorVersion - The major version number\r\n * @param minorVersion - The minor version number\r\n * @returns A promise that resolves when the app is mounted\r\n */\r\n mount = (majorVersion: number, minorVersion: number): Promise<void> => {\r\n const fetchApp = this.getAppFromAPI;\r\n if (!fetchApp) {\r\n this.error(\"No Fetch App UC\");\r\n return Promise.reject();\r\n }\r\n\r\n const app = this.app;\r\n if (!app) {\r\n this.error(\"No App\");\r\n return Promise.reject();\r\n }\r\n\r\n const hostHandler = this.hostHandler;\r\n if (!hostHandler) {\r\n this.error(\"No Host Handler\");\r\n return Promise.reject();\r\n }\r\n\r\n const hostDispatcher = this.hostDispatcher;\r\n if (!hostDispatcher) {\r\n this.error(\"No Host Dispatcher\");\r\n return Promise.reject();\r\n }\r\n\r\n const version = this.getAppVersion(majorVersion, minorVersion);\r\n if (!version) {\r\n return Promise.reject(\r\n new Error(\r\n `Unable to find version ${majorVersion}.${minorVersion}.X for App ${app.name}`\r\n )\r\n );\r\n }\r\n\r\n this.log(\r\n `Initializing App ${app.name} [${app.id}] version ${version.displayString}`\r\n );\r\n\r\n if (app.mountedVersion) {\r\n if (Version.AreEqual(app.mountedVersion, version)) {\r\n return Promise.resolve();\r\n } else {\r\n this.unmount();\r\n }\r\n }\r\n\r\n app.state = AppState.LOADING;\r\n\r\n return new Promise<void>((resolve, reject) => {\r\n fetchApp\r\n .getApp(this.appObject.id, version.baseVersionString)\r\n .then((appDTO) => {\r\n app.appAssetFolderURL = appDTO.assetFolderURL;\r\n const { scripts, styles } = this.parseEndpoints(appDTO.entrypoints);\r\n app.styles = styles;\r\n return this.loadScripts(scripts, version);\r\n })\r\n .then((appInterface) => {\r\n const appHandler = appInterface.mount(hostHandler.handler);\r\n hostDispatcher.registerAppHandler(appHandler);\r\n return this.waitForAppIsReady(app, version);\r\n })\r\n .then(() => {\r\n app.mountedVersion = version;\r\n resolve();\r\n })\r\n .catch((e) => {\r\n app.state = AppState.ERROR;\r\n reject(e);\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Loads app scripts and retrieves the app interface.\r\n *\r\n * @param scripts - Array of script URLs to load\r\n * @param version - The app version\r\n * @returns A promise that resolves with the app interface\r\n */\r\n private loadScripts = (\r\n scripts: string[],\r\n version: Version\r\n ): Promise<VIVEDApp_3> => {\r\n const app = this.app;\r\n if (!app) {\r\n this.error(\"No app entity\");\r\n return Promise.reject();\r\n }\r\n\r\n let appInterface = this.getAppInterface(version);\r\n const versionID = formAppIDWithVersion(app, version);\r\n\r\n if (appInterface) {\r\n return Promise.resolve(appInterface);\r\n }\r\n\r\n return new Promise<VIVEDApp_3>((resolve, reject) => {\r\n const loaders = scripts.map((entryPoint) => {\r\n return this.loadScriptIntoDocument(entryPoint, versionID);\r\n });\r\n Promise.all(loaders)\r\n .then(() => {\r\n appInterface = this.getAppInterface(version);\r\n\r\n if (!appInterface) {\r\n reject(\r\n \"App is undefined for ID: \" +\r\n app.id +\r\n \". Make sure ID is correct in the 3 files in the app project.\"\r\n );\r\n } else {\r\n resolve(appInterface);\r\n }\r\n })\r\n .catch((e) => {\r\n reject(e);\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Loads a script into the document.\r\n *\r\n * @param scriptURL - URL of the script to load\r\n * @param appIDWithVersion - Versioned ID of the app\r\n * @returns A promise that resolves when the script is loaded\r\n */\r\n loadScriptIntoDocument = (\r\n scriptURL: string,\r\n appIDWithVersion: string\r\n ): Promise<void> => {\r\n return new Promise<void>((resolve, reject) => {\r\n const aScript = document.createElement(\"script\");\r\n\r\n aScript.onload = function onLoad() {\r\n resolve();\r\n };\r\n\r\n aScript.onerror = function onError(e) {\r\n reject(new Error(`Failed to add script to document`));\r\n };\r\n\r\n aScript.type = \"text/javascript\";\r\n aScript.src = scriptURL;\r\n aScript.className = appIDWithVersion;\r\n this.scriptElements.push(aScript);\r\n\r\n document.head.appendChild(aScript);\r\n });\r\n };\r\n\r\n /**\r\n * Gets the app interface for a specific version.\r\n *\r\n * @param version - The version to get the interface for\r\n * @returns The app interface or undefined if not found\r\n */\r\n getAppInterface = (version: Version): VIVEDApp_3 | undefined => {\r\n if (!this.app) return;\r\n\r\n const versionID = formAppIDWithVersion(this.app, version);\r\n\r\n let appInterface = (window as any)[versionID] as VIVEDApp_3;\r\n\r\n if (!appInterface) {\r\n appInterface = (window as any)[this.app.id] as VIVEDApp_3; // Old way of identifying apps\r\n }\r\n\r\n return appInterface;\r\n };\r\n\r\n /**\r\n * Parses app entrypoints into scripts and styles.\r\n *\r\n * @param endpoints - Array of endpoint URLs\r\n * @returns Object with separate arrays for scripts and styles\r\n */\r\n private parseEndpoints(endpoints: string[]): {\r\n scripts: string[];\r\n styles: string[];\r\n } {\r\n const scripts: string[] = [];\r\n const styles: string[] = [];\r\n\r\n endpoints.forEach((endpoint) => {\r\n if (endpoint.includes(\".js\")) {\r\n scripts.push(endpoint);\r\n } else if (endpoint.includes(\".css\")) {\r\n styles.push(endpoint);\r\n } else {\r\n this.warn(\"Unknown endpoint: \" + endpoint);\r\n }\r\n });\r\n\r\n return {\r\n scripts,\r\n styles\r\n };\r\n }\r\n\r\n /**\r\n * Waits for an app to report it's ready.\r\n *\r\n * This method handles special cases for apps that don't properly\r\n * report their ready state, as well as the normal case where\r\n * apps transition to the READY state.\r\n *\r\n * @param app - The app entity\r\n * @param appVersion - The app version\r\n * @returns A promise that resolves when the app is ready\r\n */\r\n waitForAppIsReady(app: AppEntity, appVersion: Version): Promise<void> {\r\n // Edge cases here\r\n if (\r\n app.id === \"app4e48fbaa815a4857821bf7569b003751\" &&\r\n appVersion.major === 1 &&\r\n appVersion.minor === 0\r\n ) {\r\n // Mark board app has a problem with version 1.0\r\n app.state = AppState.READY;\r\n return Promise.resolve();\r\n }\r\n\r\n if (\r\n app.id === \"appe860b51f49414e20ae7995dff4d9b152\" &&\r\n appVersion.major === 1 &&\r\n appVersion.minor <= 2\r\n ) {\r\n // Older versions of the text app do not report when ready\r\n app.state = AppState.READY;\r\n return Promise.resolve();\r\n }\r\n\r\n if (\r\n app.id === \"app41df8a36f628451d9f633f8a9bdf3edb\" &&\r\n appVersion.major === 1 &&\r\n appVersion.minor <= 1\r\n ) {\r\n // Older versions of the YouTube app do not report when ready\r\n app.state = AppState.READY;\r\n return Promise.resolve();\r\n }\r\n\r\n if (app.id === \"app448f8f293fbb493a9e233f113ce8b56a\") {\r\n // Asset Plugin\r\n app.state = AppState.READY;\r\n return Promise.resolve();\r\n }\r\n\r\n // Allows testing to not get hung up waiting for this\r\n if (app.id === \"APP_FOR_JEST_TEST\") {\r\n // Older versions of the YouTube app do not report when ready\r\n app.state = AppState.READY;\r\n return Promise.resolve();\r\n }\r\n\r\n return new Promise<void>((resolve) => {\r\n const appObserver = () => {\r\n if (app.state === AppState.READY) {\r\n app.removeChangeObserver(appObserver);\r\n resolve();\r\n }\r\n };\r\n app.addChangeObserver(appObserver);\r\n appObserver();\r\n });\r\n }\r\n\r\n /**\r\n * Creates a new MounterUCImp instance.\r\n *\r\n * @param appObject - The app object to attach to\r\n */\r\n constructor(appObject: AppObject) {\r\n super(appObject, MounterUC.type);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"MounterUC.js","sourceRoot":"","sources":["../../../../../src/Apps/UCs/Mounters/MounterUC.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AppObject,\n AppObjectRepo,\n AppObjectUC,\n Version,\n VIVEDApp_3\n} from \"@vived/core\";\nimport { HostDispatchEntity } from \"../../../Dispatcher/Entities/HostDispatchEntity\";\nimport { HostHandlerEntity } from \"../../../Handler/Entities/HostHandler\";\nimport { GetAppFromAPIUC } from \"../../../VivedAPI/UCs/GetAppFromAPIUC\";\nimport { AppEntity, AppState } from \"../../Entities/AppEntity\";\nimport { formAppIDWithVersion } from \"../formAppIDWithVersion\";\n\n/**\n * Abstract base class for app mounting use cases.\n *\n * The MounterUC is responsible for loading, initializing, and managing app\n * lifecycle. It handles script loading, version management, and communication\n * setup between the host and app.\n *\n * @extends AppObjectUC from @vived/core\n */\nexport abstract class MounterUC extends AppObjectUC {\n static type = \"MounterUC\";\n\n /**\n * Mounts a specific version of the app.\n *\n * @param majorVersion - The major version number\n * @param minorVersion - The minor version number\n * @returns A promise that resolves when the app is mounted\n */\n abstract mount(majorVersion: number, minorVersion: number): Promise<void>;\n\n /**\n * Mounts the latest available version of the app.\n *\n * @returns A promise that resolves when the app is mounted\n */\n abstract mountLatestVersion(): Promise<void>;\n\n /**\n * Unmounts the app, removing it from the runtime environment.\n */\n abstract unmount(): void;\n\n /**\n * Loads a script into the document.\n *\n * @param scriptURL - URL of the script to load\n * @param appIDWithVersion - Versioned ID of the app\n * @returns A promise that resolves when the script is loaded\n */\n abstract loadScriptIntoDocument(\n scriptURL: string,\n appIDWithVersion: string\n ): Promise<void>; // Exposed for testing purposes\n\n /**\n * Gets the app interface for a specific version.\n *\n * @param version - The version to get the interface for\n * @returns The app interface or undefined if not found\n */\n abstract getAppInterface(version: Version): VIVEDApp_3 | undefined; // Exposed for test purposes\n\n /**\n * Retrieves the MounterUC component from an app object.\n *\n * @param appObject - The app object to get the component from\n * @returns The MounterUC component or undefined if not found\n */\n static get(appObject: AppObject) {\n return appObject.getComponent<MounterUC>(MounterUC.type);\n }\n\n /**\n * Retrieves the MounterUC component by app object ID.\n *\n * @param id - The ID of the app object\n * @param appObjects - The app object repository\n * @returns The MounterUC component or undefined if not found\n */\n static getById(id: string, appObjects: AppObjectRepo) {\n const ao = appObjects.get(id);\n return ao?.getComponent<MounterUC>(MounterUC.type);\n }\n}\n\n/**\n * Factory function to create a new MounterUC instance.\n *\n * @param appObject - The app object to attach the mounter to\n * @returns A new MounterUC instance\n */\nexport function makeMounterUC(appObject: AppObject): MounterUC {\n return new MounterUCImp(appObject);\n}\n\n/**\n * Concrete implementation of the MounterUC abstract class.\n *\n * This implementation provides the standard mounting behavior for loading\n * and initializing apps, handling script loading, and managing app lifecycle.\n */\nclass MounterUCImp extends MounterUC {\n /**\n * Gets the use case for retrieving apps from the API.\n */\n private get getAppFromAPI() {\n return this.getCachedSingleton<GetAppFromAPIUC>(GetAppFromAPIUC.type);\n }\n\n /**\n * Gets the app entity representing the app being mounted.\n */\n private get app() {\n return this.getCachedLocalComponent<AppEntity>(AppEntity.type);\n }\n\n /**\n * Gets the host handler entity for receiving messages from apps.\n */\n private get hostHandler() {\n return this.getCachedLocalComponent<HostHandlerEntity>(\n HostHandlerEntity.type\n );\n }\n\n /**\n * Gets the host dispatcher entity for sending messages to apps.\n */\n private get hostDispatcher() {\n return this.getCachedLocalComponent<HostDispatchEntity>(\n HostDispatchEntity.type\n );\n }\n\n /**\n * Helper method to find a specific version of the app.\n *\n * @param major - Major version number\n * @param minor - Minor version number\n * @returns The Version object or undefined if not found\n */\n private getAppVersion(major: number, minor: number): Version | undefined {\n if (!this.app) {\n return;\n }\n\n let appVersion = Version.GetLatestWithMajorMinor(\n this.app.versions,\n major,\n minor\n );\n\n if (!appVersion) {\n appVersion = Version.GetLatestWithMajor(this.app.versions, major);\n }\n\n if (!appVersion) {\n this.error(\n `Unable to find version ${major}.${minor}.X for App ${this.app.name}`\n );\n }\n\n return appVersion;\n }\n\n /**\n * Tracks script elements added to the document to enable cleanup.\n */\n private scriptElements: HTMLScriptElement[] = [];\n\n /**\n * Mounts the latest available version of the app.\n *\n * @returns A promise that resolves when the app is mounted\n */\n mountLatestVersion(): Promise<void> {\n if (!this.app) {\n this.error(\"Missing Components\");\n return Promise.reject();\n }\n\n const version = this.app.latestVersion;\n if (!version) {\n this.error(\"No Version\");\n return Promise.reject();\n }\n\n return this.mount(version.major, version.minor);\n }\n\n /**\n * Unmounts the app, removing it from the runtime environment.\n *\n * This removes script elements, cleans up global references,\n * and resets app state.\n */\n unmount = () => {\n if (!this.app) return;\n if (!this.app.mountedVersion) return;\n\n const versionID = formAppIDWithVersion(this.app, this.app.mountedVersion);\n (window as any)[versionID] = undefined;\n delete (window as any)[versionID];\n\n this.scriptElements.forEach((element) => {\n element.remove();\n });\n this.scriptElements = [];\n\n this.app.styles = [];\n this.app.appAssetFolderURL = undefined;\n this.app.mountedVersion = undefined;\n this.app.state = AppState.INIT;\n };\n\n /**\n * Mounts a specific version of the app.\n *\n * This method fetches the app from the API, loads scripts,\n * establishes communication with the app, and waits for the\n * app to be ready.\n *\n * @param majorVersion - The major version number\n * @param minorVersion - The minor version number\n * @returns A promise that resolves when the app is mounted\n */\n mount = (majorVersion: number, minorVersion: number): Promise<void> => {\n const fetchApp = this.getAppFromAPI;\n if (!fetchApp) {\n this.error(\"No Fetch App UC\");\n return Promise.reject();\n }\n\n const app = this.app;\n if (!app) {\n this.error(\"No App\");\n return Promise.reject();\n }\n\n const hostHandler = this.hostHandler;\n if (!hostHandler) {\n this.error(\"No Host Handler\");\n return Promise.reject();\n }\n\n const hostDispatcher = this.hostDispatcher;\n if (!hostDispatcher) {\n this.error(\"No Host Dispatcher\");\n return Promise.reject();\n }\n\n const version = this.getAppVersion(majorVersion, minorVersion);\n if (!version) {\n return Promise.reject(\n new Error(\n `Unable to find version ${majorVersion}.${minorVersion}.X for App ${app.name}`\n )\n );\n }\n\n this.log(\n `Initializing App ${app.name} [${app.id}] version ${version.displayString}`\n );\n\n if (app.mountedVersion) {\n if (Version.AreEqual(app.mountedVersion, version)) {\n return Promise.resolve();\n } else {\n this.unmount();\n }\n }\n\n app.state = AppState.LOADING;\n\n return new Promise<void>((resolve, reject) => {\n fetchApp\n .getApp(this.appObject.id, version.baseVersionString)\n .then((appDTO) => {\n app.appAssetFolderURL = appDTO.assetFolderURL;\n const { scripts, styles } = this.parseEndpoints(appDTO.entrypoints);\n app.styles = styles;\n return this.loadScripts(scripts, version);\n })\n .then((appInterface) => {\n const appHandler = appInterface.mount(hostHandler.handler);\n hostDispatcher.registerAppHandler(appHandler);\n return this.waitForAppIsReady(app, version);\n })\n .then(() => {\n app.mountedVersion = version;\n resolve();\n })\n .catch((e) => {\n app.state = AppState.ERROR;\n reject(e);\n });\n });\n };\n\n /**\n * Loads app scripts and retrieves the app interface.\n *\n * @param scripts - Array of script URLs to load\n * @param version - The app version\n * @returns A promise that resolves with the app interface\n */\n private loadScripts = (\n scripts: string[],\n version: Version\n ): Promise<VIVEDApp_3> => {\n const app = this.app;\n if (!app) {\n this.error(\"No app entity\");\n return Promise.reject();\n }\n\n let appInterface = this.getAppInterface(version);\n const versionID = formAppIDWithVersion(app, version);\n\n if (appInterface) {\n return Promise.resolve(appInterface);\n }\n\n return new Promise<VIVEDApp_3>((resolve, reject) => {\n const loaders = scripts.map((entryPoint) => {\n return this.loadScriptIntoDocument(entryPoint, versionID);\n });\n Promise.all(loaders)\n .then(() => {\n appInterface = this.getAppInterface(version);\n\n if (!appInterface) {\n reject(\n \"App is undefined for ID: \" +\n app.id +\n \". Make sure ID is correct in the 3 files in the app project.\"\n );\n } else {\n resolve(appInterface);\n }\n })\n .catch((e) => {\n reject(e);\n });\n });\n };\n\n /**\n * Loads a script into the document.\n *\n * @param scriptURL - URL of the script to load\n * @param appIDWithVersion - Versioned ID of the app\n * @returns A promise that resolves when the script is loaded\n */\n loadScriptIntoDocument = (\n scriptURL: string,\n appIDWithVersion: string\n ): Promise<void> => {\n return new Promise<void>((resolve, reject) => {\n const aScript = document.createElement(\"script\");\n\n aScript.onload = function onLoad() {\n resolve();\n };\n\n aScript.onerror = function onError(e) {\n reject(new Error(`Failed to add script to document`));\n };\n\n aScript.type = \"text/javascript\";\n aScript.src = scriptURL;\n aScript.className = appIDWithVersion;\n this.scriptElements.push(aScript);\n\n document.head.appendChild(aScript);\n });\n };\n\n /**\n * Gets the app interface for a specific version.\n *\n * @param version - The version to get the interface for\n * @returns The app interface or undefined if not found\n */\n getAppInterface = (version: Version): VIVEDApp_3 | undefined => {\n if (!this.app) return;\n\n const versionID = formAppIDWithVersion(this.app, version);\n\n let appInterface = (window as any)[versionID] as VIVEDApp_3;\n\n if (!appInterface) {\n appInterface = (window as any)[this.app.id] as VIVEDApp_3; // Old way of identifying apps\n }\n\n return appInterface;\n };\n\n /**\n * Parses app entrypoints into scripts and styles.\n *\n * @param endpoints - Array of endpoint URLs\n * @returns Object with separate arrays for scripts and styles\n */\n private parseEndpoints(endpoints: string[]): {\n scripts: string[];\n styles: string[];\n } {\n const scripts: string[] = [];\n const styles: string[] = [];\n\n endpoints.forEach((endpoint) => {\n if (endpoint.includes(\".js\")) {\n scripts.push(endpoint);\n } else if (endpoint.includes(\".css\")) {\n styles.push(endpoint);\n } else {\n this.warn(\"Unknown endpoint: \" + endpoint);\n }\n });\n\n return {\n scripts,\n styles\n };\n }\n\n /**\n * Waits for an app to report it's ready.\n *\n * This method handles special cases for apps that don't properly\n * report their ready state, as well as the normal case where\n * apps transition to the READY state.\n *\n * @param app - The app entity\n * @param appVersion - The app version\n * @returns A promise that resolves when the app is ready\n */\n waitForAppIsReady(app: AppEntity, appVersion: Version): Promise<void> {\n // Edge cases here\n if (\n app.id === \"app4e48fbaa815a4857821bf7569b003751\" &&\n appVersion.major === 1 &&\n appVersion.minor === 0\n ) {\n // Mark board app has a problem with version 1.0\n app.state = AppState.READY;\n return Promise.resolve();\n }\n\n if (\n app.id === \"appe860b51f49414e20ae7995dff4d9b152\" &&\n appVersion.major === 1 &&\n appVersion.minor <= 2\n ) {\n // Older versions of the text app do not report when ready\n app.state = AppState.READY;\n return Promise.resolve();\n }\n\n if (\n app.id === \"app41df8a36f628451d9f633f8a9bdf3edb\" &&\n appVersion.major === 1 &&\n appVersion.minor <= 1\n ) {\n // Older versions of the YouTube app do not report when ready\n app.state = AppState.READY;\n return Promise.resolve();\n }\n\n if (app.id === \"app448f8f293fbb493a9e233f113ce8b56a\") {\n // Asset Plugin\n app.state = AppState.READY;\n return Promise.resolve();\n }\n\n // Allows testing to not get hung up waiting for this\n if (app.id === \"APP_FOR_JEST_TEST\") {\n // Older versions of the YouTube app do not report when ready\n app.state = AppState.READY;\n return Promise.resolve();\n }\n\n return new Promise<void>((resolve) => {\n const appObserver = () => {\n if (app.state === AppState.READY) {\n app.removeChangeObserver(appObserver);\n resolve();\n }\n };\n app.addChangeObserver(appObserver);\n appObserver();\n });\n }\n\n /**\n * Creates a new MounterUCImp instance.\n *\n * @param appObject - The app object to attach to\n */\n constructor(appObject: AppObject) {\n super(appObject, MounterUC.type);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"SandboxMounterUC.js","sourceRoot":"","sources":["../../../../../src/Apps/UCs/Mounters/SandboxMounterUC.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, Version, VIVEDApp_3 } from \"@vived/core\";\r\nimport {\r\n AppSandboxEntity,\r\n SandboxState\r\n} from \"../../../AppSandbox/Entities/AppSandboxEntity\";\r\nimport { HostDispatchEntity } from \"../../../Dispatcher/Entities/HostDispatchEntity\";\r\nimport { HostHandlerEntity } from \"../../../Handler/Entities/HostHandler\";\r\nimport { AppEntity, AppState } from \"../../Entities/AppEntity\";\r\nimport { MounterUC } from \"./MounterUC\";\r\n\r\n/**\r\n * Factory function to create a sandbox mounter for apps.\r\n *\r\n * The sandbox mounter is designed to mount apps in a sandboxed environment,\r\n * providing isolation and security for app execution.\r\n *\r\n * @param appObject - The app object to attach the mounter to\r\n * @returns A new SandboxMounterUC instance\r\n */\r\nexport function makeSandboxMounter(appObject: AppObject): MounterUC {\r\n return new SandboxMounterUC(appObject);\r\n}\r\n\r\n/**\r\n * Implementation of MounterUC for mounting apps in a sandbox environment.\r\n *\r\n * The SandboxMounterUC is responsible for safely loading and initializing apps\r\n * in a sandboxed context, handling app lifecycle events, and managing the\r\n * communication between the host and app.\r\n */\r\nclass SandboxMounterUC extends MounterUC {\r\n /**\r\n * Gets the app entity representing the app being mounted\r\n */\r\n private get appEntity() {\r\n return this.getCachedLocalComponent<AppEntity>(AppEntity.type);\r\n }\r\n\r\n /**\r\n * Gets the host dispatcher entity for sending messages to apps\r\n */\r\n private get hostDispatcher() {\r\n return this.getCachedLocalComponent<HostDispatchEntity>(\r\n HostDispatchEntity.type\r\n );\r\n }\r\n\r\n /**\r\n * Gets the host handler entity for receiving messages from apps\r\n */\r\n private get hostHandler() {\r\n return this.getCachedLocalComponent<HostHandlerEntity>(\r\n HostHandlerEntity.type\r\n );\r\n }\r\n\r\n /**\r\n * Gets the sandbox entity that manages the sandbox state\r\n */\r\n private get sandbox() {\r\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\r\n }\r\n\r\n /**\r\n * Mounts the latest version of the app.\r\n *\r\n * @returns A promise that resolves when the app is mounted or rejects if an error occurs\r\n */\r\n mountLatestVersion = (): Promise<void> => {\r\n if (!this.appEntity) {\r\n this.error(\"Missing Components\");\r\n return Promise.reject();\r\n }\r\n\r\n const version = this.appEntity.latestVersion;\r\n if (!version) {\r\n this.error(\"No Version\");\r\n return Promise.reject();\r\n }\r\n\r\n return this.mount(version.major, version.minor);\r\n };\r\n\r\n /**\r\n * Mounts a specific version of the app.\r\n *\r\n * @param majorVersion - The major version number\r\n * @param minorVersion - The minor version number\r\n * @returns A promise that resolves when the app is mounted or rejects if an error occurs\r\n */\r\n mount = (majorVersion: number, minorVersion: number): Promise<void> => {\r\n if (\r\n !this.appEntity ||\r\n !this.hostDispatcher ||\r\n !this.hostHandler ||\r\n !this.sandbox\r\n ) {\r\n this.error(\"Missing Components\");\r\n return Promise.reject();\r\n }\r\n\r\n const version = this.getAppVersion(majorVersion, minorVersion);\r\n if (!version) {\r\n this.error(\"No Version\");\r\n return Promise.reject();\r\n }\r\n\r\n const appInterface = this.getAppInterface(version);\r\n if (!appInterface) {\r\n this.error(\"No App Interface\");\r\n return Promise.reject();\r\n }\r\n\r\n const appHandler = appInterface.mount(this.hostHandler.handler);\r\n this.hostDispatcher.registerAppHandler(appHandler);\r\n\r\n const app = this.appEntity;\r\n const sandbox = this.sandbox;\r\n\r\n return new Promise((resolve) => {\r\n const waitForReady = () => {\r\n if (app.state === AppState.READY) {\r\n sandbox.state = SandboxState.MOUNTED;\r\n app.removeChangeObserver(waitForReady);\r\n resolve();\r\n }\r\n };\r\n\r\n app.addChangeObserver(waitForReady);\r\n waitForReady();\r\n });\r\n };\r\n\r\n /**\r\n * Helper method to find a specific version of the app.\r\n *\r\n * @param major - Major version number\r\n * @param minor - Minor version number\r\n * @returns The Version object or undefined if not found\r\n */\r\n private getAppVersion(major: number, minor: number): Version | undefined {\r\n if (!this.appEntity) {\r\n return;\r\n }\r\n\r\n let appVersion = Version.GetLatestWithMajorMinor(\r\n this.appEntity.versions,\r\n major,\r\n minor\r\n );\r\n\r\n if (!appVersion) {\r\n appVersion = Version.GetLatestWithMajor(this.appEntity.versions, major);\r\n }\r\n\r\n if (!appVersion) {\r\n this.error(\r\n `Unable to find version ${major}.${minor}.X for App ${this.appEntity.name}`\r\n );\r\n }\r\n\r\n return appVersion;\r\n }\r\n\r\n /**\r\n * Unmounts the app from the sandbox.\r\n */\r\n unmount = (): void => {\r\n if (!this.sandbox || !this.hostDispatcher) {\r\n this.error(\"Missing Components\");\r\n return;\r\n }\r\n\r\n this.hostDispatcher.clearAppHandler();\r\n\r\n this.sandbox.state = SandboxState.UNMOUNTED;\r\n };\r\n\r\n /**\r\n * Loads a script into the document.\r\n * This is a placeholder implementation for sandbox mounting.\r\n *\r\n * @param scriptURL - URL of the script to load\r\n * @param appIDWithVersion - Versioned ID of the app\r\n * @returns A promise that resolves when the script is loaded\r\n */\r\n loadScriptIntoDocument(\r\n scriptURL: string,\r\n appIDWithVersion: string\r\n ): Promise<void> {\r\n // Unused during dev\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n * Gets the app interface for a specific version.\r\n *\r\n * @param version - The version to get the interface for\r\n * @returns The app interface or undefined if not found\r\n */\r\n getAppInterface(version: Version): VIVEDApp_3 | undefined {\r\n const modifiedVersion = version.baseVersionString.split(\".\").join(\"_\");\r\n const idWithVersion = `${this.appObject.id}-${modifiedVersion}`;\r\n const appInterface = (window as any)[idWithVersion] as VIVEDApp_3;\r\n if (!appInterface) {\r\n this.appObjects.submitFatal(\r\n \"LocalMounterUC\",\r\n \"Unable to find App Interface\"\r\n );\r\n return;\r\n }\r\n\r\n return appInterface;\r\n }\r\n\r\n /**\r\n * Creates a new SandboxMounterUC instance.\r\n *\r\n * @param appObject - The app object to attach to\r\n */\r\n constructor(appObject: AppObject) {\r\n super(appObject, MounterUC.type);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SandboxMounterUC.js","sourceRoot":"","sources":["../../../../../src/Apps/UCs/Mounters/SandboxMounterUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAc,MAAM,aAAa,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,YAAY,EACb,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAoB;IACrD,OAAO,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,gBAAiB,SAAQ,SAAS;IACtC;;OAEG;IACH,IAAY,SAAS;QACnB,OAAO,IAAI,CAAC,uBAAuB,CAAY,SAAS,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,IAAY,cAAc;QACxB,OAAO,IAAI,CAAC,uBAAuB,CACjC,kBAAkB,CAAC,IAAI,CACxB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAY,WAAW;QACrB,OAAO,IAAI,CAAC,uBAAuB,CACjC,iBAAiB,CAAC,IAAI,CACvB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAwED;;;;;;OAMG;IACK,aAAa,CAAC,KAAa,EAAE,KAAa;QAChD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,UAAU,GAAG,OAAO,CAAC,uBAAuB,CAC9C,IAAI,CAAC,SAAS,CAAC,QAAQ,EACvB,KAAK,EACL,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CACR,0BAA0B,KAAK,IAAI,KAAK,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAC5E,CAAC;QACJ,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAgBD;;;;;;;OAOG;IACH,sBAAsB,CACpB,SAAiB,EACjB,gBAAwB;QAExB,oBAAoB;QACpB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,OAAgB;QAC9B,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,eAAe,EAAE,CAAC;QAChE,MAAM,YAAY,GAAI,MAAc,CAAC,aAAa,CAAe,CAAC;QAClE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,WAAW,CACzB,gBAAgB,EAChB,8BAA8B,CAC/B,CAAC;YACF,OAAO;QACT,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QA9JnC;;;;WAIG;QACH,uBAAkB,GAAG,GAAkB,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACjC,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;YAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACzB,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC;YAED,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC,CAAC;QAEF;;;;;;WAMG;QACH,UAAK,GAAG,CAAC,YAAoB,EAAE,YAAoB,EAAiB,EAAE;YACpE,IACE,CAAC,IAAI,CAAC,SAAS;gBACf,CAAC,IAAI,CAAC,cAAc;gBACpB,CAAC,IAAI,CAAC,WAAW;gBACjB,CAAC,IAAI,CAAC,OAAO,EACb,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACjC,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACzB,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;gBAC/B,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC;YAED,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAChE,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAEnD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAE7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,YAAY,GAAG,GAAG,EAAE;oBACxB,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;wBACjC,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC;wBACrC,GAAG,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;wBACvC,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC;gBAEF,GAAG,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;gBACpC,YAAY,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAiCF;;WAEG;QACH,YAAO,GAAG,GAAS,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC1C,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACjC,OAAO;YACT,CAAC;YAED,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;YAEtC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC;QAC9C,CAAC,CAAC;IA8CF,CAAC;CACF","sourcesContent":["import { AppObject, Version, VIVEDApp_3 } from \"@vived/core\";\nimport {\n AppSandboxEntity,\n SandboxState\n} from \"../../../AppSandbox/Entities/AppSandboxEntity\";\nimport { HostDispatchEntity } from \"../../../Dispatcher/Entities/HostDispatchEntity\";\nimport { HostHandlerEntity } from \"../../../Handler/Entities/HostHandler\";\nimport { AppEntity, AppState } from \"../../Entities/AppEntity\";\nimport { MounterUC } from \"./MounterUC\";\n\n/**\n * Factory function to create a sandbox mounter for apps.\n *\n * The sandbox mounter is designed to mount apps in a sandboxed environment,\n * providing isolation and security for app execution.\n *\n * @param appObject - The app object to attach the mounter to\n * @returns A new SandboxMounterUC instance\n */\nexport function makeSandboxMounter(appObject: AppObject): MounterUC {\n return new SandboxMounterUC(appObject);\n}\n\n/**\n * Implementation of MounterUC for mounting apps in a sandbox environment.\n *\n * The SandboxMounterUC is responsible for safely loading and initializing apps\n * in a sandboxed context, handling app lifecycle events, and managing the\n * communication between the host and app.\n */\nclass SandboxMounterUC extends MounterUC {\n /**\n * Gets the app entity representing the app being mounted\n */\n private get appEntity() {\n return this.getCachedLocalComponent<AppEntity>(AppEntity.type);\n }\n\n /**\n * Gets the host dispatcher entity for sending messages to apps\n */\n private get hostDispatcher() {\n return this.getCachedLocalComponent<HostDispatchEntity>(\n HostDispatchEntity.type\n );\n }\n\n /**\n * Gets the host handler entity for receiving messages from apps\n */\n private get hostHandler() {\n return this.getCachedLocalComponent<HostHandlerEntity>(\n HostHandlerEntity.type\n );\n }\n\n /**\n * Gets the sandbox entity that manages the sandbox state\n */\n private get sandbox() {\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\n }\n\n /**\n * Mounts the latest version of the app.\n *\n * @returns A promise that resolves when the app is mounted or rejects if an error occurs\n */\n mountLatestVersion = (): Promise<void> => {\n if (!this.appEntity) {\n this.error(\"Missing Components\");\n return Promise.reject();\n }\n\n const version = this.appEntity.latestVersion;\n if (!version) {\n this.error(\"No Version\");\n return Promise.reject();\n }\n\n return this.mount(version.major, version.minor);\n };\n\n /**\n * Mounts a specific version of the app.\n *\n * @param majorVersion - The major version number\n * @param minorVersion - The minor version number\n * @returns A promise that resolves when the app is mounted or rejects if an error occurs\n */\n mount = (majorVersion: number, minorVersion: number): Promise<void> => {\n if (\n !this.appEntity ||\n !this.hostDispatcher ||\n !this.hostHandler ||\n !this.sandbox\n ) {\n this.error(\"Missing Components\");\n return Promise.reject();\n }\n\n const version = this.getAppVersion(majorVersion, minorVersion);\n if (!version) {\n this.error(\"No Version\");\n return Promise.reject();\n }\n\n const appInterface = this.getAppInterface(version);\n if (!appInterface) {\n this.error(\"No App Interface\");\n return Promise.reject();\n }\n\n const appHandler = appInterface.mount(this.hostHandler.handler);\n this.hostDispatcher.registerAppHandler(appHandler);\n\n const app = this.appEntity;\n const sandbox = this.sandbox;\n\n return new Promise((resolve) => {\n const waitForReady = () => {\n if (app.state === AppState.READY) {\n sandbox.state = SandboxState.MOUNTED;\n app.removeChangeObserver(waitForReady);\n resolve();\n }\n };\n\n app.addChangeObserver(waitForReady);\n waitForReady();\n });\n };\n\n /**\n * Helper method to find a specific version of the app.\n *\n * @param major - Major version number\n * @param minor - Minor version number\n * @returns The Version object or undefined if not found\n */\n private getAppVersion(major: number, minor: number): Version | undefined {\n if (!this.appEntity) {\n return;\n }\n\n let appVersion = Version.GetLatestWithMajorMinor(\n this.appEntity.versions,\n major,\n minor\n );\n\n if (!appVersion) {\n appVersion = Version.GetLatestWithMajor(this.appEntity.versions, major);\n }\n\n if (!appVersion) {\n this.error(\n `Unable to find version ${major}.${minor}.X for App ${this.appEntity.name}`\n );\n }\n\n return appVersion;\n }\n\n /**\n * Unmounts the app from the sandbox.\n */\n unmount = (): void => {\n if (!this.sandbox || !this.hostDispatcher) {\n this.error(\"Missing Components\");\n return;\n }\n\n this.hostDispatcher.clearAppHandler();\n\n this.sandbox.state = SandboxState.UNMOUNTED;\n };\n\n /**\n * Loads a script into the document.\n * This is a placeholder implementation for sandbox mounting.\n *\n * @param scriptURL - URL of the script to load\n * @param appIDWithVersion - Versioned ID of the app\n * @returns A promise that resolves when the script is loaded\n */\n loadScriptIntoDocument(\n scriptURL: string,\n appIDWithVersion: string\n ): Promise<void> {\n // Unused during dev\n return Promise.resolve();\n }\n\n /**\n * Gets the app interface for a specific version.\n *\n * @param version - The version to get the interface for\n * @returns The app interface or undefined if not found\n */\n getAppInterface(version: Version): VIVEDApp_3 | undefined {\n const modifiedVersion = version.baseVersionString.split(\".\").join(\"_\");\n const idWithVersion = `${this.appObject.id}-${modifiedVersion}`;\n const appInterface = (window as any)[idWithVersion] as VIVEDApp_3;\n if (!appInterface) {\n this.appObjects.submitFatal(\n \"LocalMounterUC\",\n \"Unable to find App Interface\"\n );\n return;\n }\n\n return appInterface;\n }\n\n /**\n * Creates a new SandboxMounterUC instance.\n *\n * @param appObject - The app object to attach to\n */\n constructor(appObject: AppObject) {\n super(appObject, MounterUC.type);\n }\n}\n"]}