@vived/host 5.2.2 → 5.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) 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/devModeAdapter.js +24 -0
  4. package/dist/cjs/AppSandbox/Adapters/devModeAdapter.js.map +1 -0
  5. package/dist/cjs/AppSandbox/Adapters/index.js +2 -0
  6. package/dist/cjs/AppSandbox/Adapters/index.js.map +1 -1
  7. package/dist/cjs/AppSandbox/Controller/index.js +2 -0
  8. package/dist/cjs/AppSandbox/Controller/index.js.map +1 -1
  9. package/dist/cjs/AppSandbox/Controller/setBabylonInspectorSupported.js +13 -0
  10. package/dist/cjs/AppSandbox/Controller/setBabylonInspectorSupported.js.map +1 -0
  11. package/dist/cjs/AppSandbox/Controller/setDevMode.js +19 -0
  12. package/dist/cjs/AppSandbox/Controller/setDevMode.js.map +1 -0
  13. package/dist/cjs/AppSandbox/Entities/AppSandboxEntity.js +14 -0
  14. package/dist/cjs/AppSandbox/Entities/AppSandboxEntity.js.map +1 -1
  15. package/dist/cjs/AppSandbox/Factories/AppSandboxFeatureFactory.js +3 -0
  16. package/dist/cjs/AppSandbox/Factories/AppSandboxFeatureFactory.js.map +1 -1
  17. package/dist/cjs/AppSandbox/Factories/index.js.map +1 -1
  18. package/dist/cjs/AppSandbox/Factories/setupAppSandbox.js +2 -0
  19. package/dist/cjs/AppSandbox/Factories/setupAppSandbox.js.map +1 -1
  20. package/dist/cjs/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.js +16 -0
  21. package/dist/cjs/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.js.map +1 -0
  22. package/dist/cjs/AppSandbox/Mocks/DevModePMMock.js +16 -0
  23. package/dist/cjs/AppSandbox/Mocks/DevModePMMock.js.map +1 -0
  24. package/dist/cjs/AppSandbox/Mocks/MockSetDevModeUC.js +12 -0
  25. package/dist/cjs/AppSandbox/Mocks/MockSetDevModeUC.js.map +1 -0
  26. package/dist/cjs/AppSandbox/Mocks/index.js +3 -0
  27. package/dist/cjs/AppSandbox/Mocks/index.js.map +1 -1
  28. package/dist/cjs/AppSandbox/PMs/BabylonInspectorSupportedPM.js +37 -0
  29. package/dist/cjs/AppSandbox/PMs/BabylonInspectorSupportedPM.js.map +1 -0
  30. package/dist/cjs/AppSandbox/PMs/DevFeaturesEnabledPM.js.map +1 -1
  31. package/dist/cjs/AppSandbox/PMs/DevModePM.js +37 -0
  32. package/dist/cjs/AppSandbox/PMs/DevModePM.js.map +1 -0
  33. package/dist/cjs/AppSandbox/PMs/ShowInspectorPM.js.map +1 -1
  34. package/dist/cjs/AppSandbox/PMs/StartInZSpacePM.js.map +1 -1
  35. package/dist/cjs/AppSandbox/PMs/index.js +2 -0
  36. package/dist/cjs/AppSandbox/PMs/index.js.map +1 -1
  37. package/dist/cjs/AppSandbox/UCs/SetDevModeUC.js +47 -0
  38. package/dist/cjs/AppSandbox/UCs/SetDevModeUC.js.map +1 -0
  39. package/dist/cjs/AppSandbox/UCs/index.js +1 -0
  40. package/dist/cjs/AppSandbox/UCs/index.js.map +1 -1
  41. package/dist/cjs/Apps/Entities/AppEntity.js.map +1 -1
  42. package/dist/cjs/Apps/Entities/AppRepo.js.map +1 -1
  43. package/dist/cjs/Apps/Factories/AppsFeatureFactory.js.map +1 -1
  44. package/dist/cjs/Apps/Factories/index.js.map +1 -1
  45. package/dist/cjs/Apps/UCs/Mounters/MounterUC.js.map +1 -1
  46. package/dist/cjs/Apps/UCs/Mounters/SandboxMounterUC.js +1 -0
  47. package/dist/cjs/Apps/UCs/Mounters/SandboxMounterUC.js.map +1 -1
  48. package/dist/cjs/Apps/UCs/StartAppUC.js.map +1 -1
  49. package/dist/cjs/Apps/UCs/StopAppUC.js.map +1 -1
  50. package/dist/cjs/Apps/index.js.map +1 -1
  51. package/dist/cjs/AssetPlugin/Factories/AssetPluginFeatureFactory.js.map +1 -1
  52. package/dist/cjs/AssetPlugin/Factories/index.js.map +1 -1
  53. package/dist/cjs/Assets/Adapters/assetFileAdapter.js.map +1 -1
  54. package/dist/cjs/Assets/Controllers/archiveAsset.js.map +1 -1
  55. package/dist/cjs/Assets/Controllers/deleteAsset.js.map +1 -1
  56. package/dist/cjs/Assets/Controllers/downloadAssetFile.js.map +1 -1
  57. package/dist/cjs/Assets/Controllers/editAppAsset.js.map +1 -1
  58. package/dist/cjs/Assets/Controllers/fetchAssetFile.js.map +1 -1
  59. package/dist/cjs/Assets/Controllers/getAppAssets.js.map +1 -1
  60. package/dist/cjs/Assets/Controllers/index.js.map +1 -1
  61. package/dist/cjs/Assets/Controllers/newAppAsset.js.map +1 -1
  62. package/dist/cjs/Assets/Controllers/toggleShowArchivedAssets.js.map +1 -1
  63. package/dist/cjs/Assets/Controllers/updateAppAssetMeta.js.map +1 -1
  64. package/dist/cjs/Assets/Controllers/updateAssetFile.js.map +1 -1
  65. package/dist/cjs/Assets/Entities/AppAssetsEntity.js.map +1 -1
  66. package/dist/cjs/Assets/Entities/AssetEntity.js.map +1 -1
  67. package/dist/cjs/Assets/Entities/AssetRepo.js.map +1 -1
  68. package/dist/cjs/Assets/Factories/AssetsFactory.js.map +1 -1
  69. package/dist/cjs/Assets/Factories/SandboxAssetsFactory.js.map +1 -1
  70. package/dist/cjs/Assets/Factories/index.js.map +1 -1
  71. package/dist/cjs/Assets/PMs/AssetFilePM.js.map +1 -1
  72. package/dist/cjs/Assets/PMs/AssetPM.js.map +1 -1
  73. package/dist/cjs/Assets/PMs/ShowArchivedAppAssetPM.js.map +1 -1
  74. package/dist/cjs/Assets/UCs/ArchiveAssetUC.js.map +1 -1
  75. package/dist/cjs/Assets/UCs/DeleteAssetUC.js.map +1 -1
  76. package/dist/cjs/Assets/UCs/DownloadAssetFileUC.js.map +1 -1
  77. package/dist/cjs/Assets/UCs/EditAppAssetUC.js.map +1 -1
  78. package/dist/cjs/Assets/UCs/GetAssetBlobURLUC.js.map +1 -1
  79. package/dist/cjs/Assets/UCs/GetAssetFileUC.js.map +1 -1
  80. package/dist/cjs/Assets/UCs/GetAssetUC.js.map +1 -1
  81. package/dist/cjs/Assets/UCs/NewAppAssetUC.js.map +1 -1
  82. package/dist/cjs/Assets/UCs/NewAssetUC.js.map +1 -1
  83. package/dist/cjs/Assets/UCs/UpdateAppAssetMetaUC.js.map +1 -1
  84. package/dist/cjs/Assets/UCs/UpdateAssetFileUC.js.map +1 -1
  85. package/dist/cjs/Assets/UCs/index.js.map +1 -1
  86. package/dist/cjs/Cache/Factories/CacheFeatureFactory.js.map +1 -1
  87. package/dist/cjs/Cache/Factories/index.js.map +1 -1
  88. package/dist/cjs/ChallengeResults/Entities/ChallengeResults.js.map +1 -1
  89. package/dist/cjs/ChallengeResults/Factories/ChallengeResultsFactory.js.map +1 -1
  90. package/dist/cjs/ChallengeResults/PMs/ChallengeResultsListPM.js.map +1 -1
  91. package/dist/cjs/ChallengeResults/PMs/HasChallengeResultsPM.js.map +1 -1
  92. package/dist/cjs/Dialog/Factories/SandboxDialogFactory.js +1 -2
  93. package/dist/cjs/Dialog/Factories/SandboxDialogFactory.js.map +1 -1
  94. package/dist/cjs/Dispatcher/Mocks/MockDispatchSetDevModeUC.js +12 -0
  95. package/dist/cjs/Dispatcher/Mocks/MockDispatchSetDevModeUC.js.map +1 -0
  96. package/dist/cjs/Dispatcher/Mocks/index.js +1 -0
  97. package/dist/cjs/Dispatcher/Mocks/index.js.map +1 -1
  98. package/dist/cjs/Dispatcher/UCs/DispatchSetDevModeUC.js +52 -0
  99. package/dist/cjs/Dispatcher/UCs/DispatchSetDevModeUC.js.map +1 -0
  100. package/dist/cjs/Dispatcher/UCs/index.js +1 -0
  101. package/dist/cjs/Dispatcher/UCs/index.js.map +1 -1
  102. package/dist/cjs/Dispatcher/setupStandardHostDispatchers.js +1 -1
  103. package/dist/cjs/Dispatcher/setupStandardHostDispatchers.js.map +1 -1
  104. package/dist/cjs/Handler/UCs/SubmitResultHandler.js.map +1 -1
  105. package/dist/cjs/Logger/Factories/SandboxLoggerFactory.js.map +1 -1
  106. package/dist/cjs/Logger/PMs/ForwardLogsToConsolePM.js.map +1 -1
  107. package/dist/cjs/StateMachine/Controllers/index.js.map +1 -1
  108. package/dist/cjs/StateMachine/Controllers/setTransitionDuration.js.map +1 -1
  109. package/dist/cjs/StateMachine/Factories/SandboxStateMachineFactory.js.map +1 -1
  110. package/dist/cjs/StateMachine/PMs/HostStatePM.js.map +1 -1
  111. package/dist/cjs/ThemeColors/Controllers/index.js.map +1 -1
  112. package/dist/cjs/ThemeColors/Controllers/setThemeByName.js.map +1 -1
  113. package/dist/cjs/ThemeColors/Factories/ThemeFactory.js.map +1 -1
  114. package/dist/cjs/ThemeColors/Mocks/MockSetThemeUC.js.map +1 -1
  115. package/dist/cjs/ThemeColors/Mocks/index.js.map +1 -1
  116. package/dist/cjs/VivedAPI/Adapters/apiStageAdapter.js.map +1 -1
  117. package/dist/cjs/VivedAPI/Adapters/index.js.map +1 -1
  118. package/dist/cjs/VivedAPI/Adapters/userTokenAdapter.js.map +1 -1
  119. package/dist/cjs/VivedAPI/Controllers/index.js.map +1 -1
  120. package/dist/cjs/VivedAPI/Controllers/loginUser.js.map +1 -1
  121. package/dist/cjs/VivedAPI/Controllers/logoutUser.js.map +1 -1
  122. package/dist/cjs/VivedAPI/Controllers/setApiStage.js.map +1 -1
  123. package/dist/cjs/VivedAPI/Entities/VivedAPIEntity.js.map +1 -1
  124. package/dist/cjs/VivedAPI/Entities/index.js.map +1 -1
  125. package/dist/cjs/VivedAPI/Factories/SandboxVivedAPIFactory.js.map +1 -1
  126. package/dist/cjs/VivedAPI/Factories/VivedAPIFactory.js.map +1 -1
  127. package/dist/cjs/VivedAPI/Factories/index.js.map +1 -1
  128. package/dist/cjs/VivedAPI/Factories/setupAPI.js.map +1 -1
  129. package/dist/cjs/VivedAPI/Factories/setupVivedAPIForSandbox.js.map +1 -1
  130. package/dist/cjs/VivedAPI/Mocks/MockJsonRequestUC.js.map +1 -1
  131. package/dist/cjs/VivedAPI/Mocks/index.js.map +1 -1
  132. package/dist/cjs/VivedAPI/PMs/ApiStagePM.js.map +1 -1
  133. package/dist/cjs/VivedAPI/PMs/UserTokenPM.js.map +1 -1
  134. package/dist/cjs/VivedAPI/PMs/index.js.map +1 -1
  135. package/dist/cjs/VivedAPI/UCs/BasicFetchUC.js.map +1 -1
  136. package/dist/cjs/VivedAPI/UCs/BlobRequestUC.js.map +1 -1
  137. package/dist/cjs/VivedAPI/UCs/DeleteAssetOnAPIUC.js.map +1 -1
  138. package/dist/cjs/VivedAPI/UCs/FileUploadUC.js.map +1 -1
  139. package/dist/cjs/VivedAPI/UCs/JsonRequestUC.js.map +1 -1
  140. package/dist/cjs/VivedAPI/UCs/PostNewAssetUC.js.map +1 -1
  141. package/dist/cjs/VivedAPI/UCs/SignedAuthTokenUC.js.map +1 -1
  142. package/dist/cjs/VivedAPI/UCs/UserAuthUC.js.map +1 -1
  143. package/dist/cjs/VivedAPI/UCs/index.js.map +1 -1
  144. package/dist/cjs/VivedAPI/index.js.map +1 -1
  145. package/dist/cjs/ZSpaceHost/Adapters/index.js +1 -0
  146. package/dist/cjs/ZSpaceHost/Adapters/index.js.map +1 -1
  147. package/dist/cjs/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.js +24 -0
  148. package/dist/cjs/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.js.map +1 -0
  149. package/dist/cjs/ZSpaceHost/Controllers/index.js.map +1 -1
  150. package/dist/cjs/ZSpaceHost/Controllers/setZSpaceIsSupported.js.map +1 -1
  151. package/dist/cjs/ZSpaceHost/Factories/SandboxZSpaceFactory.js +1 -0
  152. package/dist/cjs/ZSpaceHost/Factories/SandboxZSpaceFactory.js.map +1 -1
  153. package/dist/cjs/ZSpaceHost/Factories/setupZSpaceForSandbox.js +1 -0
  154. package/dist/cjs/ZSpaceHost/Factories/setupZSpaceForSandbox.js.map +1 -1
  155. package/dist/cjs/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.js +16 -0
  156. package/dist/cjs/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.js.map +1 -0
  157. package/dist/cjs/ZSpaceHost/Mocks/index.js +1 -0
  158. package/dist/cjs/ZSpaceHost/Mocks/index.js.map +1 -1
  159. package/dist/cjs/ZSpaceHost/PMs/EmulateZSpacePM.js.map +1 -1
  160. package/dist/cjs/ZSpaceHost/PMs/ZSpaceIsActivePM.js.map +1 -1
  161. package/dist/cjs/ZSpaceHost/PMs/ZSpaceIsSupportedPM.js +40 -0
  162. package/dist/cjs/ZSpaceHost/PMs/ZSpaceIsSupportedPM.js.map +1 -0
  163. package/dist/cjs/ZSpaceHost/PMs/index.js +1 -0
  164. package/dist/cjs/ZSpaceHost/PMs/index.js.map +1 -1
  165. package/dist/esm/AppSandbox/Adapters/babylonInspectorSupportedAdapter.js +21 -0
  166. package/dist/esm/AppSandbox/Adapters/babylonInspectorSupportedAdapter.js.map +1 -0
  167. package/dist/esm/AppSandbox/Adapters/devModeAdapter.js +21 -0
  168. package/dist/esm/AppSandbox/Adapters/devModeAdapter.js.map +1 -0
  169. package/dist/esm/AppSandbox/Adapters/index.js +2 -0
  170. package/dist/esm/AppSandbox/Adapters/index.js.map +1 -1
  171. package/dist/esm/AppSandbox/Controller/index.js +2 -0
  172. package/dist/esm/AppSandbox/Controller/index.js.map +1 -1
  173. package/dist/esm/AppSandbox/Controller/setBabylonInspectorSupported.js +10 -0
  174. package/dist/esm/AppSandbox/Controller/setBabylonInspectorSupported.js.map +1 -0
  175. package/dist/esm/AppSandbox/Controller/setDevMode.js +16 -0
  176. package/dist/esm/AppSandbox/Controller/setDevMode.js.map +1 -0
  177. package/dist/esm/AppSandbox/Entities/AppSandboxEntity.js +14 -0
  178. package/dist/esm/AppSandbox/Entities/AppSandboxEntity.js.map +1 -1
  179. package/dist/esm/AppSandbox/Factories/AppSandboxFeatureFactory.js +5 -2
  180. package/dist/esm/AppSandbox/Factories/AppSandboxFeatureFactory.js.map +1 -1
  181. package/dist/esm/AppSandbox/Factories/index.js.map +1 -1
  182. package/dist/esm/AppSandbox/Factories/setupAppSandbox.js +4 -2
  183. package/dist/esm/AppSandbox/Factories/setupAppSandbox.js.map +1 -1
  184. package/dist/esm/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.js +11 -0
  185. package/dist/esm/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.js.map +1 -0
  186. package/dist/esm/AppSandbox/Mocks/DevModePMMock.js +11 -0
  187. package/dist/esm/AppSandbox/Mocks/DevModePMMock.js.map +1 -0
  188. package/dist/esm/AppSandbox/Mocks/MockSetDevModeUC.js +8 -0
  189. package/dist/esm/AppSandbox/Mocks/MockSetDevModeUC.js.map +1 -0
  190. package/dist/esm/AppSandbox/Mocks/index.js +3 -0
  191. package/dist/esm/AppSandbox/Mocks/index.js.map +1 -1
  192. package/dist/esm/AppSandbox/PMs/BabylonInspectorSupportedPM.js +32 -0
  193. package/dist/esm/AppSandbox/PMs/BabylonInspectorSupportedPM.js.map +1 -0
  194. package/dist/esm/AppSandbox/PMs/DevFeaturesEnabledPM.js.map +1 -1
  195. package/dist/esm/AppSandbox/PMs/DevModePM.js +32 -0
  196. package/dist/esm/AppSandbox/PMs/DevModePM.js.map +1 -0
  197. package/dist/esm/AppSandbox/PMs/ShowInspectorPM.js.map +1 -1
  198. package/dist/esm/AppSandbox/PMs/StartInZSpacePM.js.map +1 -1
  199. package/dist/esm/AppSandbox/PMs/index.js +2 -0
  200. package/dist/esm/AppSandbox/PMs/index.js.map +1 -1
  201. package/dist/esm/AppSandbox/UCs/SetDevModeUC.js +42 -0
  202. package/dist/esm/AppSandbox/UCs/SetDevModeUC.js.map +1 -0
  203. package/dist/esm/AppSandbox/UCs/index.js +1 -0
  204. package/dist/esm/AppSandbox/UCs/index.js.map +1 -1
  205. package/dist/esm/Apps/Entities/AppEntity.js.map +1 -1
  206. package/dist/esm/Apps/Entities/AppRepo.js.map +1 -1
  207. package/dist/esm/Apps/Factories/AppsFeatureFactory.js.map +1 -1
  208. package/dist/esm/Apps/Factories/index.js.map +1 -1
  209. package/dist/esm/Apps/UCs/Mounters/MounterUC.js.map +1 -1
  210. package/dist/esm/Apps/UCs/Mounters/SandboxMounterUC.js +1 -0
  211. package/dist/esm/Apps/UCs/Mounters/SandboxMounterUC.js.map +1 -1
  212. package/dist/esm/Apps/UCs/StartAppUC.js.map +1 -1
  213. package/dist/esm/Apps/UCs/StopAppUC.js.map +1 -1
  214. package/dist/esm/Apps/index.js.map +1 -1
  215. package/dist/esm/AssetPlugin/Factories/AssetPluginFeatureFactory.js.map +1 -1
  216. package/dist/esm/AssetPlugin/Factories/index.js.map +1 -1
  217. package/dist/esm/Assets/Adapters/assetFileAdapter.js.map +1 -1
  218. package/dist/esm/Assets/Controllers/archiveAsset.js.map +1 -1
  219. package/dist/esm/Assets/Controllers/deleteAsset.js.map +1 -1
  220. package/dist/esm/Assets/Controllers/downloadAssetFile.js.map +1 -1
  221. package/dist/esm/Assets/Controllers/editAppAsset.js.map +1 -1
  222. package/dist/esm/Assets/Controllers/fetchAssetFile.js.map +1 -1
  223. package/dist/esm/Assets/Controllers/getAppAssets.js.map +1 -1
  224. package/dist/esm/Assets/Controllers/index.js.map +1 -1
  225. package/dist/esm/Assets/Controllers/newAppAsset.js.map +1 -1
  226. package/dist/esm/Assets/Controllers/toggleShowArchivedAssets.js.map +1 -1
  227. package/dist/esm/Assets/Controllers/updateAppAssetMeta.js.map +1 -1
  228. package/dist/esm/Assets/Controllers/updateAssetFile.js.map +1 -1
  229. package/dist/esm/Assets/Entities/AppAssetsEntity.js.map +1 -1
  230. package/dist/esm/Assets/Entities/AssetEntity.js.map +1 -1
  231. package/dist/esm/Assets/Entities/AssetRepo.js.map +1 -1
  232. package/dist/esm/Assets/Factories/AssetsFactory.js.map +1 -1
  233. package/dist/esm/Assets/Factories/SandboxAssetsFactory.js.map +1 -1
  234. package/dist/esm/Assets/Factories/index.js.map +1 -1
  235. package/dist/esm/Assets/PMs/AssetFilePM.js.map +1 -1
  236. package/dist/esm/Assets/PMs/AssetPM.js.map +1 -1
  237. package/dist/esm/Assets/PMs/ShowArchivedAppAssetPM.js.map +1 -1
  238. package/dist/esm/Assets/UCs/ArchiveAssetUC.js.map +1 -1
  239. package/dist/esm/Assets/UCs/DeleteAssetUC.js.map +1 -1
  240. package/dist/esm/Assets/UCs/DownloadAssetFileUC.js.map +1 -1
  241. package/dist/esm/Assets/UCs/EditAppAssetUC.js.map +1 -1
  242. package/dist/esm/Assets/UCs/GetAssetBlobURLUC.js.map +1 -1
  243. package/dist/esm/Assets/UCs/GetAssetFileUC.js.map +1 -1
  244. package/dist/esm/Assets/UCs/GetAssetUC.js.map +1 -1
  245. package/dist/esm/Assets/UCs/NewAppAssetUC.js.map +1 -1
  246. package/dist/esm/Assets/UCs/NewAssetUC.js.map +1 -1
  247. package/dist/esm/Assets/UCs/UpdateAppAssetMetaUC.js.map +1 -1
  248. package/dist/esm/Assets/UCs/UpdateAssetFileUC.js.map +1 -1
  249. package/dist/esm/Assets/UCs/index.js.map +1 -1
  250. package/dist/esm/Cache/Factories/CacheFeatureFactory.js.map +1 -1
  251. package/dist/esm/Cache/Factories/index.js.map +1 -1
  252. package/dist/esm/ChallengeResults/Entities/ChallengeResults.js.map +1 -1
  253. package/dist/esm/ChallengeResults/Factories/ChallengeResultsFactory.js.map +1 -1
  254. package/dist/esm/ChallengeResults/PMs/ChallengeResultsListPM.js.map +1 -1
  255. package/dist/esm/ChallengeResults/PMs/HasChallengeResultsPM.js.map +1 -1
  256. package/dist/esm/Dialog/Factories/SandboxDialogFactory.js +1 -2
  257. package/dist/esm/Dialog/Factories/SandboxDialogFactory.js.map +1 -1
  258. package/dist/esm/Dispatcher/Mocks/MockDispatchSetDevModeUC.js +8 -0
  259. package/dist/esm/Dispatcher/Mocks/MockDispatchSetDevModeUC.js.map +1 -0
  260. package/dist/esm/Dispatcher/Mocks/index.js +1 -0
  261. package/dist/esm/Dispatcher/Mocks/index.js.map +1 -1
  262. package/dist/esm/Dispatcher/UCs/DispatchSetDevModeUC.js +47 -0
  263. package/dist/esm/Dispatcher/UCs/DispatchSetDevModeUC.js.map +1 -0
  264. package/dist/esm/Dispatcher/UCs/index.js +1 -0
  265. package/dist/esm/Dispatcher/UCs/index.js.map +1 -1
  266. package/dist/esm/Dispatcher/setupStandardHostDispatchers.js +2 -2
  267. package/dist/esm/Dispatcher/setupStandardHostDispatchers.js.map +1 -1
  268. package/dist/esm/Handler/UCs/SubmitResultHandler.js.map +1 -1
  269. package/dist/esm/Logger/Factories/SandboxLoggerFactory.js.map +1 -1
  270. package/dist/esm/Logger/PMs/ForwardLogsToConsolePM.js.map +1 -1
  271. package/dist/esm/StateMachine/Controllers/index.js.map +1 -1
  272. package/dist/esm/StateMachine/Controllers/setTransitionDuration.js.map +1 -1
  273. package/dist/esm/StateMachine/Factories/SandboxStateMachineFactory.js.map +1 -1
  274. package/dist/esm/StateMachine/PMs/HostStatePM.js.map +1 -1
  275. package/dist/esm/ThemeColors/Controllers/index.js.map +1 -1
  276. package/dist/esm/ThemeColors/Controllers/setThemeByName.js.map +1 -1
  277. package/dist/esm/ThemeColors/Factories/ThemeFactory.js.map +1 -1
  278. package/dist/esm/ThemeColors/Mocks/MockSetThemeUC.js.map +1 -1
  279. package/dist/esm/ThemeColors/Mocks/index.js.map +1 -1
  280. package/dist/esm/VivedAPI/Adapters/apiStageAdapter.js.map +1 -1
  281. package/dist/esm/VivedAPI/Adapters/index.js.map +1 -1
  282. package/dist/esm/VivedAPI/Adapters/userTokenAdapter.js.map +1 -1
  283. package/dist/esm/VivedAPI/Controllers/index.js.map +1 -1
  284. package/dist/esm/VivedAPI/Controllers/loginUser.js.map +1 -1
  285. package/dist/esm/VivedAPI/Controllers/logoutUser.js.map +1 -1
  286. package/dist/esm/VivedAPI/Controllers/setApiStage.js.map +1 -1
  287. package/dist/esm/VivedAPI/Entities/VivedAPIEntity.js.map +1 -1
  288. package/dist/esm/VivedAPI/Entities/index.js.map +1 -1
  289. package/dist/esm/VivedAPI/Factories/SandboxVivedAPIFactory.js.map +1 -1
  290. package/dist/esm/VivedAPI/Factories/VivedAPIFactory.js.map +1 -1
  291. package/dist/esm/VivedAPI/Factories/index.js.map +1 -1
  292. package/dist/esm/VivedAPI/Factories/setupAPI.js.map +1 -1
  293. package/dist/esm/VivedAPI/Factories/setupVivedAPIForSandbox.js.map +1 -1
  294. package/dist/esm/VivedAPI/Mocks/MockJsonRequestUC.js.map +1 -1
  295. package/dist/esm/VivedAPI/Mocks/index.js.map +1 -1
  296. package/dist/esm/VivedAPI/PMs/ApiStagePM.js.map +1 -1
  297. package/dist/esm/VivedAPI/PMs/UserTokenPM.js.map +1 -1
  298. package/dist/esm/VivedAPI/PMs/index.js.map +1 -1
  299. package/dist/esm/VivedAPI/UCs/BasicFetchUC.js.map +1 -1
  300. package/dist/esm/VivedAPI/UCs/BlobRequestUC.js.map +1 -1
  301. package/dist/esm/VivedAPI/UCs/DeleteAssetOnAPIUC.js.map +1 -1
  302. package/dist/esm/VivedAPI/UCs/FileUploadUC.js.map +1 -1
  303. package/dist/esm/VivedAPI/UCs/JsonRequestUC.js.map +1 -1
  304. package/dist/esm/VivedAPI/UCs/PostNewAssetUC.js.map +1 -1
  305. package/dist/esm/VivedAPI/UCs/SignedAuthTokenUC.js.map +1 -1
  306. package/dist/esm/VivedAPI/UCs/UserAuthUC.js.map +1 -1
  307. package/dist/esm/VivedAPI/UCs/index.js.map +1 -1
  308. package/dist/esm/VivedAPI/index.js.map +1 -1
  309. package/dist/esm/ZSpaceHost/Adapters/index.js +1 -0
  310. package/dist/esm/ZSpaceHost/Adapters/index.js.map +1 -1
  311. package/dist/esm/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.js +21 -0
  312. package/dist/esm/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.js.map +1 -0
  313. package/dist/esm/ZSpaceHost/Controllers/index.js.map +1 -1
  314. package/dist/esm/ZSpaceHost/Controllers/setZSpaceIsSupported.js.map +1 -1
  315. package/dist/esm/ZSpaceHost/Factories/SandboxZSpaceFactory.js +2 -1
  316. package/dist/esm/ZSpaceHost/Factories/SandboxZSpaceFactory.js.map +1 -1
  317. package/dist/esm/ZSpaceHost/Factories/setupZSpaceForSandbox.js +2 -1
  318. package/dist/esm/ZSpaceHost/Factories/setupZSpaceForSandbox.js.map +1 -1
  319. package/dist/esm/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.js +11 -0
  320. package/dist/esm/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.js.map +1 -0
  321. package/dist/esm/ZSpaceHost/Mocks/index.js +1 -0
  322. package/dist/esm/ZSpaceHost/Mocks/index.js.map +1 -1
  323. package/dist/esm/ZSpaceHost/PMs/EmulateZSpacePM.js.map +1 -1
  324. package/dist/esm/ZSpaceHost/PMs/ZSpaceIsActivePM.js.map +1 -1
  325. package/dist/esm/ZSpaceHost/PMs/ZSpaceIsSupportedPM.js +35 -0
  326. package/dist/esm/ZSpaceHost/PMs/ZSpaceIsSupportedPM.js.map +1 -0
  327. package/dist/esm/ZSpaceHost/PMs/index.js +1 -0
  328. package/dist/esm/ZSpaceHost/PMs/index.js.map +1 -1
  329. package/dist/types/AppSandbox/Adapters/babylonInspectorSupportedAdapter.d.ts +3 -0
  330. package/dist/types/AppSandbox/Adapters/babylonInspectorSupportedAdapter.d.ts.map +1 -0
  331. package/dist/types/AppSandbox/Adapters/devModeAdapter.d.ts +3 -0
  332. package/dist/types/AppSandbox/Adapters/devModeAdapter.d.ts.map +1 -0
  333. package/dist/types/AppSandbox/Adapters/index.d.ts +2 -0
  334. package/dist/types/AppSandbox/Adapters/index.d.ts.map +1 -1
  335. package/dist/types/AppSandbox/Controller/index.d.ts +2 -0
  336. package/dist/types/AppSandbox/Controller/index.d.ts.map +1 -1
  337. package/dist/types/AppSandbox/Controller/setBabylonInspectorSupported.d.ts +3 -0
  338. package/dist/types/AppSandbox/Controller/setBabylonInspectorSupported.d.ts.map +1 -0
  339. package/dist/types/AppSandbox/Controller/setDevMode.d.ts +3 -0
  340. package/dist/types/AppSandbox/Controller/setDevMode.d.ts.map +1 -0
  341. package/dist/types/AppSandbox/Entities/AppSandboxEntity.d.ts +4 -0
  342. package/dist/types/AppSandbox/Entities/AppSandboxEntity.d.ts.map +1 -1
  343. package/dist/types/AppSandbox/Factories/AppSandboxFeatureFactory.d.ts.map +1 -1
  344. package/dist/types/AppSandbox/Factories/setupAppSandbox.d.ts.map +1 -1
  345. package/dist/types/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.d.ts +8 -0
  346. package/dist/types/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.d.ts.map +1 -0
  347. package/dist/types/AppSandbox/Mocks/DevModePMMock.d.ts +8 -0
  348. package/dist/types/AppSandbox/Mocks/DevModePMMock.d.ts.map +1 -0
  349. package/dist/types/AppSandbox/Mocks/MockSetDevModeUC.d.ts +7 -0
  350. package/dist/types/AppSandbox/Mocks/MockSetDevModeUC.d.ts.map +1 -0
  351. package/dist/types/AppSandbox/Mocks/index.d.ts +3 -0
  352. package/dist/types/AppSandbox/Mocks/index.d.ts.map +1 -1
  353. package/dist/types/AppSandbox/PMs/BabylonInspectorSupportedPM.d.ts +7 -0
  354. package/dist/types/AppSandbox/PMs/BabylonInspectorSupportedPM.d.ts.map +1 -0
  355. package/dist/types/AppSandbox/PMs/DevModePM.d.ts +7 -0
  356. package/dist/types/AppSandbox/PMs/DevModePM.d.ts.map +1 -0
  357. package/dist/types/AppSandbox/PMs/index.d.ts +2 -0
  358. package/dist/types/AppSandbox/PMs/index.d.ts.map +1 -1
  359. package/dist/types/AppSandbox/UCs/SetDevModeUC.d.ts +9 -0
  360. package/dist/types/AppSandbox/UCs/SetDevModeUC.d.ts.map +1 -0
  361. package/dist/types/AppSandbox/UCs/index.d.ts +1 -0
  362. package/dist/types/AppSandbox/UCs/index.d.ts.map +1 -1
  363. package/dist/types/Apps/Factories/AppsFeatureFactory.d.ts.map +1 -1
  364. package/dist/types/AssetPlugin/Factories/AssetPluginFeatureFactory.d.ts.map +1 -1
  365. package/dist/types/Assets/Factories/AssetsFactory.d.ts.map +1 -1
  366. package/dist/types/Dialog/Factories/SandboxDialogFactory.d.ts.map +1 -1
  367. package/dist/types/Dispatcher/Mocks/MockDispatchSetDevModeUC.d.ts +7 -0
  368. package/dist/types/Dispatcher/Mocks/MockDispatchSetDevModeUC.d.ts.map +1 -0
  369. package/dist/types/Dispatcher/Mocks/index.d.ts +1 -0
  370. package/dist/types/Dispatcher/Mocks/index.d.ts.map +1 -1
  371. package/dist/types/Dispatcher/UCs/DispatchSetDevModeUC.d.ts +10 -0
  372. package/dist/types/Dispatcher/UCs/DispatchSetDevModeUC.d.ts.map +1 -0
  373. package/dist/types/Dispatcher/UCs/index.d.ts +1 -0
  374. package/dist/types/Dispatcher/UCs/index.d.ts.map +1 -1
  375. package/dist/types/StateMachine/Factories/SandboxStateMachineFactory.d.ts.map +1 -1
  376. package/dist/types/ZSpaceHost/Adapters/index.d.ts +1 -0
  377. package/dist/types/ZSpaceHost/Adapters/index.d.ts.map +1 -1
  378. package/dist/types/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.d.ts +3 -0
  379. package/dist/types/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.d.ts.map +1 -0
  380. package/dist/types/ZSpaceHost/Factories/SandboxZSpaceFactory.d.ts.map +1 -1
  381. package/dist/types/ZSpaceHost/Factories/setupZSpaceForSandbox.d.ts.map +1 -1
  382. package/dist/types/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.d.ts +8 -0
  383. package/dist/types/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.d.ts.map +1 -0
  384. package/dist/types/ZSpaceHost/Mocks/index.d.ts +1 -0
  385. package/dist/types/ZSpaceHost/Mocks/index.d.ts.map +1 -1
  386. package/dist/types/ZSpaceHost/PMs/ZSpaceIsSupportedPM.d.ts +7 -0
  387. package/dist/types/ZSpaceHost/PMs/ZSpaceIsSupportedPM.d.ts.map +1 -0
  388. package/dist/types/ZSpaceHost/PMs/index.d.ts +1 -0
  389. package/dist/types/ZSpaceHost/PMs/index.d.ts.map +1 -1
  390. package/package.json +1 -1
  391. package/README.md +0 -105
  392. package/dist/cjs/Assets/Factories/setupAssets.js +0 -14
  393. package/dist/cjs/Assets/Factories/setupAssets.js.map +0 -1
  394. package/dist/esm/Assets/Factories/setupAssets.js +0 -11
  395. package/dist/esm/Assets/Factories/setupAssets.js.map +0 -1
  396. package/dist/types/Assets/Factories/setupAssets.d.ts +0 -8
  397. package/dist/types/Assets/Factories/setupAssets.d.ts.map +0 -1
