@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.
- package/dist/cjs/AppSandbox/Adapters/babylonInspectorSupportedAdapter.js +24 -0
- package/dist/cjs/AppSandbox/Adapters/babylonInspectorSupportedAdapter.js.map +1 -0
- package/dist/cjs/AppSandbox/Adapters/devModeAdapter.js +24 -0
- package/dist/cjs/AppSandbox/Adapters/devModeAdapter.js.map +1 -0
- package/dist/cjs/AppSandbox/Adapters/index.js +2 -0
- package/dist/cjs/AppSandbox/Adapters/index.js.map +1 -1
- package/dist/cjs/AppSandbox/Controller/index.js +2 -0
- package/dist/cjs/AppSandbox/Controller/index.js.map +1 -1
- package/dist/cjs/AppSandbox/Controller/setBabylonInspectorSupported.js +13 -0
- package/dist/cjs/AppSandbox/Controller/setBabylonInspectorSupported.js.map +1 -0
- package/dist/cjs/AppSandbox/Controller/setDevMode.js +19 -0
- package/dist/cjs/AppSandbox/Controller/setDevMode.js.map +1 -0
- package/dist/cjs/AppSandbox/Entities/AppSandboxEntity.js +14 -0
- package/dist/cjs/AppSandbox/Entities/AppSandboxEntity.js.map +1 -1
- package/dist/cjs/AppSandbox/Factories/AppSandboxFeatureFactory.js +3 -0
- package/dist/cjs/AppSandbox/Factories/AppSandboxFeatureFactory.js.map +1 -1
- package/dist/cjs/AppSandbox/Factories/index.js.map +1 -1
- package/dist/cjs/AppSandbox/Factories/setupAppSandbox.js +2 -0
- package/dist/cjs/AppSandbox/Factories/setupAppSandbox.js.map +1 -1
- package/dist/cjs/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.js +16 -0
- package/dist/cjs/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.js.map +1 -0
- package/dist/cjs/AppSandbox/Mocks/DevModePMMock.js +16 -0
- package/dist/cjs/AppSandbox/Mocks/DevModePMMock.js.map +1 -0
- package/dist/cjs/AppSandbox/Mocks/MockSetDevModeUC.js +12 -0
- package/dist/cjs/AppSandbox/Mocks/MockSetDevModeUC.js.map +1 -0
- package/dist/cjs/AppSandbox/Mocks/index.js +3 -0
- package/dist/cjs/AppSandbox/Mocks/index.js.map +1 -1
- package/dist/cjs/AppSandbox/PMs/BabylonInspectorSupportedPM.js +37 -0
- package/dist/cjs/AppSandbox/PMs/BabylonInspectorSupportedPM.js.map +1 -0
- package/dist/cjs/AppSandbox/PMs/DevFeaturesEnabledPM.js.map +1 -1
- package/dist/cjs/AppSandbox/PMs/DevModePM.js +37 -0
- package/dist/cjs/AppSandbox/PMs/DevModePM.js.map +1 -0
- package/dist/cjs/AppSandbox/PMs/ShowInspectorPM.js.map +1 -1
- package/dist/cjs/AppSandbox/PMs/StartInZSpacePM.js.map +1 -1
- package/dist/cjs/AppSandbox/PMs/index.js +2 -0
- package/dist/cjs/AppSandbox/PMs/index.js.map +1 -1
- package/dist/cjs/AppSandbox/UCs/SetDevModeUC.js +47 -0
- package/dist/cjs/AppSandbox/UCs/SetDevModeUC.js.map +1 -0
- package/dist/cjs/AppSandbox/UCs/index.js +1 -0
- package/dist/cjs/AppSandbox/UCs/index.js.map +1 -1
- package/dist/cjs/Apps/Entities/AppEntity.js.map +1 -1
- package/dist/cjs/Apps/Entities/AppRepo.js.map +1 -1
- package/dist/cjs/Apps/Factories/AppsFeatureFactory.js.map +1 -1
- package/dist/cjs/Apps/Factories/index.js.map +1 -1
- package/dist/cjs/Apps/UCs/Mounters/MounterUC.js.map +1 -1
- package/dist/cjs/Apps/UCs/Mounters/SandboxMounterUC.js +1 -0
- package/dist/cjs/Apps/UCs/Mounters/SandboxMounterUC.js.map +1 -1
- package/dist/cjs/Apps/UCs/StartAppUC.js.map +1 -1
- package/dist/cjs/Apps/UCs/StopAppUC.js.map +1 -1
- package/dist/cjs/Apps/index.js.map +1 -1
- package/dist/cjs/AssetPlugin/Factories/AssetPluginFeatureFactory.js.map +1 -1
- package/dist/cjs/AssetPlugin/Factories/index.js.map +1 -1
- package/dist/cjs/Assets/Adapters/assetFileAdapter.js.map +1 -1
- package/dist/cjs/Assets/Controllers/archiveAsset.js.map +1 -1
- package/dist/cjs/Assets/Controllers/deleteAsset.js.map +1 -1
- package/dist/cjs/Assets/Controllers/downloadAssetFile.js.map +1 -1
- package/dist/cjs/Assets/Controllers/editAppAsset.js.map +1 -1
- package/dist/cjs/Assets/Controllers/fetchAssetFile.js.map +1 -1
- package/dist/cjs/Assets/Controllers/getAppAssets.js.map +1 -1
- package/dist/cjs/Assets/Controllers/index.js.map +1 -1
- package/dist/cjs/Assets/Controllers/newAppAsset.js.map +1 -1
- package/dist/cjs/Assets/Controllers/toggleShowArchivedAssets.js.map +1 -1
- package/dist/cjs/Assets/Controllers/updateAppAssetMeta.js.map +1 -1
- package/dist/cjs/Assets/Controllers/updateAssetFile.js.map +1 -1
- package/dist/cjs/Assets/Entities/AppAssetsEntity.js.map +1 -1
- package/dist/cjs/Assets/Entities/AssetEntity.js.map +1 -1
- package/dist/cjs/Assets/Entities/AssetRepo.js.map +1 -1
- package/dist/cjs/Assets/Factories/AssetsFactory.js.map +1 -1
- package/dist/cjs/Assets/Factories/SandboxAssetsFactory.js.map +1 -1
- package/dist/cjs/Assets/Factories/index.js.map +1 -1
- package/dist/cjs/Assets/PMs/AssetFilePM.js.map +1 -1
- package/dist/cjs/Assets/PMs/AssetPM.js.map +1 -1
- package/dist/cjs/Assets/PMs/ShowArchivedAppAssetPM.js.map +1 -1
- package/dist/cjs/Assets/UCs/ArchiveAssetUC.js.map +1 -1
- package/dist/cjs/Assets/UCs/DeleteAssetUC.js.map +1 -1
- package/dist/cjs/Assets/UCs/DownloadAssetFileUC.js.map +1 -1
- package/dist/cjs/Assets/UCs/EditAppAssetUC.js.map +1 -1
- package/dist/cjs/Assets/UCs/GetAssetBlobURLUC.js.map +1 -1
- package/dist/cjs/Assets/UCs/GetAssetFileUC.js.map +1 -1
- package/dist/cjs/Assets/UCs/GetAssetUC.js.map +1 -1
- package/dist/cjs/Assets/UCs/NewAppAssetUC.js.map +1 -1
- package/dist/cjs/Assets/UCs/NewAssetUC.js.map +1 -1
- package/dist/cjs/Assets/UCs/UpdateAppAssetMetaUC.js.map +1 -1
- package/dist/cjs/Assets/UCs/UpdateAssetFileUC.js.map +1 -1
- package/dist/cjs/Assets/UCs/index.js.map +1 -1
- package/dist/cjs/Cache/Factories/CacheFeatureFactory.js.map +1 -1
- package/dist/cjs/Cache/Factories/index.js.map +1 -1
- package/dist/cjs/ChallengeResults/Entities/ChallengeResults.js.map +1 -1
- package/dist/cjs/ChallengeResults/Factories/ChallengeResultsFactory.js.map +1 -1
- package/dist/cjs/ChallengeResults/PMs/ChallengeResultsListPM.js.map +1 -1
- package/dist/cjs/ChallengeResults/PMs/HasChallengeResultsPM.js.map +1 -1
- package/dist/cjs/Dialog/Factories/SandboxDialogFactory.js +1 -2
- package/dist/cjs/Dialog/Factories/SandboxDialogFactory.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockDispatchSetDevModeUC.js +12 -0
- package/dist/cjs/Dispatcher/Mocks/MockDispatchSetDevModeUC.js.map +1 -0
- package/dist/cjs/Dispatcher/Mocks/index.js +1 -0
- package/dist/cjs/Dispatcher/Mocks/index.js.map +1 -1
- package/dist/cjs/Dispatcher/UCs/DispatchSetDevModeUC.js +52 -0
- package/dist/cjs/Dispatcher/UCs/DispatchSetDevModeUC.js.map +1 -0
- package/dist/cjs/Dispatcher/UCs/index.js +1 -0
- package/dist/cjs/Dispatcher/UCs/index.js.map +1 -1
- package/dist/cjs/Dispatcher/setupStandardHostDispatchers.js +1 -1
- package/dist/cjs/Dispatcher/setupStandardHostDispatchers.js.map +1 -1
- package/dist/cjs/Handler/UCs/SubmitResultHandler.js.map +1 -1
- package/dist/cjs/Logger/Factories/SandboxLoggerFactory.js.map +1 -1
- package/dist/cjs/Logger/PMs/ForwardLogsToConsolePM.js.map +1 -1
- package/dist/cjs/StateMachine/Controllers/index.js.map +1 -1
- package/dist/cjs/StateMachine/Controllers/setTransitionDuration.js.map +1 -1
- package/dist/cjs/StateMachine/Factories/SandboxStateMachineFactory.js.map +1 -1
- package/dist/cjs/StateMachine/PMs/HostStatePM.js.map +1 -1
- package/dist/cjs/ThemeColors/Controllers/index.js.map +1 -1
- package/dist/cjs/ThemeColors/Controllers/setThemeByName.js.map +1 -1
- package/dist/cjs/ThemeColors/Factories/ThemeFactory.js.map +1 -1
- package/dist/cjs/ThemeColors/Mocks/MockSetThemeUC.js.map +1 -1
- package/dist/cjs/ThemeColors/Mocks/index.js.map +1 -1
- package/dist/cjs/VivedAPI/Adapters/apiStageAdapter.js.map +1 -1
- package/dist/cjs/VivedAPI/Adapters/index.js.map +1 -1
- package/dist/cjs/VivedAPI/Adapters/userTokenAdapter.js.map +1 -1
- package/dist/cjs/VivedAPI/Controllers/index.js.map +1 -1
- package/dist/cjs/VivedAPI/Controllers/loginUser.js.map +1 -1
- package/dist/cjs/VivedAPI/Controllers/logoutUser.js.map +1 -1
- package/dist/cjs/VivedAPI/Controllers/setApiStage.js.map +1 -1
- package/dist/cjs/VivedAPI/Entities/VivedAPIEntity.js.map +1 -1
- package/dist/cjs/VivedAPI/Entities/index.js.map +1 -1
- package/dist/cjs/VivedAPI/Factories/SandboxVivedAPIFactory.js.map +1 -1
- package/dist/cjs/VivedAPI/Factories/VivedAPIFactory.js.map +1 -1
- package/dist/cjs/VivedAPI/Factories/index.js.map +1 -1
- package/dist/cjs/VivedAPI/Factories/setupAPI.js.map +1 -1
- package/dist/cjs/VivedAPI/Factories/setupVivedAPIForSandbox.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockJsonRequestUC.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/index.js.map +1 -1
- package/dist/cjs/VivedAPI/PMs/ApiStagePM.js.map +1 -1
- package/dist/cjs/VivedAPI/PMs/UserTokenPM.js.map +1 -1
- package/dist/cjs/VivedAPI/PMs/index.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/BasicFetchUC.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/BlobRequestUC.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/DeleteAssetOnAPIUC.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/FileUploadUC.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/JsonRequestUC.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/PostNewAssetUC.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/SignedAuthTokenUC.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/UserAuthUC.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/index.js.map +1 -1
- package/dist/cjs/VivedAPI/index.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Adapters/index.js +1 -0
- package/dist/cjs/ZSpaceHost/Adapters/index.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.js +24 -0
- package/dist/cjs/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.js.map +1 -0
- package/dist/cjs/ZSpaceHost/Controllers/index.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Controllers/setZSpaceIsSupported.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Factories/SandboxZSpaceFactory.js +1 -0
- package/dist/cjs/ZSpaceHost/Factories/SandboxZSpaceFactory.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Factories/setupZSpaceForSandbox.js +1 -0
- package/dist/cjs/ZSpaceHost/Factories/setupZSpaceForSandbox.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.js +16 -0
- package/dist/cjs/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.js.map +1 -0
- package/dist/cjs/ZSpaceHost/Mocks/index.js +1 -0
- package/dist/cjs/ZSpaceHost/Mocks/index.js.map +1 -1
- package/dist/cjs/ZSpaceHost/PMs/EmulateZSpacePM.js.map +1 -1
- package/dist/cjs/ZSpaceHost/PMs/ZSpaceIsActivePM.js.map +1 -1
- package/dist/cjs/ZSpaceHost/PMs/ZSpaceIsSupportedPM.js +40 -0
- package/dist/cjs/ZSpaceHost/PMs/ZSpaceIsSupportedPM.js.map +1 -0
- package/dist/cjs/ZSpaceHost/PMs/index.js +1 -0
- package/dist/cjs/ZSpaceHost/PMs/index.js.map +1 -1
- package/dist/esm/AppSandbox/Adapters/babylonInspectorSupportedAdapter.js +21 -0
- package/dist/esm/AppSandbox/Adapters/babylonInspectorSupportedAdapter.js.map +1 -0
- package/dist/esm/AppSandbox/Adapters/devModeAdapter.js +21 -0
- package/dist/esm/AppSandbox/Adapters/devModeAdapter.js.map +1 -0
- package/dist/esm/AppSandbox/Adapters/index.js +2 -0
- package/dist/esm/AppSandbox/Adapters/index.js.map +1 -1
- package/dist/esm/AppSandbox/Controller/index.js +2 -0
- package/dist/esm/AppSandbox/Controller/index.js.map +1 -1
- package/dist/esm/AppSandbox/Controller/setBabylonInspectorSupported.js +10 -0
- package/dist/esm/AppSandbox/Controller/setBabylonInspectorSupported.js.map +1 -0
- package/dist/esm/AppSandbox/Controller/setDevMode.js +16 -0
- package/dist/esm/AppSandbox/Controller/setDevMode.js.map +1 -0
- package/dist/esm/AppSandbox/Entities/AppSandboxEntity.js +14 -0
- package/dist/esm/AppSandbox/Entities/AppSandboxEntity.js.map +1 -1
- package/dist/esm/AppSandbox/Factories/AppSandboxFeatureFactory.js +5 -2
- package/dist/esm/AppSandbox/Factories/AppSandboxFeatureFactory.js.map +1 -1
- package/dist/esm/AppSandbox/Factories/index.js.map +1 -1
- package/dist/esm/AppSandbox/Factories/setupAppSandbox.js +4 -2
- package/dist/esm/AppSandbox/Factories/setupAppSandbox.js.map +1 -1
- package/dist/esm/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.js +11 -0
- package/dist/esm/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.js.map +1 -0
- package/dist/esm/AppSandbox/Mocks/DevModePMMock.js +11 -0
- package/dist/esm/AppSandbox/Mocks/DevModePMMock.js.map +1 -0
- package/dist/esm/AppSandbox/Mocks/MockSetDevModeUC.js +8 -0
- package/dist/esm/AppSandbox/Mocks/MockSetDevModeUC.js.map +1 -0
- package/dist/esm/AppSandbox/Mocks/index.js +3 -0
- package/dist/esm/AppSandbox/Mocks/index.js.map +1 -1
- package/dist/esm/AppSandbox/PMs/BabylonInspectorSupportedPM.js +32 -0
- package/dist/esm/AppSandbox/PMs/BabylonInspectorSupportedPM.js.map +1 -0
- package/dist/esm/AppSandbox/PMs/DevFeaturesEnabledPM.js.map +1 -1
- package/dist/esm/AppSandbox/PMs/DevModePM.js +32 -0
- package/dist/esm/AppSandbox/PMs/DevModePM.js.map +1 -0
- package/dist/esm/AppSandbox/PMs/ShowInspectorPM.js.map +1 -1
- package/dist/esm/AppSandbox/PMs/StartInZSpacePM.js.map +1 -1
- package/dist/esm/AppSandbox/PMs/index.js +2 -0
- package/dist/esm/AppSandbox/PMs/index.js.map +1 -1
- package/dist/esm/AppSandbox/UCs/SetDevModeUC.js +42 -0
- package/dist/esm/AppSandbox/UCs/SetDevModeUC.js.map +1 -0
- package/dist/esm/AppSandbox/UCs/index.js +1 -0
- package/dist/esm/AppSandbox/UCs/index.js.map +1 -1
- package/dist/esm/Apps/Entities/AppEntity.js.map +1 -1
- package/dist/esm/Apps/Entities/AppRepo.js.map +1 -1
- package/dist/esm/Apps/Factories/AppsFeatureFactory.js.map +1 -1
- package/dist/esm/Apps/Factories/index.js.map +1 -1
- package/dist/esm/Apps/UCs/Mounters/MounterUC.js.map +1 -1
- package/dist/esm/Apps/UCs/Mounters/SandboxMounterUC.js +1 -0
- package/dist/esm/Apps/UCs/Mounters/SandboxMounterUC.js.map +1 -1
- package/dist/esm/Apps/UCs/StartAppUC.js.map +1 -1
- package/dist/esm/Apps/UCs/StopAppUC.js.map +1 -1
- package/dist/esm/Apps/index.js.map +1 -1
- package/dist/esm/AssetPlugin/Factories/AssetPluginFeatureFactory.js.map +1 -1
- package/dist/esm/AssetPlugin/Factories/index.js.map +1 -1
- package/dist/esm/Assets/Adapters/assetFileAdapter.js.map +1 -1
- package/dist/esm/Assets/Controllers/archiveAsset.js.map +1 -1
- package/dist/esm/Assets/Controllers/deleteAsset.js.map +1 -1
- package/dist/esm/Assets/Controllers/downloadAssetFile.js.map +1 -1
- package/dist/esm/Assets/Controllers/editAppAsset.js.map +1 -1
- package/dist/esm/Assets/Controllers/fetchAssetFile.js.map +1 -1
- package/dist/esm/Assets/Controllers/getAppAssets.js.map +1 -1
- package/dist/esm/Assets/Controllers/index.js.map +1 -1
- package/dist/esm/Assets/Controllers/newAppAsset.js.map +1 -1
- package/dist/esm/Assets/Controllers/toggleShowArchivedAssets.js.map +1 -1
- package/dist/esm/Assets/Controllers/updateAppAssetMeta.js.map +1 -1
- package/dist/esm/Assets/Controllers/updateAssetFile.js.map +1 -1
- package/dist/esm/Assets/Entities/AppAssetsEntity.js.map +1 -1
- package/dist/esm/Assets/Entities/AssetEntity.js.map +1 -1
- package/dist/esm/Assets/Entities/AssetRepo.js.map +1 -1
- package/dist/esm/Assets/Factories/AssetsFactory.js.map +1 -1
- package/dist/esm/Assets/Factories/SandboxAssetsFactory.js.map +1 -1
- package/dist/esm/Assets/Factories/index.js.map +1 -1
- package/dist/esm/Assets/PMs/AssetFilePM.js.map +1 -1
- package/dist/esm/Assets/PMs/AssetPM.js.map +1 -1
- package/dist/esm/Assets/PMs/ShowArchivedAppAssetPM.js.map +1 -1
- package/dist/esm/Assets/UCs/ArchiveAssetUC.js.map +1 -1
- package/dist/esm/Assets/UCs/DeleteAssetUC.js.map +1 -1
- package/dist/esm/Assets/UCs/DownloadAssetFileUC.js.map +1 -1
- package/dist/esm/Assets/UCs/EditAppAssetUC.js.map +1 -1
- package/dist/esm/Assets/UCs/GetAssetBlobURLUC.js.map +1 -1
- package/dist/esm/Assets/UCs/GetAssetFileUC.js.map +1 -1
- package/dist/esm/Assets/UCs/GetAssetUC.js.map +1 -1
- package/dist/esm/Assets/UCs/NewAppAssetUC.js.map +1 -1
- package/dist/esm/Assets/UCs/NewAssetUC.js.map +1 -1
- package/dist/esm/Assets/UCs/UpdateAppAssetMetaUC.js.map +1 -1
- package/dist/esm/Assets/UCs/UpdateAssetFileUC.js.map +1 -1
- package/dist/esm/Assets/UCs/index.js.map +1 -1
- package/dist/esm/Cache/Factories/CacheFeatureFactory.js.map +1 -1
- package/dist/esm/Cache/Factories/index.js.map +1 -1
- package/dist/esm/ChallengeResults/Entities/ChallengeResults.js.map +1 -1
- package/dist/esm/ChallengeResults/Factories/ChallengeResultsFactory.js.map +1 -1
- package/dist/esm/ChallengeResults/PMs/ChallengeResultsListPM.js.map +1 -1
- package/dist/esm/ChallengeResults/PMs/HasChallengeResultsPM.js.map +1 -1
- package/dist/esm/Dialog/Factories/SandboxDialogFactory.js +1 -2
- package/dist/esm/Dialog/Factories/SandboxDialogFactory.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockDispatchSetDevModeUC.js +8 -0
- package/dist/esm/Dispatcher/Mocks/MockDispatchSetDevModeUC.js.map +1 -0
- package/dist/esm/Dispatcher/Mocks/index.js +1 -0
- package/dist/esm/Dispatcher/Mocks/index.js.map +1 -1
- package/dist/esm/Dispatcher/UCs/DispatchSetDevModeUC.js +47 -0
- package/dist/esm/Dispatcher/UCs/DispatchSetDevModeUC.js.map +1 -0
- package/dist/esm/Dispatcher/UCs/index.js +1 -0
- package/dist/esm/Dispatcher/UCs/index.js.map +1 -1
- package/dist/esm/Dispatcher/setupStandardHostDispatchers.js +2 -2
- package/dist/esm/Dispatcher/setupStandardHostDispatchers.js.map +1 -1
- package/dist/esm/Handler/UCs/SubmitResultHandler.js.map +1 -1
- package/dist/esm/Logger/Factories/SandboxLoggerFactory.js.map +1 -1
- package/dist/esm/Logger/PMs/ForwardLogsToConsolePM.js.map +1 -1
- package/dist/esm/StateMachine/Controllers/index.js.map +1 -1
- package/dist/esm/StateMachine/Controllers/setTransitionDuration.js.map +1 -1
- package/dist/esm/StateMachine/Factories/SandboxStateMachineFactory.js.map +1 -1
- package/dist/esm/StateMachine/PMs/HostStatePM.js.map +1 -1
- package/dist/esm/ThemeColors/Controllers/index.js.map +1 -1
- package/dist/esm/ThemeColors/Controllers/setThemeByName.js.map +1 -1
- package/dist/esm/ThemeColors/Factories/ThemeFactory.js.map +1 -1
- package/dist/esm/ThemeColors/Mocks/MockSetThemeUC.js.map +1 -1
- package/dist/esm/ThemeColors/Mocks/index.js.map +1 -1
- package/dist/esm/VivedAPI/Adapters/apiStageAdapter.js.map +1 -1
- package/dist/esm/VivedAPI/Adapters/index.js.map +1 -1
- package/dist/esm/VivedAPI/Adapters/userTokenAdapter.js.map +1 -1
- package/dist/esm/VivedAPI/Controllers/index.js.map +1 -1
- package/dist/esm/VivedAPI/Controllers/loginUser.js.map +1 -1
- package/dist/esm/VivedAPI/Controllers/logoutUser.js.map +1 -1
- package/dist/esm/VivedAPI/Controllers/setApiStage.js.map +1 -1
- package/dist/esm/VivedAPI/Entities/VivedAPIEntity.js.map +1 -1
- package/dist/esm/VivedAPI/Entities/index.js.map +1 -1
- package/dist/esm/VivedAPI/Factories/SandboxVivedAPIFactory.js.map +1 -1
- package/dist/esm/VivedAPI/Factories/VivedAPIFactory.js.map +1 -1
- package/dist/esm/VivedAPI/Factories/index.js.map +1 -1
- package/dist/esm/VivedAPI/Factories/setupAPI.js.map +1 -1
- package/dist/esm/VivedAPI/Factories/setupVivedAPIForSandbox.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockJsonRequestUC.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/index.js.map +1 -1
- package/dist/esm/VivedAPI/PMs/ApiStagePM.js.map +1 -1
- package/dist/esm/VivedAPI/PMs/UserTokenPM.js.map +1 -1
- package/dist/esm/VivedAPI/PMs/index.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/BasicFetchUC.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/BlobRequestUC.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/DeleteAssetOnAPIUC.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/FileUploadUC.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/JsonRequestUC.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/PostNewAssetUC.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/SignedAuthTokenUC.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/UserAuthUC.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/index.js.map +1 -1
- package/dist/esm/VivedAPI/index.js.map +1 -1
- package/dist/esm/ZSpaceHost/Adapters/index.js +1 -0
- package/dist/esm/ZSpaceHost/Adapters/index.js.map +1 -1
- package/dist/esm/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.js +21 -0
- package/dist/esm/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.js.map +1 -0
- package/dist/esm/ZSpaceHost/Controllers/index.js.map +1 -1
- package/dist/esm/ZSpaceHost/Controllers/setZSpaceIsSupported.js.map +1 -1
- package/dist/esm/ZSpaceHost/Factories/SandboxZSpaceFactory.js +2 -1
- package/dist/esm/ZSpaceHost/Factories/SandboxZSpaceFactory.js.map +1 -1
- package/dist/esm/ZSpaceHost/Factories/setupZSpaceForSandbox.js +2 -1
- package/dist/esm/ZSpaceHost/Factories/setupZSpaceForSandbox.js.map +1 -1
- package/dist/esm/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.js +11 -0
- package/dist/esm/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.js.map +1 -0
- package/dist/esm/ZSpaceHost/Mocks/index.js +1 -0
- package/dist/esm/ZSpaceHost/Mocks/index.js.map +1 -1
- package/dist/esm/ZSpaceHost/PMs/EmulateZSpacePM.js.map +1 -1
- package/dist/esm/ZSpaceHost/PMs/ZSpaceIsActivePM.js.map +1 -1
- package/dist/esm/ZSpaceHost/PMs/ZSpaceIsSupportedPM.js +35 -0
- package/dist/esm/ZSpaceHost/PMs/ZSpaceIsSupportedPM.js.map +1 -0
- package/dist/esm/ZSpaceHost/PMs/index.js +1 -0
- package/dist/esm/ZSpaceHost/PMs/index.js.map +1 -1
- package/dist/types/AppSandbox/Adapters/babylonInspectorSupportedAdapter.d.ts +3 -0
- package/dist/types/AppSandbox/Adapters/babylonInspectorSupportedAdapter.d.ts.map +1 -0
- package/dist/types/AppSandbox/Adapters/devModeAdapter.d.ts +3 -0
- package/dist/types/AppSandbox/Adapters/devModeAdapter.d.ts.map +1 -0
- package/dist/types/AppSandbox/Adapters/index.d.ts +2 -0
- package/dist/types/AppSandbox/Adapters/index.d.ts.map +1 -1
- package/dist/types/AppSandbox/Controller/index.d.ts +2 -0
- package/dist/types/AppSandbox/Controller/index.d.ts.map +1 -1
- package/dist/types/AppSandbox/Controller/setBabylonInspectorSupported.d.ts +3 -0
- package/dist/types/AppSandbox/Controller/setBabylonInspectorSupported.d.ts.map +1 -0
- package/dist/types/AppSandbox/Controller/setDevMode.d.ts +3 -0
- package/dist/types/AppSandbox/Controller/setDevMode.d.ts.map +1 -0
- package/dist/types/AppSandbox/Entities/AppSandboxEntity.d.ts +4 -0
- package/dist/types/AppSandbox/Entities/AppSandboxEntity.d.ts.map +1 -1
- package/dist/types/AppSandbox/Factories/AppSandboxFeatureFactory.d.ts.map +1 -1
- package/dist/types/AppSandbox/Factories/setupAppSandbox.d.ts.map +1 -1
- package/dist/types/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.d.ts +8 -0
- package/dist/types/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.d.ts.map +1 -0
- package/dist/types/AppSandbox/Mocks/DevModePMMock.d.ts +8 -0
- package/dist/types/AppSandbox/Mocks/DevModePMMock.d.ts.map +1 -0
- package/dist/types/AppSandbox/Mocks/MockSetDevModeUC.d.ts +7 -0
- package/dist/types/AppSandbox/Mocks/MockSetDevModeUC.d.ts.map +1 -0
- package/dist/types/AppSandbox/Mocks/index.d.ts +3 -0
- package/dist/types/AppSandbox/Mocks/index.d.ts.map +1 -1
- package/dist/types/AppSandbox/PMs/BabylonInspectorSupportedPM.d.ts +7 -0
- package/dist/types/AppSandbox/PMs/BabylonInspectorSupportedPM.d.ts.map +1 -0
- package/dist/types/AppSandbox/PMs/DevModePM.d.ts +7 -0
- package/dist/types/AppSandbox/PMs/DevModePM.d.ts.map +1 -0
- package/dist/types/AppSandbox/PMs/index.d.ts +2 -0
- package/dist/types/AppSandbox/PMs/index.d.ts.map +1 -1
- package/dist/types/AppSandbox/UCs/SetDevModeUC.d.ts +9 -0
- package/dist/types/AppSandbox/UCs/SetDevModeUC.d.ts.map +1 -0
- package/dist/types/AppSandbox/UCs/index.d.ts +1 -0
- package/dist/types/AppSandbox/UCs/index.d.ts.map +1 -1
- package/dist/types/Apps/Factories/AppsFeatureFactory.d.ts.map +1 -1
- package/dist/types/AssetPlugin/Factories/AssetPluginFeatureFactory.d.ts.map +1 -1
- package/dist/types/Assets/Factories/AssetsFactory.d.ts.map +1 -1
- package/dist/types/Dialog/Factories/SandboxDialogFactory.d.ts.map +1 -1
- package/dist/types/Dispatcher/Mocks/MockDispatchSetDevModeUC.d.ts +7 -0
- package/dist/types/Dispatcher/Mocks/MockDispatchSetDevModeUC.d.ts.map +1 -0
- package/dist/types/Dispatcher/Mocks/index.d.ts +1 -0
- package/dist/types/Dispatcher/Mocks/index.d.ts.map +1 -1
- package/dist/types/Dispatcher/UCs/DispatchSetDevModeUC.d.ts +10 -0
- package/dist/types/Dispatcher/UCs/DispatchSetDevModeUC.d.ts.map +1 -0
- package/dist/types/Dispatcher/UCs/index.d.ts +1 -0
- package/dist/types/Dispatcher/UCs/index.d.ts.map +1 -1
- package/dist/types/StateMachine/Factories/SandboxStateMachineFactory.d.ts.map +1 -1
- package/dist/types/ZSpaceHost/Adapters/index.d.ts +1 -0
- package/dist/types/ZSpaceHost/Adapters/index.d.ts.map +1 -1
- package/dist/types/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.d.ts +3 -0
- package/dist/types/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.d.ts.map +1 -0
- package/dist/types/ZSpaceHost/Factories/SandboxZSpaceFactory.d.ts.map +1 -1
- package/dist/types/ZSpaceHost/Factories/setupZSpaceForSandbox.d.ts.map +1 -1
- package/dist/types/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.d.ts +8 -0
- package/dist/types/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.d.ts.map +1 -0
- package/dist/types/ZSpaceHost/Mocks/index.d.ts +1 -0
- package/dist/types/ZSpaceHost/Mocks/index.d.ts.map +1 -1
- package/dist/types/ZSpaceHost/PMs/ZSpaceIsSupportedPM.d.ts +7 -0
- package/dist/types/ZSpaceHost/PMs/ZSpaceIsSupportedPM.d.ts.map +1 -0
- package/dist/types/ZSpaceHost/PMs/index.d.ts +1 -0
- package/dist/types/ZSpaceHost/PMs/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/README.md +0 -105
- package/dist/cjs/Assets/Factories/setupAssets.js +0 -14
- package/dist/cjs/Assets/Factories/setupAssets.js.map +0 -1
- package/dist/esm/Assets/Factories/setupAssets.js +0 -11
- package/dist/esm/Assets/Factories/setupAssets.js.map +0 -1
- package/dist/types/Assets/Factories/setupAssets.d.ts +0 -8
- package/dist/types/Assets/Factories/setupAssets.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetDevModeUC.js","sourceRoot":"","sources":["../../../../src/AppSandbox/UCs/SetDevModeUC.ts"],"names":[],"mappings":";;;AAsCA,4CAEC;AAxCD,sCAAoE;AACpE,iDAAwD;AACxD,mEAAgE;AAEhE,MAAsB,YAAa,SAAQ,kBAAW;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;;AA/BH,oCAgCC;AA/BQ,iBAAI,GAAG,cAAc,CAAC;AAiC/B,SAAgB,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,mCAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,kBAAkB;QAC5B,OAAO,IAAI,CAAC,uBAAuB,CACjC,iCAAoB,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"]}
|
|
@@ -14,5 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./SetDevModeUC"), exports);
|
|
17
18
|
__exportStar(require("./ShowBabylonInspectorUC"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AppSandbox/UCs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC","sourcesContent":["export * from \"./ShowBabylonInspectorUC\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AppSandbox/UCs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,2DAAyC","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":";;;AAiCA,kCAEC;AAnCD,sCAKqB;AACrB,2CAAuD;AAEvD,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,sCAAmB,CAAA;IACnB,gCAAa,CAAA;IACb,kCAAe,CAAA;AACjB,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAED,MAAsB,aAAc,SAAQ,0BAA8B;IAGxE,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,UAAU,CAAC,YAAY,CAAgB,aAAa,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;;AALH,sCAiBC;AAhBQ,kBAAI,GAAG,eAAe,CAAC;AAkBhC,SAAgB,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,IAAA,yBAAa,EAAC,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 {\
|
|
1
|
+
{"version":3,"file":"AppRepo.js","sourceRoot":"","sources":["../../../../src/Apps/Entities/AppRepo.ts"],"names":[],"mappings":";;;AAiCA,kCAEC;AAnCD,sCAKqB;AACrB,2CAAuD;AAEvD,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,sCAAmB,CAAA;IACnB,gCAAa,CAAA;IACb,kCAAe,CAAA;AACjB,CAAC,EAJW,eAAe,+BAAf,eAAe,QAI1B;AAED,MAAsB,aAAc,SAAQ,0BAA8B;IAGxE,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,UAAU,CAAC,YAAY,CAAgB,aAAa,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;;AALH,sCAiBC;AAhBQ,kBAAI,GAAG,eAAe,CAAC;AAkBhC,SAAgB,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,IAAA,yBAAa,EAAC,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":";;;AAiDA,
|
|
1
|
+
{"version":3,"file":"AppsFeatureFactory.js","sourceRoot":"","sources":["../../../../src/Apps/Factories/AppsFeatureFactory.ts"],"names":[],"mappings":";;;AAiDA,wDAKC;AAtDD,sCAAsE;AACtE,0CAAyD;AACzD,gCAAmD;AAEnD;;;;GAIG;AACH,MAAa,kBAAmB,SAAQ,oBAAa;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,IAAA,sBAAW,EAAC,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,IAAA,oBAAc,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,UAAU;QACR,wCAAwC;IAC1C,CAAC;CACF;AAtCD,gDAsCC;AAED,SAAgB,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,uDAAqC","sourcesContent":["export * from \"./AppsFeatureFactory\";\
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Apps/Factories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC","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"]}
|
|
@@ -148,6 +148,7 @@ class SandboxMounterUC extends MounterUC_1.MounterUC {
|
|
|
148
148
|
this.error("No App Interface");
|
|
149
149
|
return Promise.reject();
|
|
150
150
|
}
|
|
151
|
+
this.sandbox.state = AppSandboxEntity_1.SandboxState.LOADING;
|
|
151
152
|
const appHandler = appInterface.mount(this.hostHandler.handler);
|
|
152
153
|
this.hostDispatcher.registerAppHandler(appHandler);
|
|
153
154
|
const app = this.appEntity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxMounterUC.js","sourceRoot":"","sources":["../../../../../src/Apps/UCs/Mounters/SandboxMounterUC.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, Version, VIVEDApp_3 } from \"@vived/core\";\r\nimport {\r\n AppSandboxEntity,\r\n SandboxState\r\n} from \"../../../AppSandbox/Entities/AppSandboxEntity\";\r\nimport { HostDispatchEntity } from \"../../../Dispatcher/Entities/HostDispatchEntity\";\r\nimport { HostHandlerEntity } from \"../../../Handler/Entities/HostHandler\";\r\nimport { AppEntity, AppState } from \"../../Entities/AppEntity\";\r\nimport { MounterUC } from \"./MounterUC\";\r\n\r\n/**\r\n * Factory function to create a sandbox mounter for apps.\r\n *\r\n * The sandbox mounter is designed to mount apps in a sandboxed environment,\r\n * providing isolation and security for app execution.\r\n *\r\n * @param appObject - The app object to attach the mounter to\r\n * @returns A new SandboxMounterUC instance\r\n */\r\nexport function makeSandboxMounter(appObject: AppObject): MounterUC {\r\n return new SandboxMounterUC(appObject);\r\n}\r\n\r\n/**\r\n * Implementation of MounterUC for mounting apps in a sandbox environment.\r\n *\r\n * The SandboxMounterUC is responsible for safely loading and initializing apps\r\n * in a sandboxed context, handling app lifecycle events, and managing the\r\n * communication between the host and app.\r\n */\r\nclass SandboxMounterUC extends MounterUC {\r\n /**\r\n * Gets the app entity representing the app being mounted\r\n */\r\n private get appEntity() {\r\n return this.getCachedLocalComponent<AppEntity>(AppEntity.type);\r\n }\r\n\r\n /**\r\n * Gets the host dispatcher entity for sending messages to apps\r\n */\r\n private get hostDispatcher() {\r\n return this.getCachedLocalComponent<HostDispatchEntity>(\r\n HostDispatchEntity.type\r\n );\r\n }\r\n\r\n /**\r\n * Gets the host handler entity for receiving messages from apps\r\n */\r\n private get hostHandler() {\r\n return this.getCachedLocalComponent<HostHandlerEntity>(\r\n HostHandlerEntity.type\r\n );\r\n }\r\n\r\n /**\r\n * Gets the sandbox entity that manages the sandbox state\r\n */\r\n private get sandbox() {\r\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\r\n }\r\n\r\n /**\r\n * Mounts the latest version of the app.\r\n *\r\n * @returns A promise that resolves when the app is mounted or rejects if an error occurs\r\n */\r\n mountLatestVersion = (): Promise<void> => {\r\n if (!this.appEntity) {\r\n this.error(\"Missing Components\");\r\n return Promise.reject();\r\n }\r\n\r\n const version = this.appEntity.latestVersion;\r\n if (!version) {\r\n this.error(\"No Version\");\r\n return Promise.reject();\r\n }\r\n\r\n return this.mount(version.major, version.minor);\r\n };\r\n\r\n /**\r\n * Mounts a specific version of the app.\r\n *\r\n * @param majorVersion - The major version number\r\n * @param minorVersion - The minor version number\r\n * @returns A promise that resolves when the app is mounted or rejects if an error occurs\r\n */\r\n mount = (majorVersion: number, minorVersion: number): Promise<void> => {\r\n if (\r\n !this.appEntity ||\r\n !this.hostDispatcher ||\r\n !this.hostHandler ||\r\n !this.sandbox\r\n ) {\r\n this.error(\"Missing Components\");\r\n return Promise.reject();\r\n }\r\n\r\n const version = this.getAppVersion(majorVersion, minorVersion);\r\n if (!version) {\r\n this.error(\"No Version\");\r\n return Promise.reject();\r\n }\r\n\r\n const appInterface = this.getAppInterface(version);\r\n if (!appInterface) {\r\n this.error(\"No App Interface\");\r\n return Promise.reject();\r\n }\r\n\r\n const appHandler = appInterface.mount(this.hostHandler.handler);\r\n this.hostDispatcher.registerAppHandler(appHandler);\r\n\r\n const app = this.appEntity;\r\n const sandbox = this.sandbox;\r\n\r\n return new Promise((resolve) => {\r\n const waitForReady = () => {\r\n if (app.state === AppState.READY) {\r\n sandbox.state = SandboxState.MOUNTED;\r\n app.removeChangeObserver(waitForReady);\r\n resolve();\r\n }\r\n };\r\n\r\n app.addChangeObserver(waitForReady);\r\n waitForReady();\r\n });\r\n };\r\n\r\n /**\r\n * Helper method to find a specific version of the app.\r\n *\r\n * @param major - Major version number\r\n * @param minor - Minor version number\r\n * @returns The Version object or undefined if not found\r\n */\r\n private getAppVersion(major: number, minor: number): Version | undefined {\r\n if (!this.appEntity) {\r\n return;\r\n }\r\n\r\n let appVersion = Version.GetLatestWithMajorMinor(\r\n this.appEntity.versions,\r\n major,\r\n minor\r\n );\r\n\r\n if (!appVersion) {\r\n appVersion = Version.GetLatestWithMajor(this.appEntity.versions, major);\r\n }\r\n\r\n if (!appVersion) {\r\n this.error(\r\n `Unable to find version ${major}.${minor}.X for App ${this.appEntity.name}`\r\n );\r\n }\r\n\r\n return appVersion;\r\n }\r\n\r\n /**\r\n * Unmounts the app from the sandbox.\r\n */\r\n unmount = (): void => {\r\n if (!this.sandbox || !this.hostDispatcher) {\r\n this.error(\"Missing Components\");\r\n return;\r\n }\r\n\r\n this.hostDispatcher.clearAppHandler();\r\n\r\n this.sandbox.state = SandboxState.UNMOUNTED;\r\n };\r\n\r\n /**\r\n * Loads a script into the document.\r\n * This is a placeholder implementation for sandbox mounting.\r\n *\r\n * @param scriptURL - URL of the script to load\r\n * @param appIDWithVersion - Versioned ID of the app\r\n * @returns A promise that resolves when the script is loaded\r\n */\r\n loadScriptIntoDocument(\r\n scriptURL: string,\r\n appIDWithVersion: string\r\n ): Promise<void> {\r\n // Unused during dev\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n * Gets the app interface for a specific version.\r\n *\r\n * @param version - The version to get the interface for\r\n * @returns The app interface or undefined if not found\r\n */\r\n getAppInterface(version: Version): VIVEDApp_3 | undefined {\r\n const modifiedVersion = version.baseVersionString.split(\".\").join(\"_\");\r\n const idWithVersion = `${this.appObject.id}-${modifiedVersion}`;\r\n const appInterface = (window as any)[idWithVersion] as VIVEDApp_3;\r\n if (!appInterface) {\r\n this.appObjects.submitFatal(\r\n \"LocalMounterUC\",\r\n \"Unable to find App Interface\"\r\n );\r\n return;\r\n }\r\n\r\n return appInterface;\r\n }\r\n\r\n /**\r\n * Creates a new SandboxMounterUC instance.\r\n *\r\n * @param appObject - The app object to attach to\r\n */\r\n constructor(appObject: AppObject) {\r\n super(appObject, MounterUC.type);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"SandboxMounterUC.js","sourceRoot":"","sources":["../../../../../src/Apps/UCs/Mounters/SandboxMounterUC.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, Version, VIVEDApp_3 } from \"@vived/core\";\nimport {\n AppSandboxEntity,\n SandboxState\n} from \"../../../AppSandbox/Entities/AppSandboxEntity\";\nimport { HostDispatchEntity } from \"../../../Dispatcher/Entities/HostDispatchEntity\";\nimport { HostHandlerEntity } from \"../../../Handler/Entities/HostHandler\";\nimport { AppEntity, AppState } from \"../../Entities/AppEntity\";\nimport { MounterUC } from \"./MounterUC\";\n\n/**\n * Factory function to create a sandbox mounter for apps.\n *\n * The sandbox mounter is designed to mount apps in a sandboxed environment,\n * providing isolation and security for app execution.\n *\n * @param appObject - The app object to attach the mounter to\n * @returns A new SandboxMounterUC instance\n */\nexport function makeSandboxMounter(appObject: AppObject): MounterUC {\n return new SandboxMounterUC(appObject);\n}\n\n/**\n * Implementation of MounterUC for mounting apps in a sandbox environment.\n *\n * The SandboxMounterUC is responsible for safely loading and initializing apps\n * in a sandboxed context, handling app lifecycle events, and managing the\n * communication between the host and app.\n */\nclass SandboxMounterUC extends MounterUC {\n /**\n * Gets the app entity representing the app being mounted\n */\n private get appEntity() {\n return this.getCachedLocalComponent<AppEntity>(AppEntity.type);\n }\n\n /**\n * Gets the host dispatcher entity for sending messages to apps\n */\n private get hostDispatcher() {\n return this.getCachedLocalComponent<HostDispatchEntity>(\n HostDispatchEntity.type\n );\n }\n\n /**\n * Gets the host handler entity for receiving messages from apps\n */\n private get hostHandler() {\n return this.getCachedLocalComponent<HostHandlerEntity>(\n HostHandlerEntity.type\n );\n }\n\n /**\n * Gets the sandbox entity that manages the sandbox state\n */\n private get sandbox() {\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\n }\n\n /**\n * Mounts the latest version of the app.\n *\n * @returns A promise that resolves when the app is mounted or rejects if an error occurs\n */\n mountLatestVersion = (): Promise<void> => {\n if (!this.appEntity) {\n this.error(\"Missing Components\");\n return Promise.reject();\n }\n\n const version = this.appEntity.latestVersion;\n if (!version) {\n this.error(\"No Version\");\n return Promise.reject();\n }\n\n return this.mount(version.major, version.minor);\n };\n\n /**\n * Mounts a specific version of the app.\n *\n * @param majorVersion - The major version number\n * @param minorVersion - The minor version number\n * @returns A promise that resolves when the app is mounted or rejects if an error occurs\n */\n mount = (majorVersion: number, minorVersion: number): Promise<void> => {\n if (\n !this.appEntity ||\n !this.hostDispatcher ||\n !this.hostHandler ||\n !this.sandbox\n ) {\n this.error(\"Missing Components\");\n return Promise.reject();\n }\n\n const version = this.getAppVersion(majorVersion, minorVersion);\n if (!version) {\n this.error(\"No Version\");\n return Promise.reject();\n }\n\n const appInterface = this.getAppInterface(version);\n if (!appInterface) {\n this.error(\"No App Interface\");\n return Promise.reject();\n }\n\n this.sandbox.state = SandboxState.LOADING;\n\n const appHandler = appInterface.mount(this.hostHandler.handler);\n this.hostDispatcher.registerAppHandler(appHandler);\n\n const app = this.appEntity;\n const sandbox = this.sandbox;\n\n return new Promise((resolve) => {\n const waitForReady = () => {\n if (app.state === AppState.READY) {\n sandbox.state = SandboxState.MOUNTED;\n app.removeChangeObserver(waitForReady);\n resolve();\n }\n };\n\n app.addChangeObserver(waitForReady);\n waitForReady();\n });\n };\n\n /**\n * Helper method to find a specific version of the app.\n *\n * @param major - Major version number\n * @param minor - Minor version number\n * @returns The Version object or undefined if not found\n */\n private getAppVersion(major: number, minor: number): Version | undefined {\n if (!this.appEntity) {\n return;\n }\n\n let appVersion = Version.GetLatestWithMajorMinor(\n this.appEntity.versions,\n major,\n minor\n );\n\n if (!appVersion) {\n appVersion = Version.GetLatestWithMajor(this.appEntity.versions, major);\n }\n\n if (!appVersion) {\n this.error(\n `Unable to find version ${major}.${minor}.X for App ${this.appEntity.name}`\n );\n }\n\n return appVersion;\n }\n\n /**\n * Unmounts the app from the sandbox.\n */\n unmount = (): void => {\n if (!this.sandbox || !this.hostDispatcher) {\n this.error(\"Missing Components\");\n return;\n }\n\n this.hostDispatcher.clearAppHandler();\n\n this.sandbox.state = SandboxState.UNMOUNTED;\n };\n\n /**\n * Loads a script into the document.\n * This is a placeholder implementation for sandbox mounting.\n *\n * @param scriptURL - URL of the script to load\n * @param appIDWithVersion - Versioned ID of the app\n * @returns A promise that resolves when the script is loaded\n */\n loadScriptIntoDocument(\n scriptURL: string,\n appIDWithVersion: string\n ): Promise<void> {\n // Unused during dev\n return Promise.resolve();\n }\n\n /**\n * Gets the app interface for a specific version.\n *\n * @param version - The version to get the interface for\n * @returns The app interface or undefined if not found\n */\n getAppInterface(version: Version): VIVEDApp_3 | undefined {\n const modifiedVersion = version.baseVersionString.split(\".\").join(\"_\");\n const idWithVersion = `${this.appObject.id}-${modifiedVersion}`;\n const appInterface = (window as any)[idWithVersion] as VIVEDApp_3;\n if (!appInterface) {\n this.appObjects.submitFatal(\n \"LocalMounterUC\",\n \"Unable to find App Interface\"\n );\n return;\n }\n\n return appInterface;\n }\n\n /**\n * Creates a new SandboxMounterUC instance.\n *\n * @param appObject - The app object to attach to\n */\n constructor(appObject: AppObject) {\n super(appObject, MounterUC.type);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartAppUC.js","sourceRoot":"","sources":["../../../../src/Apps/UCs/StartAppUC.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectRepo, AppObjectUC } from \"@vived/core\";\
|
|
1
|
+
{"version":3,"file":"StartAppUC.js","sourceRoot":"","sources":["../../../../src/Apps/UCs/StartAppUC.ts"],"names":[],"mappings":"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","sourcesContent":["import { AppObject, AppObjectRepo, AppObjectUC } from \"@vived/core\";\nimport { AppSandboxEntity } from \"../../AppSandbox/Entities/AppSandboxEntity\";\nimport { DispatchEnableFeatureUC } from \"../../Dispatcher/UCs/DispatchEnableFeatureUC\";\nimport { DispatchIsAuthoringUC } from \"../../Dispatcher/UCs/DispatchIsAuthoringUC\";\nimport { DispatchSetStateUC } from \"../../Dispatcher/UCs/DispatchSetStateUC\";\nimport { DispatchStartAppUC } from \"../../Dispatcher/UCs/DispatchStartAppUC\";\nimport { DispatchStateDTO } from \"../../Dispatcher/UCs/DispatchSetStateUC\";\nimport { DispatchThemeUC } from \"../../Dispatcher/UCs/DispatchThemeUC\";\nimport {\n HostEditingStateEntity,\n HostStateMachine\n} from \"../../StateMachine/Entities\";\n\n/**\n * StartAppUC - Use case for starting an application in the host environment\n *\n * This use case is responsible for initializing and starting an application\n * within the VIVED Learning platform. It handles setting up the application container,\n * initializing the app with the appropriate state, and dispatching necessary configurations.\n *\n * The StartAppUC coordinates between several subsystems:\n * - State Machine: Provides the current application state\n * - Dispatcher: Communicates with the app via message passing\n * - AppSandbox: Provides development features when enabled\n *\n * @extends AppObjectUC from @vived/core\n */\nexport abstract class StartAppUC extends AppObjectUC {\n /** Type identifier for the StartAppUC component */\n static type = \"StartAppUC\";\n\n /**\n * Abstract method that starts the application\n *\n * @param container - HTML element that will contain the app\n */\n abstract start(container: HTMLElement): void;\n\n /**\n * Gets a StartAppUC instance from an app object\n *\n * @param appObject - App object to get the StartAppUC from\n * @returns StartAppUC instance if found, undefined otherwise\n */\n static get(appObject: AppObject): StartAppUC | undefined {\n const asset = appObject.getComponent<StartAppUC>(StartAppUC.type);\n if (!asset) {\n appObject.appObjectRepo.submitWarning(\n \"StartAppUC.get\",\n \"Unable to find StartAppUC on app object \" + appObject.id\n );\n }\n return asset;\n }\n\n /**\n * Gets a StartAppUC instance by app ID\n *\n * @param id - ID of the app to start\n * @param appObjects - Repository containing app objects\n * @returns StartAppUC instance if found, undefined otherwise\n */\n static getByID(\n id: string,\n appObjects: AppObjectRepo\n ): StartAppUC | undefined {\n const appObject = appObjects.get(id);\n\n if (!appObject) {\n appObjects.submitWarning(\n \"StartAppUC.getByID\",\n \"Unable to find App Object by id \" + id\n );\n return undefined;\n }\n\n return StartAppUC.get(appObject);\n }\n\n /**\n * Convenience method to start an app by ID\n *\n * @param container - HTML element to mount the app in\n * @param id - ID of the app to start\n * @param appObjects - Repository containing app objects\n */\n static startByID(\n container: HTMLElement,\n id: string,\n appObjects: AppObjectRepo\n ) {\n StartAppUC.getByID(id, appObjects)?.start(container);\n }\n}\n\n/**\n * Factory function to create a new StartAppUC instance\n *\n * @param appObject - The app object to attach the use case to\n * @returns A concrete implementation of StartAppUC\n */\nexport function makeStartAppUC(appObject: AppObject): StartAppUC {\n return new StartAppUCImp(appObject);\n}\n\n/**\n * Concrete implementation of StartAppUC\n * Uses dependency injection to access required components\n * Handles the app starting process\n */\nclass StartAppUCImp extends StartAppUC {\n private get stateMachine() {\n return this.getCachedSingleton<HostStateMachine>(HostStateMachine.type);\n }\n\n private get editStateEntity() {\n return this.getCachedSingleton<HostEditingStateEntity>(\n HostEditingStateEntity.type\n );\n }\n\n private get dispatchStart() {\n return this.getCachedLocalComponent<DispatchStartAppUC>(\n DispatchStartAppUC.type\n );\n }\n\n private get dispatchSetState() {\n return this.getCachedLocalComponent<DispatchSetStateUC>(\n DispatchSetStateUC.type\n );\n }\n\n private get dispatchSetIsAuthoring() {\n return this.getCachedLocalComponent<DispatchIsAuthoringUC>(\n DispatchIsAuthoringUC.type\n );\n }\n\n private get dispatchThemeColors() {\n return this.getCachedLocalComponent<DispatchThemeUC>(DispatchThemeUC.type);\n }\n\n private get dispatchEnableFeature() {\n return this.getCachedLocalComponent<DispatchEnableFeatureUC>(\n DispatchEnableFeatureUC.type\n );\n }\n\n private get sandbox() {\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\n }\n\n start = (container: HTMLElement) => {\n if (!this.stateMachine) return;\n if (!this.dispatchStart) return;\n if (!this.editStateEntity) return;\n if (!this.sandbox) return;\n\n this.dispatchStart.doDispatch(container);\n\n let state;\n if (this.stateMachine.activeState) {\n state = this.stateMachine.getStateByID(\n this.stateMachine.activeState\n )?.stateData;\n }\n\n const hideNavigation = this.stateMachine.states.length <= 1;\n const hasNextSlide = this.stateMachine.nextState !== undefined;\n const hasPreviousSlide = this.stateMachine.previousState !== undefined;\n const dto: DispatchStateDTO = {\n finalState: state,\n hideNavigation,\n hasNextSlide,\n hasPreviousSlide\n };\n this.dispatchSetState?.doDispatch(dto);\n\n let isAuthoring = this.editStateEntity.isEditing;\n if (this.stateMachine.activeState === undefined) {\n isAuthoring = true;\n }\n this.dispatchSetIsAuthoring?.doDispatch(isAuthoring);\n\n this.dispatchThemeColors?.doDispatch();\n\n if (this.sandbox.enableDevFeatures) {\n this.sandbox.devFeatures.forEach((feature) => {\n this.dispatchEnableFeature?.doDispatch(feature);\n });\n }\n };\n\n constructor(appObject: AppObject) {\n super(appObject, StartAppUC.type);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StopAppUC.js","sourceRoot":"","sources":["../../../../src/Apps/UCs/StopAppUC.ts"],"names":[],"mappings":";;;AA0EA,sCAEC;AA5ED,sCAAoE;AACpE,8EAA2E;AAE3E;;;;;;;GAOG;AACH,MAAsB,SAAU,SAAQ,kBAAW;IAQjD;;;;;OAKG;IACH,MAAM,CAAC,GAAG,CAAC,SAAoB;QAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAY,SAAS,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,SAAS,CAAC,aAAa,CAAC,aAAa,CACnC,eAAe,EACf,0CAA0C,GAAG,SAAS,CAAC,EAAE,CAC1D,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,EAAU,EAAE,UAAyB;QAClD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,UAAU,CAAC,aAAa,CACtB,mBAAmB,EACnB,kCAAkC,GAAG,EAAE,CACxC,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,EAAU,EAAE,UAAyB;QACnD,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;;AAtDH,8BAuDC;AAtDQ,cAAI,GAAG,WAAW,CAAC;AAwD5B;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,SAAoB;IAChD,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,aAAc,SAAQ,SAAS;IACnC;;OAEG;IACH,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,uBAAuB,CACjC,qCAAiB,CAAC,IAAI,CACvB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectRepo, AppObjectUC } from \"@vived/core\";\
|
|
1
|
+
{"version":3,"file":"StopAppUC.js","sourceRoot":"","sources":["../../../../src/Apps/UCs/StopAppUC.ts"],"names":[],"mappings":";;;AA0EA,sCAEC;AA5ED,sCAAoE;AACpE,8EAA2E;AAE3E;;;;;;;GAOG;AACH,MAAsB,SAAU,SAAQ,kBAAW;IAQjD;;;;;OAKG;IACH,MAAM,CAAC,GAAG,CAAC,SAAoB;QAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAY,SAAS,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,SAAS,CAAC,aAAa,CAAC,aAAa,CACnC,eAAe,EACf,0CAA0C,GAAG,SAAS,CAAC,EAAE,CAC1D,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,EAAU,EAAE,UAAyB;QAClD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAErC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,UAAU,CAAC,aAAa,CACtB,mBAAmB,EACnB,kCAAkC,GAAG,EAAE,CACxC,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,EAAU,EAAE,UAAyB;QACnD,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;;AAtDH,8BAuDC;AAtDQ,cAAI,GAAG,WAAW,CAAC;AAwD5B;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,SAAoB;IAChD,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,aAAc,SAAQ,SAAS;IACnC;;OAEG;IACH,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,uBAAuB,CACjC,qCAAiB,CAAC,IAAI,CACvB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;CACF","sourcesContent":["import { AppObject, AppObjectRepo, AppObjectUC } from \"@vived/core\";\nimport { DispatchStopAppUC } from \"../../Dispatcher/UCs/DispatchStopAppUC\";\n\n/**\n * Use Case for stopping an application.\n *\n * This class provides functionality to stop a running app through the dispatcher\n * system. It acts as a bridge between controllers and the dispatch mechanism.\n *\n * @extends AppObjectUC from @vived/core\n */\nexport abstract class StopAppUC extends AppObjectUC {\n static type = \"StopAppUC\";\n\n /**\n * Stops the application associated with this Use Case.\n */\n abstract stop(): void;\n\n /**\n * Retrieves the StopAppUC component from a specific App Object.\n *\n * @param appObject - The App Object to get the component from\n * @returns The StopAppUC component or undefined if not found\n */\n static get(appObject: AppObject): StopAppUC | undefined {\n const asset = appObject.getComponent<StopAppUC>(StopAppUC.type);\n if (!asset) {\n appObject.appObjectRepo.submitWarning(\n \"StopAppUC.get\",\n \"Unable to find StartAppUC on app object \" + appObject.id\n );\n }\n return asset;\n }\n\n /**\n * Retrieves the StopAppUC 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 StopAppUC component or undefined if not found\n */\n static getByID(id: string, appObjects: AppObjectRepo): StopAppUC | undefined {\n const appObject = appObjects.get(id);\n\n if (!appObject) {\n appObjects.submitWarning(\n \"StopAppUC.getByID\",\n \"Unable to find App Object by id \" + id\n );\n return undefined;\n }\n\n return StopAppUC.get(appObject);\n }\n\n /**\n * Convenience method to stop an app by its ID.\n *\n * @param id - The ID of the app to stop\n * @param appObjects - The App Object repository\n */\n static stopByID(id: string, appObjects: AppObjectRepo) {\n StopAppUC.getByID(id, appObjects)?.stop();\n }\n}\n\n/**\n * Factory function to create a new StopAppUC instance.\n *\n * @param appObject - The App Object to attach the component to\n * @returns A new StopAppUC instance\n */\nexport function makeStopAppUC(appObject: AppObject): StopAppUC {\n return new StartAppUCImp(appObject);\n}\n\n/**\n * Concrete implementation of the StopAppUC abstract class.\n */\nclass StartAppUCImp extends StopAppUC {\n /**\n * Gets the dispatch component that sends the stop command to the app.\n */\n private get dispatchStop() {\n return this.getCachedLocalComponent<DispatchStopAppUC>(\n DispatchStopAppUC.type\n );\n }\n\n /**\n * Stops the app by triggering the dispatch mechanism.\n */\n stop(): void {\n this.dispatchStop?.doDispatch();\n }\n\n /**\n * Creates a new instance of the StopAppUC implementation.\n *\n * @param appObject - The App Object to attach to\n */\n constructor(appObject: AppObject) {\n super(appObject, StopAppUC.type);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Apps/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;;;;;;;;;;;;;;AAEH,6CAA2B;AAC3B,gDAA8B;AAC9B,6CAA2B;AAC3B,8CAA4B;AAC5B,0CAAwB;AACxB,wCAAsB;AACtB,wCAAsB","sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Apps/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;;;;;;;;;;;;;;AAEH,6CAA2B;AAC3B,gDAA8B;AAC9B,6CAA2B;AAC3B,8CAA4B;AAC5B,0CAAwB;AACxB,wCAAsB;AACtB,wCAAsB","sourcesContent":["/**\n * Apps Module - Core module for managing application lifecycle in the VIVED Learning platform\n *\n * This module handles app loading, mounting, starting, stopping, and state management.\n * It follows a clean architecture pattern with the following layers:\n *\n * - Entities: Core domain models (AppEntity, AppRepo)\n * - PMs (Presentation Models): Business logic and state management\n * - UCs (Use Cases): Implementation of specific operations\n * - Adapters: Connect PMs to UI components\n * - Controllers: Entry points for UI interactions\n *\n * To use this module, typically you would:\n * 1. Load an app using the AppEntity\n * 2. Mount the app using MounterUC\n * 3. Start the app using StartAppUC\n * 4. Manage app state via the AppPM or ActiveAppPM\n * 5. Stop the app using StopAppUC when done\n */\n\nexport * from \"./Adapters\";\nexport * from \"./Controllers\";\nexport * from \"./Entities\";\nexport * from \"./Factories\";\nexport * from \"./Mocks\";\nexport * from \"./PMs\";\nexport * from \"./UCs\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetPluginFeatureFactory.js","sourceRoot":"","sources":["../../../../src/AssetPlugin/Factories/AssetPluginFeatureFactory.ts"],"names":[],"mappings":";;;AA+FA,sEAKC;AApGD,sCAA+E;AAC/E,qCAA0D;AAC1D,iDAK0B;AAC1B,2CAKuB;AACvB,0CAAuE;AACvE,8BAA0C;AAC1C,gCAA2D;AAE3D,MAAM,gBAAgB,GAAG,qCAAqC,CAAC;AAC/D,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAEnC;;;;GAIG;AACH,MAAa,yBAA0B,SAAQ,oBAAa;IAM1D,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,CAAC,CAAC;QANnB,+BAA+B;QACtB,gBAAW,GAAG,2BAA2B,CAAC;IAMnD,CAAC;IAED;;OAEG;IACH,aAAa;QACX,sBAAsB;QACtB,IAAI,CAAC,WAAW,GAAG,IAAA,gCAAqB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzD,IAAA,+BAAqB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,IAAA,mCAAsB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,uBAAuB;QACvB,IAAA,oBAAa,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,IAAA,uCAAiC,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAElD,oBAAoB;QACpB,IAAA,8CAAiC,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,IAAA,kCAAqB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,IAAA,qCAAwB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEzC,iBAAiB;QACjB,IAAA,sCAA4B,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAA,gDAAsC,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,IAAA,sCAA4B,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,mCAAmC;QACnC,IAAA,sBAAiB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,UAAU;QACR,
|
|
1
|
+
{"version":3,"file":"AssetPluginFeatureFactory.js","sourceRoot":"","sources":["../../../../src/AssetPlugin/Factories/AssetPluginFeatureFactory.ts"],"names":[],"mappings":";;;AA+FA,sEAKC;AApGD,sCAA+E;AAC/E,qCAA0D;AAC1D,iDAK0B;AAC1B,2CAKuB;AACvB,0CAAuE;AACvE,8BAA0C;AAC1C,gCAA2D;AAE3D,MAAM,gBAAgB,GAAG,qCAAqC,CAAC;AAC/D,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAEnC;;;;GAIG;AACH,MAAa,yBAA0B,SAAQ,oBAAa;IAM1D,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,CAAC,CAAC;QANnB,+BAA+B;QACtB,gBAAW,GAAG,2BAA2B,CAAC;IAMnD,CAAC;IAED;;OAEG;IACH,aAAa;QACX,sBAAsB;QACtB,IAAI,CAAC,WAAW,GAAG,IAAA,gCAAqB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzD,IAAA,+BAAqB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,IAAA,mCAAsB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,uBAAuB;QACvB,IAAA,oBAAa,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,IAAA,uCAAiC,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAElD,oBAAoB;QACpB,IAAA,8CAAiC,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,IAAA,kCAAqB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtC,IAAA,qCAAwB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEzC,iBAAiB;QACjB,IAAA,sCAA4B,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAA,gDAAsC,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,IAAA,sCAA4B,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,mCAAmC;QACnC,IAAA,sBAAiB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,cAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAElE,MAAM,IAAI,GAAG,oBAAa,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CACR,mFAAmF,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAnED,8DAmEC;AAED,SAAgB,6BAA6B,CAC3C,UAAyB;IAEzB,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACpD,OAAO,IAAI,yBAAyB,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC","sourcesContent":["import { AppObject, AppObjectRepo, DomainFactory, Version } from \"@vived/core\";\nimport { AppRepoEntity, makeMounterUC } from \"../../Apps\";\nimport {\n makeDispatchDisposeAppUC,\n makeDispatchStartBrowseChannelsUC,\n makeDispatchStopAppUC,\n makeHostDispatchEntity\n} from \"../../Dispatcher\";\nimport {\n makeCloseAssetSystemPluginUC,\n makeGetAssetFolderURLHandler,\n makeHostHandlerEntity,\n makeRegisterExternalStyleSheetsHandler\n} from \"../../Handler\";\nimport { AssetPluginEntity, makeAssetPluginEntity } from \"../Entities\";\nimport { makeAssetPluginPM } from \"../PM\";\nimport { makeSandboxAssetPluginContainerUC } from \"../UCs\";\n\nconst assetPluginAppID = \"app448f8f293fbb493a9e233f113ce8b56a\";\nconst assetPluginVersion = \"1.2.0\";\n\n/**\n * Factory responsible for setting up the AssetPlugin domain components.\n * This factory initializes all entities, use cases, and presentation models\n * required for the AssetPlugin functionality.\n */\nexport class AssetPluginFeatureFactory extends DomainFactory {\n // Unique name for this factory\n readonly factoryName = \"AssetPluginFeatureFactory\";\n\n private assetPlugin?: AssetPluginEntity;\n\n constructor(appObject: AppObject) {\n super(appObject);\n }\n\n /**\n * Sets up all entities required for the AssetPlugin system\n */\n setupEntities(): void {\n // Initialize entities\n this.assetPlugin = makeAssetPluginEntity(this.appObject);\n makeHostHandlerEntity(this.appObject);\n makeHostDispatchEntity(this.appObject);\n }\n\n /**\n * Sets up all use cases for the AssetPlugin system\n */\n setupUCs(): void {\n // Initialize use cases\n makeMounterUC(this.appObject);\n makeSandboxAssetPluginContainerUC(this.appObject);\n\n // Setup dispatchers\n makeDispatchStartBrowseChannelsUC(this.appObject);\n makeDispatchStopAppUC(this.appObject);\n makeDispatchDisposeAppUC(this.appObject);\n\n // Setup handlers\n makeGetAssetFolderURLHandler(this.appObject);\n makeRegisterExternalStyleSheetsHandler(this.appObject);\n makeCloseAssetSystemPluginUC(this.appObject);\n }\n\n /**\n * Sets up all presentation managers for the AssetPlugin system\n */\n setupPMs(): void {\n // Initialize presentation managers\n makeAssetPluginPM(this.appObject);\n }\n\n /**\n * Performs any final setup operations after all components are initialized\n */\n finalSetup(): void {\n if (!this.assetPlugin) {\n this.error(\"AssetPlugin entity not initialized\");\n return;\n }\n\n this.assetPlugin.version = Version.FromString(assetPluginVersion);\n\n const repo = AppRepoEntity.get(this.appObjects);\n if (repo) {\n repo.add(this.assetPlugin.app);\n } else {\n this.error(\n \"Unable to find app repo. Make sure it is setup before setting up the Asset Plugin\"\n );\n }\n }\n}\n\nexport function makeAssetPluginFeatureFactory(\n appObjects: AppObjectRepo\n): AssetPluginFeatureFactory {\n const ao = appObjects.getOrCreate(assetPluginAppID);\n return new AssetPluginFeatureFactory(ao);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AssetPlugin/Factories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,gEAA8C","sourcesContent":["export * from \"./AssetPluginFeatureFactory\";\
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/AssetPlugin/Factories/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C;AAC5C,gEAA8C","sourcesContent":["export * from \"./AssetPluginFeatureFactory\";\nexport * from \"./setupAssetsPluginForSandbox\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assetFileAdapter.js","sourceRoot":"","sources":["../../../../src/Assets/Adapters/assetFileAdapter.ts"],"names":[],"mappings":";;;AAEA,oDAI4B;AAE5B;;;GAGG;AACU,QAAA,gBAAgB,GAA2B;IACtD;;OAEG;IACH,SAAS,EAAE,gCAAkB;IAE7B;;;;;;OAMG;IACH,SAAS,EAAE,CACT,EAAU,EACV,UAAyB,EACzB,KAAgC,EAChC,EAAE;QACF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,yBAAW,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,UAAU,CAAC,WAAW,CAAC,kBAAkB,EAAE,4BAA4B,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QACD,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,WAAW,EAAE,CACX,EAAU,EACV,UAAyB,EACzB,KAAgC,EAChC,EAAE;QACF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,yBAAW,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,UAAU,CAAC,WAAW,CAAC,kBAAkB,EAAE,4BAA4B,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QACD,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;CACF,CAAC","sourcesContent":["// filepath: c:\\Users\\amosp\\Documents\\WebGL\\vivedlearning_host\\src\\Assets\\Adapters\\assetFileAdapter.ts\
|
|
1
|
+
{"version":3,"file":"assetFileAdapter.js","sourceRoot":"","sources":["../../../../src/Assets/Adapters/assetFileAdapter.ts"],"names":[],"mappings":";;;AAEA,oDAI4B;AAE5B;;;GAGG;AACU,QAAA,gBAAgB,GAA2B;IACtD;;OAEG;IACH,SAAS,EAAE,gCAAkB;IAE7B;;;;;;OAMG;IACH,SAAS,EAAE,CACT,EAAU,EACV,UAAyB,EACzB,KAAgC,EAChC,EAAE;QACF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,yBAAW,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,UAAU,CAAC,WAAW,CAAC,kBAAkB,EAAE,4BAA4B,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QACD,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,WAAW,EAAE,CACX,EAAU,EACV,UAAyB,EACzB,KAAgC,EAChC,EAAE;QACF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO;QACT,CAAC;QACD,MAAM,EAAE,GAAG,yBAAW,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,UAAU,CAAC,WAAW,CAAC,kBAAkB,EAAE,4BAA4B,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QACD,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;CACF,CAAC","sourcesContent":["// filepath: c:\\Users\\amosp\\Documents\\WebGL\\vivedlearning_host\\src\\Assets\\Adapters\\assetFileAdapter.ts\nimport { AppObjectRepo, PmAdapter } from \"@vived/core\";\nimport {\n AssetFilePM,\n AssetFileVM,\n defaultAssetFileVM\n} from \"../PMs/AssetFilePM\";\n\n/**\n * Adapter for connecting AssetFilePM to UI components\n * Provides the interface for React components to subscribe to AssetFileVM updates\n */\nexport const assetFileAdapter: PmAdapter<AssetFileVM> = {\n /**\n * Default view model used before subscription is established\n */\n defaultVM: defaultAssetFileVM,\n\n /**\n * Subscribe a view function to updates from the presentation manager\n *\n * @param id - ID of the asset to observe\n * @param appObjects - Repository of app objects\n * @param setVM - Callback function that will receive view model updates\n */\n subscribe: (\n id: string,\n appObjects: AppObjectRepo,\n setVM: (vm: AssetFileVM) => void\n ) => {\n if (!id) {\n return;\n }\n const pm = AssetFilePM.getByID(id, appObjects);\n if (!pm) {\n appObjects.submitError(\"assetFileAdapter\", \"Unable to find AssetFilePM\");\n return;\n }\n pm.addView(setVM);\n },\n\n /**\n * Unsubscribe a view function from updates\n *\n * @param id - ID of the asset to stop observing\n * @param appObjects - Repository of app objects\n * @param setVM - Callback function to remove from updates\n */\n unsubscribe: (\n id: string,\n appObjects: AppObjectRepo,\n setVM: (vm: AssetFileVM) => void\n ) => {\n if (!id) {\n return;\n }\n const pm = AssetFilePM.getByID(id, appObjects);\n if (!pm) {\n appObjects.submitError(\"assetFileAdapter\", \"Unable to find AssetFilePM\");\n return;\n }\n pm.removeView(setVM);\n }\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiveAsset.js","sourceRoot":"","sources":["../../../../src/Assets/Controllers/archiveAsset.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAiBH,oCAYC;AA1BD,0DAAuD;AAEvD;;;;;;;;;;;GAWG;AACH,SAAgB,YAAY,CAC1B,OAAe,EACf,OAAgB,EAChB,UAAyB;IAEzB,MAAM,EAAE,GAAG,+BAAc,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAAC;QAC1E,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,OAAO,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC","sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"archiveAsset.js","sourceRoot":"","sources":["../../../../src/Assets/Controllers/archiveAsset.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAiBH,oCAYC;AA1BD,0DAAuD;AAEvD;;;;;;;;;;;GAWG;AACH,SAAgB,YAAY,CAC1B,OAAe,EACf,OAAgB,EAChB,UAAyB;IAEzB,MAAM,EAAE,GAAG,+BAAc,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAAC;QAC1E,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,OAAO,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC","sourcesContent":["/**\n * archiveAsset.ts\n *\n * This controller function handles archiving and unarchiving asset operations.\n * It provides a simple interface for managing asset visibility without permanently\n * deleting them from the system.\n *\n * Key Concepts:\n * - Archive operations are reversible soft-deletion mechanisms\n * - Archived assets are hidden from normal views but remain in the system\n * - Uses the ArchiveAssetUC to perform the actual business logic\n * - Provides error handling and validation for missing dependencies\n *\n * Usage Patterns:\n * - Called from UI components when users archive/unarchive assets\n * - Used by bulk operations for managing multiple assets\n * - Integrated with asset management workflows for organizational purposes\n */\n\nimport { AppObjectRepo } from \"@vived/core\";\nimport { ArchiveAssetUC } from \"../UCs/ArchiveAssetUC\";\n\n/**\n * Archives or unarchives an asset, making it hidden or visible in asset lists.\n *\n * This function provides a controller-level interface for asset archival operations,\n * abstracting the underlying use case logic and providing consistent error handling.\n *\n * @param assetID - The unique identifier of the asset to archive/unarchive\n * @param archive - True to archive the asset (hide it), false to unarchive (show it)\n * @param appObjects - Repository for accessing asset-related app objects and components\n * @returns Promise that resolves when the operation completes successfully\n * @throws Promise rejection if the ArchiveAssetUC component cannot be found\n */\nexport function archiveAsset(\n assetID: string,\n archive: boolean,\n appObjects: AppObjectRepo\n): Promise<void> {\n const uc = ArchiveAssetUC.get(assetID, appObjects);\n if (!uc) {\n appObjects.submitWarning(\"archiveAsset\", \"Unable to find ArchiveAssetUC\");\n return Promise.reject();\n }\n\n return uc.setArchived(archive);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deleteAsset.js","sourceRoot":"","sources":["../../../../src/Assets/Controllers/deleteAsset.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAiBH,kCAQC;AAtBD,wDAAqD;AAErD;;;;;;;;;;;GAWG;AACH,SAAgB,WAAW,CAAC,OAAe,EAAE,UAAyB;IACpE,MAAM,EAAE,GAAG,6BAAa,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,EAAE,CAAC,iBAAiB,EAAE,CAAC;AACzB,CAAC","sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"deleteAsset.js","sourceRoot":"","sources":["../../../../src/Assets/Controllers/deleteAsset.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAiBH,kCAQC;AAtBD,wDAAqD;AAErD;;;;;;;;;;;GAWG;AACH,SAAgB,WAAW,CAAC,OAAe,EAAE,UAAyB;IACpE,MAAM,EAAE,GAAG,6BAAa,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,EAAE,CAAC,iBAAiB,EAAE,CAAC;AACzB,CAAC","sourcesContent":["/**\n * deleteAsset.ts\n *\n * This controller function handles permanent asset deletion operations with user confirmation.\n * It provides a safe interface for removing assets from the system completely, including\n * built-in confirmation dialogs to prevent accidental data loss.\n *\n * Key Concepts:\n * - Permanent deletion removes assets completely from the system\n * - Includes confirmation prompts to prevent accidental deletions\n * - Uses DeleteAssetUC to handle the business logic and user interactions\n * - Provides error handling for missing dependencies\n *\n * Usage Patterns:\n * - Called from UI components when users request asset deletion\n * - Used in asset management workflows for cleanup operations\n * - Integrated with confirmation dialogs for user safety\n */\n\nimport { AppObjectRepo } from \"@vived/core\";\nimport { DeleteAssetUC } from \"../UCs/DeleteAssetUC\";\n\n/**\n * Initiates the deletion process for an asset with user confirmation.\n *\n * This function provides a controller-level interface for asset deletion operations.\n * It automatically handles user confirmation prompts through the underlying use case\n * to ensure users don't accidentally delete important assets.\n *\n * @param assetID - The unique identifier of the asset to delete\n * @param appObjects - Repository for accessing asset-related app objects and components\n * @returns void - The function initiates the deletion process but doesn't return a promise\n * as the confirmation dialog makes the operation inherently asynchronous\n */\nexport function deleteAsset(assetID: string, appObjects: AppObjectRepo) {\n const uc = DeleteAssetUC.get(assetID, appObjects);\n if (!uc) {\n appObjects.submitWarning(\"deleteAsset\", \"Unable to find DeleteAssetUC\");\n return;\n }\n\n uc.deleteWithConfirm();\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloadAssetFile.js","sourceRoot":"","sources":["../../../../src/Assets/Controllers/downloadAssetFile.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;AAiBH,8CAWC;AAzBD,oEAAiE;AAEjE;;;;;;;;;;;GAWG;AACH,SAAgB,iBAAiB,CAAC,OAAe,EAAE,UAAyB;IAC1E,MAAM,EAAE,GAAG,yCAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CACtB,aAAa,EACb,oCAAoC,CACrC,CAAC;QACF,OAAO;IACT,CAAC;IAED,EAAE,CAAC,QAAQ,EAAE,CAAC;AAChB,CAAC","sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"downloadAssetFile.js","sourceRoot":"","sources":["../../../../src/Assets/Controllers/downloadAssetFile.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;AAiBH,8CAWC;AAzBD,oEAAiE;AAEjE;;;;;;;;;;;GAWG;AACH,SAAgB,iBAAiB,CAAC,OAAe,EAAE,UAAyB;IAC1E,MAAM,EAAE,GAAG,yCAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CACtB,aAAa,EACb,oCAAoC,CACrC,CAAC;QACF,OAAO;IACT,CAAC;IAED,EAAE,CAAC,QAAQ,EAAE,CAAC;AAChB,CAAC","sourcesContent":["/**\n * downloadAssetFile.ts\n *\n * This controller function handles asset file download operations, triggering\n * browser downloads of asset files to the user's local system.\n *\n * Key Concepts:\n * - Initiates browser download of asset files to user's local storage\n * - Uses DownloadAssetFileUC to handle the underlying download logic\n * - Provides error handling for missing components\n * - Works with both local and remote asset files\n *\n * Usage Patterns:\n * - Called from UI components when users click download buttons\n * - Used in asset management workflows for file retrieval\n * - Integrated with asset viewers for quick file access\n */\n\nimport { AppObjectRepo } from \"@vived/core\";\nimport { DownloadAssetFileUC } from \"../UCs/DownloadAssetFileUC\";\n\n/**\n * Initiates a download of the asset's file to the user's local system.\n *\n * This function provides a controller-level interface for asset file downloads.\n * It triggers the browser's download mechanism to save the asset file locally,\n * handling both cached and remote file sources automatically.\n *\n * @param assetID - The unique identifier of the asset whose file should be downloaded\n * @param appObjects - Repository for accessing asset-related app objects and components\n * @returns void - The function initiates the download but doesn't return a promise\n * as the download operation is handled by the browser\n */\nexport function downloadAssetFile(assetID: string, appObjects: AppObjectRepo) {\n const uc = DownloadAssetFileUC.get(assetID, appObjects);\n if (!uc) {\n appObjects.submitWarning(\n \"deleteAsset\",\n \"Unable to find DownloadAssetFileUC\"\n );\n return;\n }\n\n uc.download();\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editAppAsset.js","sourceRoot":"","sources":["../../../../src/Assets/Controllers/editAppAsset.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;AAiBH,oCAQC;AAtBD,0DAAuD;AAEvD;;;;;;;;;;;GAWG;AACH,SAAgB,YAAY,CAAC,OAAe,EAAE,UAAyB;IACrE,MAAM,EAAE,GAAG,+BAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC","sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"editAppAsset.js","sourceRoot":"","sources":["../../../../src/Assets/Controllers/editAppAsset.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;AAiBH,oCAQC;AAtBD,0DAAuD;AAEvD;;;;;;;;;;;GAWG;AACH,SAAgB,YAAY,CAAC,OAAe,EAAE,UAAyB;IACrE,MAAM,EAAE,GAAG,+BAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC","sourcesContent":["/**\n * editAppAsset.ts\n *\n * This controller function initiates the asset editing workflow, transitioning\n * the application into editing mode for a specific asset.\n *\n * Key Concepts:\n * - Initiates asset editing workflows and UI state transitions\n * - Uses EditAppAssetUC to handle editing state management\n * - Provides error handling for missing components\n * - Coordinates with asset editing UI components\n *\n * Usage Patterns:\n * - Called from UI components when users click edit buttons\n * - Used in asset management workflows for content modification\n * - Integrated with asset editing dialogs and forms\n */\n\nimport { AppObjectRepo } from \"@vived/core\";\nimport { EditAppAssetUC } from \"../UCs/EditAppAssetUC\";\n\n/**\n * Initiates the editing workflow for a specific asset.\n *\n * This function provides a controller-level interface for starting asset editing operations.\n * It transitions the application into editing mode for the specified asset, typically\n * opening editing dialogs or forms where users can modify asset properties.\n *\n * @param assetID - The unique identifier of the asset to edit\n * @param appObjects - Repository for accessing asset-related app objects and components\n * @returns void - The function initiates the editing workflow but doesn't return a promise\n * as the editing process is managed through UI state changes\n */\nexport function editAppAsset(assetID: string, appObjects: AppObjectRepo) {\n const uc = EditAppAssetUC.get(appObjects);\n if (!uc) {\n appObjects.submitWarning(\"editAppAsset\", \"Unable to find EditAppAssetUC\");\n return;\n }\n\n uc.editAsset(assetID);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchAssetFile.js","sourceRoot":"","sources":["../../../../src/Assets/Controllers/fetchAssetFile.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;AAiBH,wCAWC;AAzBD,0DAAuD;AAEvD;;;;;;;;;;;GAWG;AACH,SAAgB,cAAc,CAC5B,OAAe,EACf,UAAyB;IAEzB,MAAM,EAAE,GAAG,+BAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;QAC5E,OAAO;IACT,CAAC;IAED,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC","sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"fetchAssetFile.js","sourceRoot":"","sources":["../../../../src/Assets/Controllers/fetchAssetFile.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;AAiBH,wCAWC;AAzBD,0DAAuD;AAEvD;;;;;;;;;;;GAWG;AACH,SAAgB,cAAc,CAC5B,OAAe,EACf,UAAyB;IAEzB,MAAM,EAAE,GAAG,+BAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,CAAC;QAC5E,OAAO;IACT,CAAC;IAED,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC","sourcesContent":["/**\n * fetchAssetFile.ts\n *\n * This controller function retrieves an asset file as a File object,\n * handling caching and error management for file access operations.\n *\n * Key Concepts:\n * - Retrieves asset files as File objects for download or processing\n * - Uses GetAssetFileUC to handle caching and file retrieval logic\n * - Provides error handling for missing components\n * - Coordinates with asset file management workflows\n *\n * Usage Patterns:\n * - Called from UI components when users need asset file access\n * - Used in asset management workflows for file processing\n * - Integrated with download and preview functionality\n */\n\nimport { AppObjectRepo } from \"@vived/core\";\nimport { GetAssetFileUC } from \"../UCs/GetAssetFileUC\";\n\n/**\n * Retrieves an asset file as a File object.\n *\n * This function provides a controller-level interface for asset file retrieval.\n * It handles the complete file access workflow including caching optimization,\n * error handling, and returns a File object ready for use in web applications.\n *\n * @param assetID - The unique identifier of the asset whose file should be retrieved\n * @param appObjects - Repository for accessing asset-related app objects and components\n * @returns Promise<File> - A promise that resolves to the File object for the asset,\n * or undefined if the operation cannot be completed\n */\nexport function fetchAssetFile(\n assetID: string,\n appObjects: AppObjectRepo\n): Promise<File> | undefined {\n const uc = GetAssetFileUC.get(appObjects);\n if (!uc) {\n appObjects.submitWarning(\"fetchAssetFile\", \"Unable to find GetAssetFileUC\");\n return;\n }\n\n return uc.getAssetFile(assetID);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAppAssets.js","sourceRoot":"","sources":["../../../../src/Assets/Controllers/getAppAssets.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;AAiBH,oCAQC;AAtBD,0DAAuD;AAEvD;;;;;;;;;;;GAWG;AACH,SAAgB,YAAY,CAAC,KAAa,EAAE,UAAyB;IACnE,MAAM,EAAE,GAAG,+BAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC","sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"getAppAssets.js","sourceRoot":"","sources":["../../../../src/Assets/Controllers/getAppAssets.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;AAiBH,oCAQC;AAtBD,0DAAuD;AAEvD;;;;;;;;;;;GAWG;AACH,SAAgB,YAAY,CAAC,KAAa,EAAE,UAAyB;IACnE,MAAM,EAAE,GAAG,+BAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,UAAU,CAAC,aAAa,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC","sourcesContent":["/**\n * getAppAssets.ts\n *\n * This controller function initiates the retrieval of assets associated with a specific application.\n * It triggers the loading and display of all assets that belong to or are used by a particular app.\n *\n * Key Concepts:\n * - Retrieves and loads assets associated with a specific application\n * - Uses GetAppAssetsUC to handle the asset fetching and filtering logic\n * - Provides error handling for missing components\n * - Updates asset collections and UI displays automatically\n *\n * Usage Patterns:\n * - Called when loading an application's asset workspace\n * - Used in asset management interfaces to filter by application\n * - Integrated with application switching workflows\n */\n\nimport { AppObjectRepo } from \"@vived/core\";\nimport { GetAppAssetsUC } from \"../UCs/GetAppAssetsUC\";\n\n/**\n * Retrieves and loads all assets associated with a specific application.\n *\n * This function provides a controller-level interface for fetching application-specific assets.\n * It triggers the loading of all assets that belong to or are used by the specified application,\n * updating asset collections and UI displays accordingly.\n *\n * @param appID - The unique identifier of the application whose assets should be retrieved\n * @param appObjects - Repository for accessing asset-related app objects and components\n * @returns void - The function initiates the asset retrieval but doesn't return a promise\n * as the loading process is managed through UI state updates\n */\nexport function getAppAssets(appID: string, appObjects: AppObjectRepo) {\n const uc = GetAppAssetsUC.get(appObjects);\n if (!uc) {\n appObjects.submitWarning(\"getAppAssets\", \"Unable to find GetAppAssetsUC\");\n return;\n }\n\n uc.getAppAssets(appID);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Assets/Controllers/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;;;;;;;;;;;;;;AAEH,iDAA+B;AAC/B,gDAA8B;AAC9B,sDAAoC;AACpC,iDAA+B;AAC/B,mDAAiC;AACjC,iDAA+B;AAC/B,gDAA8B;AAC9B,6DAA2C;AAC3C,uDAAqC;AACrC,oDAAkC","sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Assets/Controllers/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;;;;;;;;;;;;;;AAEH,iDAA+B;AAC/B,gDAA8B;AAC9B,sDAAoC;AACpC,iDAA+B;AAC/B,mDAAiC;AACjC,iDAA+B;AAC/B,gDAA8B;AAC9B,6DAA2C;AAC3C,uDAAqC;AACrC,oDAAkC","sourcesContent":["/**\n * Assets Controllers Index\n *\n * This module exports all controller functions for the Assets feature.\n * Controllers provide simple, stateless functions that serve as entry points\n * for asset-related operations from UI components and external systems.\n *\n * Key Concepts:\n * - Controllers act as the interface layer between UI components and business logic\n * - Each controller function handles a specific asset operation\n * - Controllers delegate to Use Cases (UCs) for actual business logic implementation\n * - Error handling and validation are performed at the controller level\n *\n * Available Operations:\n * - Asset lifecycle: create, edit, delete, archive\n * - File management: upload, download, update\n * - Collection management: get app assets, toggle archived visibility\n * - Metadata management: update asset information\n */\n\nexport * from \"./archiveAsset\";\nexport * from \"./deleteAsset\";\nexport * from \"./downloadAssetFile\";\nexport * from \"./editAppAsset\";\nexport * from \"./fetchAssetFile\";\nexport * from \"./getAppAssets\";\nexport * from \"./newAppAsset\";\nexport * from \"./toggleShowArchivedAssets\";\nexport * from \"./updateAppAssetMeta\";\nexport * from \"./updateAssetFile\";\n"]}
|