@vived/host 5.8.1 → 5.9.0
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.map +1 -1
- package/dist/cjs/AppSandbox/Adapters/devFeaturesEnabledAdapter.js.map +1 -1
- package/dist/cjs/AppSandbox/Adapters/sandboxStateAdapter.js.map +1 -1
- package/dist/cjs/AppSandbox/Adapters/showInspectorAdapter.js.map +1 -1
- package/dist/cjs/AppSandbox/Adapters/startInZSpaceAdapter.js.map +1 -1
- package/dist/cjs/AppSandbox/Controller/clearSandboxAppContainer.js.map +1 -1
- package/dist/cjs/AppSandbox/Controller/mountSandboxApp.js.map +1 -1
- package/dist/cjs/AppSandbox/Controller/setBabylonInspectorSupported.js.map +1 -1
- package/dist/cjs/AppSandbox/Controller/setSandboxAppContainer.js.map +1 -1
- package/dist/cjs/AppSandbox/Controller/setSandboxAppState.js.map +1 -1
- package/dist/cjs/AppSandbox/Controller/startSandboxApp.js.map +1 -1
- package/dist/cjs/AppSandbox/Controller/stopSandboxApp.js.map +1 -1
- package/dist/cjs/AppSandbox/Controller/toggleAllowDevFeatures.js.map +1 -1
- package/dist/cjs/AppSandbox/Controller/toggleShowInspector.js.map +1 -1
- package/dist/cjs/AppSandbox/Controller/toggleStartInZSpace.js.map +1 -1
- package/dist/cjs/AppSandbox/Controller/unmountSandboxApp.js.map +1 -1
- package/dist/cjs/AppSandbox/Entities/index.js.map +1 -1
- package/dist/cjs/AppSandbox/Factories/index.js.map +1 -1
- package/dist/cjs/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.js.map +1 -1
- package/dist/cjs/AppSandbox/Mocks/DevFeaturesEnabledPMMock.js.map +1 -1
- package/dist/cjs/AppSandbox/Mocks/MockShowBabylonInspectorUC.js.map +1 -1
- package/dist/cjs/AppSandbox/Mocks/RenderAppPMMock.js.map +1 -1
- package/dist/cjs/AppSandbox/Mocks/ShowInspectorPMMock.js.map +1 -1
- package/dist/cjs/AppSandbox/Mocks/StartInZSpacePMMock.js.map +1 -1
- package/dist/cjs/AppSandbox/PMs/BabylonInspectorSupportedPM.js.map +1 -1
- package/dist/cjs/AppSandbox/PMs/DevFeaturesEnabledPM.js.map +1 -1
- package/dist/cjs/AppSandbox/PMs/SandboxStatePM.js.map +1 -1
- package/dist/cjs/AppSandbox/PMs/ShowInspectorPM.js.map +1 -1
- package/dist/cjs/AppSandbox/PMs/StartInZSpacePM.js.map +1 -1
- package/dist/cjs/AppSandbox/UCs/ShowBabylonInspectorUC.js.map +1 -1
- package/dist/cjs/AppSandbox/UCs/submitActivityAssetHandlerSandbox.js +5 -1
- package/dist/cjs/AppSandbox/UCs/submitActivityAssetHandlerSandbox.js.map +1 -1
- package/dist/cjs/AppSandbox/index.js.map +1 -1
- package/dist/cjs/Apps/Adapters/activeAppPMAdapter.js.map +1 -1
- package/dist/cjs/Apps/Adapters/appListPMAdapter.js.map +1 -1
- package/dist/cjs/Apps/Adapters/appPMAdapter.js.map +1 -1
- package/dist/cjs/Apps/Adapters/index.js.map +1 -1
- package/dist/cjs/Apps/Controllers/index.js.map +1 -1
- package/dist/cjs/Apps/Controllers/updateApp.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/Entities/index.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/Mocks/MockActiveAppPM.js.map +1 -1
- package/dist/cjs/Apps/Mocks/MockAppListPM.js.map +1 -1
- package/dist/cjs/Apps/Mocks/MockAppMounterUC.js.map +1 -1
- package/dist/cjs/Apps/Mocks/MockAppPM.js.map +1 -1
- package/dist/cjs/Apps/Mocks/MockStartAppUC.js.map +1 -1
- package/dist/cjs/Apps/Mocks/MockStopAppUC.js.map +1 -1
- package/dist/cjs/Apps/Mocks/MockUpdateAppUC.js.map +1 -1
- package/dist/cjs/Apps/Mocks/index.js.map +1 -1
- package/dist/cjs/Apps/PMs/ActiveAppPM.js.map +1 -1
- package/dist/cjs/Apps/PMs/AppPM.js.map +1 -1
- package/dist/cjs/Apps/PMs/AppsListPM.js.map +1 -1
- package/dist/cjs/Apps/PMs/index.js.map +1 -1
- package/dist/cjs/Apps/UCs/Mounters/MounterUC.js.map +1 -1
- package/dist/cjs/Apps/UCs/Mounters/SandboxMounterUC.js.map +1 -1
- package/dist/cjs/Apps/UCs/Mounters/index.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/UCs/UpdateAppUC.js.map +1 -1
- package/dist/cjs/Apps/UCs/formAppIDWithVersion.js.map +1 -1
- package/dist/cjs/Apps/UCs/index.js.map +1 -1
- package/dist/cjs/Apps/index.js.map +1 -1
- package/dist/cjs/AssetPlugin/Adapters/assetPluginPMAdapter.js.map +1 -1
- package/dist/cjs/AssetPlugin/Adapters/index.js.map +1 -1
- package/dist/cjs/AssetPlugin/Controllers/clearAssetPluginContainer.js.map +1 -1
- package/dist/cjs/AssetPlugin/Controllers/index.js.map +1 -1
- package/dist/cjs/AssetPlugin/Controllers/setAssetPluginContainer.js.map +1 -1
- package/dist/cjs/AssetPlugin/Entities/AssetPluginEntity.js.map +1 -1
- package/dist/cjs/AssetPlugin/Entities/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/AssetPlugin/Factories/setupAssetsPluginForSandbox.js.map +1 -1
- package/dist/cjs/AssetPlugin/Mocks/MockAssetPluginContainerUC.js.map +1 -1
- package/dist/cjs/AssetPlugin/Mocks/MockAssetPluginPM.js.map +1 -1
- package/dist/cjs/AssetPlugin/Mocks/index.js.map +1 -1
- package/dist/cjs/AssetPlugin/PM/AssetPluginPM.js.map +1 -1
- package/dist/cjs/AssetPlugin/PM/index.js.map +1 -1
- package/dist/cjs/AssetPlugin/UCs/AssetPluginContainerUC.js.map +1 -1
- package/dist/cjs/AssetPlugin/UCs/SandboxAssetPluginContainerUC.js.map +1 -1
- package/dist/cjs/AssetPlugin/UCs/index.js.map +1 -1
- package/dist/cjs/AssetPlugin/index.js.map +1 -1
- package/dist/cjs/Assets/Adapters/appAssetListAdapter.js.map +1 -1
- package/dist/cjs/Assets/Adapters/assetAdapter.js.map +1 -1
- package/dist/cjs/Assets/Adapters/assetFileAdapter.js.map +1 -1
- package/dist/cjs/Assets/Adapters/editingAppAssetAdapter.js.map +1 -1
- package/dist/cjs/Assets/Adapters/index.js.map +1 -1
- package/dist/cjs/Assets/Adapters/showArchivedAppAssetAdapter.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/Entities/index.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/Factories/setupAssetsForSandbox.js.map +1 -1
- package/dist/cjs/Assets/Mocks/AppAssetListPMMock.js.map +1 -1
- package/dist/cjs/Assets/Mocks/AssetFilePMMock.js.map +1 -1
- package/dist/cjs/Assets/Mocks/AssetPMMock.js.map +1 -1
- package/dist/cjs/Assets/Mocks/EditingAppAssetPMMock.js.map +1 -1
- package/dist/cjs/Assets/Mocks/MockArchiveAsset.js.map +1 -1
- package/dist/cjs/Assets/Mocks/MockDeleteAssetUC.js.map +1 -1
- package/dist/cjs/Assets/Mocks/MockDownloadAssetFileUC.js.map +1 -1
- package/dist/cjs/Assets/Mocks/MockEditAppAssetUC.js.map +1 -1
- package/dist/cjs/Assets/Mocks/MockGetAppAssetsUC.js.map +1 -1
- package/dist/cjs/Assets/Mocks/MockGetAssetBlobURLUC.js.map +1 -1
- package/dist/cjs/Assets/Mocks/MockGetAssetFileUC.js.map +1 -1
- package/dist/cjs/Assets/Mocks/MockGetAssetUC.js.map +1 -1
- package/dist/cjs/Assets/Mocks/MockNewAppAsset.js.map +1 -1
- package/dist/cjs/Assets/Mocks/MockNewAssetUC.js.map +1 -1
- package/dist/cjs/Assets/Mocks/MockPrefetchAssets.js.map +1 -1
- package/dist/cjs/Assets/Mocks/MockUpdateAppAssetMetaUC.js.map +1 -1
- package/dist/cjs/Assets/Mocks/MockUpdateAssetFileUC.js.map +1 -1
- package/dist/cjs/Assets/Mocks/ShowArchivedAppAssetPMMock.js.map +1 -1
- package/dist/cjs/Assets/Mocks/index.js.map +1 -1
- package/dist/cjs/Assets/PMs/AppAssetListPM.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/EditingAppAssetPM.js.map +1 -1
- package/dist/cjs/Assets/PMs/ShowArchivedAppAssetPM.js.map +1 -1
- package/dist/cjs/Assets/PMs/index.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/GetAppAssetsUC.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/NewAssetUC.js +3 -2
- package/dist/cjs/Assets/UCs/NewAssetUC.js.map +1 -1
- package/dist/cjs/Assets/UCs/PrefetchAssetsUC.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/Assets/index.js.map +1 -1
- package/dist/cjs/Cache/Controllers/clearCache.js.map +1 -1
- package/dist/cjs/Cache/Controllers/index.js.map +1 -1
- package/dist/cjs/Cache/Entities/AssetCacheEntity.js.map +1 -1
- package/dist/cjs/Cache/Entities/CacheEntity.js.map +1 -1
- package/dist/cjs/Cache/Entities/ScriptCacheEntity.js.map +1 -1
- package/dist/cjs/Cache/Entities/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/Cache/Factories/setupCache.js.map +1 -1
- package/dist/cjs/Cache/Mocks/MockCacheEntity.js.map +1 -1
- package/dist/cjs/Cache/Mocks/MockGetAssetFromCacheUC.js.map +1 -1
- package/dist/cjs/Cache/Mocks/MockGetScriptFromCacheUC.js.map +1 -1
- package/dist/cjs/Cache/Mocks/MockStoreAssetInCacheUC.js.map +1 -1
- package/dist/cjs/Cache/Mocks/MockStoreScriptInCacheUC.js.map +1 -1
- package/dist/cjs/Cache/Mocks/index.js.map +1 -1
- package/dist/cjs/Cache/UCs/GetAssetFromCacheUC.js.map +1 -1
- package/dist/cjs/Cache/UCs/GetScriptFromCacheUC.js.map +1 -1
- package/dist/cjs/Cache/UCs/StoreAssetInCacheUC.js.map +1 -1
- package/dist/cjs/Cache/UCs/StoreScriptInCacheUC.js.map +1 -1
- package/dist/cjs/Cache/UCs/index.js.map +1 -1
- package/dist/cjs/Cache/index.js.map +1 -1
- package/dist/cjs/ChallengeResults/Adapters/challengeResultsListAdapter.js.map +1 -1
- package/dist/cjs/ChallengeResults/Adapters/challengeScoreListAdapter.js.map +1 -1
- package/dist/cjs/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.js.map +1 -1
- package/dist/cjs/ChallengeResults/Adapters/index.js.map +1 -1
- package/dist/cjs/ChallengeResults/Entities/ChallengeResults.js.map +1 -1
- package/dist/cjs/ChallengeResults/Entities/index.js.map +1 -1
- package/dist/cjs/ChallengeResults/Factories/ChallengeResultsFactory.js.map +1 -1
- package/dist/cjs/ChallengeResults/Factories/index.js.map +1 -1
- package/dist/cjs/ChallengeResults/Factories/setupChallengeResults.js.map +1 -1
- package/dist/cjs/ChallengeResults/Mocks/ChallengeResultsListPMMock.js.map +1 -1
- package/dist/cjs/ChallengeResults/Mocks/MockChallengeScoreListPM.js.map +1 -1
- package/dist/cjs/ChallengeResults/Mocks/MockHasChallengeResultsPM.js.map +1 -1
- package/dist/cjs/ChallengeResults/Mocks/index.js.map +1 -1
- package/dist/cjs/ChallengeResults/PMs/ChallengeResultsListPM.js.map +1 -1
- package/dist/cjs/ChallengeResults/PMs/ChallengeScoreListPM.js.map +1 -1
- package/dist/cjs/ChallengeResults/PMs/HasChallengeResultsPM.js.map +1 -1
- package/dist/cjs/ChallengeResults/PMs/index.js.map +1 -1
- package/dist/cjs/ChallengeResults/index.js.map +1 -1
- package/dist/cjs/Dialog/Adapters/alertDialogAdapter.js.map +1 -1
- package/dist/cjs/Dialog/Adapters/confirmDialogAdapter.js.map +1 -1
- package/dist/cjs/Dialog/Adapters/dialogQueueAdapter.js.map +1 -1
- package/dist/cjs/Dialog/Adapters/index.js.map +1 -1
- package/dist/cjs/Dialog/Adapters/markDownEditorDialogAdapters.js.map +1 -1
- package/dist/cjs/Dialog/Adapters/spinnerDialogAdapter.js.map +1 -1
- package/dist/cjs/Dialog/Controllers/activeDialogHasClosed.js.map +1 -1
- package/dist/cjs/Dialog/Controllers/index.js.map +1 -1
- package/dist/cjs/Dialog/Entities/Alert.js.map +1 -1
- package/dist/cjs/Dialog/Entities/Confirm.js.map +1 -1
- package/dist/cjs/Dialog/Entities/MarkDownEditor.js.map +1 -1
- package/dist/cjs/Dialog/Entities/SelectModel.js.map +1 -1
- package/dist/cjs/Dialog/Entities/Spinner.js.map +1 -1
- package/dist/cjs/Dialog/Entities/index.js.map +1 -1
- package/dist/cjs/Dialog/Factories/SandboxDialogFactory.js.map +1 -1
- package/dist/cjs/Dialog/Factories/alertDialogFactory.js.map +1 -1
- package/dist/cjs/Dialog/Factories/confirmDialogFactory.js.map +1 -1
- package/dist/cjs/Dialog/Factories/index.js.map +1 -1
- package/dist/cjs/Dialog/Factories/markdownDialogEditorFactory.js.map +1 -1
- package/dist/cjs/Dialog/Factories/selectDialogModelFactory.js.map +1 -1
- package/dist/cjs/Dialog/Factories/setupDialogForSandbox.js.map +1 -1
- package/dist/cjs/Dialog/Factories/spinnerDialogFactory.js.map +1 -1
- package/dist/cjs/Dialog/Mocks/MockAlertDialogPM.js.map +1 -1
- package/dist/cjs/Dialog/Mocks/MockConfirmDialogPM.js.map +1 -1
- package/dist/cjs/Dialog/Mocks/MockDialogQueuePM.js.map +1 -1
- package/dist/cjs/Dialog/Mocks/MockMakeAlertDialogUC.js.map +1 -1
- package/dist/cjs/Dialog/Mocks/MockMakeConfirmDialogUC.js.map +1 -1
- package/dist/cjs/Dialog/Mocks/MockMakeMarkdownDialogUC.js.map +1 -1
- package/dist/cjs/Dialog/Mocks/MockMakeSelectModelDialogUC.js.map +1 -1
- package/dist/cjs/Dialog/Mocks/MockMakeSpinnerDialogUC.js.map +1 -1
- package/dist/cjs/Dialog/Mocks/MockMarkDownEditorDialogPM.js.map +1 -1
- package/dist/cjs/Dialog/Mocks/MockSpinnerDialogPM.js.map +1 -1
- package/dist/cjs/Dialog/Mocks/index.js.map +1 -1
- package/dist/cjs/Dialog/PMs/AlertDialogPM.js.map +1 -1
- package/dist/cjs/Dialog/PMs/ConfirmDialogPM.js.map +1 -1
- package/dist/cjs/Dialog/PMs/DialogQueuePM.js.map +1 -1
- package/dist/cjs/Dialog/PMs/MarkDownEditorDialogPM.js.map +1 -1
- package/dist/cjs/Dialog/PMs/SpinnerDialogPM.js.map +1 -1
- package/dist/cjs/Dialog/PMs/index.js.map +1 -1
- package/dist/cjs/Dialog/UCs/MakeAlertDialogUC.js.map +1 -1
- package/dist/cjs/Dialog/UCs/MakeConfirmDialogUC.js.map +1 -1
- package/dist/cjs/Dialog/UCs/MakeMarkdownDialogUC.js.map +1 -1
- package/dist/cjs/Dialog/UCs/MakeSelectModelDialogUC.js.map +1 -1
- package/dist/cjs/Dialog/UCs/MakeSpinnerDialogUC.js.map +1 -1
- package/dist/cjs/Dialog/UCs/index.js.map +1 -1
- package/dist/cjs/Dialog/index.js.map +1 -1
- package/dist/cjs/Dispatcher/Entities/index.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/DispatchEnableFeatureUCMock.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockDispatchAppDispatcherUC.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockDispatchIsAuthoringUC.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockDispatchSetStateUC.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockDispatchShowBabylonInspectorUC.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockDispatchStartAppUC.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockDispatchStartBrowseChannelsUC.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockDispatchStartZSpaceUC.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockDispatchStopAppUC.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockDispatchStopZSpaceUC.js.map +1 -1
- package/dist/cjs/Dispatcher/Mocks/MockDispatchThemeUC.js.map +1 -1
- package/dist/cjs/Dispatcher/UCs/DispatchDisposeAppUC.js.map +1 -1
- package/dist/cjs/Dispatcher/UCs/DispatchEnableFeatureUC.js.map +1 -1
- package/dist/cjs/Dispatcher/UCs/DispatchIsAuthoringUC.js.map +1 -1
- package/dist/cjs/Dispatcher/UCs/DispatchSetStateUC.js.map +1 -1
- package/dist/cjs/Dispatcher/UCs/DispatchShowBabylonInspectorUC.js.map +1 -1
- package/dist/cjs/Dispatcher/UCs/DispatchStartAppUC.js.map +1 -1
- package/dist/cjs/Dispatcher/UCs/DispatchStartBrowseChannelsUC.js.map +1 -1
- package/dist/cjs/Dispatcher/UCs/DispatchStartZSpaceUC.js.map +1 -1
- package/dist/cjs/Dispatcher/UCs/DispatchStopAppUC.js.map +1 -1
- package/dist/cjs/Dispatcher/UCs/DispatchStopZSpaceUC.js.map +1 -1
- package/dist/cjs/Dispatcher/index.js.map +1 -1
- package/dist/cjs/Events/Types/EventTypes.js.map +1 -1
- package/dist/cjs/Events/Types/PayloadTypes.js.map +1 -1
- package/dist/cjs/Events/Types/index.js.map +1 -1
- package/dist/cjs/Events/index.js.map +1 -1
- package/dist/cjs/Handler/Entities/index.js.map +1 -1
- package/dist/cjs/Handler/UCs/CallbackAssetDTO.js.map +1 -1
- package/dist/cjs/Handler/UCs/CloseAssetSystemPlugin.js.map +1 -1
- package/dist/cjs/Handler/UCs/GetAssetBlobURLHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/GetAssetFolderURLHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/GetAssetMetaHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/GetAssetsForOwnerHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/GetLinkedAssetsHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/GoToNextStateHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/GoToPreviousStateHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/HasNextStateHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/HasPreviousStateHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/IsAssetFetchedHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/IsZSpaceAvailableHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/NewActivityAssetHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/OnAppIsReadyHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/OnStateChangeHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/OnStateCompleteHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/RegisterExternalStyleSheetsHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/RestoreCurrentStateHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/ShowAlertHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/ShowConfirmHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/ShowMarkDownEditorHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/ShowSelectModelHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/ShowSpinnerHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/StartZSpaceHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/StopZSpaceHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/SubmitActivityAssetHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/SubmitLogHandler.js.map +1 -1
- package/dist/cjs/Handler/UCs/SubmitResultHandler.js.map +1 -1
- package/dist/cjs/Handler/index.js.map +1 -1
- package/dist/cjs/Logger/Adapters/fatalErrorAdapter.js.map +1 -1
- package/dist/cjs/Logger/Adapters/forwardLogsToConsoleAdapter.js.map +1 -1
- package/dist/cjs/Logger/Adapters/index.js.map +1 -1
- package/dist/cjs/Logger/Adapters/logSummaryAdapter.js.map +1 -1
- package/dist/cjs/Logger/Controllers/clickDownloadLog.js.map +1 -1
- package/dist/cjs/Logger/Controllers/index.js.map +1 -1
- package/dist/cjs/Logger/Controllers/toggleForwardLogs.js.map +1 -1
- package/dist/cjs/Logger/Entities/LoggerEntity.js.map +1 -1
- package/dist/cjs/Logger/Entities/index.js.map +1 -1
- package/dist/cjs/Logger/Factories/SandboxLoggerFactory.js.map +1 -1
- package/dist/cjs/Logger/Factories/index.js.map +1 -1
- package/dist/cjs/Logger/Factories/setupLoggerForSandbox.js.map +1 -1
- package/dist/cjs/Logger/Mocks/ForwardLogsToConsolePMMock.js.map +1 -1
- package/dist/cjs/Logger/Mocks/LogSummaryPMMock.js.map +1 -1
- package/dist/cjs/Logger/Mocks/MockDownloadLogUC.js.map +1 -1
- package/dist/cjs/Logger/Mocks/MockFatalErrorPM.js.map +1 -1
- package/dist/cjs/Logger/Mocks/index.js.map +1 -1
- package/dist/cjs/Logger/PMs/FatalErrorPM.js.map +1 -1
- package/dist/cjs/Logger/PMs/ForwardLogsToConsolePM.js.map +1 -1
- package/dist/cjs/Logger/PMs/LogSummaryPM.js.map +1 -1
- package/dist/cjs/Logger/PMs/index.js.map +1 -1
- package/dist/cjs/Logger/UCs/DownloadLogUC.js.map +1 -1
- package/dist/cjs/Logger/UCs/index.js.map +1 -1
- package/dist/cjs/Logger/index.js.map +1 -1
- package/dist/cjs/Snackbar/Adapters/index.js.map +1 -1
- package/dist/cjs/Snackbar/Adapters/snackbarAdapter.js.map +1 -1
- package/dist/cjs/Snackbar/Controllers/callActiveSnackbarAction.js.map +1 -1
- package/dist/cjs/Snackbar/Controllers/dismissActiveSnackbar.js.map +1 -1
- package/dist/cjs/Snackbar/Controllers/index.js.map +1 -1
- package/dist/cjs/Snackbar/Controllers/makeSnackbar.js.map +1 -1
- package/dist/cjs/Snackbar/Entities/SnackbarRepo.js.map +1 -1
- package/dist/cjs/Snackbar/Entities/index.js.map +1 -1
- package/dist/cjs/Snackbar/Factories/index.js.map +1 -1
- package/dist/cjs/Snackbar/Factories/setupSnackbar.js.map +1 -1
- package/dist/cjs/Snackbar/Mocks/SnackbarPMMock.js.map +1 -1
- package/dist/cjs/Snackbar/Mocks/index.js.map +1 -1
- package/dist/cjs/Snackbar/PMs/SnackbarPM.js.map +1 -1
- package/dist/cjs/Snackbar/PMs/index.js.map +1 -1
- package/dist/cjs/Snackbar/index.js.map +1 -1
- package/dist/cjs/StateMachine/Adapters/editingStateAdapter.js.map +1 -1
- package/dist/cjs/StateMachine/Adapters/hostStateAdapter.js.map +1 -1
- package/dist/cjs/StateMachine/Adapters/hostStateMachinePMAdapter.js.map +1 -1
- package/dist/cjs/StateMachine/Adapters/index.js.map +1 -1
- package/dist/cjs/StateMachine/Controllers/cancelEditing.js.map +1 -1
- package/dist/cjs/StateMachine/Controllers/consumeState.js.map +1 -1
- package/dist/cjs/StateMachine/Controllers/deleteState.js.map +1 -1
- package/dist/cjs/StateMachine/Controllers/duplicateState.js.map +1 -1
- package/dist/cjs/StateMachine/Controllers/editActiveState.js.map +1 -1
- package/dist/cjs/StateMachine/Controllers/editState.js.map +1 -1
- package/dist/cjs/StateMachine/Controllers/editStateName.js.map +1 -1
- package/dist/cjs/StateMachine/Controllers/endActivity.js.map +1 -1
- package/dist/cjs/StateMachine/Controllers/index.js.map +1 -1
- package/dist/cjs/StateMachine/Controllers/newState.js.map +1 -1
- package/dist/cjs/StateMachine/Controllers/saveAuthoring.js.map +1 -1
- package/dist/cjs/StateMachine/Controllers/savePersistentStates.js.map +1 -1
- package/dist/cjs/StateMachine/Controllers/setTransitionDuration.js.map +1 -1
- package/dist/cjs/StateMachine/Controllers/transitionToState.js.map +1 -1
- package/dist/cjs/StateMachine/Entities/HostEditingStateEntity.js.map +1 -1
- package/dist/cjs/StateMachine/Entities/HostStateEntity.js.map +1 -1
- package/dist/cjs/StateMachine/Entities/HostStateMachine.js.map +1 -1
- package/dist/cjs/StateMachine/Entities/index.js.map +1 -1
- package/dist/cjs/StateMachine/Factories/SandboxStateMachineFactory.js.map +1 -1
- package/dist/cjs/StateMachine/Factories/index.js.map +1 -1
- package/dist/cjs/StateMachine/Factories/setupStateMachineForSandbox.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/CancelEditingUCMock.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/ConsumeStateUCMock.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/EditStateUCMock.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/EndActivityUCMock.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/MockDeleteStateUC.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/MockDuplicateStateUC.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/MockEditActiveStateUC.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/MockEditStateNameUC.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/MockHostEditingStateEntity.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/MockHostStateEntity.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/MockHostStateMachinePM.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/MockHostStatePM.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/MockIsEditingStatePM.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/MockSaveAuthoringUC.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/MockTransitionToStateUC.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/NewStateUCMock.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/SavePersistentStatesMock.js.map +1 -1
- package/dist/cjs/StateMachine/Mocks/index.js.map +1 -1
- package/dist/cjs/StateMachine/PMs/EditingStatePM.js.map +1 -1
- package/dist/cjs/StateMachine/PMs/HostStateMachinePM.js.map +1 -1
- package/dist/cjs/StateMachine/PMs/HostStatePM.js.map +1 -1
- package/dist/cjs/StateMachine/PMs/index.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/CancelEditing/CancelEditingUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/CancelEditing/CancelSandboxEditingUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/CancelEditing/index.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/ConsumeState/ConsumeSandboxStateUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/ConsumeState/ConsumeStateUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/ConsumeState/index.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/DeleteStateUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/DuplicateStateUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/EditActiveState/EditActiveSandboxStateUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/EditActiveState/EditActiveStateUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/EditActiveState/index.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/EditState/EditSandboxStateUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/EditState/EditStateUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/EditState/index.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/EditStateNameUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/EndActivity/EndActivityUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/EndActivity/EndSandboxActivityUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/EndActivity/index.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/NewState/NewSandboxStateUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/NewState/NewStateUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/NewState/index.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/SaveAuthoring/SaveAuthoringSandboxUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/SaveAuthoring/SaveAuthoringUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/SaveAuthoring/index.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/SavePersistentStates.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/TransitionToState/TransitionToSandboxStateUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/TransitionToState/TransitionToStateUC.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/TransitionToState/index.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/index.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/setSandboxStatesFromData.js.map +1 -1
- package/dist/cjs/StateMachine/UCs/setSandboxStatesFromStringData.js.map +1 -1
- package/dist/cjs/StateMachine/index.js.map +1 -1
- package/dist/cjs/ThemeColors/Adapter/index.js.map +1 -1
- package/dist/cjs/ThemeColors/Adapter/themeColorAdapter.js.map +1 -1
- package/dist/cjs/ThemeColors/Controllers/getOnPrimaryColor.js.map +1 -1
- package/dist/cjs/ThemeColors/Controllers/getOnSurfaceColor.js.map +1 -1
- package/dist/cjs/ThemeColors/Controllers/getPrimaryColor.js.map +1 -1
- package/dist/cjs/ThemeColors/Controllers/getSurfaceColor.js.map +1 -1
- package/dist/cjs/ThemeColors/Controllers/getSurfaceContainerColor.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/Data/index.js.map +1 -1
- package/dist/cjs/ThemeColors/Entities/index.js.map +1 -1
- package/dist/cjs/ThemeColors/Factories/ThemeFactory.js.map +1 -1
- package/dist/cjs/ThemeColors/Factories/index.js.map +1 -1
- package/dist/cjs/ThemeColors/Factories/setupTheme.js.map +1 -1
- package/dist/cjs/ThemeColors/Mocks/MockSetThemeUC.js.map +1 -1
- package/dist/cjs/ThemeColors/Mocks/MockThemeColorPM.js.map +1 -1
- package/dist/cjs/ThemeColors/Mocks/index.js.map +1 -1
- package/dist/cjs/ThemeColors/PM/index.js.map +1 -1
- package/dist/cjs/ThemeColors/UCs/SetThemeUC.js.map +1 -1
- package/dist/cjs/ThemeColors/UCs/index.js.map +1 -1
- package/dist/cjs/ThemeColors/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/refreshAuthenticatedUser.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/ApiStagePMMock.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockBasicFetchUC.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockBlobRequestUC.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockDeleteAssetOnAPIUC.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockFetchAssetFileFromAPIUC.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockFetchAssetMetaFromAPIUC.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockFileUpload.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockGetAppFromAPIUC.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockGetAssetsForOwnerUC.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockJsonRequestUC.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockPatchAssetFileUC.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockPatchAssetIsArchivedUC.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockPatchAssetMetaUC.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockPatchAssetUC.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockPostNewAssetUC.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockSignedAuthToken.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/MockUserLoginUC.js.map +1 -1
- package/dist/cjs/VivedAPI/Mocks/UserTokenPMMock.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/FetchAssetFileFromAPIUC.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/FetchAssetMetaFromAPIUC.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/GetAppFromAPIUC.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/JsonRequestUC.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/PatchAssetFileUC.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/PatchAssetIsArchivedUC.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/PatchAssetMetaUC.js.map +1 -1
- package/dist/cjs/VivedAPI/UCs/PatchAssetUC.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/emulateZSpaceAdapter.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Adapters/index.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Adapters/zSpaceIsActiveAdapter.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Controllers/index.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Controllers/setZSpaceIsSupported.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Controllers/startZSpace.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Controllers/stopZSpace.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Controllers/toggleEmulateZSpace.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Entities/ZSpaceHost.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Entities/index.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Factories/SandboxZSpaceFactory.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Factories/index.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Factories/setupZSpaceForSandbox.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Mocks/EmulateZSpacePMMock.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Mocks/MockStartZSpaceUC.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Mocks/MockStopZSpaceUC.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Mocks/MockXRSession.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Mocks/ZSpaceIsActivePMMock.js.map +1 -1
- package/dist/cjs/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.js.map +1 -1
- 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.map +1 -1
- package/dist/cjs/ZSpaceHost/PMs/index.js.map +1 -1
- package/dist/cjs/ZSpaceHost/UCs/StartZSpace/StartSandboxZSpaceUC.js.map +1 -1
- package/dist/cjs/ZSpaceHost/UCs/StartZSpace/StartZSpaceUC.js.map +1 -1
- package/dist/cjs/ZSpaceHost/UCs/StartZSpace/index.js.map +1 -1
- package/dist/cjs/ZSpaceHost/UCs/StopZSpace/StopSandboxZSpaceUC.js.map +1 -1
- package/dist/cjs/ZSpaceHost/UCs/StopZSpace/StopZSpaceUC.js.map +1 -1
- package/dist/cjs/ZSpaceHost/UCs/StopZSpace/index.js.map +1 -1
- package/dist/cjs/ZSpaceHost/UCs/checkForZSpaceSupport.js.map +1 -1
- package/dist/cjs/ZSpaceHost/UCs/index.js.map +1 -1
- package/dist/cjs/ZSpaceHost/index.js.map +1 -1
- package/dist/esm/AppSandbox/Adapters/babylonInspectorSupportedAdapter.js.map +1 -1
- package/dist/esm/AppSandbox/Adapters/devFeaturesEnabledAdapter.js.map +1 -1
- package/dist/esm/AppSandbox/Adapters/sandboxStateAdapter.js.map +1 -1
- package/dist/esm/AppSandbox/Adapters/showInspectorAdapter.js.map +1 -1
- package/dist/esm/AppSandbox/Adapters/startInZSpaceAdapter.js.map +1 -1
- package/dist/esm/AppSandbox/Controller/clearSandboxAppContainer.js.map +1 -1
- package/dist/esm/AppSandbox/Controller/mountSandboxApp.js.map +1 -1
- package/dist/esm/AppSandbox/Controller/setBabylonInspectorSupported.js.map +1 -1
- package/dist/esm/AppSandbox/Controller/setSandboxAppContainer.js.map +1 -1
- package/dist/esm/AppSandbox/Controller/setSandboxAppState.js.map +1 -1
- package/dist/esm/AppSandbox/Controller/startSandboxApp.js.map +1 -1
- package/dist/esm/AppSandbox/Controller/stopSandboxApp.js.map +1 -1
- package/dist/esm/AppSandbox/Controller/toggleAllowDevFeatures.js.map +1 -1
- package/dist/esm/AppSandbox/Controller/toggleShowInspector.js.map +1 -1
- package/dist/esm/AppSandbox/Controller/toggleStartInZSpace.js.map +1 -1
- package/dist/esm/AppSandbox/Controller/unmountSandboxApp.js.map +1 -1
- package/dist/esm/AppSandbox/Entities/index.js.map +1 -1
- package/dist/esm/AppSandbox/Factories/index.js.map +1 -1
- package/dist/esm/AppSandbox/Mocks/BabylonInspectorSupportedPMMock.js.map +1 -1
- package/dist/esm/AppSandbox/Mocks/DevFeaturesEnabledPMMock.js.map +1 -1
- package/dist/esm/AppSandbox/Mocks/MockShowBabylonInspectorUC.js.map +1 -1
- package/dist/esm/AppSandbox/Mocks/RenderAppPMMock.js.map +1 -1
- package/dist/esm/AppSandbox/Mocks/ShowInspectorPMMock.js.map +1 -1
- package/dist/esm/AppSandbox/Mocks/StartInZSpacePMMock.js.map +1 -1
- package/dist/esm/AppSandbox/PMs/BabylonInspectorSupportedPM.js.map +1 -1
- package/dist/esm/AppSandbox/PMs/DevFeaturesEnabledPM.js.map +1 -1
- package/dist/esm/AppSandbox/PMs/SandboxStatePM.js.map +1 -1
- package/dist/esm/AppSandbox/PMs/ShowInspectorPM.js.map +1 -1
- package/dist/esm/AppSandbox/PMs/StartInZSpacePM.js.map +1 -1
- package/dist/esm/AppSandbox/UCs/ShowBabylonInspectorUC.js.map +1 -1
- package/dist/esm/AppSandbox/UCs/submitActivityAssetHandlerSandbox.js +5 -1
- package/dist/esm/AppSandbox/UCs/submitActivityAssetHandlerSandbox.js.map +1 -1
- package/dist/esm/AppSandbox/index.js.map +1 -1
- package/dist/esm/Apps/Adapters/activeAppPMAdapter.js.map +1 -1
- package/dist/esm/Apps/Adapters/appListPMAdapter.js.map +1 -1
- package/dist/esm/Apps/Adapters/appPMAdapter.js.map +1 -1
- package/dist/esm/Apps/Adapters/index.js.map +1 -1
- package/dist/esm/Apps/Controllers/index.js.map +1 -1
- package/dist/esm/Apps/Controllers/updateApp.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/Entities/index.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/Mocks/MockActiveAppPM.js.map +1 -1
- package/dist/esm/Apps/Mocks/MockAppListPM.js.map +1 -1
- package/dist/esm/Apps/Mocks/MockAppMounterUC.js.map +1 -1
- package/dist/esm/Apps/Mocks/MockAppPM.js.map +1 -1
- package/dist/esm/Apps/Mocks/MockStartAppUC.js.map +1 -1
- package/dist/esm/Apps/Mocks/MockStopAppUC.js.map +1 -1
- package/dist/esm/Apps/Mocks/MockUpdateAppUC.js.map +1 -1
- package/dist/esm/Apps/Mocks/index.js.map +1 -1
- package/dist/esm/Apps/PMs/ActiveAppPM.js.map +1 -1
- package/dist/esm/Apps/PMs/AppPM.js.map +1 -1
- package/dist/esm/Apps/PMs/AppsListPM.js.map +1 -1
- package/dist/esm/Apps/PMs/index.js.map +1 -1
- package/dist/esm/Apps/UCs/Mounters/MounterUC.js.map +1 -1
- package/dist/esm/Apps/UCs/Mounters/SandboxMounterUC.js.map +1 -1
- package/dist/esm/Apps/UCs/Mounters/index.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/UCs/UpdateAppUC.js.map +1 -1
- package/dist/esm/Apps/UCs/formAppIDWithVersion.js.map +1 -1
- package/dist/esm/Apps/UCs/index.js.map +1 -1
- package/dist/esm/Apps/index.js.map +1 -1
- package/dist/esm/AssetPlugin/Adapters/assetPluginPMAdapter.js.map +1 -1
- package/dist/esm/AssetPlugin/Adapters/index.js.map +1 -1
- package/dist/esm/AssetPlugin/Controllers/clearAssetPluginContainer.js.map +1 -1
- package/dist/esm/AssetPlugin/Controllers/index.js.map +1 -1
- package/dist/esm/AssetPlugin/Controllers/setAssetPluginContainer.js.map +1 -1
- package/dist/esm/AssetPlugin/Entities/AssetPluginEntity.js.map +1 -1
- package/dist/esm/AssetPlugin/Entities/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/AssetPlugin/Factories/setupAssetsPluginForSandbox.js.map +1 -1
- package/dist/esm/AssetPlugin/Mocks/MockAssetPluginContainerUC.js.map +1 -1
- package/dist/esm/AssetPlugin/Mocks/MockAssetPluginPM.js.map +1 -1
- package/dist/esm/AssetPlugin/Mocks/index.js.map +1 -1
- package/dist/esm/AssetPlugin/PM/AssetPluginPM.js.map +1 -1
- package/dist/esm/AssetPlugin/PM/index.js.map +1 -1
- package/dist/esm/AssetPlugin/UCs/AssetPluginContainerUC.js.map +1 -1
- package/dist/esm/AssetPlugin/UCs/SandboxAssetPluginContainerUC.js.map +1 -1
- package/dist/esm/AssetPlugin/UCs/index.js.map +1 -1
- package/dist/esm/AssetPlugin/index.js.map +1 -1
- package/dist/esm/Assets/Adapters/appAssetListAdapter.js.map +1 -1
- package/dist/esm/Assets/Adapters/assetAdapter.js.map +1 -1
- package/dist/esm/Assets/Adapters/assetFileAdapter.js.map +1 -1
- package/dist/esm/Assets/Adapters/editingAppAssetAdapter.js.map +1 -1
- package/dist/esm/Assets/Adapters/index.js.map +1 -1
- package/dist/esm/Assets/Adapters/showArchivedAppAssetAdapter.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/Entities/index.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/Factories/setupAssetsForSandbox.js.map +1 -1
- package/dist/esm/Assets/Mocks/AppAssetListPMMock.js.map +1 -1
- package/dist/esm/Assets/Mocks/AssetFilePMMock.js.map +1 -1
- package/dist/esm/Assets/Mocks/AssetPMMock.js.map +1 -1
- package/dist/esm/Assets/Mocks/EditingAppAssetPMMock.js.map +1 -1
- package/dist/esm/Assets/Mocks/MockArchiveAsset.js.map +1 -1
- package/dist/esm/Assets/Mocks/MockDeleteAssetUC.js.map +1 -1
- package/dist/esm/Assets/Mocks/MockDownloadAssetFileUC.js.map +1 -1
- package/dist/esm/Assets/Mocks/MockEditAppAssetUC.js.map +1 -1
- package/dist/esm/Assets/Mocks/MockGetAppAssetsUC.js.map +1 -1
- package/dist/esm/Assets/Mocks/MockGetAssetBlobURLUC.js.map +1 -1
- package/dist/esm/Assets/Mocks/MockGetAssetFileUC.js.map +1 -1
- package/dist/esm/Assets/Mocks/MockGetAssetUC.js.map +1 -1
- package/dist/esm/Assets/Mocks/MockNewAppAsset.js.map +1 -1
- package/dist/esm/Assets/Mocks/MockNewAssetUC.js.map +1 -1
- package/dist/esm/Assets/Mocks/MockPrefetchAssets.js.map +1 -1
- package/dist/esm/Assets/Mocks/MockUpdateAppAssetMetaUC.js.map +1 -1
- package/dist/esm/Assets/Mocks/MockUpdateAssetFileUC.js.map +1 -1
- package/dist/esm/Assets/Mocks/ShowArchivedAppAssetPMMock.js.map +1 -1
- package/dist/esm/Assets/Mocks/index.js.map +1 -1
- package/dist/esm/Assets/PMs/AppAssetListPM.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/EditingAppAssetPM.js.map +1 -1
- package/dist/esm/Assets/PMs/ShowArchivedAppAssetPM.js.map +1 -1
- package/dist/esm/Assets/PMs/index.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/GetAppAssetsUC.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/NewAssetUC.js +3 -2
- package/dist/esm/Assets/UCs/NewAssetUC.js.map +1 -1
- package/dist/esm/Assets/UCs/PrefetchAssetsUC.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/Assets/index.js.map +1 -1
- package/dist/esm/Cache/Controllers/clearCache.js.map +1 -1
- package/dist/esm/Cache/Controllers/index.js.map +1 -1
- package/dist/esm/Cache/Entities/AssetCacheEntity.js.map +1 -1
- package/dist/esm/Cache/Entities/CacheEntity.js.map +1 -1
- package/dist/esm/Cache/Entities/ScriptCacheEntity.js.map +1 -1
- package/dist/esm/Cache/Entities/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/Cache/Factories/setupCache.js.map +1 -1
- package/dist/esm/Cache/Mocks/MockCacheEntity.js.map +1 -1
- package/dist/esm/Cache/Mocks/MockGetAssetFromCacheUC.js.map +1 -1
- package/dist/esm/Cache/Mocks/MockGetScriptFromCacheUC.js.map +1 -1
- package/dist/esm/Cache/Mocks/MockStoreAssetInCacheUC.js.map +1 -1
- package/dist/esm/Cache/Mocks/MockStoreScriptInCacheUC.js.map +1 -1
- package/dist/esm/Cache/Mocks/index.js.map +1 -1
- package/dist/esm/Cache/UCs/GetAssetFromCacheUC.js.map +1 -1
- package/dist/esm/Cache/UCs/GetScriptFromCacheUC.js.map +1 -1
- package/dist/esm/Cache/UCs/StoreAssetInCacheUC.js.map +1 -1
- package/dist/esm/Cache/UCs/StoreScriptInCacheUC.js.map +1 -1
- package/dist/esm/Cache/UCs/index.js.map +1 -1
- package/dist/esm/Cache/index.js.map +1 -1
- package/dist/esm/ChallengeResults/Adapters/challengeResultsListAdapter.js.map +1 -1
- package/dist/esm/ChallengeResults/Adapters/challengeScoreListAdapter.js.map +1 -1
- package/dist/esm/ChallengeResults/Adapters/hasChallengeResultsPMAdapter.js.map +1 -1
- package/dist/esm/ChallengeResults/Adapters/index.js.map +1 -1
- package/dist/esm/ChallengeResults/Entities/ChallengeResults.js.map +1 -1
- package/dist/esm/ChallengeResults/Entities/index.js.map +1 -1
- package/dist/esm/ChallengeResults/Factories/ChallengeResultsFactory.js.map +1 -1
- package/dist/esm/ChallengeResults/Factories/index.js.map +1 -1
- package/dist/esm/ChallengeResults/Factories/setupChallengeResults.js.map +1 -1
- package/dist/esm/ChallengeResults/Mocks/ChallengeResultsListPMMock.js.map +1 -1
- package/dist/esm/ChallengeResults/Mocks/MockChallengeScoreListPM.js.map +1 -1
- package/dist/esm/ChallengeResults/Mocks/MockHasChallengeResultsPM.js.map +1 -1
- package/dist/esm/ChallengeResults/Mocks/index.js.map +1 -1
- package/dist/esm/ChallengeResults/PMs/ChallengeResultsListPM.js.map +1 -1
- package/dist/esm/ChallengeResults/PMs/ChallengeScoreListPM.js.map +1 -1
- package/dist/esm/ChallengeResults/PMs/HasChallengeResultsPM.js.map +1 -1
- package/dist/esm/ChallengeResults/PMs/index.js.map +1 -1
- package/dist/esm/ChallengeResults/index.js.map +1 -1
- package/dist/esm/Dialog/Adapters/alertDialogAdapter.js.map +1 -1
- package/dist/esm/Dialog/Adapters/confirmDialogAdapter.js.map +1 -1
- package/dist/esm/Dialog/Adapters/dialogQueueAdapter.js.map +1 -1
- package/dist/esm/Dialog/Adapters/index.js.map +1 -1
- package/dist/esm/Dialog/Adapters/markDownEditorDialogAdapters.js.map +1 -1
- package/dist/esm/Dialog/Adapters/spinnerDialogAdapter.js.map +1 -1
- package/dist/esm/Dialog/Controllers/activeDialogHasClosed.js.map +1 -1
- package/dist/esm/Dialog/Controllers/index.js.map +1 -1
- package/dist/esm/Dialog/Entities/Alert.js.map +1 -1
- package/dist/esm/Dialog/Entities/Confirm.js.map +1 -1
- package/dist/esm/Dialog/Entities/MarkDownEditor.js.map +1 -1
- package/dist/esm/Dialog/Entities/SelectModel.js.map +1 -1
- package/dist/esm/Dialog/Entities/Spinner.js.map +1 -1
- package/dist/esm/Dialog/Entities/index.js.map +1 -1
- package/dist/esm/Dialog/Factories/SandboxDialogFactory.js.map +1 -1
- package/dist/esm/Dialog/Factories/alertDialogFactory.js.map +1 -1
- package/dist/esm/Dialog/Factories/confirmDialogFactory.js.map +1 -1
- package/dist/esm/Dialog/Factories/index.js.map +1 -1
- package/dist/esm/Dialog/Factories/markdownDialogEditorFactory.js.map +1 -1
- package/dist/esm/Dialog/Factories/selectDialogModelFactory.js.map +1 -1
- package/dist/esm/Dialog/Factories/setupDialogForSandbox.js.map +1 -1
- package/dist/esm/Dialog/Factories/spinnerDialogFactory.js.map +1 -1
- package/dist/esm/Dialog/Mocks/MockAlertDialogPM.js.map +1 -1
- package/dist/esm/Dialog/Mocks/MockConfirmDialogPM.js.map +1 -1
- package/dist/esm/Dialog/Mocks/MockDialogQueuePM.js.map +1 -1
- package/dist/esm/Dialog/Mocks/MockMakeAlertDialogUC.js.map +1 -1
- package/dist/esm/Dialog/Mocks/MockMakeConfirmDialogUC.js.map +1 -1
- package/dist/esm/Dialog/Mocks/MockMakeMarkdownDialogUC.js.map +1 -1
- package/dist/esm/Dialog/Mocks/MockMakeSelectModelDialogUC.js.map +1 -1
- package/dist/esm/Dialog/Mocks/MockMakeSpinnerDialogUC.js.map +1 -1
- package/dist/esm/Dialog/Mocks/MockMarkDownEditorDialogPM.js.map +1 -1
- package/dist/esm/Dialog/Mocks/MockSpinnerDialogPM.js.map +1 -1
- package/dist/esm/Dialog/Mocks/index.js.map +1 -1
- package/dist/esm/Dialog/PMs/AlertDialogPM.js.map +1 -1
- package/dist/esm/Dialog/PMs/ConfirmDialogPM.js.map +1 -1
- package/dist/esm/Dialog/PMs/DialogQueuePM.js.map +1 -1
- package/dist/esm/Dialog/PMs/MarkDownEditorDialogPM.js.map +1 -1
- package/dist/esm/Dialog/PMs/SpinnerDialogPM.js.map +1 -1
- package/dist/esm/Dialog/PMs/index.js.map +1 -1
- package/dist/esm/Dialog/UCs/MakeAlertDialogUC.js.map +1 -1
- package/dist/esm/Dialog/UCs/MakeConfirmDialogUC.js.map +1 -1
- package/dist/esm/Dialog/UCs/MakeMarkdownDialogUC.js.map +1 -1
- package/dist/esm/Dialog/UCs/MakeSelectModelDialogUC.js.map +1 -1
- package/dist/esm/Dialog/UCs/MakeSpinnerDialogUC.js.map +1 -1
- package/dist/esm/Dialog/UCs/index.js.map +1 -1
- package/dist/esm/Dialog/index.js.map +1 -1
- package/dist/esm/Dispatcher/Entities/index.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/DispatchEnableFeatureUCMock.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockDispatchAppDispatcherUC.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockDispatchIsAuthoringUC.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockDispatchSetStateUC.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockDispatchShowBabylonInspectorUC.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockDispatchStartAppUC.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockDispatchStartBrowseChannelsUC.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockDispatchStartZSpaceUC.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockDispatchStopAppUC.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockDispatchStopZSpaceUC.js.map +1 -1
- package/dist/esm/Dispatcher/Mocks/MockDispatchThemeUC.js.map +1 -1
- package/dist/esm/Dispatcher/UCs/DispatchDisposeAppUC.js.map +1 -1
- package/dist/esm/Dispatcher/UCs/DispatchEnableFeatureUC.js.map +1 -1
- package/dist/esm/Dispatcher/UCs/DispatchIsAuthoringUC.js.map +1 -1
- package/dist/esm/Dispatcher/UCs/DispatchSetStateUC.js.map +1 -1
- package/dist/esm/Dispatcher/UCs/DispatchShowBabylonInspectorUC.js.map +1 -1
- package/dist/esm/Dispatcher/UCs/DispatchStartAppUC.js.map +1 -1
- package/dist/esm/Dispatcher/UCs/DispatchStartBrowseChannelsUC.js.map +1 -1
- package/dist/esm/Dispatcher/UCs/DispatchStartZSpaceUC.js.map +1 -1
- package/dist/esm/Dispatcher/UCs/DispatchStopAppUC.js.map +1 -1
- package/dist/esm/Dispatcher/UCs/DispatchStopZSpaceUC.js.map +1 -1
- package/dist/esm/Dispatcher/index.js.map +1 -1
- package/dist/esm/Events/Types/EventTypes.js.map +1 -1
- package/dist/esm/Events/Types/PayloadTypes.js.map +1 -1
- package/dist/esm/Events/Types/index.js.map +1 -1
- package/dist/esm/Events/index.js.map +1 -1
- package/dist/esm/Handler/Entities/index.js.map +1 -1
- package/dist/esm/Handler/UCs/CallbackAssetDTO.js.map +1 -1
- package/dist/esm/Handler/UCs/CloseAssetSystemPlugin.js.map +1 -1
- package/dist/esm/Handler/UCs/GetAssetBlobURLHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/GetAssetFolderURLHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/GetAssetMetaHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/GetAssetsForOwnerHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/GetLinkedAssetsHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/GoToNextStateHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/GoToPreviousStateHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/HasNextStateHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/HasPreviousStateHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/IsAssetFetchedHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/IsZSpaceAvailableHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/NewActivityAssetHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/OnAppIsReadyHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/OnStateChangeHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/OnStateCompleteHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/RegisterExternalStyleSheetsHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/RestoreCurrentStateHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/ShowAlertHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/ShowConfirmHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/ShowMarkDownEditorHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/ShowSelectModelHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/ShowSpinnerHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/StartZSpaceHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/StopZSpaceHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/SubmitActivityAssetHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/SubmitLogHandler.js.map +1 -1
- package/dist/esm/Handler/UCs/SubmitResultHandler.js.map +1 -1
- package/dist/esm/Handler/index.js.map +1 -1
- package/dist/esm/Logger/Adapters/fatalErrorAdapter.js.map +1 -1
- package/dist/esm/Logger/Adapters/forwardLogsToConsoleAdapter.js.map +1 -1
- package/dist/esm/Logger/Adapters/index.js.map +1 -1
- package/dist/esm/Logger/Adapters/logSummaryAdapter.js.map +1 -1
- package/dist/esm/Logger/Controllers/clickDownloadLog.js.map +1 -1
- package/dist/esm/Logger/Controllers/index.js.map +1 -1
- package/dist/esm/Logger/Controllers/toggleForwardLogs.js.map +1 -1
- package/dist/esm/Logger/Entities/LoggerEntity.js.map +1 -1
- package/dist/esm/Logger/Entities/index.js.map +1 -1
- package/dist/esm/Logger/Factories/SandboxLoggerFactory.js.map +1 -1
- package/dist/esm/Logger/Factories/index.js.map +1 -1
- package/dist/esm/Logger/Factories/setupLoggerForSandbox.js.map +1 -1
- package/dist/esm/Logger/Mocks/ForwardLogsToConsolePMMock.js.map +1 -1
- package/dist/esm/Logger/Mocks/LogSummaryPMMock.js.map +1 -1
- package/dist/esm/Logger/Mocks/MockDownloadLogUC.js.map +1 -1
- package/dist/esm/Logger/Mocks/MockFatalErrorPM.js.map +1 -1
- package/dist/esm/Logger/Mocks/index.js.map +1 -1
- package/dist/esm/Logger/PMs/FatalErrorPM.js.map +1 -1
- package/dist/esm/Logger/PMs/ForwardLogsToConsolePM.js.map +1 -1
- package/dist/esm/Logger/PMs/LogSummaryPM.js.map +1 -1
- package/dist/esm/Logger/PMs/index.js.map +1 -1
- package/dist/esm/Logger/UCs/DownloadLogUC.js.map +1 -1
- package/dist/esm/Logger/UCs/index.js.map +1 -1
- package/dist/esm/Logger/index.js.map +1 -1
- package/dist/esm/Snackbar/Adapters/index.js.map +1 -1
- package/dist/esm/Snackbar/Adapters/snackbarAdapter.js.map +1 -1
- package/dist/esm/Snackbar/Controllers/callActiveSnackbarAction.js.map +1 -1
- package/dist/esm/Snackbar/Controllers/dismissActiveSnackbar.js.map +1 -1
- package/dist/esm/Snackbar/Controllers/index.js.map +1 -1
- package/dist/esm/Snackbar/Controllers/makeSnackbar.js.map +1 -1
- package/dist/esm/Snackbar/Entities/SnackbarRepo.js.map +1 -1
- package/dist/esm/Snackbar/Entities/index.js.map +1 -1
- package/dist/esm/Snackbar/Factories/index.js.map +1 -1
- package/dist/esm/Snackbar/Factories/setupSnackbar.js.map +1 -1
- package/dist/esm/Snackbar/Mocks/SnackbarPMMock.js.map +1 -1
- package/dist/esm/Snackbar/Mocks/index.js.map +1 -1
- package/dist/esm/Snackbar/PMs/SnackbarPM.js.map +1 -1
- package/dist/esm/Snackbar/PMs/index.js.map +1 -1
- package/dist/esm/Snackbar/index.js.map +1 -1
- package/dist/esm/StateMachine/Adapters/editingStateAdapter.js.map +1 -1
- package/dist/esm/StateMachine/Adapters/hostStateAdapter.js.map +1 -1
- package/dist/esm/StateMachine/Adapters/hostStateMachinePMAdapter.js.map +1 -1
- package/dist/esm/StateMachine/Adapters/index.js.map +1 -1
- package/dist/esm/StateMachine/Controllers/cancelEditing.js.map +1 -1
- package/dist/esm/StateMachine/Controllers/consumeState.js.map +1 -1
- package/dist/esm/StateMachine/Controllers/deleteState.js.map +1 -1
- package/dist/esm/StateMachine/Controllers/duplicateState.js.map +1 -1
- package/dist/esm/StateMachine/Controllers/editActiveState.js.map +1 -1
- package/dist/esm/StateMachine/Controllers/editState.js.map +1 -1
- package/dist/esm/StateMachine/Controllers/editStateName.js.map +1 -1
- package/dist/esm/StateMachine/Controllers/endActivity.js.map +1 -1
- package/dist/esm/StateMachine/Controllers/index.js.map +1 -1
- package/dist/esm/StateMachine/Controllers/newState.js.map +1 -1
- package/dist/esm/StateMachine/Controllers/saveAuthoring.js.map +1 -1
- package/dist/esm/StateMachine/Controllers/savePersistentStates.js.map +1 -1
- package/dist/esm/StateMachine/Controllers/setTransitionDuration.js.map +1 -1
- package/dist/esm/StateMachine/Controllers/transitionToState.js.map +1 -1
- package/dist/esm/StateMachine/Entities/HostEditingStateEntity.js.map +1 -1
- package/dist/esm/StateMachine/Entities/HostStateEntity.js.map +1 -1
- package/dist/esm/StateMachine/Entities/HostStateMachine.js.map +1 -1
- package/dist/esm/StateMachine/Entities/index.js.map +1 -1
- package/dist/esm/StateMachine/Factories/SandboxStateMachineFactory.js.map +1 -1
- package/dist/esm/StateMachine/Factories/index.js.map +1 -1
- package/dist/esm/StateMachine/Factories/setupStateMachineForSandbox.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/CancelEditingUCMock.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/ConsumeStateUCMock.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/EditStateUCMock.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/EndActivityUCMock.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/MockDeleteStateUC.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/MockDuplicateStateUC.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/MockEditActiveStateUC.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/MockEditStateNameUC.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/MockHostEditingStateEntity.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/MockHostStateEntity.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/MockHostStateMachinePM.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/MockHostStatePM.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/MockIsEditingStatePM.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/MockSaveAuthoringUC.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/MockTransitionToStateUC.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/NewStateUCMock.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/SavePersistentStatesMock.js.map +1 -1
- package/dist/esm/StateMachine/Mocks/index.js.map +1 -1
- package/dist/esm/StateMachine/PMs/EditingStatePM.js.map +1 -1
- package/dist/esm/StateMachine/PMs/HostStateMachinePM.js.map +1 -1
- package/dist/esm/StateMachine/PMs/HostStatePM.js.map +1 -1
- package/dist/esm/StateMachine/PMs/index.js.map +1 -1
- package/dist/esm/StateMachine/UCs/CancelEditing/CancelEditingUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/CancelEditing/CancelSandboxEditingUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/CancelEditing/index.js.map +1 -1
- package/dist/esm/StateMachine/UCs/ConsumeState/ConsumeSandboxStateUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/ConsumeState/ConsumeStateUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/ConsumeState/index.js.map +1 -1
- package/dist/esm/StateMachine/UCs/DeleteStateUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/DuplicateStateUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/EditActiveState/EditActiveSandboxStateUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/EditActiveState/EditActiveStateUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/EditActiveState/index.js.map +1 -1
- package/dist/esm/StateMachine/UCs/EditState/EditSandboxStateUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/EditState/EditStateUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/EditState/index.js.map +1 -1
- package/dist/esm/StateMachine/UCs/EditStateNameUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/EndActivity/EndActivityUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/EndActivity/EndSandboxActivityUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/EndActivity/index.js.map +1 -1
- package/dist/esm/StateMachine/UCs/NewState/NewSandboxStateUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/NewState/NewStateUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/NewState/index.js.map +1 -1
- package/dist/esm/StateMachine/UCs/SaveAuthoring/SaveAuthoringSandboxUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/SaveAuthoring/SaveAuthoringUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/SaveAuthoring/index.js.map +1 -1
- package/dist/esm/StateMachine/UCs/SavePersistentStates.js.map +1 -1
- package/dist/esm/StateMachine/UCs/TransitionToState/TransitionToSandboxStateUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/TransitionToState/TransitionToStateUC.js.map +1 -1
- package/dist/esm/StateMachine/UCs/TransitionToState/index.js.map +1 -1
- package/dist/esm/StateMachine/UCs/index.js.map +1 -1
- package/dist/esm/StateMachine/UCs/setSandboxStatesFromData.js.map +1 -1
- package/dist/esm/StateMachine/UCs/setSandboxStatesFromStringData.js.map +1 -1
- package/dist/esm/StateMachine/index.js.map +1 -1
- package/dist/esm/ThemeColors/Adapter/index.js.map +1 -1
- package/dist/esm/ThemeColors/Adapter/themeColorAdapter.js.map +1 -1
- package/dist/esm/ThemeColors/Controllers/getOnPrimaryColor.js.map +1 -1
- package/dist/esm/ThemeColors/Controllers/getOnSurfaceColor.js.map +1 -1
- package/dist/esm/ThemeColors/Controllers/getPrimaryColor.js.map +1 -1
- package/dist/esm/ThemeColors/Controllers/getSurfaceColor.js.map +1 -1
- package/dist/esm/ThemeColors/Controllers/getSurfaceContainerColor.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/Data/index.js.map +1 -1
- package/dist/esm/ThemeColors/Entities/index.js.map +1 -1
- package/dist/esm/ThemeColors/Factories/ThemeFactory.js.map +1 -1
- package/dist/esm/ThemeColors/Factories/index.js.map +1 -1
- package/dist/esm/ThemeColors/Factories/setupTheme.js.map +1 -1
- package/dist/esm/ThemeColors/Mocks/MockSetThemeUC.js.map +1 -1
- package/dist/esm/ThemeColors/Mocks/MockThemeColorPM.js.map +1 -1
- package/dist/esm/ThemeColors/Mocks/index.js.map +1 -1
- package/dist/esm/ThemeColors/PM/index.js.map +1 -1
- package/dist/esm/ThemeColors/UCs/SetThemeUC.js.map +1 -1
- package/dist/esm/ThemeColors/UCs/index.js.map +1 -1
- package/dist/esm/ThemeColors/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/refreshAuthenticatedUser.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/ApiStagePMMock.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockBasicFetchUC.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockBlobRequestUC.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockDeleteAssetOnAPIUC.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockFetchAssetFileFromAPIUC.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockFetchAssetMetaFromAPIUC.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockFileUpload.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockGetAppFromAPIUC.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockGetAssetsForOwnerUC.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockJsonRequestUC.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockPatchAssetFileUC.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockPatchAssetIsArchivedUC.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockPatchAssetMetaUC.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockPatchAssetUC.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockPostNewAssetUC.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockSignedAuthToken.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/MockUserLoginUC.js.map +1 -1
- package/dist/esm/VivedAPI/Mocks/UserTokenPMMock.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/FetchAssetFileFromAPIUC.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/FetchAssetMetaFromAPIUC.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/GetAppFromAPIUC.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/GetAssetsForOwnerFromAPIUC.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/JsonRequestUC.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/PatchAssetFileUC.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/PatchAssetIsArchivedUC.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/PatchAssetMetaUC.js.map +1 -1
- package/dist/esm/VivedAPI/UCs/PatchAssetUC.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/emulateZSpaceAdapter.js.map +1 -1
- package/dist/esm/ZSpaceHost/Adapters/index.js.map +1 -1
- package/dist/esm/ZSpaceHost/Adapters/zSpaceIsActiveAdapter.js.map +1 -1
- package/dist/esm/ZSpaceHost/Adapters/zSpaceIsSupportedAdapter.js.map +1 -1
- package/dist/esm/ZSpaceHost/Controllers/index.js.map +1 -1
- package/dist/esm/ZSpaceHost/Controllers/setZSpaceIsSupported.js.map +1 -1
- package/dist/esm/ZSpaceHost/Controllers/startZSpace.js.map +1 -1
- package/dist/esm/ZSpaceHost/Controllers/stopZSpace.js.map +1 -1
- package/dist/esm/ZSpaceHost/Controllers/toggleEmulateZSpace.js.map +1 -1
- package/dist/esm/ZSpaceHost/Entities/ZSpaceHost.js.map +1 -1
- package/dist/esm/ZSpaceHost/Entities/index.js.map +1 -1
- package/dist/esm/ZSpaceHost/Factories/SandboxZSpaceFactory.js.map +1 -1
- package/dist/esm/ZSpaceHost/Factories/index.js.map +1 -1
- package/dist/esm/ZSpaceHost/Factories/setupZSpaceForSandbox.js.map +1 -1
- package/dist/esm/ZSpaceHost/Mocks/EmulateZSpacePMMock.js.map +1 -1
- package/dist/esm/ZSpaceHost/Mocks/MockStartZSpaceUC.js.map +1 -1
- package/dist/esm/ZSpaceHost/Mocks/MockStopZSpaceUC.js.map +1 -1
- package/dist/esm/ZSpaceHost/Mocks/MockXRSession.js.map +1 -1
- package/dist/esm/ZSpaceHost/Mocks/ZSpaceIsActivePMMock.js.map +1 -1
- package/dist/esm/ZSpaceHost/Mocks/ZSpaceIsSupportedPMMock.js.map +1 -1
- 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.map +1 -1
- package/dist/esm/ZSpaceHost/PMs/index.js.map +1 -1
- package/dist/esm/ZSpaceHost/UCs/StartZSpace/StartSandboxZSpaceUC.js.map +1 -1
- package/dist/esm/ZSpaceHost/UCs/StartZSpace/StartZSpaceUC.js.map +1 -1
- package/dist/esm/ZSpaceHost/UCs/StartZSpace/index.js.map +1 -1
- package/dist/esm/ZSpaceHost/UCs/StopZSpace/StopSandboxZSpaceUC.js.map +1 -1
- package/dist/esm/ZSpaceHost/UCs/StopZSpace/StopZSpaceUC.js.map +1 -1
- package/dist/esm/ZSpaceHost/UCs/StopZSpace/index.js.map +1 -1
- package/dist/esm/ZSpaceHost/UCs/checkForZSpaceSupport.js.map +1 -1
- package/dist/esm/ZSpaceHost/UCs/index.js.map +1 -1
- package/dist/esm/ZSpaceHost/index.js.map +1 -1
- package/dist/types/AppSandbox/UCs/submitActivityAssetHandlerSandbox.d.ts.map +1 -1
- package/dist/types/Assets/UCs/NewAssetUC.d.ts +6 -0
- package/dist/types/Assets/UCs/NewAssetUC.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditAppAssetUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/EditAppAssetUC.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,qBAAqB,EAGrB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,EAChB,YAAY,EACb,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,OAAgB,cAAe,SAAQ,WAAW;IAWtD;;;;;OAKG;IACH,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,cAAc,CAAC,IAAI,EACnB,UAAU,CACX,CAAC;IACJ,CAAC;;AArBD,wDAAwD;AACjD,mBAAI,GAAG,gBAAgB,CAAC;AAuBjC;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAoB;IACnD,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,aAAc,SAAQ,cAAc;IAIxC,6DAA6D;IAC7D,IAAY,SAAS;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAkB,eAAe,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,yEAAyE;IACzE,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IA4BD;;;;OAIG;IACH,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QAhCxC;;;;;;;;;;;WAWG;QACH,cAAS,GAAG,CAAC,OAAe,EAAQ,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAEhE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,IAAI,CAAC,8BAA8B,GAAG,OAAO,CAAC,CAAC;gBACpD,OAAO;YACT,CAAC;YAED,sDAAsD;YACtD,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC;QAC/C,CAAC,CAAC;QASA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAExC,qDAAqD;QACrD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY,CAAY,SAAS,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;IACH,CAAC;CACF","sourcesContent":["/**\n * EditAppAssetUC.ts\n *\n * This use case handles initiating the asset editing workflow by transitioning\n * the application to editing mode for a specific asset.\n *\n * Key Concepts:\n * - Manages application state transitions for asset editing workflows\n * - Sets the editing context in AppAssetsEntity for UI components\n * - Transitions sandbox state to enable editing interfaces\n * - Validates asset existence before initiating editing\n * - Provides error handling for missing assets or dependencies\n *\n * Usage Patterns:\n * - Singleton use case accessed through static get() method\n * - Called with asset ID to initiate editing for specific assets\n * - Coordinates between asset repository, app assets entity, and sandbox state\n * - Used by controllers to start editing workflows from UI interactions\n */\n\nimport {\n getSingletonComponent,\n AppObject,\n AppObjectRepo,\n AppObjectUC\n} from \"@vived/core\";\nimport {\n AppSandboxEntity,\n SandboxState\n} from \"../../AppSandbox/Entities/AppSandboxEntity\";\nimport { AppAssetsEntity, AssetRepo } from \"../Entities\";\n\n/**\n * EditAppAssetUC handles initiating asset editing workflows and state transitions.\n *\n * This singleton use case manages the transition from normal asset viewing\n * to editing mode, setting up the necessary context for editing interfaces.\n */\nexport abstract class EditAppAssetUC extends AppObjectUC {\n /** Static type identifier for component registration */\n static type = \"EditAppAssetUC\";\n\n /**\n * Initiates editing mode for the specified asset.\n *\n * @param assetID - The unique identifier of the asset to edit\n */\n abstract editAsset(assetID: string): void;\n\n /**\n * Retrieves the singleton EditAppAssetUC instance.\n *\n * @param appObjects - Repository for accessing the singleton component\n * @returns EditAppAssetUC instance or undefined if not found\n */\n static get(appObjects: AppObjectRepo): EditAppAssetUC | undefined {\n return getSingletonComponent<EditAppAssetUC>(\n EditAppAssetUC.type,\n appObjects\n );\n }\n}\n\n/**\n * Factory function to create a new EditAppAssetUC instance.\n *\n * @param appObject - The AppObject that will host this singleton use case (must have AssetRepo)\n * @returns A new EditAppAssetUC implementation instance\n */\nexport function makeEditAppAsset(appObject: AppObject): EditAppAssetUC {\n return new GetAssetUCImp(appObject);\n}\n\n/**\n * Private implementation of EditAppAssetUC that handles state transitions for asset editing.\n *\n * Key Implementation Details:\n * - Validates asset existence in repository before initiating editing\n * - Sets editing context in AppAssetsEntity for UI component access\n * - Transitions sandbox state to enable editing interfaces\n * - Provides warning logs for missing assets or invalid operations\n * - Validates required dependencies during initialization\n */\nclass GetAssetUCImp extends EditAppAssetUC {\n /** The asset repository for asset lookup and validation */\n private assetRepo?: AssetRepo;\n\n /** Gets the app assets entity for setting editing context */\n private get appAssets() {\n return this.getCachedSingleton<AppAssetsEntity>(AppAssetsEntity.type);\n }\n\n /** Gets the sandbox entity for managing application state transitions */\n private get sandbox() {\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\n }\n\n /**\n * Initiates asset editing by setting up editing context and transitioning state.\n *\n * This method handles the complete editing initiation workflow:\n * 1. Validates required dependencies are available\n * 2. Looks up the asset in the repository\n * 3. Sets the editing context in AppAssetsEntity\n * 4. Transitions sandbox state to editing mode\n * 5. Provides appropriate warnings for missing assets\n *\n * @param assetID - The unique identifier of the asset to edit\n */\n editAsset = (assetID: string): void => {\n if (!this.assetRepo || !this.appAssets || !this.sandbox) return;\n\n const asset = this.assetRepo.get(assetID);\n if (!asset) {\n this.warn(\"Unable to find asset by id: \" + assetID);\n return;\n }\n\n // Set editing context and transition to editing state\n this.appAssets.editingAsset = asset;\n this.sandbox.state = SandboxState.EDIT_ASSET;\n };\n\n /**\n * Initializes the EditAppAssetUC with required dependencies and validation.\n *\n * @param appObject - The AppObject that should contain the AssetRepo for asset lookup\n */\n constructor(appObject: AppObject) {\n super(appObject, EditAppAssetUC.type);\n this.appObjects.registerSingleton(this);\n\n // Validate and cache the asset repository dependency\n this.assetRepo = appObject.getComponent<AssetRepo>(AssetRepo.type);\n if (!this.assetRepo) {\n this.error(\"UC added to an App Object that does not have AssetRepo\");\n return;\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"EditAppAssetUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/EditAppAssetUC.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,qBAAqB,EAGrB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,EAChB,YAAY,EACb,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,OAAgB,cAAe,SAAQ,WAAW;IAWtD;;;;;OAKG;IACH,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,cAAc,CAAC,IAAI,EACnB,UAAU,CACX,CAAC;IACJ,CAAC;;AArBD,wDAAwD;AACjD,mBAAI,GAAG,gBAAgB,CAAC;AAuBjC;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAoB;IACnD,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,aAAc,SAAQ,cAAc;IAIxC,6DAA6D;IAC7D,IAAY,SAAS;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAkB,eAAe,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAED,yEAAyE;IACzE,IAAY,OAAO;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IA4BD;;;;OAIG;IACH,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QAhCxC;;;;;;;;;;;WAWG;QACH,cAAS,GAAG,CAAC,OAAe,EAAQ,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAEhE,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,IAAI,CAAC,8BAA8B,GAAG,OAAO,CAAC,CAAC;gBACpD,OAAO;YACT,CAAC;YAED,sDAAsD;YACtD,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC;QAC/C,CAAC,CAAC;QASA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAExC,qDAAqD;QACrD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY,CAAY,SAAS,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;IACH,CAAC;CACF","sourcesContent":["/**\r\n * EditAppAssetUC.ts\r\n *\r\n * This use case handles initiating the asset editing workflow by transitioning\r\n * the application to editing mode for a specific asset.\r\n *\r\n * Key Concepts:\r\n * - Manages application state transitions for asset editing workflows\r\n * - Sets the editing context in AppAssetsEntity for UI components\r\n * - Transitions sandbox state to enable editing interfaces\r\n * - Validates asset existence before initiating editing\r\n * - Provides error handling for missing assets or dependencies\r\n *\r\n * Usage Patterns:\r\n * - Singleton use case accessed through static get() method\r\n * - Called with asset ID to initiate editing for specific assets\r\n * - Coordinates between asset repository, app assets entity, and sandbox state\r\n * - Used by controllers to start editing workflows from UI interactions\r\n */\r\n\r\nimport {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC\r\n} from \"@vived/core\";\r\nimport {\r\n AppSandboxEntity,\r\n SandboxState\r\n} from \"../../AppSandbox/Entities/AppSandboxEntity\";\r\nimport { AppAssetsEntity, AssetRepo } from \"../Entities\";\r\n\r\n/**\r\n * EditAppAssetUC handles initiating asset editing workflows and state transitions.\r\n *\r\n * This singleton use case manages the transition from normal asset viewing\r\n * to editing mode, setting up the necessary context for editing interfaces.\r\n */\r\nexport abstract class EditAppAssetUC extends AppObjectUC {\r\n /** Static type identifier for component registration */\r\n static type = \"EditAppAssetUC\";\r\n\r\n /**\r\n * Initiates editing mode for the specified asset.\r\n *\r\n * @param assetID - The unique identifier of the asset to edit\r\n */\r\n abstract editAsset(assetID: string): void;\r\n\r\n /**\r\n * Retrieves the singleton EditAppAssetUC instance.\r\n *\r\n * @param appObjects - Repository for accessing the singleton component\r\n * @returns EditAppAssetUC instance or undefined if not found\r\n */\r\n static get(appObjects: AppObjectRepo): EditAppAssetUC | undefined {\r\n return getSingletonComponent<EditAppAssetUC>(\r\n EditAppAssetUC.type,\r\n appObjects\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Factory function to create a new EditAppAssetUC instance.\r\n *\r\n * @param appObject - The AppObject that will host this singleton use case (must have AssetRepo)\r\n * @returns A new EditAppAssetUC implementation instance\r\n */\r\nexport function makeEditAppAsset(appObject: AppObject): EditAppAssetUC {\r\n return new GetAssetUCImp(appObject);\r\n}\r\n\r\n/**\r\n * Private implementation of EditAppAssetUC that handles state transitions for asset editing.\r\n *\r\n * Key Implementation Details:\r\n * - Validates asset existence in repository before initiating editing\r\n * - Sets editing context in AppAssetsEntity for UI component access\r\n * - Transitions sandbox state to enable editing interfaces\r\n * - Provides warning logs for missing assets or invalid operations\r\n * - Validates required dependencies during initialization\r\n */\r\nclass GetAssetUCImp extends EditAppAssetUC {\r\n /** The asset repository for asset lookup and validation */\r\n private assetRepo?: AssetRepo;\r\n\r\n /** Gets the app assets entity for setting editing context */\r\n private get appAssets() {\r\n return this.getCachedSingleton<AppAssetsEntity>(AppAssetsEntity.type);\r\n }\r\n\r\n /** Gets the sandbox entity for managing application state transitions */\r\n private get sandbox() {\r\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\r\n }\r\n\r\n /**\r\n * Initiates asset editing by setting up editing context and transitioning state.\r\n *\r\n * This method handles the complete editing initiation workflow:\r\n * 1. Validates required dependencies are available\r\n * 2. Looks up the asset in the repository\r\n * 3. Sets the editing context in AppAssetsEntity\r\n * 4. Transitions sandbox state to editing mode\r\n * 5. Provides appropriate warnings for missing assets\r\n *\r\n * @param assetID - The unique identifier of the asset to edit\r\n */\r\n editAsset = (assetID: string): void => {\r\n if (!this.assetRepo || !this.appAssets || !this.sandbox) return;\r\n\r\n const asset = this.assetRepo.get(assetID);\r\n if (!asset) {\r\n this.warn(\"Unable to find asset by id: \" + assetID);\r\n return;\r\n }\r\n\r\n // Set editing context and transition to editing state\r\n this.appAssets.editingAsset = asset;\r\n this.sandbox.state = SandboxState.EDIT_ASSET;\r\n };\r\n\r\n /**\r\n * Initializes the EditAppAssetUC with required dependencies and validation.\r\n *\r\n * @param appObject - The AppObject that should contain the AssetRepo for asset lookup\r\n */\r\n constructor(appObject: AppObject) {\r\n super(appObject, EditAppAssetUC.type);\r\n this.appObjects.registerSingleton(this);\r\n\r\n // Validate and cache the asset repository dependency\r\n this.assetRepo = appObject.getComponent<AssetRepo>(AssetRepo.type);\r\n if (!this.assetRepo) {\r\n this.error(\"UC added to an App Object that does not have AssetRepo\");\r\n return;\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetAppAssetsUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/GetAppAssetsUC.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAGrB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,OAAgB,cAAe,SAAQ,WAAW;IAKtD,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,cAAc,CAAC,IAAI,EACnB,UAAU,CACX,CAAC;IACJ,CAAC;;AATM,mBAAI,GAAG,gBAAgB,CAAC;AAYjC,MAAM,UAAU,iBAAiB,CAAC,SAAoB;IACpD,OAAO,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,iBAAkB,SAAQ,cAAc;IAG5C,IAAY,WAAW;QACrB,OAAO,IAAI,CAAC,kBAAkB,CAC5B,0BAA0B,CAAC,IAAI,CAChC,EAAE,SAAS,CAAC;IACf,CAAC;IAED,IAAY,SAAS;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAY,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IA0BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QAzBxC,iBAAY,GAAG,CAAC,KAAa,EAAiB,EAAE;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAEjC,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC7C,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC;YAED,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,WAAW,CAAC,KAAK,CAAC;qBACf,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACb,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBACnB,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;wBAC1B,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACxB,CAAC,CAAC,CAAC;oBACH,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;oBAClB,MAAM,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAKA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAExC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY,CACrC,eAAe,CAAC,IAAI,CACrB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,CACR,8DAA8D,CAC/D,CAAC;YACF,OAAO;QACT,CAAC;IACH,CAAC;CACF","sourcesContent":["import {\n getSingletonComponent,\n AppObject,\n AppObjectRepo,\n AppObjectUC\n} from \"@vived/core\";\nimport { GetAssetsForOwnerFromAPIUC } from \"../../VivedAPI\";\nimport { AppAssetsEntity } from \"../Entities/AppAssetsEntity\";\nimport { AssetRepo } from \"../Entities/AssetRepo\";\n\nexport abstract class GetAppAssetsUC extends AppObjectUC {\n static type = \"GetAppAssetsUC\";\n\n abstract getAppAssets(appID: string): Promise<void>;\n\n static get(appObjects: AppObjectRepo): GetAppAssetsUC | undefined {\n return getSingletonComponent<GetAppAssetsUC>(\n GetAppAssetsUC.type,\n appObjects\n );\n }\n}\n\nexport function makeGetAppAssetUC(appObject: AppObject): GetAppAssetsUC {\n return new GetAppAssetsUCImp(appObject);\n}\n\nclass GetAppAssetsUCImp extends GetAppAssetsUC {\n private appAssets?: AppAssetsEntity;\n\n private get getAssetsUC() {\n return this.getCachedSingleton<GetAssetsForOwnerFromAPIUC>(\n GetAssetsForOwnerFromAPIUC.type\n )?.getAssets;\n }\n\n private get assetRepo() {\n return this.getCachedSingleton<AssetRepo>(AssetRepo.type);\n }\n\n getAppAssets = (appID: string): Promise<void> => {\n const appAssets = this.appAssets;\n const getAssetsUC = this.getAssetsUC;\n const assetRepo = this.assetRepo;\n\n if (!appAssets || !getAssetsUC || !assetRepo) {\n return Promise.reject();\n }\n\n return new Promise<void>((resolve, reject) => {\n getAssetsUC(appID)\n .then((dtos) => {\n dtos.forEach((dto) => {\n assetRepo.addFromDTO(dto);\n appAssets.add(dto.id);\n });\n resolve();\n })\n .catch((e: Error) => {\n reject(e);\n });\n });\n };\n\n constructor(appObject: AppObject) {\n super(appObject, GetAppAssetsUC.type);\n\n this.appObjects.registerSingleton(this);\n\n this.appAssets = appObject.getComponent<AppAssetsEntity>(\n AppAssetsEntity.type\n );\n if (!this.appAssets) {\n this.error(\n \"UC added to an App Object that does not have AppAssetsEntity\"\n );\n return;\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"GetAppAssetsUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/GetAppAssetsUC.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAGrB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,OAAgB,cAAe,SAAQ,WAAW;IAKtD,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,cAAc,CAAC,IAAI,EACnB,UAAU,CACX,CAAC;IACJ,CAAC;;AATM,mBAAI,GAAG,gBAAgB,CAAC;AAYjC,MAAM,UAAU,iBAAiB,CAAC,SAAoB;IACpD,OAAO,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,iBAAkB,SAAQ,cAAc;IAG5C,IAAY,WAAW;QACrB,OAAO,IAAI,CAAC,kBAAkB,CAC5B,0BAA0B,CAAC,IAAI,CAChC,EAAE,SAAS,CAAC;IACf,CAAC;IAED,IAAY,SAAS;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAY,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IA0BD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QAzBxC,iBAAY,GAAG,CAAC,KAAa,EAAiB,EAAE;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAEjC,IAAI,CAAC,SAAS,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC7C,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC;YAED,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,WAAW,CAAC,KAAK,CAAC;qBACf,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACb,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBACnB,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;wBAC1B,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACxB,CAAC,CAAC,CAAC;oBACH,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;oBAClB,MAAM,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAKA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAExC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY,CACrC,eAAe,CAAC,IAAI,CACrB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,CACR,8DAA8D,CAC/D,CAAC;YACF,OAAO;QACT,CAAC;IACH,CAAC;CACF","sourcesContent":["import {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC\r\n} from \"@vived/core\";\r\nimport { GetAssetsForOwnerFromAPIUC } from \"../../VivedAPI\";\r\nimport { AppAssetsEntity } from \"../Entities/AppAssetsEntity\";\r\nimport { AssetRepo } from \"../Entities/AssetRepo\";\r\n\r\nexport abstract class GetAppAssetsUC extends AppObjectUC {\r\n static type = \"GetAppAssetsUC\";\r\n\r\n abstract getAppAssets(appID: string): Promise<void>;\r\n\r\n static get(appObjects: AppObjectRepo): GetAppAssetsUC | undefined {\r\n return getSingletonComponent<GetAppAssetsUC>(\r\n GetAppAssetsUC.type,\r\n appObjects\r\n );\r\n }\r\n}\r\n\r\nexport function makeGetAppAssetUC(appObject: AppObject): GetAppAssetsUC {\r\n return new GetAppAssetsUCImp(appObject);\r\n}\r\n\r\nclass GetAppAssetsUCImp extends GetAppAssetsUC {\r\n private appAssets?: AppAssetsEntity;\r\n\r\n private get getAssetsUC() {\r\n return this.getCachedSingleton<GetAssetsForOwnerFromAPIUC>(\r\n GetAssetsForOwnerFromAPIUC.type\r\n )?.getAssets;\r\n }\r\n\r\n private get assetRepo() {\r\n return this.getCachedSingleton<AssetRepo>(AssetRepo.type);\r\n }\r\n\r\n getAppAssets = (appID: string): Promise<void> => {\r\n const appAssets = this.appAssets;\r\n const getAssetsUC = this.getAssetsUC;\r\n const assetRepo = this.assetRepo;\r\n\r\n if (!appAssets || !getAssetsUC || !assetRepo) {\r\n return Promise.reject();\r\n }\r\n\r\n return new Promise<void>((resolve, reject) => {\r\n getAssetsUC(appID)\r\n .then((dtos) => {\r\n dtos.forEach((dto) => {\r\n assetRepo.addFromDTO(dto);\r\n appAssets.add(dto.id);\r\n });\r\n resolve();\r\n })\r\n .catch((e: Error) => {\r\n reject(e);\r\n });\r\n });\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, GetAppAssetsUC.type);\r\n\r\n this.appObjects.registerSingleton(this);\r\n\r\n this.appAssets = appObject.getComponent<AppAssetsEntity>(\r\n AppAssetsEntity.type\r\n );\r\n if (!this.appAssets) {\r\n this.error(\r\n \"UC added to an App Object that does not have AppAssetsEntity\"\r\n );\r\n return;\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetAssetBlobURLUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/GetAssetBlobURLUC.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * GetAssetBlobURLUC.ts\n *\n * This use case provides optimized asset file retrieval with caching support,\n * returning blob URLs for immediate use in web applications.\n *\n * Key Concepts:\n * - Provides blob URLs for asset files with multi-level caching optimization\n * - Checks memory cache (existing entities) first for immediate access\n * - Falls back to persistent cache (IndexedDB/localStorage) for faster retrieval\n * - Finally fetches from remote API when cache misses occur\n * - Manages fetch state indicators for UI feedback\n * - Automatically stores fetched files in cache for future access\n *\n * Usage Patterns:\n * - Singleton use case accessed through static get() method\n * - Called with asset ID to retrieve blob URL for display or download\n * - Handles async operations with comprehensive error handling\n * - Optimizes performance through multi-level caching strategy\n */\n\nimport {\n getSingletonComponent,\n AppObject,\n AppObjectRepo,\n AppObjectUC\n} from \"@vived/core\";\nimport { FetchAssetFileFromAPIUC } from \"../../VivedAPI\";\nimport { GetAssetFromCacheUC, StoreAssetInCacheUC } from \"../../Cache\";\nimport { AssetEntity } from \"../Entities/AssetEntity\";\nimport { AssetRepo } from \"../Entities/AssetRepo\";\nimport { GetAssetUC } from \"./GetAssetUC\";\n\n/**\n * GetAssetBlobURLUC handles optimized retrieval of asset files as blob URLs.\n *\n * This singleton use case implements a multi-level caching strategy to minimize\n * network requests and provide fast access to asset files for web applications.\n */\nexport abstract class GetAssetBlobURLUC extends AppObjectUC {\n /** Static type identifier for component registration */\n static type = \"GetAssetBlobURLUC\";\n\n /**\n * Retrieves a blob URL for the specified asset file.\n *\n * @param assetID - The unique identifier of the asset\n * @param useCache - Optional flag to control caching behavior (defaults to true)\n * @returns Promise resolving to a blob URL for immediate use\n */\n abstract getAssetBlobURL(\n assetID: string,\n useCache?: boolean\n ): Promise<string>;\n\n /**\n * Retrieves the singleton GetAssetBlobURLUC instance.\n *\n * @param appObjects - Repository for accessing the singleton component\n * @returns GetAssetBlobURLUC instance or undefined if not found\n */\n static get(appObjects: AppObjectRepo): GetAssetBlobURLUC | undefined {\n return getSingletonComponent<GetAssetBlobURLUC>(\n GetAssetBlobURLUC.type,\n appObjects\n );\n }\n}\n\n/**\n * Factory function to create a new GetAssetBlobURLUC instance.\n *\n * @param appObject - The AppObject that will host this singleton use case\n * @returns A new GetAssetBlobURLUC implementation instance\n */\nexport function makeGetAssetBlobURLUC(appObject: AppObject): GetAssetBlobURLUC {\n return new GetAssetBlobURLUCImp(appObject);\n}\n\n/**\n * Private implementation of GetAssetBlobURLUC with multi-level caching strategy.\n *\n * Key Implementation Details:\n * - Implements three-tier caching: memory (entities), persistent cache, and remote API\n * - Manages fetch state indicators for user feedback during operations\n * - Automatically caches fetched files for future access optimization\n * - Handles cache failures gracefully with fallback to direct API access\n * - Converts between Blob and File objects for compatibility\n * - Provides detailed error handling and logging for debugging\n */\nclass GetAssetBlobURLUCImp extends GetAssetBlobURLUC {\n /** Gets the asset repository for entity management and lookup */\n private get assetRepo() {\n return this.getCachedSingleton<AssetRepo>(AssetRepo.type);\n }\n\n /** Gets the API use case for fetching asset files from remote sources */\n private get fetchAssetFile() {\n return this.getCachedSingleton<FetchAssetFileFromAPIUC>(\n FetchAssetFileFromAPIUC.type\n )?.doFetch;\n }\n\n /** Gets the use case for retrieving asset metadata */\n private get getAsset() {\n return this.getCachedSingleton<GetAssetUC>(GetAssetUC.type)?.getAsset;\n }\n\n /** Gets the use case for retrieving assets from persistent cache */\n private get getAssetFromCache() {\n return this.getCachedSingleton<GetAssetFromCacheUC>(\n GetAssetFromCacheUC.type\n )?.getAsset;\n }\n\n /** Gets the use case for storing assets in persistent cache */\n private get storeAssetInCache() {\n return this.getCachedSingleton<StoreAssetInCacheUC>(\n StoreAssetInCacheUC.type\n )?.storeAsset;\n }\n\n /**\n * Retrieves an asset blob URL using optimized multi-level caching.\n *\n * This method implements a three-tier caching strategy:\n * 1. Memory cache: Check if asset entity already has a blob URL\n * 2. Persistent cache: Check IndexedDB/localStorage for cached file\n * 3. Remote API: Fetch from backend as last resort\n *\n * Each level provides progressively better performance, with automatic\n * population of higher-level caches for future access optimization.\n *\n * @param assetID - The unique identifier of the asset\n * @param useCache - Optional flag to control caching behavior (defaults to true)\n * @returns Promise resolving to a blob URL for the asset file\n */\n getAssetBlobURL = (\n assetID: string,\n useCache: boolean = true\n ): Promise<string> => {\n const assetRepo = this.assetRepo;\n const getAsset = this.getAsset;\n const fetchAssetFile = this.fetchAssetFile;\n const getAssetFromCache = this.getAssetFromCache;\n const storeAssetInCache = this.storeAssetInCache;\n\n if (!assetRepo || !getAsset || !fetchAssetFile) {\n return Promise.reject();\n }\n\n // If cache is disabled, skip all cache checks and go directly to API\n if (!useCache) {\n return new Promise((resolve, reject) => {\n this.fetchAssetNormally(assetID, resolve, reject);\n });\n }\n\n // Level 1: Check memory cache (existing entities with blob URLs)\n const existing = assetRepo.get(assetID);\n if (existing && existing.blobURL) {\n return Promise.resolve(existing.blobURL);\n }\n\n return new Promise((resolve, reject) => {\n let fetchedAsset: AssetEntity | undefined;\n\n // Level 2: Check persistent cache\n if (getAssetFromCache) {\n getAssetFromCache(assetID)\n .then((cachedBlob) => {\n if (cachedBlob) {\n // Asset found in cache, get metadata and create file\n return getAsset(assetID).then((asset) => {\n fetchedAsset = asset;\n const filename = asset.filename || \"cached-asset\";\n return new File([cachedBlob], filename, {\n type: cachedBlob.type\n });\n });\n } else {\n // Level 3: Fetch from remote API\n return getAsset(assetID).then((asset) => {\n asset.isFetchingFile = true;\n asset.fetchError = undefined;\n fetchedAsset = asset;\n return fetchAssetFile(asset);\n });\n }\n })\n .then((file) => {\n if (fetchedAsset) {\n // Create blob URL and update entity\n fetchedAsset.setFile(file);\n fetchedAsset.isFetchingFile = false;\n\n // Store in cache for future access (if not from cache already)\n if (storeAssetInCache) {\n storeAssetInCache(\n assetID,\n new Blob([file], { type: file.type }),\n file.type\n ).catch((e) => {\n this.warn(`Failed to cache asset: ${e.message}`);\n });\n }\n\n if (fetchedAsset.blobURL) {\n resolve(fetchedAsset.blobURL);\n return;\n }\n }\n reject(new Error(\"Blob URL is empty\"));\n })\n .catch((e: Error) => {\n // Cache error, fallback to normal flow\n this.warn(`Cache error or fetch error: ${e.message}`);\n this.fetchAssetNormally(assetID, resolve, reject);\n });\n } else {\n // No cache available, use direct API access\n this.fetchAssetNormally(assetID, resolve, reject);\n }\n });\n };\n\n /**\n * Helper method for direct asset fetching without cache support.\n *\n * This method handles the direct API fetch workflow when caching\n * is not available or has failed. It still attempts to store the\n * result in cache for future optimization.\n *\n * @param assetID - The unique identifier of the asset\n * @param resolve - Success callback with blob URL\n * @param reject - Error callback with error details\n */\n private fetchAssetNormally = (\n assetID: string,\n resolve: (blobURL: string) => void,\n reject: (error: Error) => void\n ): void => {\n const getAsset = this.getAsset;\n const fetchAssetFile = this.fetchAssetFile;\n const storeAssetInCache = this.storeAssetInCache;\n\n if (!getAsset || !fetchAssetFile) {\n reject(new Error(\"Required dependencies not found\"));\n return;\n }\n\n let fetchedAsset: AssetEntity | undefined;\n\n getAsset(assetID)\n .then((asset) => {\n // Set loading state for UI feedback\n asset.isFetchingFile = true;\n asset.fetchError = undefined;\n fetchedAsset = asset;\n return fetchAssetFile(asset);\n })\n .then((file) => {\n if (fetchedAsset) {\n // Create blob URL and update entity\n fetchedAsset.setFile(file);\n fetchedAsset.isFetchingFile = false;\n\n // Store in cache for future optimization (if available)\n if (storeAssetInCache) {\n storeAssetInCache(\n assetID,\n new Blob([file], { type: file.type }),\n file.type\n ).catch((e) => {\n this.warn(`Failed to cache asset: ${e.message}`);\n });\n }\n\n if (fetchedAsset.blobURL) {\n resolve(fetchedAsset.blobURL);\n return;\n }\n }\n reject(new Error(\"Blob URL is empty\"));\n })\n .catch((e: Error) => {\n // Handle fetch errors with proper state cleanup\n if (fetchedAsset) {\n fetchedAsset.fetchError = e;\n fetchedAsset.isFetchingFile = false;\n }\n reject(e);\n });\n };\n\n /**\n * Initializes the GetAssetBlobURLUC and registers it as a singleton.\n *\n * @param appObject - The AppObject that will host this singleton use case\n */\n constructor(appObject: AppObject) {\n super(appObject, GetAssetBlobURLUC.type);\n this.appObjects.registerSingleton(this);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"GetAssetBlobURLUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/GetAssetBlobURLUC.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * GetAssetBlobURLUC.ts\r\n *\r\n * This use case provides optimized asset file retrieval with caching support,\r\n * returning blob URLs for immediate use in web applications.\r\n *\r\n * Key Concepts:\r\n * - Provides blob URLs for asset files with multi-level caching optimization\r\n * - Checks memory cache (existing entities) first for immediate access\r\n * - Falls back to persistent cache (IndexedDB/localStorage) for faster retrieval\r\n * - Finally fetches from remote API when cache misses occur\r\n * - Manages fetch state indicators for UI feedback\r\n * - Automatically stores fetched files in cache for future access\r\n *\r\n * Usage Patterns:\r\n * - Singleton use case accessed through static get() method\r\n * - Called with asset ID to retrieve blob URL for display or download\r\n * - Handles async operations with comprehensive error handling\r\n * - Optimizes performance through multi-level caching strategy\r\n */\r\n\r\nimport {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC\r\n} from \"@vived/core\";\r\nimport { FetchAssetFileFromAPIUC } from \"../../VivedAPI\";\r\nimport { GetAssetFromCacheUC, StoreAssetInCacheUC } from \"../../Cache\";\r\nimport { AssetEntity } from \"../Entities/AssetEntity\";\r\nimport { AssetRepo } from \"../Entities/AssetRepo\";\r\nimport { GetAssetUC } from \"./GetAssetUC\";\r\n\r\n/**\r\n * GetAssetBlobURLUC handles optimized retrieval of asset files as blob URLs.\r\n *\r\n * This singleton use case implements a multi-level caching strategy to minimize\r\n * network requests and provide fast access to asset files for web applications.\r\n */\r\nexport abstract class GetAssetBlobURLUC extends AppObjectUC {\r\n /** Static type identifier for component registration */\r\n static type = \"GetAssetBlobURLUC\";\r\n\r\n /**\r\n * Retrieves a blob URL for the specified asset file.\r\n *\r\n * @param assetID - The unique identifier of the asset\r\n * @param useCache - Optional flag to control caching behavior (defaults to true)\r\n * @returns Promise resolving to a blob URL for immediate use\r\n */\r\n abstract getAssetBlobURL(\r\n assetID: string,\r\n useCache?: boolean\r\n ): Promise<string>;\r\n\r\n /**\r\n * Retrieves the singleton GetAssetBlobURLUC instance.\r\n *\r\n * @param appObjects - Repository for accessing the singleton component\r\n * @returns GetAssetBlobURLUC instance or undefined if not found\r\n */\r\n static get(appObjects: AppObjectRepo): GetAssetBlobURLUC | undefined {\r\n return getSingletonComponent<GetAssetBlobURLUC>(\r\n GetAssetBlobURLUC.type,\r\n appObjects\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Factory function to create a new GetAssetBlobURLUC instance.\r\n *\r\n * @param appObject - The AppObject that will host this singleton use case\r\n * @returns A new GetAssetBlobURLUC implementation instance\r\n */\r\nexport function makeGetAssetBlobURLUC(appObject: AppObject): GetAssetBlobURLUC {\r\n return new GetAssetBlobURLUCImp(appObject);\r\n}\r\n\r\n/**\r\n * Private implementation of GetAssetBlobURLUC with multi-level caching strategy.\r\n *\r\n * Key Implementation Details:\r\n * - Implements three-tier caching: memory (entities), persistent cache, and remote API\r\n * - Manages fetch state indicators for user feedback during operations\r\n * - Automatically caches fetched files for future access optimization\r\n * - Handles cache failures gracefully with fallback to direct API access\r\n * - Converts between Blob and File objects for compatibility\r\n * - Provides detailed error handling and logging for debugging\r\n */\r\nclass GetAssetBlobURLUCImp extends GetAssetBlobURLUC {\r\n /** Gets the asset repository for entity management and lookup */\r\n private get assetRepo() {\r\n return this.getCachedSingleton<AssetRepo>(AssetRepo.type);\r\n }\r\n\r\n /** Gets the API use case for fetching asset files from remote sources */\r\n private get fetchAssetFile() {\r\n return this.getCachedSingleton<FetchAssetFileFromAPIUC>(\r\n FetchAssetFileFromAPIUC.type\r\n )?.doFetch;\r\n }\r\n\r\n /** Gets the use case for retrieving asset metadata */\r\n private get getAsset() {\r\n return this.getCachedSingleton<GetAssetUC>(GetAssetUC.type)?.getAsset;\r\n }\r\n\r\n /** Gets the use case for retrieving assets from persistent cache */\r\n private get getAssetFromCache() {\r\n return this.getCachedSingleton<GetAssetFromCacheUC>(\r\n GetAssetFromCacheUC.type\r\n )?.getAsset;\r\n }\r\n\r\n /** Gets the use case for storing assets in persistent cache */\r\n private get storeAssetInCache() {\r\n return this.getCachedSingleton<StoreAssetInCacheUC>(\r\n StoreAssetInCacheUC.type\r\n )?.storeAsset;\r\n }\r\n\r\n /**\r\n * Retrieves an asset blob URL using optimized multi-level caching.\r\n *\r\n * This method implements a three-tier caching strategy:\r\n * 1. Memory cache: Check if asset entity already has a blob URL\r\n * 2. Persistent cache: Check IndexedDB/localStorage for cached file\r\n * 3. Remote API: Fetch from backend as last resort\r\n *\r\n * Each level provides progressively better performance, with automatic\r\n * population of higher-level caches for future access optimization.\r\n *\r\n * @param assetID - The unique identifier of the asset\r\n * @param useCache - Optional flag to control caching behavior (defaults to true)\r\n * @returns Promise resolving to a blob URL for the asset file\r\n */\r\n getAssetBlobURL = (\r\n assetID: string,\r\n useCache: boolean = true\r\n ): Promise<string> => {\r\n const assetRepo = this.assetRepo;\r\n const getAsset = this.getAsset;\r\n const fetchAssetFile = this.fetchAssetFile;\r\n const getAssetFromCache = this.getAssetFromCache;\r\n const storeAssetInCache = this.storeAssetInCache;\r\n\r\n if (!assetRepo || !getAsset || !fetchAssetFile) {\r\n return Promise.reject();\r\n }\r\n\r\n // If cache is disabled, skip all cache checks and go directly to API\r\n if (!useCache) {\r\n return new Promise((resolve, reject) => {\r\n this.fetchAssetNormally(assetID, resolve, reject);\r\n });\r\n }\r\n\r\n // Level 1: Check memory cache (existing entities with blob URLs)\r\n const existing = assetRepo.get(assetID);\r\n if (existing && existing.blobURL) {\r\n return Promise.resolve(existing.blobURL);\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n let fetchedAsset: AssetEntity | undefined;\r\n\r\n // Level 2: Check persistent cache\r\n if (getAssetFromCache) {\r\n getAssetFromCache(assetID)\r\n .then((cachedBlob) => {\r\n if (cachedBlob) {\r\n // Asset found in cache, get metadata and create file\r\n return getAsset(assetID).then((asset) => {\r\n fetchedAsset = asset;\r\n const filename = asset.filename || \"cached-asset\";\r\n return new File([cachedBlob], filename, {\r\n type: cachedBlob.type\r\n });\r\n });\r\n } else {\r\n // Level 3: Fetch from remote API\r\n return getAsset(assetID).then((asset) => {\r\n asset.isFetchingFile = true;\r\n asset.fetchError = undefined;\r\n fetchedAsset = asset;\r\n return fetchAssetFile(asset);\r\n });\r\n }\r\n })\r\n .then((file) => {\r\n if (fetchedAsset) {\r\n // Create blob URL and update entity\r\n fetchedAsset.setFile(file);\r\n fetchedAsset.isFetchingFile = false;\r\n\r\n // Store in cache for future access (if not from cache already)\r\n if (storeAssetInCache) {\r\n storeAssetInCache(\r\n assetID,\r\n new Blob([file], { type: file.type }),\r\n file.type\r\n ).catch((e) => {\r\n this.warn(`Failed to cache asset: ${e.message}`);\r\n });\r\n }\r\n\r\n if (fetchedAsset.blobURL) {\r\n resolve(fetchedAsset.blobURL);\r\n return;\r\n }\r\n }\r\n reject(new Error(\"Blob URL is empty\"));\r\n })\r\n .catch((e: Error) => {\r\n // Cache error, fallback to normal flow\r\n this.warn(`Cache error or fetch error: ${e.message}`);\r\n this.fetchAssetNormally(assetID, resolve, reject);\r\n });\r\n } else {\r\n // No cache available, use direct API access\r\n this.fetchAssetNormally(assetID, resolve, reject);\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Helper method for direct asset fetching without cache support.\r\n *\r\n * This method handles the direct API fetch workflow when caching\r\n * is not available or has failed. It still attempts to store the\r\n * result in cache for future optimization.\r\n *\r\n * @param assetID - The unique identifier of the asset\r\n * @param resolve - Success callback with blob URL\r\n * @param reject - Error callback with error details\r\n */\r\n private fetchAssetNormally = (\r\n assetID: string,\r\n resolve: (blobURL: string) => void,\r\n reject: (error: Error) => void\r\n ): void => {\r\n const getAsset = this.getAsset;\r\n const fetchAssetFile = this.fetchAssetFile;\r\n const storeAssetInCache = this.storeAssetInCache;\r\n\r\n if (!getAsset || !fetchAssetFile) {\r\n reject(new Error(\"Required dependencies not found\"));\r\n return;\r\n }\r\n\r\n let fetchedAsset: AssetEntity | undefined;\r\n\r\n getAsset(assetID)\r\n .then((asset) => {\r\n // Set loading state for UI feedback\r\n asset.isFetchingFile = true;\r\n asset.fetchError = undefined;\r\n fetchedAsset = asset;\r\n return fetchAssetFile(asset);\r\n })\r\n .then((file) => {\r\n if (fetchedAsset) {\r\n // Create blob URL and update entity\r\n fetchedAsset.setFile(file);\r\n fetchedAsset.isFetchingFile = false;\r\n\r\n // Store in cache for future optimization (if available)\r\n if (storeAssetInCache) {\r\n storeAssetInCache(\r\n assetID,\r\n new Blob([file], { type: file.type }),\r\n file.type\r\n ).catch((e) => {\r\n this.warn(`Failed to cache asset: ${e.message}`);\r\n });\r\n }\r\n\r\n if (fetchedAsset.blobURL) {\r\n resolve(fetchedAsset.blobURL);\r\n return;\r\n }\r\n }\r\n reject(new Error(\"Blob URL is empty\"));\r\n })\r\n .catch((e: Error) => {\r\n // Handle fetch errors with proper state cleanup\r\n if (fetchedAsset) {\r\n fetchedAsset.fetchError = e;\r\n fetchedAsset.isFetchingFile = false;\r\n }\r\n reject(e);\r\n });\r\n };\r\n\r\n /**\r\n * Initializes the GetAssetBlobURLUC and registers it as a singleton.\r\n *\r\n * @param appObject - The AppObject that will host this singleton use case\r\n */\r\n constructor(appObject: AppObject) {\r\n super(appObject, GetAssetBlobURLUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetAssetFileUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/GetAssetFileUC.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,qBAAqB,EAGrB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,OAAgB,cAAe,SAAQ,WAAW;IAYtD;;;;;OAKG;IACH,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,cAAc,CAAC,IAAI,EACnB,UAAU,CACX,CAAC;IACJ,CAAC;;AAtBD,wDAAwD;AACjD,mBAAI,GAAG,gBAAgB,CAAC;AAwBjC;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAoB;IACrD,OAAO,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,iBAAkB,SAAQ,cAAc;IAC5C,iEAAiE;IACjE,IAAY,SAAS;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAY,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,yEAAyE;IACzE,IAAY,cAAc;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAC5B,uBAAuB,CAAC,IAAI,CAC7B,EAAE,OAAO,CAAC;IACb,CAAC;IAED,sDAAsD;IACtD,IAAY,QAAQ;QAClB,OAAO,IAAI,CAAC,kBAAkB,CAAa,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACxE,CAAC;IAED,oEAAoE;IACpE,IAAY,iBAAiB;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAC5B,mBAAmB,CAAC,IAAI,CACzB,EAAE,QAAQ,CAAC;IACd,CAAC;IAED,+DAA+D;IAC/D,IAAY,iBAAiB;QAC3B,OAAO,IAAI,CAAC,kBAAkB,CAC5B,mBAAmB,CAAC,IAAI,CACzB,EAAE,UAAU,CAAC;IAChB,CAAC;IA0CD;;;;;OAKG;IACK,KAAK,CAAC,sBAAsB,CAAC,OAAe;QAClD,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEjD,2DAA2D;QAC3D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,kCAAkC;QAClC,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAEpD,IAAI,UAAU,EAAE,CAAC;YACf,qDAAqD;YACrD,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,+BAA+B;YAC/B,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,wBAAwB,CACpC,OAAe,EACf,UAAgB;QAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,qBAAqB;QACrB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEtC,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,cAAc,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE;YAC5C,IAAI,EAAE,UAAU,CAAC,IAAI;SACtB,CAAC,CAAC;QAEH,qBAAqB;QACrB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;QAE7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,kBAAkB,CAAC,OAAe;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAE3C,IAAI,CAAC,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC;YACH,qCAAqC;YACrC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YAC5B,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;YAE7B,iBAAiB;YACjB,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;YAEzC,qBAAqB;YACrB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpB,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;YAE7B,gDAAgD;YAChD,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAE5C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAc,CAAC,CAAC;YACrD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,gBAAgB,CAAC,OAAe,EAAE,KAAY;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;YACtC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;YACzB,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,6DAA6D;QAC/D,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,iBAAiB,CAAC,OAAe,EAAE,IAAU;QACzD,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEjD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,iBAAiB,CACrB,OAAO,EACP,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,EACrC,IAAI,CAAC,IAAI,CACV,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,CAAC,0BAA2B,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC;QA5LxC;;;;;;;;;;;;;WAaG;QACH,iBAAY,GAAG,KAAK,EAAE,OAAe,EAAiB,EAAE;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAE3C,kCAAkC;YAClC,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC/C,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;YACpE,CAAC;YAED,oEAAoE;YACpE,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,aAAa,EAAE,IAAI,EAAE,CAAC;gBACxB,OAAO,aAAa,CAAC,IAAI,CAAC;YAC5B,CAAC;YAED,oEAAoE;YACpE,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,8CAA8C;gBAC9C,IAAI,CAAC,IAAI,CAAC,gBAAiB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtD,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC;QAuJA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["/**\n * GetAssetFileUC.ts\n *\n * This use case handles retrieval of asset files with advanced caching strategies,\n * returning File objects for use in web applications and file operations.\n *\n * Key Concepts:\n * - Retrieves asset files as File objects with multi-level caching optimization\n * - Checks memory cache (existing entities) first for immediate access\n * - Falls back to persistent cache (IndexedDB/localStorage) for faster retrieval\n * - Finally fetches from remote API when cache misses occur\n * - Manages fetch state indicators and error handling for user feedback\n * - Automatically stores fetched files in cache for future access\n *\n * Usage Patterns:\n * - Singleton use case accessed through static get() method\n * - Called with asset ID to retrieve File object for processing or display\n * - Handles async operations with comprehensive error handling\n * - Optimizes performance through intelligent caching strategies\n */\n\nimport {\n getSingletonComponent,\n AppObject,\n AppObjectRepo,\n AppObjectUC\n} from \"@vived/core\";\nimport { FetchAssetFileFromAPIUC } from \"../../VivedAPI\";\nimport { GetAssetFromCacheUC, StoreAssetInCacheUC } from \"../../Cache\";\nimport { AssetRepo } from \"../Entities/AssetRepo\";\nimport { GetAssetUC } from \"./GetAssetUC\";\n\n/**\n * GetAssetFileUC handles optimized retrieval of asset files as File objects.\n *\n * This singleton use case implements a multi-level caching strategy to minimize\n * network requests and provide fast access to asset files for web applications.\n */\nexport abstract class GetAssetFileUC extends AppObjectUC {\n /** Static type identifier for component registration */\n static type = \"GetAssetFileUC\";\n\n /**\n * Retrieves a File object for the specified asset.\n *\n * @param assetID - The unique identifier of the asset\n * @returns Promise resolving to a File object for the asset\n */\n abstract getAssetFile(assetID: string): Promise<File>;\n\n /**\n * Retrieves the singleton GetAssetFileUC instance.\n *\n * @param appObjects - Repository for accessing the singleton component\n * @returns GetAssetFileUC instance or undefined if not found\n */\n static get(appObjects: AppObjectRepo): GetAssetFileUC | undefined {\n return getSingletonComponent<GetAssetFileUC>(\n GetAssetFileUC.type,\n appObjects\n );\n }\n}\n\n/**\n * Factory function to create a new GetAssetFileUC instance.\n *\n * @param appObject - The AppObject that will host this singleton use case\n * @returns A new GetAssetFileUC implementation instance\n */\nexport function makeGetAssetFileUC(appObject: AppObject): GetAssetFileUC {\n return new GetAssetFileUCImp(appObject);\n}\n\n/**\n * Private implementation of GetAssetFileUC with advanced caching and error handling.\n *\n * Key Implementation Details:\n * - Implements three-tier caching: memory (entities), persistent cache, and remote API\n * - Uses async/await for cleaner error handling and flow control\n * - Manages fetch state indicators for user feedback during operations\n * - Automatically caches fetched files for future access optimization\n * - Handles cache failures gracefully with fallback to direct API access\n * - Converts between Blob and File objects maintaining metadata integrity\n * - Provides detailed error handling and logging for debugging\n */\nclass GetAssetFileUCImp extends GetAssetFileUC {\n /** Gets the asset repository for entity management and lookup */\n private get assetRepo() {\n return this.getCachedSingleton<AssetRepo>(AssetRepo.type);\n }\n\n /** Gets the API use case for fetching asset files from remote sources */\n private get fetchAssetFile() {\n return this.getCachedSingleton<FetchAssetFileFromAPIUC>(\n FetchAssetFileFromAPIUC.type\n )?.doFetch;\n }\n\n /** Gets the use case for retrieving asset metadata */\n private get getAsset() {\n return this.getCachedSingleton<GetAssetUC>(GetAssetUC.type)?.getAsset;\n }\n\n /** Gets the use case for retrieving assets from persistent cache */\n private get getAssetFromCache() {\n return this.getCachedSingleton<GetAssetFromCacheUC>(\n GetAssetFromCacheUC.type\n )?.getAsset;\n }\n\n /** Gets the use case for storing assets in persistent cache */\n private get storeAssetInCache() {\n return this.getCachedSingleton<StoreAssetInCacheUC>(\n StoreAssetInCacheUC.type\n )?.storeAsset;\n }\n\n /**\n * Retrieves an asset file using optimized multi-level caching.\n *\n * This method implements a three-tier caching strategy:\n * 1. Memory cache: Check if asset entity already has a File object\n * 2. Persistent cache: Check IndexedDB/localStorage for cached file\n * 3. Remote API: Fetch from backend as last resort\n *\n * Each level provides progressively better performance, with automatic\n * population of higher-level caches for future access optimization.\n *\n * @param assetID - The unique identifier of the asset\n * @returns Promise resolving to a File object for the asset\n */\n getAssetFile = async (assetID: string): Promise<File> => {\n const assetRepo = this.assetRepo;\n const getAsset = this.getAsset;\n const fetchAssetFile = this.fetchAssetFile;\n\n // Check for required dependencies\n if (!assetRepo || !getAsset || !fetchAssetFile) {\n return Promise.reject(new Error(\"Missing required dependencies\"));\n }\n\n // Level 1: Check memory cache (existing entities with File objects)\n const existingAsset = assetRepo.get(assetID);\n if (existingAsset?.file) {\n return existingAsset.file;\n }\n\n // Level 2 & 3: Try cache then API with comprehensive error handling\n try {\n return await this.tryGetFromCacheOrFetch(assetID);\n } catch (error) {\n // If cache access failed, try the normal flow\n this.warn(`Cache error: ${(error as Error).message}`);\n return this.fetchAssetDirectly(assetID);\n }\n };\n\n /**\n * Attempts to retrieve from cache or falls back to direct API fetch.\n *\n * @param assetID - The unique identifier of the asset\n * @returns Promise resolving to a File object\n */\n private async tryGetFromCacheOrFetch(assetID: string): Promise<File> {\n const getAssetFromCache = this.getAssetFromCache;\n\n // If no cache is available, go straight to normal fetching\n if (!getAssetFromCache) {\n return this.fetchAssetDirectly(assetID);\n }\n\n // Try to get the asset from cache\n const cachedBlob = await getAssetFromCache(assetID);\n\n if (cachedBlob) {\n // Asset found in cache, get metadata and create file\n return this.createFileFromCachedBlob(assetID, cachedBlob);\n } else {\n // Not in cache, fetch directly\n return this.fetchAssetDirectly(assetID);\n }\n }\n\n /**\n * Creates a File object from cached blob data and asset metadata.\n *\n * @param assetID - The unique identifier of the asset\n * @param cachedBlob - The cached blob data\n * @returns Promise resolving to a File object with proper metadata\n */\n private async createFileFromCachedBlob(\n assetID: string,\n cachedBlob: Blob\n ): Promise<File> {\n const getAsset = this.getAsset;\n\n if (!getAsset) {\n throw new Error(\"Required dependencies not found\");\n }\n\n // Get asset metadata\n const asset = await getAsset(assetID);\n\n // Convert blob to file with proper metadata\n const filename = asset.filename || \"cached-asset\";\n const file = new File([cachedBlob], filename, {\n type: cachedBlob.type\n });\n\n // Update asset state\n asset.setFile(file);\n asset.isFetchingFile = false;\n\n return file;\n }\n\n /**\n * Fetches asset file directly from API with state management.\n *\n * @param assetID - The unique identifier of the asset\n * @returns Promise resolving to a File object\n */\n private async fetchAssetDirectly(assetID: string): Promise<File> {\n const getAsset = this.getAsset;\n const fetchAssetFile = this.fetchAssetFile;\n\n if (!getAsset || !fetchAssetFile) {\n throw new Error(\"Required dependencies not found\");\n }\n\n try {\n // Get asset and prepare for fetching\n const asset = await getAsset(assetID);\n asset.isFetchingFile = true;\n asset.fetchError = undefined;\n\n // Fetch the file\n const file = await fetchAssetFile(asset);\n\n // Update asset state\n asset.setFile(file);\n asset.isFetchingFile = false;\n\n // Try to store in cache for future optimization\n await this.tryCacheAssetFile(assetID, file);\n\n return file;\n } catch (error) {\n await this.handleFetchError(assetID, error as Error);\n throw error;\n }\n }\n\n /**\n * Handles fetch errors by updating asset state appropriately.\n *\n * @param assetID - The unique identifier of the asset\n * @param error - The error that occurred during fetching\n */\n private async handleFetchError(assetID: string, error: Error): Promise<void> {\n const getAsset = this.getAsset;\n\n if (!getAsset) {\n return;\n }\n\n try {\n const asset = await getAsset(assetID);\n asset.fetchError = error;\n asset.isFetchingFile = false;\n } catch {\n // If we can't get the asset, we can't update its error state\n }\n }\n\n /**\n * Attempts to cache the fetched file for future optimization.\n *\n * @param assetID - The unique identifier of the asset\n * @param file - The file to cache\n */\n private async tryCacheAssetFile(assetID: string, file: File): Promise<void> {\n const storeAssetInCache = this.storeAssetInCache;\n\n if (!storeAssetInCache) {\n return;\n }\n\n try {\n await storeAssetInCache(\n assetID,\n new Blob([file], { type: file.type }),\n file.type\n );\n } catch (e) {\n this.warn(`Failed to cache asset: ${(e as Error).message}`);\n }\n }\n\n /**\n * Initializes the GetAssetFileUC and registers it as a singleton.\n *\n * @param appObject - The AppObject that will host this singleton use case\n */\n constructor(appObject: AppObject) {\n super(appObject, GetAssetFileUC.type);\n this.appObjects.registerSingleton(this);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"GetAssetFileUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/GetAssetFileUC.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * GetAssetFileUC.ts\r\n *\r\n * This use case handles retrieval of asset files with advanced caching strategies,\r\n * returning File objects for use in web applications and file operations.\r\n *\r\n * Key Concepts:\r\n * - Retrieves asset files as File objects with multi-level caching optimization\r\n * - Checks memory cache (existing entities) first for immediate access\r\n * - Falls back to persistent cache (IndexedDB/localStorage) for faster retrieval\r\n * - Finally fetches from remote API when cache misses occur\r\n * - Manages fetch state indicators and error handling for user feedback\r\n * - Automatically stores fetched files in cache for future access\r\n *\r\n * Usage Patterns:\r\n * - Singleton use case accessed through static get() method\r\n * - Called with asset ID to retrieve File object for processing or display\r\n * - Handles async operations with comprehensive error handling\r\n * - Optimizes performance through intelligent caching strategies\r\n */\r\n\r\nimport {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC\r\n} from \"@vived/core\";\r\nimport { FetchAssetFileFromAPIUC } from \"../../VivedAPI\";\r\nimport { GetAssetFromCacheUC, StoreAssetInCacheUC } from \"../../Cache\";\r\nimport { AssetRepo } from \"../Entities/AssetRepo\";\r\nimport { GetAssetUC } from \"./GetAssetUC\";\r\n\r\n/**\r\n * GetAssetFileUC handles optimized retrieval of asset files as File objects.\r\n *\r\n * This singleton use case implements a multi-level caching strategy to minimize\r\n * network requests and provide fast access to asset files for web applications.\r\n */\r\nexport abstract class GetAssetFileUC extends AppObjectUC {\r\n /** Static type identifier for component registration */\r\n static type = \"GetAssetFileUC\";\r\n\r\n /**\r\n * Retrieves a File object for the specified asset.\r\n *\r\n * @param assetID - The unique identifier of the asset\r\n * @returns Promise resolving to a File object for the asset\r\n */\r\n abstract getAssetFile(assetID: string): Promise<File>;\r\n\r\n /**\r\n * Retrieves the singleton GetAssetFileUC instance.\r\n *\r\n * @param appObjects - Repository for accessing the singleton component\r\n * @returns GetAssetFileUC instance or undefined if not found\r\n */\r\n static get(appObjects: AppObjectRepo): GetAssetFileUC | undefined {\r\n return getSingletonComponent<GetAssetFileUC>(\r\n GetAssetFileUC.type,\r\n appObjects\r\n );\r\n }\r\n}\r\n\r\n/**\r\n * Factory function to create a new GetAssetFileUC instance.\r\n *\r\n * @param appObject - The AppObject that will host this singleton use case\r\n * @returns A new GetAssetFileUC implementation instance\r\n */\r\nexport function makeGetAssetFileUC(appObject: AppObject): GetAssetFileUC {\r\n return new GetAssetFileUCImp(appObject);\r\n}\r\n\r\n/**\r\n * Private implementation of GetAssetFileUC with advanced caching and error handling.\r\n *\r\n * Key Implementation Details:\r\n * - Implements three-tier caching: memory (entities), persistent cache, and remote API\r\n * - Uses async/await for cleaner error handling and flow control\r\n * - Manages fetch state indicators for user feedback during operations\r\n * - Automatically caches fetched files for future access optimization\r\n * - Handles cache failures gracefully with fallback to direct API access\r\n * - Converts between Blob and File objects maintaining metadata integrity\r\n * - Provides detailed error handling and logging for debugging\r\n */\r\nclass GetAssetFileUCImp extends GetAssetFileUC {\r\n /** Gets the asset repository for entity management and lookup */\r\n private get assetRepo() {\r\n return this.getCachedSingleton<AssetRepo>(AssetRepo.type);\r\n }\r\n\r\n /** Gets the API use case for fetching asset files from remote sources */\r\n private get fetchAssetFile() {\r\n return this.getCachedSingleton<FetchAssetFileFromAPIUC>(\r\n FetchAssetFileFromAPIUC.type\r\n )?.doFetch;\r\n }\r\n\r\n /** Gets the use case for retrieving asset metadata */\r\n private get getAsset() {\r\n return this.getCachedSingleton<GetAssetUC>(GetAssetUC.type)?.getAsset;\r\n }\r\n\r\n /** Gets the use case for retrieving assets from persistent cache */\r\n private get getAssetFromCache() {\r\n return this.getCachedSingleton<GetAssetFromCacheUC>(\r\n GetAssetFromCacheUC.type\r\n )?.getAsset;\r\n }\r\n\r\n /** Gets the use case for storing assets in persistent cache */\r\n private get storeAssetInCache() {\r\n return this.getCachedSingleton<StoreAssetInCacheUC>(\r\n StoreAssetInCacheUC.type\r\n )?.storeAsset;\r\n }\r\n\r\n /**\r\n * Retrieves an asset file using optimized multi-level caching.\r\n *\r\n * This method implements a three-tier caching strategy:\r\n * 1. Memory cache: Check if asset entity already has a File object\r\n * 2. Persistent cache: Check IndexedDB/localStorage for cached file\r\n * 3. Remote API: Fetch from backend as last resort\r\n *\r\n * Each level provides progressively better performance, with automatic\r\n * population of higher-level caches for future access optimization.\r\n *\r\n * @param assetID - The unique identifier of the asset\r\n * @returns Promise resolving to a File object for the asset\r\n */\r\n getAssetFile = async (assetID: string): Promise<File> => {\r\n const assetRepo = this.assetRepo;\r\n const getAsset = this.getAsset;\r\n const fetchAssetFile = this.fetchAssetFile;\r\n\r\n // Check for required dependencies\r\n if (!assetRepo || !getAsset || !fetchAssetFile) {\r\n return Promise.reject(new Error(\"Missing required dependencies\"));\r\n }\r\n\r\n // Level 1: Check memory cache (existing entities with File objects)\r\n const existingAsset = assetRepo.get(assetID);\r\n if (existingAsset?.file) {\r\n return existingAsset.file;\r\n }\r\n\r\n // Level 2 & 3: Try cache then API with comprehensive error handling\r\n try {\r\n return await this.tryGetFromCacheOrFetch(assetID);\r\n } catch (error) {\r\n // If cache access failed, try the normal flow\r\n this.warn(`Cache error: ${(error as Error).message}`);\r\n return this.fetchAssetDirectly(assetID);\r\n }\r\n };\r\n\r\n /**\r\n * Attempts to retrieve from cache or falls back to direct API fetch.\r\n *\r\n * @param assetID - The unique identifier of the asset\r\n * @returns Promise resolving to a File object\r\n */\r\n private async tryGetFromCacheOrFetch(assetID: string): Promise<File> {\r\n const getAssetFromCache = this.getAssetFromCache;\r\n\r\n // If no cache is available, go straight to normal fetching\r\n if (!getAssetFromCache) {\r\n return this.fetchAssetDirectly(assetID);\r\n }\r\n\r\n // Try to get the asset from cache\r\n const cachedBlob = await getAssetFromCache(assetID);\r\n\r\n if (cachedBlob) {\r\n // Asset found in cache, get metadata and create file\r\n return this.createFileFromCachedBlob(assetID, cachedBlob);\r\n } else {\r\n // Not in cache, fetch directly\r\n return this.fetchAssetDirectly(assetID);\r\n }\r\n }\r\n\r\n /**\r\n * Creates a File object from cached blob data and asset metadata.\r\n *\r\n * @param assetID - The unique identifier of the asset\r\n * @param cachedBlob - The cached blob data\r\n * @returns Promise resolving to a File object with proper metadata\r\n */\r\n private async createFileFromCachedBlob(\r\n assetID: string,\r\n cachedBlob: Blob\r\n ): Promise<File> {\r\n const getAsset = this.getAsset;\r\n\r\n if (!getAsset) {\r\n throw new Error(\"Required dependencies not found\");\r\n }\r\n\r\n // Get asset metadata\r\n const asset = await getAsset(assetID);\r\n\r\n // Convert blob to file with proper metadata\r\n const filename = asset.filename || \"cached-asset\";\r\n const file = new File([cachedBlob], filename, {\r\n type: cachedBlob.type\r\n });\r\n\r\n // Update asset state\r\n asset.setFile(file);\r\n asset.isFetchingFile = false;\r\n\r\n return file;\r\n }\r\n\r\n /**\r\n * Fetches asset file directly from API with state management.\r\n *\r\n * @param assetID - The unique identifier of the asset\r\n * @returns Promise resolving to a File object\r\n */\r\n private async fetchAssetDirectly(assetID: string): Promise<File> {\r\n const getAsset = this.getAsset;\r\n const fetchAssetFile = this.fetchAssetFile;\r\n\r\n if (!getAsset || !fetchAssetFile) {\r\n throw new Error(\"Required dependencies not found\");\r\n }\r\n\r\n try {\r\n // Get asset and prepare for fetching\r\n const asset = await getAsset(assetID);\r\n asset.isFetchingFile = true;\r\n asset.fetchError = undefined;\r\n\r\n // Fetch the file\r\n const file = await fetchAssetFile(asset);\r\n\r\n // Update asset state\r\n asset.setFile(file);\r\n asset.isFetchingFile = false;\r\n\r\n // Try to store in cache for future optimization\r\n await this.tryCacheAssetFile(assetID, file);\r\n\r\n return file;\r\n } catch (error) {\r\n await this.handleFetchError(assetID, error as Error);\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * Handles fetch errors by updating asset state appropriately.\r\n *\r\n * @param assetID - The unique identifier of the asset\r\n * @param error - The error that occurred during fetching\r\n */\r\n private async handleFetchError(assetID: string, error: Error): Promise<void> {\r\n const getAsset = this.getAsset;\r\n\r\n if (!getAsset) {\r\n return;\r\n }\r\n\r\n try {\r\n const asset = await getAsset(assetID);\r\n asset.fetchError = error;\r\n asset.isFetchingFile = false;\r\n } catch {\r\n // If we can't get the asset, we can't update its error state\r\n }\r\n }\r\n\r\n /**\r\n * Attempts to cache the fetched file for future optimization.\r\n *\r\n * @param assetID - The unique identifier of the asset\r\n * @param file - The file to cache\r\n */\r\n private async tryCacheAssetFile(assetID: string, file: File): Promise<void> {\r\n const storeAssetInCache = this.storeAssetInCache;\r\n\r\n if (!storeAssetInCache) {\r\n return;\r\n }\r\n\r\n try {\r\n await storeAssetInCache(\r\n assetID,\r\n new Blob([file], { type: file.type }),\r\n file.type\r\n );\r\n } catch (e) {\r\n this.warn(`Failed to cache asset: ${(e as Error).message}`);\r\n }\r\n }\r\n\r\n /**\r\n * Initializes the GetAssetFileUC and registers it as a singleton.\r\n *\r\n * @param appObject - The AppObject that will host this singleton use case\r\n */\r\n constructor(appObject: AppObject) {\r\n super(appObject, GetAssetFileUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetAssetUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/GetAssetUC.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,qBAAqB,EAGrB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,OAAgB,UAAW,SAAQ,WAAW;IAYlD;;;;;OAKG;IACH,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAAa,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACxE,CAAC;;AAnBD,wDAAwD;AACjD,eAAI,GAAG,YAAY,CAAC;AAqB7B;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,SAAoB;IACjD,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,aAAc,SAAQ,UAAU;IAIpC;;;OAGG;IACH,IAAY,cAAc;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAC5B,uBAAuB,CAAC,IAAI,CAC7B,EAAE,OAAO,CAAC;IACb,CAAC;IA2CD;;;;OAIG;IACH,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QA/CpC;;;;;;;;;;;;WAYG;QACH,aAAQ,GAAG,CAAC,OAAe,EAAwB,EAAE;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAE3C,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc,EAAE,CAAC;gBAClC,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC;YAED,oDAAoD;YACpD,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,CAAC;YAClD,CAAC;YAED,mCAAmC;YACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,cAAc,CAAC,OAAO,CAAC;qBACpB,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;oBAChB,gDAAgD;oBAChD,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBAChD,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrB,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;oBAClB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACrB,MAAM,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QASA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAExC,qDAAqD;QACrD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY,CAAY,SAAS,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;IACH,CAAC;CACF","sourcesContent":["/**\n * GetAssetUC.ts\n *\n * This use case handles retrieval of asset metadata, managing both local\n * repository cache and remote API fetching to ensure asset entities exist\n * and are properly configured.\n *\n * Key Concepts:\n * - Retrieves asset entities with metadata from local cache or remote API\n * - Maintains asset repository consistency for entity management\n * - Uses lazy loading to fetch assets only when needed\n * - Transforms API DTOs to local asset entities automatically\n * - Provides singleton access for system-wide asset retrieval\n *\n * Usage Patterns:\n * - Singleton use case accessed through static get() method\n * - Called with asset ID to ensure asset entity exists and is loaded\n * - Returns existing entities immediately or fetches from API as needed\n * - Used by other UCs that need asset entities for operations\n */\n\nimport {\n getSingletonComponent,\n AppObject,\n AppObjectRepo,\n AppObjectUC\n} from \"@vived/core\";\nimport { FetchAssetMetaFromAPIUC } from \"../../VivedAPI\";\nimport { AssetEntity } from \"../Entities/AssetEntity\";\nimport { AssetRepo } from \"../Entities/AssetRepo\";\n\n/**\n * GetAssetUC handles retrieval and caching of asset entities with metadata.\n *\n * This singleton use case ensures asset entities exist in the local repository,\n * fetching from the API when necessary and maintaining consistent entity state.\n */\nexport abstract class GetAssetUC extends AppObjectUC {\n /** Static type identifier for component registration */\n static type = \"GetAssetUC\";\n\n /**\n * Retrieves an asset entity, fetching from API if not already cached.\n *\n * @param assetID - The unique identifier of the asset\n * @returns Promise resolving to the asset entity with loaded metadata\n */\n abstract getAsset(assetID: string): Promise<AssetEntity>;\n\n /**\n * Retrieves the singleton GetAssetUC instance.\n *\n * @param appObjects - Repository for accessing the singleton component\n * @returns GetAssetUC instance or undefined if not found\n */\n static get(appObjects: AppObjectRepo): GetAssetUC | undefined {\n return getSingletonComponent<GetAssetUC>(GetAssetUC.type, appObjects);\n }\n}\n\n/**\n * Factory function to create a new GetAssetUC instance.\n *\n * @param appObject - The AppObject that will host this singleton use case (must have AssetRepo)\n * @returns A new GetAssetUC implementation instance\n */\nexport function makeGetAssetUC(appObject: AppObject): GetAssetUC {\n return new GetAssetUCImp(appObject);\n}\n\n/**\n * Private implementation of GetAssetUC with caching and API integration.\n *\n * Key Implementation Details:\n * - Checks local asset repository first for immediate access\n * - Falls back to API fetch when asset is not cached locally\n * - Transforms API DTOs to asset entities using repository methods\n * - Provides error handling and logging for debugging\n * - Validates required dependencies during initialization\n */\nclass GetAssetUCImp extends GetAssetUC {\n /** The asset repository for entity management and caching */\n private assetRepo?: AssetRepo;\n\n /**\n * Gets the API use case for fetching asset metadata from remote sources\n * Used when assets are not available in the local repository\n */\n private get fetchAssetMeta() {\n return this.getCachedSingleton<FetchAssetMetaFromAPIUC>(\n FetchAssetMetaFromAPIUC.type\n )?.doFetch;\n }\n\n /**\n * Retrieves an asset entity with intelligent caching.\n *\n * This method implements a two-tier strategy:\n * 1. Check local repository for existing entity (immediate return)\n * 2. Fetch from API and create entity if not cached\n *\n * The method ensures all requested assets are available as entities\n * in the local repository for subsequent operations.\n *\n * @param assetID - The unique identifier of the asset\n * @returns Promise resolving to the asset entity with loaded metadata\n */\n getAsset = (assetID: string): Promise<AssetEntity> => {\n const assetRepo = this.assetRepo;\n const fetchAssetMeta = this.fetchAssetMeta;\n\n if (!assetRepo || !fetchAssetMeta) {\n return Promise.reject();\n }\n\n // Check local repository first for immediate access\n if (assetRepo.has(assetID)) {\n return Promise.resolve(assetRepo.get(assetID)!);\n }\n\n // Asset not cached, fetch from API\n return new Promise((resolve, reject) => {\n fetchAssetMeta(assetID)\n .then((baseDTO) => {\n // Transform DTO to entity and add to repository\n const baseAsset = assetRepo.addFromDTO(baseDTO);\n resolve(baseAsset);\n })\n .catch((e: Error) => {\n this.warn(e.message);\n reject(e);\n });\n });\n };\n\n /**\n * Initializes the GetAssetUC with required dependencies and validation.\n *\n * @param appObject - The AppObject that should contain the AssetRepo for entity management\n */\n constructor(appObject: AppObject) {\n super(appObject, GetAssetUC.type);\n this.appObjects.registerSingleton(this);\n\n // Validate and cache the asset repository dependency\n this.assetRepo = appObject.getComponent<AssetRepo>(AssetRepo.type);\n if (!this.assetRepo) {\n this.error(\"UC added to an App Object that does not have AssetRepo\");\n return;\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"GetAssetUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/GetAssetUC.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACL,qBAAqB,EAGrB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,OAAgB,UAAW,SAAQ,WAAW;IAYlD;;;;;OAKG;IACH,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAAa,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACxE,CAAC;;AAnBD,wDAAwD;AACjD,eAAI,GAAG,YAAY,CAAC;AAqB7B;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,SAAoB;IACjD,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,aAAc,SAAQ,UAAU;IAIpC;;;OAGG;IACH,IAAY,cAAc;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAC5B,uBAAuB,CAAC,IAAI,CAC7B,EAAE,OAAO,CAAC;IACb,CAAC;IA2CD;;;;OAIG;IACH,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QA/CpC;;;;;;;;;;;;WAYG;QACH,aAAQ,GAAG,CAAC,OAAe,EAAwB,EAAE;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACjC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAE3C,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc,EAAE,CAAC;gBAClC,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC;YAED,oDAAoD;YACpD,IAAI,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,CAAC;YAClD,CAAC;YAED,mCAAmC;YACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,cAAc,CAAC,OAAO,CAAC;qBACpB,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;oBAChB,gDAAgD;oBAChD,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBAChD,OAAO,CAAC,SAAS,CAAC,CAAC;gBACrB,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;oBAClB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACrB,MAAM,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QASA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAExC,qDAAqD;QACrD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,YAAY,CAAY,SAAS,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;IACH,CAAC;CACF","sourcesContent":["/**\r\n * GetAssetUC.ts\r\n *\r\n * This use case handles retrieval of asset metadata, managing both local\r\n * repository cache and remote API fetching to ensure asset entities exist\r\n * and are properly configured.\r\n *\r\n * Key Concepts:\r\n * - Retrieves asset entities with metadata from local cache or remote API\r\n * - Maintains asset repository consistency for entity management\r\n * - Uses lazy loading to fetch assets only when needed\r\n * - Transforms API DTOs to local asset entities automatically\r\n * - Provides singleton access for system-wide asset retrieval\r\n *\r\n * Usage Patterns:\r\n * - Singleton use case accessed through static get() method\r\n * - Called with asset ID to ensure asset entity exists and is loaded\r\n * - Returns existing entities immediately or fetches from API as needed\r\n * - Used by other UCs that need asset entities for operations\r\n */\r\n\r\nimport {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC\r\n} from \"@vived/core\";\r\nimport { FetchAssetMetaFromAPIUC } from \"../../VivedAPI\";\r\nimport { AssetEntity } from \"../Entities/AssetEntity\";\r\nimport { AssetRepo } from \"../Entities/AssetRepo\";\r\n\r\n/**\r\n * GetAssetUC handles retrieval and caching of asset entities with metadata.\r\n *\r\n * This singleton use case ensures asset entities exist in the local repository,\r\n * fetching from the API when necessary and maintaining consistent entity state.\r\n */\r\nexport abstract class GetAssetUC extends AppObjectUC {\r\n /** Static type identifier for component registration */\r\n static type = \"GetAssetUC\";\r\n\r\n /**\r\n * Retrieves an asset entity, fetching from API if not already cached.\r\n *\r\n * @param assetID - The unique identifier of the asset\r\n * @returns Promise resolving to the asset entity with loaded metadata\r\n */\r\n abstract getAsset(assetID: string): Promise<AssetEntity>;\r\n\r\n /**\r\n * Retrieves the singleton GetAssetUC instance.\r\n *\r\n * @param appObjects - Repository for accessing the singleton component\r\n * @returns GetAssetUC instance or undefined if not found\r\n */\r\n static get(appObjects: AppObjectRepo): GetAssetUC | undefined {\r\n return getSingletonComponent<GetAssetUC>(GetAssetUC.type, appObjects);\r\n }\r\n}\r\n\r\n/**\r\n * Factory function to create a new GetAssetUC instance.\r\n *\r\n * @param appObject - The AppObject that will host this singleton use case (must have AssetRepo)\r\n * @returns A new GetAssetUC implementation instance\r\n */\r\nexport function makeGetAssetUC(appObject: AppObject): GetAssetUC {\r\n return new GetAssetUCImp(appObject);\r\n}\r\n\r\n/**\r\n * Private implementation of GetAssetUC with caching and API integration.\r\n *\r\n * Key Implementation Details:\r\n * - Checks local asset repository first for immediate access\r\n * - Falls back to API fetch when asset is not cached locally\r\n * - Transforms API DTOs to asset entities using repository methods\r\n * - Provides error handling and logging for debugging\r\n * - Validates required dependencies during initialization\r\n */\r\nclass GetAssetUCImp extends GetAssetUC {\r\n /** The asset repository for entity management and caching */\r\n private assetRepo?: AssetRepo;\r\n\r\n /**\r\n * Gets the API use case for fetching asset metadata from remote sources\r\n * Used when assets are not available in the local repository\r\n */\r\n private get fetchAssetMeta() {\r\n return this.getCachedSingleton<FetchAssetMetaFromAPIUC>(\r\n FetchAssetMetaFromAPIUC.type\r\n )?.doFetch;\r\n }\r\n\r\n /**\r\n * Retrieves an asset entity with intelligent caching.\r\n *\r\n * This method implements a two-tier strategy:\r\n * 1. Check local repository for existing entity (immediate return)\r\n * 2. Fetch from API and create entity if not cached\r\n *\r\n * The method ensures all requested assets are available as entities\r\n * in the local repository for subsequent operations.\r\n *\r\n * @param assetID - The unique identifier of the asset\r\n * @returns Promise resolving to the asset entity with loaded metadata\r\n */\r\n getAsset = (assetID: string): Promise<AssetEntity> => {\r\n const assetRepo = this.assetRepo;\r\n const fetchAssetMeta = this.fetchAssetMeta;\r\n\r\n if (!assetRepo || !fetchAssetMeta) {\r\n return Promise.reject();\r\n }\r\n\r\n // Check local repository first for immediate access\r\n if (assetRepo.has(assetID)) {\r\n return Promise.resolve(assetRepo.get(assetID)!);\r\n }\r\n\r\n // Asset not cached, fetch from API\r\n return new Promise((resolve, reject) => {\r\n fetchAssetMeta(assetID)\r\n .then((baseDTO) => {\r\n // Transform DTO to entity and add to repository\r\n const baseAsset = assetRepo.addFromDTO(baseDTO);\r\n resolve(baseAsset);\r\n })\r\n .catch((e: Error) => {\r\n this.warn(e.message);\r\n reject(e);\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Initializes the GetAssetUC with required dependencies and validation.\r\n *\r\n * @param appObject - The AppObject that should contain the AssetRepo for entity management\r\n */\r\n constructor(appObject: AppObject) {\r\n super(appObject, GetAssetUC.type);\r\n this.appObjects.registerSingleton(this);\r\n\r\n // Validate and cache the asset repository dependency\r\n this.assetRepo = appObject.getComponent<AssetRepo>(AssetRepo.type);\r\n if (!this.assetRepo) {\r\n this.error(\"UC added to an App Object that does not have AssetRepo\");\r\n return;\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -101,12 +101,13 @@ class NewAssetUCImp extends NewAssetUC {
|
|
|
101
101
|
if (!postNewAsset || !assetRepo) {
|
|
102
102
|
return Promise.reject(new Error("Missing dependencies"));
|
|
103
103
|
}
|
|
104
|
-
const { description, file, name, owner } = data;
|
|
104
|
+
const { description, file, name, owner, ownerType } = data;
|
|
105
105
|
const newAssetData = {
|
|
106
106
|
description,
|
|
107
107
|
name,
|
|
108
108
|
file,
|
|
109
|
-
ownerID: owner
|
|
109
|
+
ownerID: owner,
|
|
110
|
+
...(ownerType !== undefined && { ownerType })
|
|
110
111
|
};
|
|
111
112
|
return postNewAsset(newAssetData).then((resp) => {
|
|
112
113
|
// Create and configure the new asset entity
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewAssetUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/NewAssetUC.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAGL,WAAW,EACX,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAkB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"NewAssetUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/NewAssetUC.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAGL,WAAW,EACX,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAkB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAuBxC;;;;;GAKG;AACH,MAAM,OAAgB,UAAW,SAAQ,WAAW;IAYlD;;;;;OAKG;IACH,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;;AAnBD,wDAAwD;AACjD,eAAI,GAAG,YAAY,CAAC;AAqB7B;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,SAAoB;IACjD,OAAO,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,aAAc,SAAQ,UAAU;IACpC;;;OAGG;IACH,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAiB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAC9E,CAAC;IAED;;;OAGG;IACH,IAAY,SAAS;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAY,SAAS,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IA+CD;;;;OAIG;IACH,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAnDpC;;;;;;;;;;;;;WAaG;QACH,WAAM,GAAG,CAAC,IAAiB,EAAmB,EAAE;YAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACvC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAEjC,IAAI,CAAC,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;YAC3D,MAAM,YAAY,GAAmB;gBACnC,WAAW;gBACX,IAAI;gBACJ,IAAI;gBACJ,OAAO,EAAE,KAAK;gBACd,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;aAC9C,CAAC;YAEF,OAAO,YAAY,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC9C,4CAA4C;gBAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjD,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACvB,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;gBACnC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;gBACrB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAElC,mCAAmC;gBACnC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACxB,OAAO,IAAI,CAAC,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QASA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["/**\r\n * NewAssetUC.ts\r\n *\r\n * This use case handles the creation of new assets, managing the complete workflow\r\n * from file upload through API persistence to local entity creation and storage.\r\n *\r\n * Key Concepts:\r\n * - Singleton use case that handles asset creation operations\r\n * - Coordinates file upload with metadata persistence via API\r\n * - Creates and configures new asset entities in the local repository\r\n * - Transforms between DTO formats for API and internal use\r\n * - Provides unique asset IDs for tracking and reference\r\n *\r\n * Usage Patterns:\r\n * - Accessed as a singleton through static get() method\r\n * - Called with complete asset data including file and metadata\r\n * - Returns asset ID for immediate reference by calling code\r\n * - Handles async operations with proper error propagation\r\n */\r\n\r\nimport {\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC,\r\n getSingletonComponent\r\n} from \"@vived/core\";\r\nimport { NewAssetApiDto, PostNewAssetUC } from \"../../VivedAPI/UCs\";\r\nimport { AssetRepo } from \"../Entities\";\r\n\r\n/**\r\n * Data transfer object for new asset creation requests.\r\n * Contains all necessary information to create a new asset in the system.\r\n */\r\nexport interface NewAssetDto {\r\n /** The file object to be uploaded and stored as the asset */\r\n file: File;\r\n /** Display name for the asset */\r\n name: string;\r\n /** Detailed description of the asset's purpose or content */\r\n description: string;\r\n /** ID of the user or entity that owns this asset */\r\n owner: string;\r\n /**\r\n * The kind of entity `owner` refers to. When absent, the backend treats\r\n * the owner as a channel (it does not infer the type from the id), so\r\n * non-channel owners must set this explicitly.\r\n */\r\n ownerType?: \"channel\" | \"activity\" | \"app\";\r\n}\r\n\r\n/**\r\n * NewAssetUC handles the creation of new assets in the VIVED system.\r\n *\r\n * This singleton use case manages the complete asset creation workflow,\r\n * from initial file upload through API persistence to local entity creation.\r\n */\r\nexport abstract class NewAssetUC extends AppObjectUC {\r\n /** Static type identifier for component registration */\r\n static type = \"NewAssetUC\";\r\n\r\n /**\r\n * Creates a new asset with the provided data.\r\n *\r\n * @param data - Complete asset information including file and metadata\r\n * @returns Promise resolving to the unique ID of the newly created asset\r\n */\r\n abstract create(data: NewAssetDto): Promise<string>;\r\n\r\n /**\r\n * Retrieves the singleton NewAssetUC instance.\r\n *\r\n * @param appObjects - Repository for accessing the singleton component\r\n * @returns NewAssetUC instance or undefined if not found\r\n */\r\n static get(appObjects: AppObjectRepo): NewAssetUC | undefined {\r\n return getSingletonComponent(NewAssetUC.type, appObjects);\r\n }\r\n}\r\n\r\n/**\r\n * Factory function to create a new NewAssetUC instance.\r\n *\r\n * @param appObject - The AppObject that will host this singleton use case\r\n * @returns A new NewAssetUC implementation instance\r\n */\r\nexport function makeNewAssetUC(appObject: AppObject): NewAssetUC {\r\n return new NewAssetUCImp(appObject);\r\n}\r\n\r\n/**\r\n * Private implementation of NewAssetUC that handles the concrete asset creation operations.\r\n *\r\n * Key Implementation Details:\r\n * - Validates required dependencies (API and repository components)\r\n * - Transforms NewAssetDto to NewAssetApiDto for API communication\r\n * - Creates and configures new asset entities with file and metadata\r\n * - Adds created assets to the repository for management and access\r\n * - Handles async operations with proper error propagation\r\n * - Registers itself as a singleton for system-wide access\r\n */\r\nclass NewAssetUCImp extends NewAssetUC {\r\n /**\r\n * Gets the API use case for posting new assets to the backend\r\n * Cached for efficient repeated access during operations\r\n */\r\n private get postNewAsset() {\r\n return this.getCachedSingleton<PostNewAssetUC>(PostNewAssetUC.type)?.doPost;\r\n }\r\n\r\n /**\r\n * Gets the asset repository for entity creation and management\r\n * Cached for efficient repeated access during operations\r\n */\r\n private get assetRepo() {\r\n return this.getCachedSingleton<AssetRepo>(AssetRepo.type);\r\n }\r\n\r\n /**\r\n * Creates a new asset with complete workflow handling.\r\n *\r\n * This method handles the complete asset creation process:\r\n * 1. Validates required dependencies are available\r\n * 2. Transforms the DTO to API format\r\n * 3. Posts the asset data to the backend API\r\n * 4. Creates a new asset entity with the returned information\r\n * 5. Configures the entity with file and metadata\r\n * 6. Adds the entity to the repository for management\r\n *\r\n * @param data - Complete asset creation data\r\n * @returns Promise resolving to the unique asset ID\r\n */\r\n create = (data: NewAssetDto): Promise<string> => {\r\n const postNewAsset = this.postNewAsset;\r\n const assetRepo = this.assetRepo;\r\n\r\n if (!postNewAsset || !assetRepo) {\r\n return Promise.reject(new Error(\"Missing dependencies\"));\r\n }\r\n\r\n const { description, file, name, owner, ownerType } = data;\r\n const newAssetData: NewAssetApiDto = {\r\n description,\r\n name,\r\n file,\r\n ownerID: owner,\r\n ...(ownerType !== undefined && { ownerType })\r\n };\r\n\r\n return postNewAsset(newAssetData).then((resp) => {\r\n // Create and configure the new asset entity\r\n const newAsset = assetRepo.assetFactory(resp.id);\r\n newAsset.setFile(file);\r\n newAsset.description = description;\r\n newAsset.name = name;\r\n newAsset.filename = resp.filename;\r\n\r\n // Add to repository for management\r\n assetRepo.add(newAsset);\r\n return resp.id;\r\n });\r\n };\r\n\r\n /**\r\n * Initializes the NewAssetUC and registers it as a singleton.\r\n *\r\n * @param appObject - The AppObject that will host this singleton use case\r\n */\r\n constructor(appObject: AppObject) {\r\n super(appObject, NewAssetUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrefetchAssetsUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/PrefetchAssetsUC.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAGrB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAgB,gBAAiB,SAAQ,WAAW;IAKxD,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC;;AANM,qBAAI,GAAG,kBAAkB,CAAC;AASnC,MAAM,UAAU,kBAAkB,CAAC,SAAoB;IACrD,OAAO,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,oBAAqB,SAAQ,gBAAgB;IACjD,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,cAAc;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAiB,cAAc,CAAC,IAAI,CAAC;YACjE,EAAE,YAAY,CAAC;IACnB,CAAC;IAsCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QArC1C,mBAAc,GAAG,KAAK,IAAmB,EAAE;YACzC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC1C,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CACnD,CAAC,QAAkB,EAAE,OAAe,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,EACD,EAAE,CACH,CAAC;YAEF,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;YAE1D,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;oBACnD,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;qBACvB,IAAI,CAAC,GAAG,EAAE;oBACT,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;oBAClB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACrB,MAAM,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import {\n getSingletonComponent,\n AppObject,\n AppObjectRepo,\n AppObjectUC\n} from \"@vived/core\";\nimport { HostStateMachine } from \"../../StateMachine/Entities\";\nimport { GetAssetFileUC } from \"./GetAssetFileUC\";\n\nexport abstract class PrefetchAssetsUC extends AppObjectUC {\n static type = \"PrefetchAssetsUC\";\n\n abstract prefetchAssets(): Promise<void>;\n\n static get(appObjects: AppObjectRepo): PrefetchAssetsUC | undefined {\n return getSingletonComponent(PrefetchAssetsUC.type, appObjects);\n }\n}\n\nexport function makePrefetchAssets(appObject: AppObject): PrefetchAssetsUC {\n return new HostAppObjectRepoImp(appObject);\n}\n\nclass HostAppObjectRepoImp extends PrefetchAssetsUC {\n private get stateMachine() {\n return this.getCachedSingleton<HostStateMachine>(HostStateMachine.type);\n }\n\n private get fetchAssetFile() {\n return this.getCachedSingleton<GetAssetFileUC>(GetAssetFileUC.type)\n ?.getAssetFile;\n }\n\n prefetchAssets = async (): Promise<void> => {\n const fetchAssetFile = this.fetchAssetFile;\n if (!this.stateMachine || !fetchAssetFile) {\n return Promise.reject();\n }\n\n const totalAssetIds = this.stateMachine.states.reduce(\n (assetIds: string[], stateID: string) => {\n const state = this.stateMachine?.getStateByID(stateID);\n if (state) {\n return assetIds.concat(state.assets);\n } else {\n return [];\n }\n },\n []\n );\n\n const uniqueAssetIds = Array.from(new Set(totalAssetIds));\n\n return new Promise<void>((resolve, reject) => {\n const fetchPromises = uniqueAssetIds.map((assetID) => {\n return fetchAssetFile(assetID);\n });\n\n Promise.all(fetchPromises)\n .then(() => {\n resolve();\n })\n .catch((e: Error) => {\n this.warn(e.message);\n reject(e);\n });\n });\n };\n\n constructor(appObject: AppObject) {\n super(appObject, PrefetchAssetsUC.type);\n this.appObjects.registerSingleton(this);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"PrefetchAssetsUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/PrefetchAssetsUC.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAGrB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,OAAgB,gBAAiB,SAAQ,WAAW;IAKxD,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC;;AANM,qBAAI,GAAG,kBAAkB,CAAC;AASnC,MAAM,UAAU,kBAAkB,CAAC,SAAoB;IACrD,OAAO,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,oBAAqB,SAAQ,gBAAgB;IACjD,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,cAAc;QACxB,OAAO,IAAI,CAAC,kBAAkB,CAAiB,cAAc,CAAC,IAAI,CAAC;YACjE,EAAE,YAAY,CAAC;IACnB,CAAC;IAsCD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QArC1C,mBAAc,GAAG,KAAK,IAAmB,EAAE;YACzC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC1C,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CACnD,CAAC,QAAkB,EAAE,OAAe,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACvC,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,EACD,EAAE,CACH,CAAC;YAEF,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;YAE1D,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3C,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;oBACnD,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;qBACvB,IAAI,CAAC,GAAG,EAAE;oBACT,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,CAAQ,EAAE,EAAE;oBAClB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACrB,MAAM,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAIA,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;CACF","sourcesContent":["import {\r\n getSingletonComponent,\r\n AppObject,\r\n AppObjectRepo,\r\n AppObjectUC\r\n} from \"@vived/core\";\r\nimport { HostStateMachine } from \"../../StateMachine/Entities\";\r\nimport { GetAssetFileUC } from \"./GetAssetFileUC\";\r\n\r\nexport abstract class PrefetchAssetsUC extends AppObjectUC {\r\n static type = \"PrefetchAssetsUC\";\r\n\r\n abstract prefetchAssets(): Promise<void>;\r\n\r\n static get(appObjects: AppObjectRepo): PrefetchAssetsUC | undefined {\r\n return getSingletonComponent(PrefetchAssetsUC.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makePrefetchAssets(appObject: AppObject): PrefetchAssetsUC {\r\n return new HostAppObjectRepoImp(appObject);\r\n}\r\n\r\nclass HostAppObjectRepoImp extends PrefetchAssetsUC {\r\n private get stateMachine() {\r\n return this.getCachedSingleton<HostStateMachine>(HostStateMachine.type);\r\n }\r\n\r\n private get fetchAssetFile() {\r\n return this.getCachedSingleton<GetAssetFileUC>(GetAssetFileUC.type)\r\n ?.getAssetFile;\r\n }\r\n\r\n prefetchAssets = async (): Promise<void> => {\r\n const fetchAssetFile = this.fetchAssetFile;\r\n if (!this.stateMachine || !fetchAssetFile) {\r\n return Promise.reject();\r\n }\r\n\r\n const totalAssetIds = this.stateMachine.states.reduce(\r\n (assetIds: string[], stateID: string) => {\r\n const state = this.stateMachine?.getStateByID(stateID);\r\n if (state) {\r\n return assetIds.concat(state.assets);\r\n } else {\r\n return [];\r\n }\r\n },\r\n []\r\n );\r\n\r\n const uniqueAssetIds = Array.from(new Set(totalAssetIds));\r\n\r\n return new Promise<void>((resolve, reject) => {\r\n const fetchPromises = uniqueAssetIds.map((assetID) => {\r\n return fetchAssetFile(assetID);\r\n });\r\n\r\n Promise.all(fetchPromises)\r\n .then(() => {\r\n resolve();\r\n })\r\n .catch((e: Error) => {\r\n this.warn(e.message);\r\n reject(e);\r\n });\r\n });\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, PrefetchAssetsUC.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateAppAssetMetaUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/UpdateAppAssetMetaUC.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * UpdateAppAssetMetaUC.ts\n *\n * This use case handles updating asset metadata (name, description, archived status)\n * for existing assets. It provides a complete workflow for modifying asset information\n * with user feedback and sandbox state management.\n *\n * Key Concepts:\n * - Updates asset metadata without affecting the actual file content\n * - Uses API calls to persist metadata changes on the backend\n * - Provides user feedback through spinner and error dialogs\n * - Manages sandbox state transitions after successful updates\n * - Supports partial metadata updates through DTO pattern\n *\n * Usage Patterns:\n * - Created per-asset during factory setup\n * - Accessed through static get() method with asset ID\n * - Called with metadata DTO containing updated field values\n * - Handles async operations with proper error handling and user feedback\n */\n\nimport { AppObject, AppObjectRepo, AppObjectUC } from \"@vived/core\";\nimport {\n AppSandboxEntity,\n SandboxState\n} from \"../../AppSandbox/Entities/AppSandboxEntity\";\nimport { DialogAlertDTO } from \"../../Dialog/Entities\";\nimport { MakeAlertDialogUC, MakeSpinnerDialogUC } from \"../../Dialog/UCs\";\nimport { PatchAssetMetaUC } from \"../../VivedAPI/UCs/PatchAssetMetaUC\";\nimport { AssetEntity } from \"../Entities\";\n\n/**\n * Data transfer object for asset metadata updates.\n * Contains all the metadata fields that can be modified for an asset.\n */\nexport interface UpdateAppAssetMetaDTO {\n /** Display name for the asset */\n name: string;\n /** Detailed description of the asset's purpose or content */\n description: string;\n /** Whether the asset should be archived (hidden from normal views) */\n archived: boolean;\n}\n\n/**\n * UpdateAppAssetMetaUC manages updating the metadata of individual assets.\n *\n * This use case provides the business logic for modifying asset metadata,\n * handling API persistence, and managing user feedback during the operation.\n */\nexport abstract class UpdateAppAssetMetaUC extends AppObjectUC {\n /** Static type identifier for component registration */\n static type = \"UpdateAppAssetMetaUC\";\n\n /**\n * Updates the metadata of the associated asset.\n *\n * @param data - DTO containing the updated metadata fields\n * @returns Promise that resolves when the operation completes successfully\n */\n abstract updateMeta(data: UpdateAppAssetMetaDTO): Promise<void>;\n\n /**\n * Retrieves an UpdateAppAssetMetaUC component for a specific asset.\n *\n * @param assetID - The unique identifier of the asset\n * @param appObjects - Repository for accessing app objects and components\n * @returns UpdateAppAssetMetaUC instance or undefined if not found\n */\n static get(\n assetID: string,\n appObjects: AppObjectRepo\n ): UpdateAppAssetMetaUC | undefined {\n const appObject = appObjects.get(assetID);\n if (!appObject) {\n appObjects.submitWarning(\n \"UpdateAppAssetMetaUC.get\",\n \"Unable to find app object\"\n );\n return undefined;\n }\n\n const uc = appObject.getComponent<UpdateAppAssetMetaUC>(\n UpdateAppAssetMetaUC.type\n );\n if (!uc) {\n appObjects.submitWarning(\n \"UpdateAppAssetMetaUC.get\",\n \"App Object does not have UpdateAssetMetaUC\"\n );\n return undefined;\n }\n\n return uc;\n }\n}\n\n/**\n * Factory function to create a new UpdateAppAssetMetaUC instance.\n *\n * @param appObject - The AppObject that will host this use case (should contain an AssetEntity)\n * @returns A new UpdateAppAssetMetaUC implementation instance\n */\nexport function makeUpdateAppAssetMetaUC(\n appObject: AppObject\n): UpdateAppAssetMetaUC {\n return new UpdateAppAssetMetaUCImp(appObject);\n}\n\n/**\n * Private implementation of UpdateAppAssetMetaUC that handles the concrete metadata update operations.\n *\n * Key Implementation Details:\n * - Gets asset entity from local AppObject components\n * - Uses PatchAssetMetaUC for backend API persistence\n * - Shows spinner dialogs during metadata update operations\n * - Handles errors gracefully with alert dialogs and logging\n * - Updates local asset state after successful API operations\n * - Manages sandbox state transitions for UI consistency\n */\nclass UpdateAppAssetMetaUCImp extends UpdateAppAssetMetaUC {\n /** Gets the asset entity from the local AppObject this UC operates on */\n private get asset() {\n return this.getCachedLocalComponent<AssetEntity>(AssetEntity.type);\n }\n\n /** Gets the spinner dialog factory for showing user feedback during operations */\n private get spinnerFactory() {\n return this.getCachedSingleton<MakeSpinnerDialogUC>(\n MakeSpinnerDialogUC.type\n );\n }\n\n /** Gets the API use case for patching asset metadata on the backend */\n private get patchAssetMeta() {\n return this.getCachedSingleton<PatchAssetMetaUC>(PatchAssetMetaUC.type)\n ?.doPatch;\n }\n\n /** Gets the alert dialog factory for showing error messages to users */\n private get alertFactory() {\n return this.getCachedSingleton<MakeAlertDialogUC>(MakeAlertDialogUC.type);\n }\n\n /** Gets the sandbox entity for managing application state transitions */\n private get sandbox() {\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\n }\n\n /**\n * Updates the asset metadata with full error handling and user feedback.\n *\n * This method handles the complete metadata update workflow:\n * 1. Validates the asset exists and required dependencies are available\n * 2. Shows a spinner dialog during the API operation\n * 3. Patches the metadata on the backend via API\n * 4. Updates the local asset entity with the new metadata\n * 5. Manages sandbox state transitions for UI consistency\n * 6. Shows error dialogs and logs failures appropriately\n *\n * @param data - DTO containing the updated metadata fields\n * @returns Promise that resolves when the operation completes (successfully or with handled error)\n */\n updateMeta = (data: UpdateAppAssetMetaDTO): Promise<void> => {\n const asset = this.asset;\n\n if (!asset) {\n return Promise.reject(new Error(\"No Asset Entity\"));\n }\n\n const patchAssetMeta = this.patchAssetMeta;\n if (!patchAssetMeta) {\n return Promise.reject(new Error(\"No Patch UC\"));\n }\n\n const { archived, description, name } = data;\n\n // Show user feedback during operation\n const spinnerDialog = this.spinnerFactory?.make({\n title: \"Asset Meta\",\n message: \"Updating asset's meta...\"\n });\n\n return new Promise((resolve, reject) => {\n patchAssetMeta({\n archived,\n description,\n id: asset.id,\n name\n })\n .then(() => {\n // Update local asset state with new metadata\n asset.archived = archived;\n asset.name = name;\n asset.description = description;\n\n spinnerDialog?.close();\n\n // Manage sandbox state for UI consistency\n if (this.sandbox) this.sandbox.state = SandboxState.MOUNTED;\n\n resolve();\n })\n .catch((e) => {\n // Handle errors with user feedback\n this.error(\"Patch asset error: \" + e.message);\n spinnerDialog?.close();\n const dialogDTO: DialogAlertDTO = {\n buttonLabel: \"OK\",\n message: `Something went wrong when updating the assets meta. Check the console. ${e.message}`,\n title: \"Update Asset Error\"\n };\n this.alertFactory?.make(dialogDTO);\n resolve(); // Resolve to prevent unhandled rejections, error is already handled\n });\n });\n };\n\n /**\n * Initializes the UpdateAppAssetMetaUC.\n *\n * @param appObject - The AppObject that should contain the AssetEntity this UC will operate on\n */\n constructor(appObject: AppObject) {\n super(appObject, UpdateAppAssetMetaUC.type);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"UpdateAppAssetMetaUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/UpdateAppAssetMetaUC.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * UpdateAppAssetMetaUC.ts\r\n *\r\n * This use case handles updating asset metadata (name, description, archived status)\r\n * for existing assets. It provides a complete workflow for modifying asset information\r\n * with user feedback and sandbox state management.\r\n *\r\n * Key Concepts:\r\n * - Updates asset metadata without affecting the actual file content\r\n * - Uses API calls to persist metadata changes on the backend\r\n * - Provides user feedback through spinner and error dialogs\r\n * - Manages sandbox state transitions after successful updates\r\n * - Supports partial metadata updates through DTO pattern\r\n *\r\n * Usage Patterns:\r\n * - Created per-asset during factory setup\r\n * - Accessed through static get() method with asset ID\r\n * - Called with metadata DTO containing updated field values\r\n * - Handles async operations with proper error handling and user feedback\r\n */\r\n\r\nimport { AppObject, AppObjectRepo, AppObjectUC } from \"@vived/core\";\r\nimport {\r\n AppSandboxEntity,\r\n SandboxState\r\n} from \"../../AppSandbox/Entities/AppSandboxEntity\";\r\nimport { DialogAlertDTO } from \"../../Dialog/Entities\";\r\nimport { MakeAlertDialogUC, MakeSpinnerDialogUC } from \"../../Dialog/UCs\";\r\nimport { PatchAssetMetaUC } from \"../../VivedAPI/UCs/PatchAssetMetaUC\";\r\nimport { AssetEntity } from \"../Entities\";\r\n\r\n/**\r\n * Data transfer object for asset metadata updates.\r\n * Contains all the metadata fields that can be modified for an asset.\r\n */\r\nexport interface UpdateAppAssetMetaDTO {\r\n /** Display name for the asset */\r\n name: string;\r\n /** Detailed description of the asset's purpose or content */\r\n description: string;\r\n /** Whether the asset should be archived (hidden from normal views) */\r\n archived: boolean;\r\n}\r\n\r\n/**\r\n * UpdateAppAssetMetaUC manages updating the metadata of individual assets.\r\n *\r\n * This use case provides the business logic for modifying asset metadata,\r\n * handling API persistence, and managing user feedback during the operation.\r\n */\r\nexport abstract class UpdateAppAssetMetaUC extends AppObjectUC {\r\n /** Static type identifier for component registration */\r\n static type = \"UpdateAppAssetMetaUC\";\r\n\r\n /**\r\n * Updates the metadata of the associated asset.\r\n *\r\n * @param data - DTO containing the updated metadata fields\r\n * @returns Promise that resolves when the operation completes successfully\r\n */\r\n abstract updateMeta(data: UpdateAppAssetMetaDTO): Promise<void>;\r\n\r\n /**\r\n * Retrieves an UpdateAppAssetMetaUC component for a specific asset.\r\n *\r\n * @param assetID - The unique identifier of the asset\r\n * @param appObjects - Repository for accessing app objects and components\r\n * @returns UpdateAppAssetMetaUC instance or undefined if not found\r\n */\r\n static get(\r\n assetID: string,\r\n appObjects: AppObjectRepo\r\n ): UpdateAppAssetMetaUC | undefined {\r\n const appObject = appObjects.get(assetID);\r\n if (!appObject) {\r\n appObjects.submitWarning(\r\n \"UpdateAppAssetMetaUC.get\",\r\n \"Unable to find app object\"\r\n );\r\n return undefined;\r\n }\r\n\r\n const uc = appObject.getComponent<UpdateAppAssetMetaUC>(\r\n UpdateAppAssetMetaUC.type\r\n );\r\n if (!uc) {\r\n appObjects.submitWarning(\r\n \"UpdateAppAssetMetaUC.get\",\r\n \"App Object does not have UpdateAssetMetaUC\"\r\n );\r\n return undefined;\r\n }\r\n\r\n return uc;\r\n }\r\n}\r\n\r\n/**\r\n * Factory function to create a new UpdateAppAssetMetaUC instance.\r\n *\r\n * @param appObject - The AppObject that will host this use case (should contain an AssetEntity)\r\n * @returns A new UpdateAppAssetMetaUC implementation instance\r\n */\r\nexport function makeUpdateAppAssetMetaUC(\r\n appObject: AppObject\r\n): UpdateAppAssetMetaUC {\r\n return new UpdateAppAssetMetaUCImp(appObject);\r\n}\r\n\r\n/**\r\n * Private implementation of UpdateAppAssetMetaUC that handles the concrete metadata update operations.\r\n *\r\n * Key Implementation Details:\r\n * - Gets asset entity from local AppObject components\r\n * - Uses PatchAssetMetaUC for backend API persistence\r\n * - Shows spinner dialogs during metadata update operations\r\n * - Handles errors gracefully with alert dialogs and logging\r\n * - Updates local asset state after successful API operations\r\n * - Manages sandbox state transitions for UI consistency\r\n */\r\nclass UpdateAppAssetMetaUCImp extends UpdateAppAssetMetaUC {\r\n /** Gets the asset entity from the local AppObject this UC operates on */\r\n private get asset() {\r\n return this.getCachedLocalComponent<AssetEntity>(AssetEntity.type);\r\n }\r\n\r\n /** Gets the spinner dialog factory for showing user feedback during operations */\r\n private get spinnerFactory() {\r\n return this.getCachedSingleton<MakeSpinnerDialogUC>(\r\n MakeSpinnerDialogUC.type\r\n );\r\n }\r\n\r\n /** Gets the API use case for patching asset metadata on the backend */\r\n private get patchAssetMeta() {\r\n return this.getCachedSingleton<PatchAssetMetaUC>(PatchAssetMetaUC.type)\r\n ?.doPatch;\r\n }\r\n\r\n /** Gets the alert dialog factory for showing error messages to users */\r\n private get alertFactory() {\r\n return this.getCachedSingleton<MakeAlertDialogUC>(MakeAlertDialogUC.type);\r\n }\r\n\r\n /** Gets the sandbox entity for managing application state transitions */\r\n private get sandbox() {\r\n return this.getCachedSingleton<AppSandboxEntity>(AppSandboxEntity.type);\r\n }\r\n\r\n /**\r\n * Updates the asset metadata with full error handling and user feedback.\r\n *\r\n * This method handles the complete metadata update workflow:\r\n * 1. Validates the asset exists and required dependencies are available\r\n * 2. Shows a spinner dialog during the API operation\r\n * 3. Patches the metadata on the backend via API\r\n * 4. Updates the local asset entity with the new metadata\r\n * 5. Manages sandbox state transitions for UI consistency\r\n * 6. Shows error dialogs and logs failures appropriately\r\n *\r\n * @param data - DTO containing the updated metadata fields\r\n * @returns Promise that resolves when the operation completes (successfully or with handled error)\r\n */\r\n updateMeta = (data: UpdateAppAssetMetaDTO): Promise<void> => {\r\n const asset = this.asset;\r\n\r\n if (!asset) {\r\n return Promise.reject(new Error(\"No Asset Entity\"));\r\n }\r\n\r\n const patchAssetMeta = this.patchAssetMeta;\r\n if (!patchAssetMeta) {\r\n return Promise.reject(new Error(\"No Patch UC\"));\r\n }\r\n\r\n const { archived, description, name } = data;\r\n\r\n // Show user feedback during operation\r\n const spinnerDialog = this.spinnerFactory?.make({\r\n title: \"Asset Meta\",\r\n message: \"Updating asset's meta...\"\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n patchAssetMeta({\r\n archived,\r\n description,\r\n id: asset.id,\r\n name\r\n })\r\n .then(() => {\r\n // Update local asset state with new metadata\r\n asset.archived = archived;\r\n asset.name = name;\r\n asset.description = description;\r\n\r\n spinnerDialog?.close();\r\n\r\n // Manage sandbox state for UI consistency\r\n if (this.sandbox) this.sandbox.state = SandboxState.MOUNTED;\r\n\r\n resolve();\r\n })\r\n .catch((e) => {\r\n // Handle errors with user feedback\r\n this.error(\"Patch asset error: \" + e.message);\r\n spinnerDialog?.close();\r\n const dialogDTO: DialogAlertDTO = {\r\n buttonLabel: \"OK\",\r\n message: `Something went wrong when updating the assets meta. Check the console. ${e.message}`,\r\n title: \"Update Asset Error\"\r\n };\r\n this.alertFactory?.make(dialogDTO);\r\n resolve(); // Resolve to prevent unhandled rejections, error is already handled\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Initializes the UpdateAppAssetMetaUC.\r\n *\r\n * @param appObject - The AppObject that should contain the AssetEntity this UC will operate on\r\n */\r\n constructor(appObject: AppObject) {\r\n super(appObject, UpdateAppAssetMetaUC.type);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpdateAssetFileUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/UpdateAssetFileUC.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * UpdateAssetFileUC.ts\n *\n * This use case handles updating the file content of existing assets while\n * preserving metadata and relationships. It provides a complete workflow\n * for replacing asset files with user feedback and error handling.\n *\n * Key Concepts:\n * - Updates asset file content while preserving metadata and relationships\n * - Uses API calls to persist file changes on the backend\n * - Provides user feedback through spinner and error dialogs\n * - Manages local asset state updates after successful operations\n * - Handles filename updates from backend processing\n *\n * Usage Patterns:\n * - Created per-asset during factory setup\n * - Accessed through static get() method with asset ID\n * - Called with new File object to replace existing asset content\n * - Handles async operations with proper error handling and user feedback\n */\n\nimport { AppObject, AppObjectRepo, AppObjectUC } from \"@vived/core\";\nimport {\n DialogAlertDTO,\n DialogQueue,\n MakeAlertDialogUC,\n MakeSpinnerDialogUC\n} from \"../../Dialog\";\nimport { PatchAssetFileUC } from \"../../VivedAPI\";\nimport { AssetEntity } from \"../Entities/AssetEntity\";\n\n/**\n * Data transfer object for asset metadata updates.\n * Contains the basic metadata fields that can be modified for an asset.\n */\nexport interface UpdateAssetMetaDTO {\n /** Display name for the asset */\n name: string;\n /** Detailed description of the asset's purpose or content */\n description: string;\n /** Whether the asset should be archived (hidden from normal views) */\n archived: boolean;\n}\n\n/**\n * UpdateAssetFileUC manages updating the file content of individual assets.\n *\n * This use case provides the business logic for replacing asset files,\n * handling API persistence, and managing user feedback during the operation.\n */\nexport abstract class UpdateAssetFileUC extends AppObjectUC {\n /** Static type identifier for component registration */\n static type = \"UpdateAssetFileUC\";\n\n /**\n * Updates the file content of the associated asset.\n *\n * @param file - The new file to replace the existing asset content\n * @returns Promise that resolves when the operation completes successfully\n */\n abstract updateFile(file: File): Promise<void>;\n\n /**\n * Retrieves an UpdateAssetFileUC component for a specific asset.\n *\n * @param assetID - The unique identifier of the asset\n * @param appObjects - Repository for accessing app objects and components\n * @returns UpdateAssetFileUC instance or undefined if not found\n */\n static get(\n assetID: string,\n appObjects: AppObjectRepo\n ): UpdateAssetFileUC | undefined {\n const appObject = appObjects.get(assetID);\n if (!appObject) {\n appObjects.submitWarning(\n \"UpdateAssetFileUC.get\",\n \"Unable to find app object\"\n );\n return undefined;\n }\n\n const uc = appObject.getComponent<UpdateAssetFileUC>(\n UpdateAssetFileUC.type\n );\n if (!uc) {\n appObjects.submitWarning(\n \"UpdateAssetFileUC.get\",\n \"App Object does not have UpdateAssetFileUC\"\n );\n return undefined;\n }\n\n return uc;\n }\n}\n\n/**\n * Factory function to create a new UpdateAssetFileUC instance.\n *\n * @param appObject - The AppObject that will host this use case (should contain an AssetEntity)\n * @returns A new UpdateAssetFileUC implementation instance\n */\nexport function makeUpdateAssetFileUC(appObject: AppObject): UpdateAssetFileUC {\n return new UpdateAssetFileUCImp(appObject);\n}\n\n/**\n * Private implementation of UpdateAssetFileUC that handles the concrete file update operations.\n *\n * Key Implementation Details:\n * - Validates asset entity existence before operations\n * - Uses PatchAssetFileUC for backend API persistence\n * - Shows spinner dialogs during file upload operations\n * - Handles errors gracefully with alert dialogs and logging\n * - Updates local asset state including file content and filename\n * - Preserves asset metadata and relationships during file replacement\n */\nclass UpdateAssetFileUCImp extends UpdateAssetFileUC {\n /** The asset entity this use case operates on */\n private asset?: AssetEntity;\n\n /**\n * Gets the API use case for patching asset files on the backend\n * Cached for efficient repeated access during operations\n */\n private get patchAssetFile() {\n return this.getCachedSingleton<PatchAssetFileUC>(PatchAssetFileUC.type)\n ?.doPatch;\n }\n\n /**\n * Updates the asset file with full error handling and user feedback.\n *\n * This method handles the complete file update workflow:\n * 1. Validates the asset exists\n * 2. Shows a spinner dialog during the API operation\n * 3. Uploads the new file to the backend via API\n * 4. Updates the local asset with the new file and filename\n * 5. Shows error dialogs and logs failures appropriately\n *\n * @param file - The new file to replace the existing asset content\n * @returns Promise that resolves when the operation completes (successfully or with handled error)\n */\n updateFile = (file: File): Promise<void> => {\n const asset = this.asset;\n\n if (!asset) {\n return Promise.reject(new Error(\"No Asset Entity\"));\n }\n\n const patchAssetFile = this.patchAssetFile;\n if (!patchAssetFile) {\n return Promise.reject();\n }\n\n // Show user feedback during operation\n const spinnerDialog = MakeSpinnerDialogUC.make(\n {\n title: \"Asset File\",\n message: \"Updating asset's file...\"\n },\n this.appObjects\n );\n\n return new Promise((resolve, reject) => {\n patchAssetFile(asset.id, file)\n .then((newFilename) => {\n // Update local asset state with new file and filename\n asset.setFile(file);\n asset.filename = newFilename;\n\n spinnerDialog?.close();\n resolve();\n })\n .catch((e) => {\n // Handle errors with user feedback\n this.error(\"Patch asset file error: \" + e.message);\n spinnerDialog?.close();\n const dialogDTO: DialogAlertDTO = {\n buttonLabel: \"OK\",\n message: `Something went wrong when updating the asset's file. Check the console. ${e.message}`,\n title: \"Update Asset File Error\"\n };\n MakeAlertDialogUC.make(dialogDTO, this.appObjects);\n resolve(); // Resolve to prevent unhandled rejections, error is already handled\n });\n });\n };\n\n /**\n * Initializes the UpdateAssetFileUC with validation of required components.\n *\n * @param appObject - The AppObject that should contain the AssetEntity this UC will operate on\n */\n constructor(appObject: AppObject) {\n super(appObject, UpdateAssetFileUC.type);\n\n this.asset = appObject.getComponent<AssetEntity>(AssetEntity.type);\n if (!this.asset) {\n this.error(\n \"UC has been added to an App Object that does not have ArchiveAssetUC\"\n );\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"UpdateAssetFileUC.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/UpdateAssetFileUC.ts"],"names":[],"mappings":"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","sourcesContent":["/**\r\n * UpdateAssetFileUC.ts\r\n *\r\n * This use case handles updating the file content of existing assets while\r\n * preserving metadata and relationships. It provides a complete workflow\r\n * for replacing asset files with user feedback and error handling.\r\n *\r\n * Key Concepts:\r\n * - Updates asset file content while preserving metadata and relationships\r\n * - Uses API calls to persist file changes on the backend\r\n * - Provides user feedback through spinner and error dialogs\r\n * - Manages local asset state updates after successful operations\r\n * - Handles filename updates from backend processing\r\n *\r\n * Usage Patterns:\r\n * - Created per-asset during factory setup\r\n * - Accessed through static get() method with asset ID\r\n * - Called with new File object to replace existing asset content\r\n * - Handles async operations with proper error handling and user feedback\r\n */\r\n\r\nimport { AppObject, AppObjectRepo, AppObjectUC } from \"@vived/core\";\r\nimport {\r\n DialogAlertDTO,\r\n DialogQueue,\r\n MakeAlertDialogUC,\r\n MakeSpinnerDialogUC\r\n} from \"../../Dialog\";\r\nimport { PatchAssetFileUC } from \"../../VivedAPI\";\r\nimport { AssetEntity } from \"../Entities/AssetEntity\";\r\n\r\n/**\r\n * Data transfer object for asset metadata updates.\r\n * Contains the basic metadata fields that can be modified for an asset.\r\n */\r\nexport interface UpdateAssetMetaDTO {\r\n /** Display name for the asset */\r\n name: string;\r\n /** Detailed description of the asset's purpose or content */\r\n description: string;\r\n /** Whether the asset should be archived (hidden from normal views) */\r\n archived: boolean;\r\n}\r\n\r\n/**\r\n * UpdateAssetFileUC manages updating the file content of individual assets.\r\n *\r\n * This use case provides the business logic for replacing asset files,\r\n * handling API persistence, and managing user feedback during the operation.\r\n */\r\nexport abstract class UpdateAssetFileUC extends AppObjectUC {\r\n /** Static type identifier for component registration */\r\n static type = \"UpdateAssetFileUC\";\r\n\r\n /**\r\n * Updates the file content of the associated asset.\r\n *\r\n * @param file - The new file to replace the existing asset content\r\n * @returns Promise that resolves when the operation completes successfully\r\n */\r\n abstract updateFile(file: File): Promise<void>;\r\n\r\n /**\r\n * Retrieves an UpdateAssetFileUC component for a specific asset.\r\n *\r\n * @param assetID - The unique identifier of the asset\r\n * @param appObjects - Repository for accessing app objects and components\r\n * @returns UpdateAssetFileUC instance or undefined if not found\r\n */\r\n static get(\r\n assetID: string,\r\n appObjects: AppObjectRepo\r\n ): UpdateAssetFileUC | undefined {\r\n const appObject = appObjects.get(assetID);\r\n if (!appObject) {\r\n appObjects.submitWarning(\r\n \"UpdateAssetFileUC.get\",\r\n \"Unable to find app object\"\r\n );\r\n return undefined;\r\n }\r\n\r\n const uc = appObject.getComponent<UpdateAssetFileUC>(\r\n UpdateAssetFileUC.type\r\n );\r\n if (!uc) {\r\n appObjects.submitWarning(\r\n \"UpdateAssetFileUC.get\",\r\n \"App Object does not have UpdateAssetFileUC\"\r\n );\r\n return undefined;\r\n }\r\n\r\n return uc;\r\n }\r\n}\r\n\r\n/**\r\n * Factory function to create a new UpdateAssetFileUC instance.\r\n *\r\n * @param appObject - The AppObject that will host this use case (should contain an AssetEntity)\r\n * @returns A new UpdateAssetFileUC implementation instance\r\n */\r\nexport function makeUpdateAssetFileUC(appObject: AppObject): UpdateAssetFileUC {\r\n return new UpdateAssetFileUCImp(appObject);\r\n}\r\n\r\n/**\r\n * Private implementation of UpdateAssetFileUC that handles the concrete file update operations.\r\n *\r\n * Key Implementation Details:\r\n * - Validates asset entity existence before operations\r\n * - Uses PatchAssetFileUC for backend API persistence\r\n * - Shows spinner dialogs during file upload operations\r\n * - Handles errors gracefully with alert dialogs and logging\r\n * - Updates local asset state including file content and filename\r\n * - Preserves asset metadata and relationships during file replacement\r\n */\r\nclass UpdateAssetFileUCImp extends UpdateAssetFileUC {\r\n /** The asset entity this use case operates on */\r\n private asset?: AssetEntity;\r\n\r\n /**\r\n * Gets the API use case for patching asset files on the backend\r\n * Cached for efficient repeated access during operations\r\n */\r\n private get patchAssetFile() {\r\n return this.getCachedSingleton<PatchAssetFileUC>(PatchAssetFileUC.type)\r\n ?.doPatch;\r\n }\r\n\r\n /**\r\n * Updates the asset file with full error handling and user feedback.\r\n *\r\n * This method handles the complete file update workflow:\r\n * 1. Validates the asset exists\r\n * 2. Shows a spinner dialog during the API operation\r\n * 3. Uploads the new file to the backend via API\r\n * 4. Updates the local asset with the new file and filename\r\n * 5. Shows error dialogs and logs failures appropriately\r\n *\r\n * @param file - The new file to replace the existing asset content\r\n * @returns Promise that resolves when the operation completes (successfully or with handled error)\r\n */\r\n updateFile = (file: File): Promise<void> => {\r\n const asset = this.asset;\r\n\r\n if (!asset) {\r\n return Promise.reject(new Error(\"No Asset Entity\"));\r\n }\r\n\r\n const patchAssetFile = this.patchAssetFile;\r\n if (!patchAssetFile) {\r\n return Promise.reject();\r\n }\r\n\r\n // Show user feedback during operation\r\n const spinnerDialog = MakeSpinnerDialogUC.make(\r\n {\r\n title: \"Asset File\",\r\n message: \"Updating asset's file...\"\r\n },\r\n this.appObjects\r\n );\r\n\r\n return new Promise((resolve, reject) => {\r\n patchAssetFile(asset.id, file)\r\n .then((newFilename) => {\r\n // Update local asset state with new file and filename\r\n asset.setFile(file);\r\n asset.filename = newFilename;\r\n\r\n spinnerDialog?.close();\r\n resolve();\r\n })\r\n .catch((e) => {\r\n // Handle errors with user feedback\r\n this.error(\"Patch asset file error: \" + e.message);\r\n spinnerDialog?.close();\r\n const dialogDTO: DialogAlertDTO = {\r\n buttonLabel: \"OK\",\r\n message: `Something went wrong when updating the asset's file. Check the console. ${e.message}`,\r\n title: \"Update Asset File Error\"\r\n };\r\n MakeAlertDialogUC.make(dialogDTO, this.appObjects);\r\n resolve(); // Resolve to prevent unhandled rejections, error is already handled\r\n });\r\n });\r\n };\r\n\r\n /**\r\n * Initializes the UpdateAssetFileUC with validation of required components.\r\n *\r\n * @param appObject - The AppObject that should contain the AssetEntity this UC will operate on\r\n */\r\n constructor(appObject: AppObject) {\r\n super(appObject, UpdateAssetFileUC.type);\r\n\r\n this.asset = appObject.getComponent<AssetEntity>(AssetEntity.type);\r\n if (!this.asset) {\r\n this.error(\r\n \"UC has been added to an App Object that does not have ArchiveAssetUC\"\r\n );\r\n }\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC","sourcesContent":["/**\n * Assets Use Cases Index\n *\n * This module exports all use case classes for the Assets feature.\n * Use cases contain the business logic for asset operations and coordinate\n * between entities, external services, and user interface components.\n *\n * Key Concepts:\n * - Use cases implement specific business operations and workflows\n * - They coordinate between entities, APIs, and UI components\n * - Each UC handles validation, error management, and state updates\n * - Singleton UCs manage system-wide operations, per-asset UCs handle individual items\n * - UCs provide clean interfaces for controllers and other components\n *\n * Available Use Cases:\n * - Asset lifecycle: create, archive, delete, update\n * - File management: download, fetch, update file content\n * - Metadata management: update asset information and properties\n * - Collection management: get assets for apps, prefetch for performance\n * - Caching and optimization: blob URL generation, file caching strategies\n */\n\nexport * from \"./ArchiveAssetUC\";\nexport * from \"./DeleteAssetUC\";\nexport * from \"./DownloadAssetFileUC\";\nexport * from \"./EditAppAssetUC\";\nexport * from \"./GetAppAssetsUC\";\nexport * from \"./GetAssetBlobURLUC\";\nexport * from \"./GetAssetFileUC\";\nexport * from \"./GetAssetUC\";\nexport * from \"./NewAppAssetUC\";\nexport * from \"./NewAssetUC\";\nexport * from \"./PrefetchAssetsUC\";\nexport * from \"./UpdateAppAssetMetaUC\";\nexport * from \"./UpdateAssetFileUC\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Assets/UCs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC","sourcesContent":["/**\r\n * Assets Use Cases Index\r\n *\r\n * This module exports all use case classes for the Assets feature.\r\n * Use cases contain the business logic for asset operations and coordinate\r\n * between entities, external services, and user interface components.\r\n *\r\n * Key Concepts:\r\n * - Use cases implement specific business operations and workflows\r\n * - They coordinate between entities, APIs, and UI components\r\n * - Each UC handles validation, error management, and state updates\r\n * - Singleton UCs manage system-wide operations, per-asset UCs handle individual items\r\n * - UCs provide clean interfaces for controllers and other components\r\n *\r\n * Available Use Cases:\r\n * - Asset lifecycle: create, archive, delete, update\r\n * - File management: download, fetch, update file content\r\n * - Metadata management: update asset information and properties\r\n * - Collection management: get assets for apps, prefetch for performance\r\n * - Caching and optimization: blob URL generation, file caching strategies\r\n */\r\n\r\nexport * from \"./ArchiveAssetUC\";\r\nexport * from \"./DeleteAssetUC\";\r\nexport * from \"./DownloadAssetFileUC\";\r\nexport * from \"./EditAppAssetUC\";\r\nexport * from \"./GetAppAssetsUC\";\r\nexport * from \"./GetAssetBlobURLUC\";\r\nexport * from \"./GetAssetFileUC\";\r\nexport * from \"./GetAssetUC\";\r\nexport * from \"./NewAppAssetUC\";\r\nexport * from \"./NewAssetUC\";\r\nexport * from \"./PrefetchAssetsUC\";\r\nexport * from \"./UpdateAppAssetMetaUC\";\r\nexport * from \"./UpdateAssetFileUC\";\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Assets/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC","sourcesContent":["export * from \"./Adapters\";\nexport * from \"./Controllers\";\nexport * from \"./Entities\";\nexport * from \"./Factories\";\nexport * from \"./Mocks\";\nexport * from \"./PMs\";\nexport * from \"./UCs\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Assets/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC","sourcesContent":["export * from \"./Adapters\";\r\nexport * from \"./Controllers\";\r\nexport * from \"./Entities\";\r\nexport * from \"./Factories\";\r\nexport * from \"./Mocks\";\r\nexport * from \"./PMs\";\r\nexport * from \"./UCs\";\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clearCache.js","sourceRoot":"","sources":["../../../../src/Cache/Controllers/clearCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,UAAU,UAAU,CAAC,UAAyB;IAClD,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,OAAO,WAAW,CAAC,KAAK,EAAE,CAAC;AAC7B,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\nimport { CacheEntity } from \"../Entities/CacheEntity\";\n\nexport function clearCache(appObjects: AppObjectRepo): Promise<void> {\n const cacheEntity = CacheEntity.get(appObjects);\n if (!cacheEntity) {\n appObjects.submitWarning(\"clearCache\", \"Unable to find CacheEntity\");\n return Promise.reject();\n }\n\n return cacheEntity.clear();\n}\n"]}
|
|
1
|
+
{"version":3,"file":"clearCache.js","sourceRoot":"","sources":["../../../../src/Cache/Controllers/clearCache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,UAAU,UAAU,CAAC,UAAyB;IAClD,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,OAAO,WAAW,CAAC,KAAK,EAAE,CAAC;AAC7B,CAAC","sourcesContent":["import { AppObjectRepo } from \"@vived/core\";\r\nimport { CacheEntity } from \"../Entities/CacheEntity\";\r\n\r\nexport function clearCache(appObjects: AppObjectRepo): Promise<void> {\r\n const cacheEntity = CacheEntity.get(appObjects);\r\n if (!cacheEntity) {\r\n appObjects.submitWarning(\"clearCache\", \"Unable to find CacheEntity\");\r\n return Promise.reject();\r\n }\r\n\r\n return cacheEntity.clear();\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Cache/Controllers/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC","sourcesContent":["export * from \"./clearCache\";\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Cache/Controllers/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC","sourcesContent":["export * from \"./clearCache\";\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetCacheEntity.js","sourceRoot":"","sources":["../../../../src/Cache/Entities/AssetCacheEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAEf,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;GAIG;AACH,MAAM,OAAgB,gBAAiB,SAAQ,eAAe;IAqC5D;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,gBAAgB,CAAC,IAAI,EACrB,UAAU,CACX,CAAC;IACJ,CAAC;;AA9Ce,qBAAI,GAAG,kBAAkB,CAAC;AAiD5C,MAAM,UAAU,oBAAoB,CAAC,SAAoB;IACvD,OAAO,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAQD,MAAM,mBAAoB,SAAQ,gBAAgB;IAChD,IAAY,WAAW;QACrB,OAAO,IAAI,CAAC,kBAAkB,CAAc,WAAW,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACnC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5D,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,0DAA0D;YAC1D,IAAI,KAAK,YAAY,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9D,MAAM,WAAW,GAAG,QAAQ,EAAE,WAAW,IAAI,0BAA0B,CAAC;gBACxE,OAAO,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YACvD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CACd,OAAe,EACf,OAAa,EACb,WAAoB;QAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAuB;YACnC,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,WAAW,EAAE,WAAW,IAAI,OAAO,CAAC,IAAI;SACzC,CAAC;QAEF,MAAM,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACnC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEO,gBAAgB,CAAC,OAAe;QACtC,OAAO,SAAS,OAAO,EAAE,CAAC;IAC5B,CAAC;CACF","sourcesContent":["import {\n AppObject,\n AppObjectEntity,\n AppObjectRepo,\n getSingletonComponent\n} from \"@vived/core\";\nimport { CacheEntity } from \"./CacheEntity\";\n\n/**\n * AssetCacheEntity provides functionality for caching binary assets in the application.\n * It serves as a specialized cache storage for assets such as images, videos, or other binary content.\n * This entity is implemented as a singleton component and requires a CacheEntity instance to function.\n */\nexport abstract class AssetCacheEntity extends AppObjectEntity {\n static readonly type = \"AssetCacheEntity\";\n\n /**\n * Retrieves an asset from the cache by its unique identifier.\n * @param assetId - The unique identifier of the asset to retrieve\n * @returns A Promise that resolves to the cached Blob if found, otherwise undefined\n */\n abstract getAsset(assetId: string): Promise<Blob | undefined>;\n\n /**\n * Stores an asset in the cache with the specified identifier.\n * @param assetId - The unique identifier to associate with the asset\n * @param content - The binary content to cache as a Blob\n * @param contentType - Optional MIME type of the content\n * @returns A Promise that resolves when the asset has been stored\n */\n abstract storeAsset(\n assetId: string,\n content: Blob,\n contentType?: string\n ): Promise<void>;\n\n /**\n * Checks if an asset exists in the cache.\n * @param assetId - The unique identifier of the asset to check\n * @returns A Promise that resolves to true if the asset exists, otherwise false\n */\n abstract hasAsset(assetId: string): Promise<boolean>;\n\n /**\n * Removes an asset from the cache.\n * @param assetId - The unique identifier of the asset to invalidate\n * @returns A Promise that resolves when the asset has been invalidated\n */\n abstract invalidateAsset(assetId: string): Promise<void>;\n\n /**\n * Gets the singleton instance of AssetCacheEntity from the app objects repository.\n * @param appObjects - The app objects repository\n * @returns The AssetCacheEntity instance if found, otherwise undefined\n */\n static get(appObjects: AppObjectRepo): AssetCacheEntity | undefined {\n return getSingletonComponent<AssetCacheEntity>(\n AssetCacheEntity.type,\n appObjects\n );\n }\n}\n\nexport function makeAssetCacheEntity(appObject: AppObject): AssetCacheEntity {\n return new AssetCacheEntityImp(appObject);\n}\n\ntype AssetCacheMetadata = {\n assetId: string;\n timestamp: number;\n contentType?: string;\n};\n\nclass AssetCacheEntityImp extends AssetCacheEntity {\n private get cacheEntity(): CacheEntity | undefined {\n return this.getCachedSingleton<CacheEntity>(CacheEntity.type);\n }\n\n constructor(appObject: AppObject) {\n super(appObject, AssetCacheEntity.type);\n this.appObjects.registerSingleton(this);\n }\n\n async getAsset(assetId: string): Promise<Blob | undefined> {\n const cacheKey = this.generateCacheKey(assetId);\n\n const cacheEntity = this.cacheEntity;\n if (!cacheEntity) {\n this.warn(\"CacheEntity not found\");\n return undefined;\n }\n\n try {\n const { value, metadata } = await cacheEntity.get(cacheKey);\n if (value instanceof Blob) {\n return value;\n }\n\n // Handle case where the value is stored as an ArrayBuffer\n if (value instanceof ArrayBuffer || ArrayBuffer.isView(value)) {\n const contentType = metadata?.contentType || \"application/octet-stream\";\n return new Blob([value], { type: contentType });\n }\n\n this.warn(\"Cached asset is not a Blob or ArrayBuffer\");\n return undefined;\n } catch (e) {\n return undefined;\n }\n }\n\n async storeAsset(\n assetId: string,\n content: Blob,\n contentType?: string\n ): Promise<void> {\n const cacheKey = this.generateCacheKey(assetId);\n\n const cacheEntity = this.cacheEntity;\n if (!cacheEntity) {\n this.warn(\"CacheEntity not found\");\n return;\n }\n\n const metadata: AssetCacheMetadata = {\n assetId,\n timestamp: Date.now(),\n contentType: contentType || content.type\n };\n\n await cacheEntity.store(cacheKey, content, metadata);\n }\n\n async hasAsset(assetId: string): Promise<boolean> {\n const cacheKey = this.generateCacheKey(assetId);\n\n const cacheEntity = this.cacheEntity;\n if (!cacheEntity) {\n this.warn(\"CacheEntity not found\");\n return false;\n }\n\n return await cacheEntity.has(cacheKey);\n }\n\n async invalidateAsset(assetId: string): Promise<void> {\n const cacheEntity = this.cacheEntity;\n if (!cacheEntity) {\n this.warn(\"CacheEntity not found\");\n return;\n }\n\n const cacheKey = this.generateCacheKey(assetId);\n await cacheEntity.invalidate(cacheKey);\n }\n\n private generateCacheKey(assetId: string): string {\n return `asset:${assetId}`;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AssetCacheEntity.js","sourceRoot":"","sources":["../../../../src/Cache/Entities/AssetCacheEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAEf,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;GAIG;AACH,MAAM,OAAgB,gBAAiB,SAAQ,eAAe;IAqC5D;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAC1B,gBAAgB,CAAC,IAAI,EACrB,UAAU,CACX,CAAC;IACJ,CAAC;;AA9Ce,qBAAI,GAAG,kBAAkB,CAAC;AAiD5C,MAAM,UAAU,oBAAoB,CAAC,SAAoB;IACvD,OAAO,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAC5C,CAAC;AAQD,MAAM,mBAAoB,SAAQ,gBAAgB;IAChD,IAAY,WAAW;QACrB,OAAO,IAAI,CAAC,kBAAkB,CAAc,WAAW,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACnC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5D,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,0DAA0D;YAC1D,IAAI,KAAK,YAAY,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9D,MAAM,WAAW,GAAG,QAAQ,EAAE,WAAW,IAAI,0BAA0B,CAAC;gBACxE,OAAO,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YACvD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CACd,OAAe,EACf,OAAa,EACb,WAAoB;QAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAuB;YACnC,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,WAAW,EAAE,WAAW,IAAI,OAAO,CAAC,IAAI;SACzC,CAAC;QAEF,MAAM,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACnC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,MAAM,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAe;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEO,gBAAgB,CAAC,OAAe;QACtC,OAAO,SAAS,OAAO,EAAE,CAAC;IAC5B,CAAC;CACF","sourcesContent":["import {\r\n AppObject,\r\n AppObjectEntity,\r\n AppObjectRepo,\r\n getSingletonComponent\r\n} from \"@vived/core\";\r\nimport { CacheEntity } from \"./CacheEntity\";\r\n\r\n/**\r\n * AssetCacheEntity provides functionality for caching binary assets in the application.\r\n * It serves as a specialized cache storage for assets such as images, videos, or other binary content.\r\n * This entity is implemented as a singleton component and requires a CacheEntity instance to function.\r\n */\r\nexport abstract class AssetCacheEntity extends AppObjectEntity {\r\n static readonly type = \"AssetCacheEntity\";\r\n\r\n /**\r\n * Retrieves an asset from the cache by its unique identifier.\r\n * @param assetId - The unique identifier of the asset to retrieve\r\n * @returns A Promise that resolves to the cached Blob if found, otherwise undefined\r\n */\r\n abstract getAsset(assetId: string): Promise<Blob | undefined>;\r\n\r\n /**\r\n * Stores an asset in the cache with the specified identifier.\r\n * @param assetId - The unique identifier to associate with the asset\r\n * @param content - The binary content to cache as a Blob\r\n * @param contentType - Optional MIME type of the content\r\n * @returns A Promise that resolves when the asset has been stored\r\n */\r\n abstract storeAsset(\r\n assetId: string,\r\n content: Blob,\r\n contentType?: string\r\n ): Promise<void>;\r\n\r\n /**\r\n * Checks if an asset exists in the cache.\r\n * @param assetId - The unique identifier of the asset to check\r\n * @returns A Promise that resolves to true if the asset exists, otherwise false\r\n */\r\n abstract hasAsset(assetId: string): Promise<boolean>;\r\n\r\n /**\r\n * Removes an asset from the cache.\r\n * @param assetId - The unique identifier of the asset to invalidate\r\n * @returns A Promise that resolves when the asset has been invalidated\r\n */\r\n abstract invalidateAsset(assetId: string): Promise<void>;\r\n\r\n /**\r\n * Gets the singleton instance of AssetCacheEntity from the app objects repository.\r\n * @param appObjects - The app objects repository\r\n * @returns The AssetCacheEntity instance if found, otherwise undefined\r\n */\r\n static get(appObjects: AppObjectRepo): AssetCacheEntity | undefined {\r\n return getSingletonComponent<AssetCacheEntity>(\r\n AssetCacheEntity.type,\r\n appObjects\r\n );\r\n }\r\n}\r\n\r\nexport function makeAssetCacheEntity(appObject: AppObject): AssetCacheEntity {\r\n return new AssetCacheEntityImp(appObject);\r\n}\r\n\r\ntype AssetCacheMetadata = {\r\n assetId: string;\r\n timestamp: number;\r\n contentType?: string;\r\n};\r\n\r\nclass AssetCacheEntityImp extends AssetCacheEntity {\r\n private get cacheEntity(): CacheEntity | undefined {\r\n return this.getCachedSingleton<CacheEntity>(CacheEntity.type);\r\n }\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, AssetCacheEntity.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n\r\n async getAsset(assetId: string): Promise<Blob | undefined> {\r\n const cacheKey = this.generateCacheKey(assetId);\r\n\r\n const cacheEntity = this.cacheEntity;\r\n if (!cacheEntity) {\r\n this.warn(\"CacheEntity not found\");\r\n return undefined;\r\n }\r\n\r\n try {\r\n const { value, metadata } = await cacheEntity.get(cacheKey);\r\n if (value instanceof Blob) {\r\n return value;\r\n }\r\n\r\n // Handle case where the value is stored as an ArrayBuffer\r\n if (value instanceof ArrayBuffer || ArrayBuffer.isView(value)) {\r\n const contentType = metadata?.contentType || \"application/octet-stream\";\r\n return new Blob([value], { type: contentType });\r\n }\r\n\r\n this.warn(\"Cached asset is not a Blob or ArrayBuffer\");\r\n return undefined;\r\n } catch (e) {\r\n return undefined;\r\n }\r\n }\r\n\r\n async storeAsset(\r\n assetId: string,\r\n content: Blob,\r\n contentType?: string\r\n ): Promise<void> {\r\n const cacheKey = this.generateCacheKey(assetId);\r\n\r\n const cacheEntity = this.cacheEntity;\r\n if (!cacheEntity) {\r\n this.warn(\"CacheEntity not found\");\r\n return;\r\n }\r\n\r\n const metadata: AssetCacheMetadata = {\r\n assetId,\r\n timestamp: Date.now(),\r\n contentType: contentType || content.type\r\n };\r\n\r\n await cacheEntity.store(cacheKey, content, metadata);\r\n }\r\n\r\n async hasAsset(assetId: string): Promise<boolean> {\r\n const cacheKey = this.generateCacheKey(assetId);\r\n\r\n const cacheEntity = this.cacheEntity;\r\n if (!cacheEntity) {\r\n this.warn(\"CacheEntity not found\");\r\n return false;\r\n }\r\n\r\n return await cacheEntity.has(cacheKey);\r\n }\r\n\r\n async invalidateAsset(assetId: string): Promise<void> {\r\n const cacheEntity = this.cacheEntity;\r\n if (!cacheEntity) {\r\n this.warn(\"CacheEntity not found\");\r\n return;\r\n }\r\n\r\n const cacheKey = this.generateCacheKey(assetId);\r\n await cacheEntity.invalidate(cacheKey);\r\n }\r\n\r\n private generateCacheKey(assetId: string): string {\r\n return `asset:${assetId}`;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheEntity.js","sourceRoot":"","sources":["../../../../src/Cache/Entities/CacheEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAEf,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,MAAM,OAAgB,WAAY,SAAQ,eAAe;IAoDvD;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAAc,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1E,CAAC;;AA1De,gBAAI,GAAG,aAAa,CAAC;AA6DvC,MAAM,UAAU,eAAe,CAAC,SAAoB;IAClD,OAAO,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,cAAe,SAAQ,WAAW;IAItC,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAJ7B,UAAK,GACX,IAAI,GAAG,EAAE,CAAC;QAIV,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,GAAG,CACP,GAAW;QAEX,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAGxB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,GAAW,EACX,KAAU,EACV,QAA8B;QAE9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF","sourcesContent":["import {\n AppObject,\n AppObjectEntity,\n AppObjectRepo,\n getSingletonComponent\n} from \"@vived/core\";\n\n/**\n * Abstract entity that provides caching functionality for the application.\n * CacheEntity is a singleton component that stores key-value pairs with optional metadata.\n * It provides methods for storing, retrieving, checking existence, and invalidating cached values.\n */\nexport abstract class CacheEntity extends AppObjectEntity {\n static readonly type = \"CacheEntity\";\n\n /**\n * Retrieves a value from the cache by its key.\n * @param key - The unique identifier for the cached item\n * @returns Promise resolving to an object containing the cached value and optional metadata\n * @throws Error if the key does not exist in the cache\n */\n abstract get(\n key: string\n ): Promise<{ value: any; metadata?: Record<string, any> }>;\n\n /**\n * Stores a value in the cache with an associated key and optional metadata.\n * @param key - The unique identifier for the cached item\n * @param value - The value to cache\n * @param metadata - Optional metadata associated with the cached value\n * @returns Promise that resolves when the value has been stored\n */\n abstract store(\n key: string,\n value: any,\n metadata?: Record<string, any>\n ): Promise<void>;\n\n /**\n * Checks if a key exists in the cache.\n * @param key - The key to check\n * @returns Promise resolving to boolean indicating if the key exists\n */\n abstract has(key: string): Promise<boolean>;\n\n /**\n * Removes an item from the cache by its key.\n * @param key - The key to remove\n * @returns Promise that resolves when the key has been invalidated\n */\n abstract invalidate(key: string): Promise<void>;\n\n /**\n * Removes all items from the cache.\n * @returns Promise that resolves when the cache has been cleared\n */\n abstract clear(): Promise<void>;\n\n /**\n * Gets the number of items in the cache.\n * @returns Promise resolving to the number of cached items\n */\n abstract size(): Promise<number>;\n\n /**\n * Gets the singleton instance of CacheEntity from the AppObjectRepo.\n * @param appObjects - The application object repository\n * @returns The CacheEntity instance or undefined if not registered\n */\n static get(appObjects: AppObjectRepo): CacheEntity | undefined {\n return getSingletonComponent<CacheEntity>(CacheEntity.type, appObjects);\n }\n}\n\nexport function makeCacheEntity(appObject: AppObject): CacheEntity {\n return new CacheEntityImp(appObject);\n}\n\nclass CacheEntityImp extends CacheEntity {\n private cache: Map<string, { value: any; metadata?: Record<string, any> }> =\n new Map();\n\n constructor(appObject: AppObject) {\n super(appObject, CacheEntity.type);\n this.appObjects.registerSingleton(this);\n }\n\n async get(\n key: string\n ): Promise<{ value: any; metadata?: Record<string, any> }> {\n if (!this.cache.has(key)) {\n throw new Error(`Cache key not found: ${key}`);\n }\n return this.cache.get(key) as {\n value: any;\n metadata?: Record<string, any>;\n };\n }\n\n async store(\n key: string,\n value: any,\n metadata?: Record<string, any>\n ): Promise<void> {\n this.cache.set(key, { value, metadata });\n }\n\n async has(key: string): Promise<boolean> {\n return this.cache.has(key);\n }\n\n async invalidate(key: string): Promise<void> {\n this.cache.delete(key);\n }\n\n async clear(): Promise<void> {\n this.cache.clear();\n }\n\n async size(): Promise<number> {\n return this.cache.size;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"CacheEntity.js","sourceRoot":"","sources":["../../../../src/Cache/Entities/CacheEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAEf,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAErB;;;;GAIG;AACH,MAAM,OAAgB,WAAY,SAAQ,eAAe;IAoDvD;;;;OAIG;IACH,MAAM,CAAC,GAAG,CAAC,UAAyB;QAClC,OAAO,qBAAqB,CAAc,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1E,CAAC;;AA1De,gBAAI,GAAG,aAAa,CAAC;AA6DvC,MAAM,UAAU,eAAe,CAAC,SAAoB;IAClD,OAAO,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,cAAe,SAAQ,WAAW;IAItC,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAJ7B,UAAK,GACX,IAAI,GAAG,EAAE,CAAC;QAIV,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,GAAG,CACP,GAAW;QAEX,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAGxB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CACT,GAAW,EACX,KAAU,EACV,QAA8B;QAE9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAW;QAC1B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF","sourcesContent":["import {\r\n AppObject,\r\n AppObjectEntity,\r\n AppObjectRepo,\r\n getSingletonComponent\r\n} from \"@vived/core\";\r\n\r\n/**\r\n * Abstract entity that provides caching functionality for the application.\r\n * CacheEntity is a singleton component that stores key-value pairs with optional metadata.\r\n * It provides methods for storing, retrieving, checking existence, and invalidating cached values.\r\n */\r\nexport abstract class CacheEntity extends AppObjectEntity {\r\n static readonly type = \"CacheEntity\";\r\n\r\n /**\r\n * Retrieves a value from the cache by its key.\r\n * @param key - The unique identifier for the cached item\r\n * @returns Promise resolving to an object containing the cached value and optional metadata\r\n * @throws Error if the key does not exist in the cache\r\n */\r\n abstract get(\r\n key: string\r\n ): Promise<{ value: any; metadata?: Record<string, any> }>;\r\n\r\n /**\r\n * Stores a value in the cache with an associated key and optional metadata.\r\n * @param key - The unique identifier for the cached item\r\n * @param value - The value to cache\r\n * @param metadata - Optional metadata associated with the cached value\r\n * @returns Promise that resolves when the value has been stored\r\n */\r\n abstract store(\r\n key: string,\r\n value: any,\r\n metadata?: Record<string, any>\r\n ): Promise<void>;\r\n\r\n /**\r\n * Checks if a key exists in the cache.\r\n * @param key - The key to check\r\n * @returns Promise resolving to boolean indicating if the key exists\r\n */\r\n abstract has(key: string): Promise<boolean>;\r\n\r\n /**\r\n * Removes an item from the cache by its key.\r\n * @param key - The key to remove\r\n * @returns Promise that resolves when the key has been invalidated\r\n */\r\n abstract invalidate(key: string): Promise<void>;\r\n\r\n /**\r\n * Removes all items from the cache.\r\n * @returns Promise that resolves when the cache has been cleared\r\n */\r\n abstract clear(): Promise<void>;\r\n\r\n /**\r\n * Gets the number of items in the cache.\r\n * @returns Promise resolving to the number of cached items\r\n */\r\n abstract size(): Promise<number>;\r\n\r\n /**\r\n * Gets the singleton instance of CacheEntity from the AppObjectRepo.\r\n * @param appObjects - The application object repository\r\n * @returns The CacheEntity instance or undefined if not registered\r\n */\r\n static get(appObjects: AppObjectRepo): CacheEntity | undefined {\r\n return getSingletonComponent<CacheEntity>(CacheEntity.type, appObjects);\r\n }\r\n}\r\n\r\nexport function makeCacheEntity(appObject: AppObject): CacheEntity {\r\n return new CacheEntityImp(appObject);\r\n}\r\n\r\nclass CacheEntityImp extends CacheEntity {\r\n private cache: Map<string, { value: any; metadata?: Record<string, any> }> =\r\n new Map();\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, CacheEntity.type);\r\n this.appObjects.registerSingleton(this);\r\n }\r\n\r\n async get(\r\n key: string\r\n ): Promise<{ value: any; metadata?: Record<string, any> }> {\r\n if (!this.cache.has(key)) {\r\n throw new Error(`Cache key not found: ${key}`);\r\n }\r\n return this.cache.get(key) as {\r\n value: any;\r\n metadata?: Record<string, any>;\r\n };\r\n }\r\n\r\n async store(\r\n key: string,\r\n value: any,\r\n metadata?: Record<string, any>\r\n ): Promise<void> {\r\n this.cache.set(key, { value, metadata });\r\n }\r\n\r\n async has(key: string): Promise<boolean> {\r\n return this.cache.has(key);\r\n }\r\n\r\n async invalidate(key: string): Promise<void> {\r\n this.cache.delete(key);\r\n }\r\n\r\n async clear(): Promise<void> {\r\n this.cache.clear();\r\n }\r\n\r\n async size(): Promise<number> {\r\n return this.cache.size;\r\n }\r\n}\r\n"]}
|