@@ -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"]}
@@ -4,8 +4,8 @@ import { setupStandardHostDispatchers } from "../../Dispatcher/setupStandardHost
4
4
  import { makeHostHandlerEntity } from "../../Handler/Entities";
5
5
  import { setupStandardHostHandlers } from "../../Handler/setupStandardHostHandlers";
6
6
  import { makeAppSandboxEntity } from "../Entities";
7
- import { makeDevFeaturesEnabledPM, makeSandboxStatePM, makeShowInspectorPM, makeStartInZSpacePM } from "../PMs";
8
- import { makeShowBabylonInspectorUC } from "../UCs";
7
+ import { makeDevFeaturesEnabledPM, makeDevModePM, makeSandboxStatePM, makeShowInspectorPM, makeStartInZSpacePM } from "../PMs";
8
+ import { makeSetDevModeUC, makeShowBabylonInspectorUC } from "../UCs";
9
9
  import { SubmitActivityAssetHandler } from "../../Handler";
10
10
  import { makeSubmitActivityAssetHandlerSandbox } from "../UCs/submitActivityAssetHandlerSandbox";
11
11
  export function setupAppSandbox(appID, appObjects) {
@@ -19,10 +19,12 @@ export function setupAppSandbox(appID, appObjects) {
19
19
  setupStandardHostHandlers(ao);
20
20
  makeStartAppUC(ao);
21
21
  makeStopAppUC(ao);
22
+ makeSetDevModeUC(ao);
22
23
  makeShowBabylonInspectorUC(ao);
23
24
  makeSandboxMounter(ao);
24
25
  // PMs
25
26
  makeDevFeaturesEnabledPM(ao);
27
+ makeDevModePM(ao);
26
28
  makeSandboxStatePM(ao);
27
29
  makeShowInspectorPM(ao);
28
30
  makeStartInZSpacePM(ao);
@@ -1 +1 @@
1
- {"version":3,"file":"setupAppSandbox.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Factories/setupAppSandbox.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAoB,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,qCAAqC,EAAE,MAAM,0CAA0C,CAAC;AAEjG,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,UAAyB;IAEzB,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAEzC,WAAW;IACX,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACxC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC3B,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAE1B,KAAK;IACL,4BAA4B,CAAC,EAAE,CAAC,CAAC;IACjC,yBAAyB,CAAC,EAAE,CAAC,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAEvB,MAAM;IACN,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAC7B,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACvB,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACxB,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAExB,MAAM,qBAAqB,GACzB,UAAU,CAAC,YAAY,CACrB,0BAA0B,CAAC,IAAI,CAChC,CAAC;IACJ,IAAI,qBAAqB,EAAE,CAAC;QAC1B,qBAAqB,CAAC,MAAM;YAC1B,qCAAqC,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import { AppObjectRepo } 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 { AppSandboxEntity, makeAppSandboxEntity } from \"../Entities\";\nimport {\n makeDevFeaturesEnabledPM,\n makeSandboxStatePM,\n makeShowInspectorPM,\n makeStartInZSpacePM\n} from \"../PMs\";\nimport { makeShowBabylonInspectorUC } from \"../UCs\";\nimport { SubmitActivityAssetHandler } from \"../../Handler\";\nimport { makeSubmitActivityAssetHandlerSandbox } from \"../UCs/submitActivityAssetHandlerSandbox\";\n\nexport function setupAppSandbox(\n appID: string,\n appObjects: AppObjectRepo\n): AppSandboxEntity {\n const ao = appObjects.getOrCreate(appID);\n\n // Entities\n const entity = makeAppSandboxEntity(ao);\n makeHostDispatchEntity(ao);\n makeHostHandlerEntity(ao);\n\n // UC\n setupStandardHostDispatchers(ao);\n setupStandardHostHandlers(ao);\n makeStartAppUC(ao);\n makeStopAppUC(ao);\n makeShowBabylonInspectorUC(ao);\n makeSandboxMounter(ao);\n\n // PMs\n makeDevFeaturesEnabledPM(ao);\n makeSandboxStatePM(ao);\n makeShowInspectorPM(ao);\n makeStartInZSpacePM(ao);\n\n const submitActivityAssetUC =\n appObjects.getSingleton<SubmitActivityAssetHandler>(\n SubmitActivityAssetHandler.type\n );\n if (submitActivityAssetUC) {\n submitActivityAssetUC.action =\n makeSubmitActivityAssetHandlerSandbox(appObjects);\n }\n\n return entity;\n}\n"]}
1
+ {"version":3,"file":"setupAppSandbox.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Factories/setupAppSandbox.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+CAA+C,CAAC;AAC7F,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAoB,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAE,qCAAqC,EAAE,MAAM,0CAA0C,CAAC;AAEjG,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,UAAyB;IAEzB,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAEzC,WAAW;IACX,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACxC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC3B,qBAAqB,CAAC,EAAE,CAAC,CAAC;IAE1B,KAAK;IACL,4BAA4B,CAAC,EAAE,CAAC,CAAC;IACjC,yBAAyB,CAAC,EAAE,CAAC,CAAC;IAC9B,cAAc,CAAC,EAAE,CAAC,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACrB,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAEvB,MAAM;IACN,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACvB,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACxB,mBAAmB,CAAC,EAAE,CAAC,CAAC;IAExB,MAAM,qBAAqB,GACzB,UAAU,CAAC,YAAY,CACrB,0BAA0B,CAAC,IAAI,CAChC,CAAC;IACJ,IAAI,qBAAqB,EAAE,CAAC;QAC1B,qBAAqB,CAAC,MAAM;YAC1B,qCAAqC,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import { AppObjectRepo } 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 { AppSandboxEntity, makeAppSandboxEntity } from \"../Entities\";\r\nimport {\r\n makeDevFeaturesEnabledPM,\r\n makeDevModePM,\r\n makeSandboxStatePM,\r\n makeShowInspectorPM,\r\n makeStartInZSpacePM\r\n} from \"../PMs\";\r\nimport { makeSetDevModeUC, makeShowBabylonInspectorUC } from \"../UCs\";\r\nimport { SubmitActivityAssetHandler } from \"../../Handler\";\r\nimport { makeSubmitActivityAssetHandlerSandbox } from \"../UCs/submitActivityAssetHandlerSandbox\";\r\n\r\nexport function setupAppSandbox(\r\n appID: string,\r\n appObjects: AppObjectRepo\r\n): AppSandboxEntity {\r\n const ao = appObjects.getOrCreate(appID);\r\n\r\n // Entities\r\n const entity = makeAppSandboxEntity(ao);\r\n makeHostDispatchEntity(ao);\r\n makeHostHandlerEntity(ao);\r\n\r\n // UC\r\n setupStandardHostDispatchers(ao);\r\n setupStandardHostHandlers(ao);\r\n makeStartAppUC(ao);\r\n makeStopAppUC(ao);\r\n makeSetDevModeUC(ao);\r\n makeShowBabylonInspectorUC(ao);\r\n makeSandboxMounter(ao);\r\n\r\n // PMs\r\n makeDevFeaturesEnabledPM(ao);\r\n makeDevModePM(ao);\r\n makeSandboxStatePM(ao);\r\n makeShowInspectorPM(ao);\r\n makeStartInZSpacePM(ao);\r\n\r\n const submitActivityAssetUC =\r\n appObjects.getSingleton<SubmitActivityAssetHandler>(\r\n SubmitActivityAssetHandler.type\r\n );\r\n if (submitActivityAssetUC) {\r\n submitActivityAssetUC.action =\r\n makeSubmitActivityAssetHandlerSandbox(appObjects);\r\n }\r\n\r\n return entity;\r\n}\r\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"]}
@@ -0,0 +1,11 @@
1
+ import { DevModePM } from "../PMs/DevModePM";
2
+ export class DevModePMMock extends DevModePM {
3
+ constructor(appObject) {
4
+ super(appObject, DevModePM.type);
5
+ this.vmsAreEqual = jest.fn();
6
+ }
7
+ }
8
+ export function makeDevModePMMock(appObjects) {
9
+ return new DevModePMMock(appObjects.getOrCreate("DevModePMMock"));
10
+ }
11
+ //# sourceMappingURL=DevModePMMock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevModePMMock.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Mocks/DevModePMMock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,OAAO,aAAc,SAAQ,SAAS;IAE1C,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAFnC,gBAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAGxB,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAyB;IACzD,OAAO,IAAI,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;AACpE,CAAC","sourcesContent":["import { AppObject, AppObjectRepo } from \"@vived/core\";\r\nimport { DevModePM } from \"../PMs/DevModePM\";\r\n\r\nexport class DevModePMMock extends DevModePM {\r\n vmsAreEqual = jest.fn();\r\n constructor(appObject: AppObject) {\r\n super(appObject, DevModePM.type);\r\n }\r\n}\r\n\r\nexport function makeDevModePMMock(appObjects: AppObjectRepo) {\r\n return new DevModePMMock(appObjects.getOrCreate(\"DevModePMMock\"));\r\n}\r\n"]}
@@ -0,0 +1,8 @@
1
+ import { SetDevModeUC } from "../UCs/SetDevModeUC";
2
+ export class MockSetDevModeUC extends SetDevModeUC {
3
+ constructor(appObject) {
4
+ super(appObject, SetDevModeUC.type);
5
+ this.setDevMode = jest.fn();
6
+ }
7
+ }
8
+ //# sourceMappingURL=MockSetDevModeUC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockSetDevModeUC.js","sourceRoot":"","sources":["../../../../src/AppSandbox/Mocks/MockSetDevModeUC.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAGhD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;QAHtC,eAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAIvB,CAAC;CACF","sourcesContent":["import { AppObject } from \"@vived/core\";\r\nimport { SetDevModeUC } from \"../UCs/SetDevModeUC\";\r\n\r\nexport class MockSetDevModeUC extends SetDevModeUC {\r\n setDevMode = jest.fn();\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, SetDevModeUC.type);\r\n }\r\n}\r\n"]}
@@ -1,4 +1,7 @@
1
+ export * from "./BabylonInspectorSupportedPMMock";
1
2
  export * from "./DevFeaturesEnabledPMMock";
3
+ export * from "./DevModePMMock";
4
+ export * from "./MockSetDevModeUC";
2
5
  export * from "./MockShowBabylonInspectorUC";
3
6
  export * from "./RenderAppPMMock";
4
7
  export * from "./ShowInspectorPMMock";
@@ -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,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC","sourcesContent":["export * from \"./BabylonInspectorSupportedPMMock\";\r\nexport * from \"./DevFeaturesEnabledPMMock\";\r\nexport * from \"./DevModePMMock\";\r\nexport * from \"./MockSetDevModeUC\";\r\nexport * from \"./MockShowBabylonInspectorUC\";\r\nexport * from \"./RenderAppPMMock\";\r\nexport * from \"./ShowInspectorPMMock\";\r\nexport * from \"./StartInZSpacePMMock\";\r\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"]}
@@ -0,0 +1,32 @@
1
+ import { getSingletonComponent, AppObjectSingletonPM } from "@vived/core";
2
+ import { AppSandboxEntity } from "../Entities/AppSandboxEntity";
3
+ export class DevModePM extends AppObjectSingletonPM {
4
+ static get(appObjects) {
5
+ return getSingletonComponent(DevModePM.type, appObjects);
6
+ }
7
+ }
8
+ DevModePM.type = "DevModePM";
9
+ export function makeDevModePM(appObject) {
10
+ return new DevModePMImp(appObject);
11
+ }
12
+ class DevModePMImp extends DevModePM {
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, DevModePM.type);
21
+ this.defaultVM = false;
22
+ this.formVM = () => {
23
+ if (!this.sandbox)
24
+ return;
25
+ this.doUpdateView(this.sandbox.isDevMode);
26
+ };
27
+ if (this.sandbox) {
28
+ this.observeEntity(this.sandbox);
29
+ }
30
+ }
31
+ }
32
+ //# sourceMappingURL=DevModePM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevModePM.js","sourceRoot":"","sources":["../../../../src/AppSandbox/PMs/DevModePM.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,oBAAoB,EAErB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,OAAgB,SAAU,SAAQ,oBAA6B;IAGnE,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAAY,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACtE,CAAC;;AAJM,cAAI,GAAG,WAAW,CAAC;AAO5B,MAAM,UAAU,aAAa,CAAC,SAAoB;IAChD,OAAO,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,YAAa,SAAQ,SAAS;IAGlC,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,SAAS,CAAC,IAAI,CAAC,CAAC;QAhBnC,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,SAAS,CAAC,CAAC;QAC5C,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 DevModePM extends AppObjectSingletonPM<boolean> {\r\n static type = \"DevModePM\";\r\n\r\n static get(appObjects: AppObjectRepo) {\r\n return getSingletonComponent<DevModePM>(DevModePM.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makeDevModePM(appObject: AppObject): DevModePM {\r\n return new DevModePMImp(appObject);\r\n}\r\n\r\nclass DevModePMImp extends DevModePM {\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.isDevMode);\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, DevModePM.type);\r\n\r\n if (this.sandbox) {\r\n this.observeEntity(this.sandbox);\r\n }\r\n }\r\n}\r\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,4 +1,6 @@
1
+ export * from "./BabylonInspectorSupportedPM";
1
2
  export * from "./DevFeaturesEnabledPM";
3
+ export * from "./DevModePM";
2
4
  export * from "./SandboxStatePM";
3
5
  export * from "./ShowInspectorPM";
4
6
  export * from "./StartInZSpacePM";
@@ -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,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC","sourcesContent":["export * from \"./BabylonInspectorSupportedPM\";\r\nexport * from \"./DevFeaturesEnabledPM\";\r\nexport * from \"./DevModePM\";\r\nexport * from \"./SandboxStatePM\";\r\nexport * from \"./ShowInspectorPM\";\r\nexport * from \"./StartInZSpacePM\";\r\n"]}
@@ -0,0 +1,42 @@
1
+ import { AppObjectUC } from "@vived/core";
2
+ import { DispatchSetDevModeUC } from "../../Dispatcher";
3
+ import { AppSandboxEntity } from "../Entities/AppSandboxEntity";
4
+ export class SetDevModeUC extends AppObjectUC {
5
+ static get(appObject) {
6
+ const asset = appObject.getComponent(SetDevModeUC.type);
7
+ if (!asset) {
8
+ appObject.appObjectRepo.submitWarning("SetDevModeUC.get", "Unable to find SetDevModeUC on app object " + appObject.id);
9
+ }
10
+ return asset;
11
+ }
12
+ static getByID(id, appObjects) {
13
+ const appObject = appObjects.get(id);
14
+ if (!appObject) {
15
+ appObjects.submitWarning("SetDevModeUC.getByID", "Unable to find App Object by id " + id);
16
+ return undefined;
17
+ }
18
+ return SetDevModeUC.get(appObject);
19
+ }
20
+ }
21
+ SetDevModeUC.type = "SetDevModeUC";
22
+ export function makeSetDevModeUC(appObject) {
23
+ return new SetDevModeUCImp(appObject);
24
+ }
25
+ class SetDevModeUCImp extends SetDevModeUC {
26
+ get sandbox() {
27
+ return this.getCachedSingleton(AppSandboxEntity.type);
28
+ }
29
+ get dispatchSetDevMode() {
30
+ return this.getCachedLocalComponent(DispatchSetDevModeUC.type);
31
+ }
32
+ constructor(appObject) {
33
+ super(appObject, SetDevModeUC.type);
34
+ this.setDevMode = (isDevMode) => {
35
+ if (!this.sandbox || !this.dispatchSetDevMode)
36
+ return;
37
+ this.sandbox.isDevMode = isDevMode;
38
+ this.dispatchSetDevMode.doDispatch(isDevMode);
39
+ };
40
+ }
41
+ }
42
+ //# sourceMappingURL=SetDevModeUC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SetDevModeUC.js","sourceRoot":"","sources":["../../../../src/AppSandbox/UCs/SetDevModeUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,WAAW,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,OAAgB,YAAa,SAAQ,WAAW;IAKpD,MAAM,CAAC,GAAG,CAAC,SAAoB;QAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAe,YAAY,CAAC,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,SAAS,CAAC,aAAa,CAAC,aAAa,CACnC,kBAAkB,EAClB,4CAA4C,GAAG,SAAS,CAAC,EAAE,CAC5D,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,OAAO,CACZ,EAAU,EACV,UAAyB;QAEzB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,UAAU,CAAC,aAAa,CACtB,sBAAsB,EACtB,kCAAkC,GAAG,EAAE,CACxC,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;;AA9BM,iBAAI,GAAG,cAAc,CAAC;AAiC/B,MAAM,UAAU,gBAAgB,CAAC,SAAoB;IACnD,OAAO,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,eAAgB,SAAQ,YAAY;IACxC,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,kBAAkB;QAC5B,OAAO,IAAI,CAAC,uBAAuB,CACjC,oBAAoB,CAAC,IAAI,CAC1B,CAAC;IACJ,CAAC;IASD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;QARtC,eAAU,GAAG,CAAC,SAAkB,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB;gBAAE,OAAO;YAEtD,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YACnC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC,CAAC;IAIF,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectRepo, AppObjectUC } from \"@vived/core\";\r\nimport { DispatchSetDevModeUC } from \"../../Dispatcher\";\r\nimport { AppSandboxEntity } from \"../Entities/AppSandboxEntity\";\r\n\r\nexport abstract class SetDevModeUC extends AppObjectUC {\r\n static type = \"SetDevModeUC\";\r\n\r\n abstract setDevMode(isDevMode: boolean): void;\r\n\r\n static get(appObject: AppObject): SetDevModeUC | undefined {\r\n const asset = appObject.getComponent<SetDevModeUC>(SetDevModeUC.type);\r\n if (!asset) {\r\n appObject.appObjectRepo.submitWarning(\r\n \"SetDevModeUC.get\",\r\n \"Unable to find SetDevModeUC on app object \" + appObject.id\r\n );\r\n }\r\n return asset;\r\n }\r\n\r\n static getByID(\r\n id: string,\r\n appObjects: AppObjectRepo\r\n ): SetDevModeUC | undefined {\r\n const appObject = appObjects.get(id);\r\n\r\n if (!appObject) {\r\n appObjects.submitWarning(\r\n \"SetDevModeUC.getByID\",\r\n \"Unable to find App Object by id \" + id\r\n );\r\n return undefined;\r\n }\r\n\r\n return SetDevModeUC.get(appObject);\r\n }\r\n}\r\n\r\nexport function makeSetDevModeUC(appObject: AppObject): SetDevModeUC {\r\n return new SetDevModeUCImp(appObject);\r\n}\r\n\r\nclass SetDevModeUCImp extends SetDevModeUC {\r\n private get sandbox() {\r\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\r\n }\r\n\r\n private get dispatchSetDevMode() {\r\n return this.getCachedLocalComponent<DispatchSetDevModeUC>(\r\n DispatchSetDevModeUC.type\r\n );\r\n }\r\n\r\n setDevMode = (isDevMode: boolean) => {\r\n if (!this.sandbox || !this.dispatchSetDevMode) return;\r\n\r\n this.sandbox.isDevMode = isDevMode;\r\n this.dispatchSetDevMode.doDispatch(isDevMode);\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, SetDevModeUC.type);\r\n }\r\n}\r\n"]}
@@ -1,2 +1,3 @@
1
+ export * from "./SetDevModeUC";
1
2
  export * from "./ShowBabylonInspectorUC";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AppSandbox/UCs/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC","sourcesContent":["export * from \"./ShowBabylonInspectorUC\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AppSandbox/UCs/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC","sourcesContent":["export * from \"./SetDevModeUC\";\r\nexport * from \"./ShowBabylonInspectorUC\";\r\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"]}
@@ -145,6 +145,7 @@ class SandboxMounterUC extends MounterUC {
145
145
  this.error("No App Interface");
146
146
  return Promise.reject();
147
147
  }
148
+ this.sandbox.state = SandboxState.LOADING;
148
149
  const appHandler = appInterface.mount(this.hostHandler.handler);
149
150
  this.hostDispatcher.registerAppHandler(appHandler);
150
151
  const app = this.appEntity;