@vived/host 3.0.0 → 3.2.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.
Files changed (169) hide show
  1. package/lib/Components/Apps/Adapters/activeAppPMAdapter.d.ts +3 -0
  2. package/lib/Components/Apps/Adapters/activeAppPMAdapter.js +23 -0
  3. package/lib/Components/Apps/Adapters/appListPMAdapter.d.ts +2 -0
  4. package/lib/Components/Apps/Adapters/appListPMAdapter.js +23 -0
  5. package/lib/Components/Apps/Adapters/appPMAdapter.d.ts +3 -0
  6. package/lib/Components/Apps/Adapters/appPMAdapter.js +23 -0
  7. package/lib/Components/Apps/Adapters/index.d.ts +3 -0
  8. package/lib/Components/Apps/Adapters/index.js +15 -0
  9. package/lib/Components/Apps/Controllers/index.d.ts +1 -0
  10. package/lib/Components/Apps/Controllers/index.js +13 -0
  11. package/lib/Components/Apps/Controllers/updateApp.d.ts +2 -0
  12. package/lib/Components/Apps/Controllers/updateApp.js +13 -0
  13. package/lib/Components/Apps/Entities/AppEntity.d.ts +28 -0
  14. package/lib/Components/Apps/Entities/AppEntity.js +93 -0
  15. package/lib/Components/Apps/Entities/AppRepo.d.ts +19 -0
  16. package/lib/Components/Apps/Entities/AppRepo.js +57 -0
  17. package/lib/Components/Apps/Entities/index.d.ts +2 -0
  18. package/lib/Components/Apps/Entities/index.js +14 -0
  19. package/lib/Components/Apps/Mocks/MockActiveAppPM.d.ts +8 -0
  20. package/lib/Components/Apps/Mocks/MockActiveAppPM.js +15 -0
  21. package/lib/Components/Apps/Mocks/MockAppListPM.d.ts +8 -0
  22. package/lib/Components/Apps/Mocks/MockAppListPM.js +15 -0
  23. package/lib/Components/Apps/Mocks/MockAppMounterUC.d.ts +10 -0
  24. package/lib/Components/Apps/Mocks/MockAppMounterUC.js +14 -0
  25. package/lib/Components/Apps/Mocks/MockAppPM.d.ts +7 -0
  26. package/lib/Components/Apps/Mocks/MockAppPM.js +11 -0
  27. package/lib/Components/Apps/Mocks/MockStartAppUC.d.ts +7 -0
  28. package/lib/Components/Apps/Mocks/MockStartAppUC.js +11 -0
  29. package/lib/Components/Apps/Mocks/MockStopAppUC.d.ts +7 -0
  30. package/lib/Components/Apps/Mocks/MockStopAppUC.js +11 -0
  31. package/lib/Components/Apps/Mocks/MockUpdateAppUC.d.ts +7 -0
  32. package/lib/Components/Apps/Mocks/MockUpdateAppUC.js +11 -0
  33. package/lib/Components/Apps/Mocks/index.d.ts +7 -0
  34. package/lib/Components/Apps/Mocks/index.js +19 -0
  35. package/lib/Components/Apps/PMs/ActiveAppPM.d.ts +10 -0
  36. package/lib/Components/Apps/PMs/ActiveAppPM.js +15 -0
  37. package/lib/Components/Apps/PMs/AppPM.d.ts +13 -0
  38. package/lib/Components/Apps/PMs/AppPM.js +57 -0
  39. package/lib/Components/Apps/PMs/AppsListPM.d.ts +6 -0
  40. package/lib/Components/Apps/PMs/AppsListPM.js +51 -0
  41. package/lib/Components/Apps/PMs/index.d.ts +3 -0
  42. package/lib/Components/Apps/PMs/index.js +15 -0
  43. package/lib/Components/Apps/UCs/MounterUC.d.ts +12 -0
  44. package/lib/Components/Apps/UCs/MounterUC.js +15 -0
  45. package/lib/Components/Apps/UCs/StartAppUC.d.ts +8 -0
  46. package/lib/Components/Apps/UCs/StartAppUC.js +27 -0
  47. package/lib/Components/Apps/UCs/StopAppUC.d.ts +8 -0
  48. package/lib/Components/Apps/UCs/StopAppUC.js +27 -0
  49. package/lib/Components/Apps/UCs/UpdateAppUC.d.ts +7 -0
  50. package/lib/Components/Apps/UCs/UpdateAppUC.js +23 -0
  51. package/lib/Components/Apps/UCs/appIDWithVersion.d.ts +3 -0
  52. package/lib/Components/Apps/UCs/appIDWithVersion.js +8 -0
  53. package/lib/Components/Apps/UCs/index.d.ts +5 -0
  54. package/lib/Components/Apps/UCs/index.js +17 -0
  55. package/lib/Components/Apps/index.d.ts +6 -0
  56. package/lib/Components/Apps/index.js +18 -0
  57. package/lib/Components/AssetPlugin/Adapters/assetPluginPMAdapter.d.ts +3 -0
  58. package/lib/Components/AssetPlugin/Adapters/assetPluginPMAdapter.js +23 -0
  59. package/lib/Components/AssetPlugin/Adapters/index.d.ts +1 -0
  60. package/lib/Components/AssetPlugin/Adapters/index.js +13 -0
  61. package/lib/Components/AssetPlugin/Controllers/clearAssetPluginContainer.d.ts +2 -0
  62. package/lib/Components/AssetPlugin/Controllers/clearAssetPluginContainer.js +14 -0
  63. package/lib/Components/AssetPlugin/Controllers/index.d.ts +2 -0
  64. package/lib/Components/AssetPlugin/Controllers/index.js +14 -0
  65. package/lib/Components/AssetPlugin/Controllers/setAssetPluginContainer.d.ts +2 -0
  66. package/lib/Components/AssetPlugin/Controllers/setAssetPluginContainer.js +14 -0
  67. package/lib/Components/AssetPlugin/Entities/AssetPluginEntity.d.ts +14 -0
  68. package/lib/Components/AssetPlugin/Entities/AssetPluginEntity.js +40 -0
  69. package/lib/Components/AssetPlugin/Entities/index.d.ts +1 -0
  70. package/lib/Components/AssetPlugin/Entities/index.js +13 -0
  71. package/lib/Components/AssetPlugin/Mocks/MockAssetPluginContainerUC.d.ts +9 -0
  72. package/lib/Components/AssetPlugin/Mocks/MockAssetPluginContainerUC.js +16 -0
  73. package/lib/Components/AssetPlugin/Mocks/MockAssetPluginPM.d.ts +8 -0
  74. package/lib/Components/AssetPlugin/Mocks/MockAssetPluginPM.js +15 -0
  75. package/lib/Components/AssetPlugin/Mocks/index.d.ts +2 -0
  76. package/lib/Components/AssetPlugin/Mocks/index.js +14 -0
  77. package/lib/Components/AssetPlugin/PM/AssetPluginPM.d.ts +12 -0
  78. package/lib/Components/AssetPlugin/PM/AssetPluginPM.js +68 -0
  79. package/lib/Components/AssetPlugin/PM/index.d.ts +1 -0
  80. package/lib/Components/AssetPlugin/PM/index.js +13 -0
  81. package/lib/Components/AssetPlugin/UCs/AssetPluginContainerUC.d.ts +7 -0
  82. package/lib/Components/AssetPlugin/UCs/AssetPluginContainerUC.js +11 -0
  83. package/lib/Components/AssetPlugin/UCs/index.d.ts +1 -0
  84. package/lib/Components/AssetPlugin/UCs/index.js +13 -0
  85. package/lib/Components/AssetPlugin/index.d.ts +6 -0
  86. package/lib/Components/AssetPlugin/index.js +18 -0
  87. package/lib/Components/Assets/Entities/AssetEntity.d.ts +1 -1
  88. package/lib/Components/Assets/Entities/AssetEntity.js +11 -9
  89. package/lib/Components/Assets/Mocks/MockPrefetchAssets.d.ts +8 -0
  90. package/lib/Components/Assets/Mocks/MockPrefetchAssets.js +15 -0
  91. package/lib/Components/Assets/Mocks/index.d.ts +1 -0
  92. package/lib/Components/Assets/Mocks/index.js +1 -0
  93. package/lib/Components/Assets/UCs/PrefetchAssetsUC.d.ts +7 -0
  94. package/lib/Components/Assets/UCs/PrefetchAssetsUC.js +69 -0
  95. package/lib/Components/Assets/UCs/index.d.ts +9 -8
  96. package/lib/Components/Assets/UCs/index.js +1 -0
  97. package/lib/Components/Dispatcher/Entities/HostDispatchEntity.js +7 -2
  98. package/lib/Components/Dispatcher/UCs/DispatchStartBrowseChannelsUC.d.ts +1 -1
  99. package/lib/Components/Dispatcher/UCs/DispatchStartBrowseChannelsUC.js +1 -1
  100. package/lib/Components/Handler/UCs/GetAssetFolderURLHandler.js +12 -2
  101. package/lib/Components/Handler/UCs/HasNextStateHandler.js +15 -2
  102. package/lib/Components/Handler/UCs/HasPreviousStateHandler.js +15 -2
  103. package/lib/Components/Handler/UCs/OnAppIsReadyHandler.js +9 -1
  104. package/lib/Components/Handler/UCs/OnStateChangeHandler.d.ts +3 -1
  105. package/lib/Components/Handler/UCs/OnStateChangeHandler.js +39 -2
  106. package/lib/Components/Handler/UCs/RegisterExternalStyleSheetsHandler.js +11 -1
  107. package/lib/Components/StateMachine/Adapters/hostStateMachinePMAdapter.d.ts +3 -0
  108. package/lib/Components/StateMachine/Adapters/hostStateMachinePMAdapter.js +23 -0
  109. package/lib/Components/StateMachine/Adapters/hostStateMachinePMAdater.d.ts +3 -0
  110. package/lib/Components/StateMachine/Adapters/hostStateMachinePMAdater.js +23 -0
  111. package/lib/Components/StateMachine/Adapters/index.d.ts +1 -0
  112. package/lib/Components/StateMachine/Adapters/index.js +13 -0
  113. package/lib/Components/StateMachine/Adapters/isEditingPMAdapter.d.ts +3 -0
  114. package/lib/Components/StateMachine/Adapters/isEditingPMAdapter.js +23 -0
  115. package/lib/Components/StateMachine/Controllers/deleteState.d.ts +2 -0
  116. package/lib/Components/StateMachine/Controllers/deleteState.js +13 -0
  117. package/lib/Components/StateMachine/Controllers/duplicateState.d.ts +2 -0
  118. package/lib/Components/StateMachine/Controllers/duplicateState.js +13 -0
  119. package/lib/Components/StateMachine/Controllers/index.d.ts +2 -0
  120. package/lib/Components/StateMachine/Controllers/index.js +14 -0
  121. package/lib/Components/StateMachine/Entities/HostEditingStateEntity.d.ts +16 -0
  122. package/lib/Components/StateMachine/Entities/HostEditingStateEntity.js +121 -0
  123. package/lib/Components/StateMachine/Entities/HostStateEntity.d.ts +31 -0
  124. package/lib/Components/StateMachine/Entities/HostStateEntity.js +124 -0
  125. package/lib/Components/StateMachine/Entities/HostStateMachine.d.ts +20 -0
  126. package/lib/Components/StateMachine/Entities/HostStateMachine.js +161 -0
  127. package/lib/Components/StateMachine/Entities/index.d.ts +3 -0
  128. package/lib/Components/StateMachine/Entities/index.js +15 -0
  129. package/lib/Components/StateMachine/Mocks/MockDeleteStateUC.d.ts +8 -0
  130. package/lib/Components/StateMachine/Mocks/MockDeleteStateUC.js +15 -0
  131. package/lib/Components/StateMachine/Mocks/MockDuplicateStateUC.d.ts +8 -0
  132. package/lib/Components/StateMachine/Mocks/MockDuplicateStateUC.js +15 -0
  133. package/lib/Components/StateMachine/Mocks/MockHostEditingStateEntity.d.ts +16 -0
  134. package/lib/Components/StateMachine/Mocks/MockHostEditingStateEntity.js +30 -0
  135. package/lib/Components/StateMachine/Mocks/MockHostStateMachinePM.d.ts +8 -0
  136. package/lib/Components/StateMachine/Mocks/MockHostStateMachinePM.js +15 -0
  137. package/lib/Components/StateMachine/Mocks/MockIsEditingStatePM.d.ts +8 -0
  138. package/lib/Components/StateMachine/Mocks/MockIsEditingStatePM.js +15 -0
  139. package/lib/Components/StateMachine/Mocks/MockStateEntity.d.ts +16 -0
  140. package/lib/Components/StateMachine/Mocks/MockStateEntity.js +27 -0
  141. package/lib/Components/StateMachine/Mocks/index.d.ts +6 -0
  142. package/lib/Components/StateMachine/Mocks/index.js +18 -0
  143. package/lib/Components/StateMachine/PMs/EditingStatePM.d.ts +19 -0
  144. package/lib/Components/StateMachine/PMs/EditingStatePM.js +54 -0
  145. package/lib/Components/StateMachine/PMs/HostStateMachinePM.d.ts +23 -0
  146. package/lib/Components/StateMachine/PMs/HostStateMachinePM.js +70 -0
  147. package/lib/Components/StateMachine/PMs/IsEditingStatePM.d.ts +13 -0
  148. package/lib/Components/StateMachine/PMs/IsEditingStatePM.js +36 -0
  149. package/lib/Components/StateMachine/PMs/index.d.ts +2 -0
  150. package/lib/Components/StateMachine/PMs/index.js +14 -0
  151. package/lib/Components/StateMachine/UCs/DeleteStateUC.d.ts +7 -0
  152. package/lib/Components/StateMachine/UCs/DeleteStateUC.js +37 -0
  153. package/lib/Components/StateMachine/UCs/DuplicateStateUC.d.ts +7 -0
  154. package/lib/Components/StateMachine/UCs/DuplicateStateUC.js +39 -0
  155. package/lib/Components/StateMachine/UCs/index.d.ts +2 -0
  156. package/lib/Components/StateMachine/UCs/index.js +14 -0
  157. package/lib/Components/StateMachine/index.d.ts +6 -0
  158. package/lib/Components/StateMachine/index.js +18 -0
  159. package/lib/Components/index.d.ts +3 -0
  160. package/lib/Components/index.js +3 -0
  161. package/lib/Types/PmAdapter.d.ts +6 -0
  162. package/lib/Types/PmAdapter.js +2 -0
  163. package/lib/Types/ReactHookPmAdapter.d.ts +6 -0
  164. package/lib/Types/ReactHookPmAdapter.js +2 -0
  165. package/lib/Types/SingletonPmAdapter.d.ts +6 -0
  166. package/lib/Types/SingletonPmAdapter.js +2 -0
  167. package/lib/Types/index.d.ts +3 -1
  168. package/lib/Types/index.js +2 -0
  169. package/package.json +1 -1
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeAssetPluginPM = exports.AssetPluginPM = exports.defaultAssetPluginVM = void 0;
4
+ const HostAppObject_1 = require("../../../HostAppObject");
5
+ const Apps_1 = require("../../Apps");
6
+ const AssetPluginEntity_1 = require("../Entities/AssetPluginEntity");
7
+ exports.defaultAssetPluginVM = {
8
+ show: false,
9
+ loading: false,
10
+ styleSheets: []
11
+ };
12
+ class AssetPluginPM extends HostAppObject_1.HostAppObjectPM {
13
+ static get(appObjects) {
14
+ return HostAppObject_1.getSingletonComponent(AssetPluginPM.type, appObjects);
15
+ }
16
+ }
17
+ exports.AssetPluginPM = AssetPluginPM;
18
+ AssetPluginPM.type = "AssetSystemPluginPM";
19
+ function makeAssetPluginPM(appObject) {
20
+ return new AssetPluginPMImp(appObject);
21
+ }
22
+ exports.makeAssetPluginPM = makeAssetPluginPM;
23
+ class AssetPluginPMImp extends AssetPluginPM {
24
+ constructor(appObject) {
25
+ var _a;
26
+ super(appObject, AssetPluginPM.type);
27
+ this.onChange = () => {
28
+ var _a, _b, _c, _d;
29
+ if (!this.assetPlugin)
30
+ return;
31
+ const show = this.assetPlugin.show;
32
+ let loading = false;
33
+ if (show && ((_a = this.assetPlugin.app) === null || _a === void 0 ? void 0 : _a.state) === Apps_1.AppState.INIT) {
34
+ loading = true;
35
+ }
36
+ else if (show && ((_b = this.assetPlugin.app) === null || _b === void 0 ? void 0 : _b.state) === Apps_1.AppState.LOADING) {
37
+ loading = true;
38
+ }
39
+ const vm = {
40
+ show,
41
+ loading,
42
+ styleSheets: (_d = (_c = this.assetPlugin.app) === null || _c === void 0 ? void 0 : _c.styles) !== null && _d !== void 0 ? _d : []
43
+ };
44
+ this.doUpdateView(vm);
45
+ };
46
+ (_a = this.assetPlugin) === null || _a === void 0 ? void 0 : _a.addChangeObserver(this.onChange);
47
+ this.onChange();
48
+ this.appObjects.registerSingleton(this);
49
+ }
50
+ get assetPlugin() {
51
+ return this.getCachedSingleton(AssetPluginEntity_1.AssetPluginEntity.type);
52
+ }
53
+ vmsAreEqual(a, b) {
54
+ if (a.loading !== b.loading)
55
+ return false;
56
+ if (a.show !== b.show)
57
+ return false;
58
+ if (a.styleSheets.length !== b.styleSheets.length)
59
+ return false;
60
+ let stylesMatch = true;
61
+ a.styleSheets.forEach((styleA, i) => {
62
+ const styleB = b.styleSheets[i];
63
+ if (styleA !== styleB)
64
+ stylesMatch = false;
65
+ });
66
+ return stylesMatch;
67
+ }
68
+ }
@@ -0,0 +1 @@
1
+ export * from "./AssetPluginPM";
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./AssetPluginPM"), exports);
@@ -0,0 +1,7 @@
1
+ import { HostAppObjectRepo, HostAppObjectUC } from "../../../HostAppObject";
2
+ export declare abstract class AssetPluginContainerUC extends HostAppObjectUC {
3
+ static type: string;
4
+ static get(appObjects: HostAppObjectRepo): AssetPluginContainerUC | undefined;
5
+ abstract setContainer(container: HTMLElement): Promise<void>;
6
+ abstract clearContainer(): void;
7
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssetPluginContainerUC = void 0;
4
+ const HostAppObject_1 = require("../../../HostAppObject");
5
+ class AssetPluginContainerUC extends HostAppObject_1.HostAppObjectUC {
6
+ static get(appObjects) {
7
+ return HostAppObject_1.getSingletonComponent(AssetPluginContainerUC.type, appObjects);
8
+ }
9
+ }
10
+ exports.AssetPluginContainerUC = AssetPluginContainerUC;
11
+ AssetPluginContainerUC.type = "AssetPluginContainerUC";
@@ -0,0 +1 @@
1
+ export * from "./AssetPluginContainerUC";
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./AssetPluginContainerUC"), exports);
@@ -0,0 +1,6 @@
1
+ export * from "./Adapters";
2
+ export * from "./Controllers";
3
+ export * from "./Entities";
4
+ export * from "./Mocks";
5
+ export * from "./PM";
6
+ export * from "./UCs";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./Adapters"), exports);
14
+ __exportStar(require("./Controllers"), exports);
15
+ __exportStar(require("./Entities"), exports);
16
+ __exportStar(require("./Mocks"), exports);
17
+ __exportStar(require("./PM"), exports);
18
+ __exportStar(require("./UCs"), exports);
@@ -1,4 +1,4 @@
1
- import { HostAppObject, HostAppObjectEntity } from '../../../HostAppObject';
1
+ import { HostAppObject, HostAppObjectEntity } from "../../../HostAppObject";
2
2
  export declare abstract class AssetEntity extends HostAppObjectEntity {
3
3
  static type: string;
4
4
  abstract readonly id: string;
@@ -7,13 +7,13 @@ class AssetEntity extends HostAppObject_1.HostAppObjectEntity {
7
7
  static get(appObject) {
8
8
  const asset = appObject.getComponent(AssetEntity.type);
9
9
  if (!asset) {
10
- appObject.appObjectRepo.submitWarning('AssetEntity.get', 'Unable to find AssetEntity on app object ' + appObject.id);
10
+ appObject.appObjectRepo.submitWarning("AssetEntity.get", "Unable to find AssetEntity on app object " + appObject.id);
11
11
  }
12
12
  return asset;
13
13
  }
14
14
  }
15
15
  exports.AssetEntity = AssetEntity;
16
- AssetEntity.type = 'AssetEntity';
16
+ AssetEntity.type = "AssetEntity";
17
17
  function makeAssetEntity(appObject) {
18
18
  return new AssetImp(appObject);
19
19
  }
@@ -21,12 +21,12 @@ exports.makeAssetEntity = makeAssetEntity;
21
21
  class AssetImp extends AssetEntity {
22
22
  constructor(appObject) {
23
23
  super(appObject, AssetEntity.type);
24
- this._memoizedName = new Entities_1.MemoizedString('', this.notifyOnChange);
25
- this._memoizedOwner = new Entities_1.MemoizedString('', this.notifyOnChange);
26
- this._memoizedDescription = new Entities_1.MemoizedString('', this.notifyOnChange);
24
+ this._memoizedName = new Entities_1.MemoizedString("", this.notifyOnChange);
25
+ this._memoizedOwner = new Entities_1.MemoizedString("", this.notifyOnChange);
26
+ this._memoizedDescription = new Entities_1.MemoizedString("", this.notifyOnChange);
27
27
  this._memoizedArchived = new Entities_1.MemoizedBoolean(false, this.notifyOnChange);
28
- this._memoizedFileURL = new Entities_1.MemoizedString('', this.notifyOnChange);
29
- this._memoizedFilename = new Entities_1.MemoizedString('', this.notifyOnChange);
28
+ this._memoizedFileURL = new Entities_1.MemoizedString("", this.notifyOnChange);
29
+ this._memoizedFilename = new Entities_1.MemoizedString("", this.notifyOnChange);
30
30
  this._file = undefined;
31
31
  this._blobURL = undefined;
32
32
  this.setFile = (file) => {
@@ -42,7 +42,7 @@ class AssetImp extends AssetEntity {
42
42
  if (existingAsset === undefined) {
43
43
  this._linkedAssets.push({
44
44
  id,
45
- type,
45
+ type
46
46
  });
47
47
  this.notifyOnChange();
48
48
  }
@@ -142,7 +142,9 @@ class AssetImp extends AssetEntity {
142
142
  set fetchError(fetchError) {
143
143
  if (fetchError === undefined && this.fetchError === undefined)
144
144
  return;
145
- if (fetchError !== undefined && this.fetchError !== undefined && fetchError.message === this.fetchError.message)
145
+ if (fetchError !== undefined &&
146
+ this.fetchError !== undefined &&
147
+ fetchError.message === this.fetchError.message)
146
148
  return;
147
149
  this._fetchError = fetchError;
148
150
  this.notifyOnChange();
@@ -0,0 +1,8 @@
1
+ /// <reference types="jest" />
2
+ import { HostAppObject, HostAppObjectRepo } from "../../../HostAppObject";
3
+ import { PrefetchAssetsUC } from "../UCs/PrefetchAssetsUC";
4
+ export declare class MockPrefetchAssetsUC extends PrefetchAssetsUC {
5
+ prefetchAssets: jest.Mock<any, any>;
6
+ constructor(appObject: HostAppObject);
7
+ }
8
+ export declare function makeMockPrefetchAssetsUC(appObjects: HostAppObjectRepo): MockPrefetchAssetsUC;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeMockPrefetchAssetsUC = exports.MockPrefetchAssetsUC = void 0;
4
+ const PrefetchAssetsUC_1 = require("../UCs/PrefetchAssetsUC");
5
+ class MockPrefetchAssetsUC extends PrefetchAssetsUC_1.PrefetchAssetsUC {
6
+ constructor(appObject) {
7
+ super(appObject, PrefetchAssetsUC_1.PrefetchAssetsUC.type);
8
+ this.prefetchAssets = jest.fn().mockResolvedValue(undefined);
9
+ }
10
+ }
11
+ exports.MockPrefetchAssetsUC = MockPrefetchAssetsUC;
12
+ function makeMockPrefetchAssetsUC(appObjects) {
13
+ return new MockPrefetchAssetsUC(appObjects.getOrCreate("MockPrefetchAssetsUC"));
14
+ }
15
+ exports.makeMockPrefetchAssetsUC = makeMockPrefetchAssetsUC;
@@ -5,4 +5,5 @@ export * from './MockGetAppAssetsUC';
5
5
  export * from './MockGetAssetBlobURLUC';
6
6
  export * from './MockGetAssetFileUC';
7
7
  export * from './MockGetAssetUC';
8
+ export * from "./MockPrefetchAssets";
8
9
  export * from './MockUpdateAssetFileUC';
@@ -17,4 +17,5 @@ __exportStar(require("./MockGetAppAssetsUC"), exports);
17
17
  __exportStar(require("./MockGetAssetBlobURLUC"), exports);
18
18
  __exportStar(require("./MockGetAssetFileUC"), exports);
19
19
  __exportStar(require("./MockGetAssetUC"), exports);
20
+ __exportStar(require("./MockPrefetchAssets"), exports);
20
21
  __exportStar(require("./MockUpdateAssetFileUC"), exports);
@@ -0,0 +1,7 @@
1
+ import { HostAppObject, HostAppObjectRepo, HostAppObjectUC } from "../../../HostAppObject";
2
+ export declare abstract class PrefetchAssetsUC extends HostAppObjectUC {
3
+ static type: string;
4
+ abstract prefetchAssets(): Promise<void>;
5
+ static get(appObjects: HostAppObjectRepo): PrefetchAssetsUC | undefined;
6
+ }
7
+ export declare function makePrefetchAssets(appObject: HostAppObject): PrefetchAssetsUC;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.makePrefetchAssets = exports.PrefetchAssetsUC = void 0;
13
+ const HostAppObject_1 = require("../../../HostAppObject");
14
+ const StateMachine_1 = require("../../StateMachine");
15
+ const GetAssetFileUC_1 = require("./GetAssetFileUC");
16
+ class PrefetchAssetsUC extends HostAppObject_1.HostAppObjectUC {
17
+ static get(appObjects) {
18
+ return HostAppObject_1.getSingletonComponent(PrefetchAssetsUC.type, appObjects);
19
+ }
20
+ }
21
+ exports.PrefetchAssetsUC = PrefetchAssetsUC;
22
+ PrefetchAssetsUC.type = "PrefetchAssetsUC";
23
+ function makePrefetchAssets(appObject) {
24
+ return new HostAppObjectRepoImp(appObject);
25
+ }
26
+ exports.makePrefetchAssets = makePrefetchAssets;
27
+ class HostAppObjectRepoImp extends PrefetchAssetsUC {
28
+ constructor(appObject) {
29
+ super(appObject, PrefetchAssetsUC.type);
30
+ this.prefetchAssets = () => __awaiter(this, void 0, void 0, function* () {
31
+ const fetchAssetFile = this.fetchAssetFile;
32
+ if (!this.stateMachine || !fetchAssetFile) {
33
+ return Promise.reject();
34
+ }
35
+ const totalAssetIds = this.stateMachine.states.reduce((assetIds, stateID) => {
36
+ var _a;
37
+ const state = (_a = this.stateMachine) === null || _a === void 0 ? void 0 : _a.getStateByID(stateID);
38
+ if (state) {
39
+ return assetIds.concat(state.assets);
40
+ }
41
+ else {
42
+ return [];
43
+ }
44
+ }, []);
45
+ const uniqueAssetIds = Array.from(new Set(totalAssetIds));
46
+ return new Promise((resolve, reject) => {
47
+ const fetchPromises = uniqueAssetIds.map((assetID) => {
48
+ return fetchAssetFile(assetID);
49
+ });
50
+ Promise.all(fetchPromises)
51
+ .then(() => {
52
+ resolve();
53
+ })
54
+ .catch((e) => {
55
+ this.warn(e.message);
56
+ reject(e);
57
+ });
58
+ });
59
+ });
60
+ this.appObjects.registerSingleton(this);
61
+ }
62
+ get stateMachine() {
63
+ return this.getCachedSingleton(StateMachine_1.HostStateMachine.type);
64
+ }
65
+ get fetchAssetFile() {
66
+ var _a;
67
+ return (_a = this.getCachedSingleton(GetAssetFileUC_1.GetAssetFileUC.type)) === null || _a === void 0 ? void 0 : _a.getAssetFile;
68
+ }
69
+ }
@@ -1,8 +1,9 @@
1
- export * from './ArchiveAssetUC';
2
- export * from './DeleteAssetUC';
3
- export * from './DownloadAssetFileUC';
4
- export * from './GetAppAssetsUC';
5
- export * from './GetAssetBlobURLUC';
6
- export * from './GetAssetFileUC';
7
- export * from './GetAssetUC';
8
- export * from './UpdateAssetFileUC';
1
+ export * from "./ArchiveAssetUC";
2
+ export * from "./DeleteAssetUC";
3
+ export * from "./DownloadAssetFileUC";
4
+ export * from "./GetAppAssetsUC";
5
+ export * from "./GetAssetBlobURLUC";
6
+ export * from "./GetAssetFileUC";
7
+ export * from "./GetAssetUC";
8
+ export * from "./PrefetchAssetsUC";
9
+ export * from "./UpdateAssetFileUC";
@@ -17,4 +17,5 @@ __exportStar(require("./GetAppAssetsUC"), exports);
17
17
  __exportStar(require("./GetAssetBlobURLUC"), exports);
18
18
  __exportStar(require("./GetAssetFileUC"), exports);
19
19
  __exportStar(require("./GetAssetUC"), exports);
20
+ __exportStar(require("./PrefetchAssetsUC"), exports);
20
21
  __exportStar(require("./UpdateAssetFileUC"), exports);
@@ -55,7 +55,12 @@ class HostDispatchEntityImp extends HostDispatchEntity {
55
55
  this.error("No app handler has been registered");
56
56
  return;
57
57
  }
58
- this.appHandler(request);
58
+ try {
59
+ this.appHandler(request);
60
+ }
61
+ catch (e) {
62
+ this.warn(e.message);
63
+ }
59
64
  };
60
65
  this.formRequestAndDispatch = (type, version, payload) => {
61
66
  if (!this.appHandler) {
@@ -67,7 +72,7 @@ class HostDispatchEntityImp extends HostDispatchEntity {
67
72
  version,
68
73
  payload
69
74
  };
70
- this.appHandler(request);
75
+ this.dispatch(request);
71
76
  };
72
77
  }
73
78
  get appHandlerVersion() {
@@ -7,7 +7,7 @@ export interface BrowseChannelDTO {
7
7
  }
8
8
  export declare abstract class DispatchStartBrowseChannelsUC extends HostAppObjectUC {
9
9
  static readonly type = "DispatchStartBrowseChannelsUC";
10
- readonly requestType = "START_BROWSE_CHANNEL_MODELS";
10
+ readonly requestType = "START_SELECT_CHANNEL_MODEL";
11
11
  abstract doDispatch(dto: BrowseChannelDTO): void;
12
12
  static get(appObject: HostAppObject): DispatchStartBrowseChannelsUC | undefined;
13
13
  static getByID(id: string, appObjects: HostAppObjectRepo): DispatchStartBrowseChannelsUC | undefined;
@@ -6,7 +6,7 @@ const Entities_1 = require("../Entities");
6
6
  class DispatchStartBrowseChannelsUC extends HostAppObject_1.HostAppObjectUC {
7
7
  constructor() {
8
8
  super(...arguments);
9
- this.requestType = "START_BROWSE_CHANNEL_MODELS";
9
+ this.requestType = "START_SELECT_CHANNEL_MODEL";
10
10
  }
11
11
  static get(appObject) {
12
12
  const asset = appObject.getComponent(DispatchStartBrowseChannelsUC.type);
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeGetAssetFolderURLHandler = exports.GetAssetFolderURLHandler = void 0;
4
4
  const HostAppObject_1 = require("../../../HostAppObject");
5
+ const Apps_1 = require("../../Apps");
5
6
  const Entities_1 = require("../Entities");
6
7
  class GetAssetFolderURLHandler extends HostAppObject_1.HostAppObjectUC {
7
8
  constructor() {
@@ -18,8 +19,14 @@ exports.makeGetAssetFolderURLHandler = makeGetAssetFolderURLHandler;
18
19
  class GetAssetFolderURLHandlerImp extends GetAssetFolderURLHandler {
19
20
  constructor(appObject) {
20
21
  super(appObject, GetAssetFolderURLHandler.type);
21
- this.action = () => {
22
- this.warn("Action has not been setup");
22
+ this.action = (callback) => {
23
+ var _a;
24
+ if (!this.app) {
25
+ this.error("No AppEntity");
26
+ callback("");
27
+ return;
28
+ }
29
+ callback((_a = this.app.appAssetFolderURL) !== null && _a !== void 0 ? _a : "");
23
30
  };
24
31
  this.handleRequest = (version, payload) => {
25
32
  if (version === 1) {
@@ -37,6 +44,9 @@ class GetAssetFolderURLHandlerImp extends GetAssetFolderURLHandler {
37
44
  }
38
45
  hostHandler.registerRequestHandler(this);
39
46
  }
47
+ get app() {
48
+ return this.getCachedLocalComponent(Apps_1.AppEntity.type);
49
+ }
40
50
  castPayloadV1(payload) {
41
51
  const castPayload = payload;
42
52
  if (!castPayload.callback) {
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeHasNextStateHandler = exports.HasNextStateHandler = void 0;
4
4
  const HostAppObject_1 = require("../../../HostAppObject");
5
+ const StateMachine_1 = require("../../StateMachine");
5
6
  const Entities_1 = require("../Entities");
6
7
  class HasNextStateHandler extends HostAppObject_1.HostAppObjectUC {
7
8
  constructor() {
@@ -18,8 +19,17 @@ exports.makeHasNextStateHandler = makeHasNextStateHandler;
18
19
  class HasNextStateHandlerImp extends HasNextStateHandler {
19
20
  constructor(appObject) {
20
21
  super(appObject, HasNextStateHandler.type);
21
- this.action = () => {
22
- throw new Entities_1.ActionNotImplemented(this.requestType);
22
+ this.action = (cb) => {
23
+ if (!this.stateMachine) {
24
+ cb(false);
25
+ return;
26
+ }
27
+ if (this.stateMachine.nextState) {
28
+ cb(true);
29
+ }
30
+ else {
31
+ cb(false);
32
+ }
23
33
  };
24
34
  this.handleRequest = (version, payload) => {
25
35
  if (version === 1) {
@@ -37,6 +47,9 @@ class HasNextStateHandlerImp extends HasNextStateHandler {
37
47
  }
38
48
  hostHandler.registerRequestHandler(this);
39
49
  }
50
+ get stateMachine() {
51
+ return this.getCachedSingleton(StateMachine_1.HostStateMachine.type);
52
+ }
40
53
  castPayloadV1(payload) {
41
54
  const castPayload = payload;
42
55
  if (!castPayload.callback) {
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeHasPreviousStateHandler = exports.HasPreviousStateHandler = void 0;
4
4
  const HostAppObject_1 = require("../../../HostAppObject");
5
+ const StateMachine_1 = require("../../StateMachine");
5
6
  const Entities_1 = require("../Entities");
6
7
  class HasPreviousStateHandler extends HostAppObject_1.HostAppObjectUC {
7
8
  constructor() {
@@ -18,8 +19,17 @@ exports.makeHasPreviousStateHandler = makeHasPreviousStateHandler;
18
19
  class HasPreviousStateHandlerImp extends HasPreviousStateHandler {
19
20
  constructor(appObject) {
20
21
  super(appObject, HasPreviousStateHandler.type);
21
- this.action = () => {
22
- throw new Entities_1.ActionNotImplemented(this.requestType);
22
+ this.action = (cb) => {
23
+ if (!this.stateMachine) {
24
+ cb(false);
25
+ return;
26
+ }
27
+ if (this.stateMachine.previousState) {
28
+ cb(true);
29
+ }
30
+ else {
31
+ cb(false);
32
+ }
23
33
  };
24
34
  this.handleRequest = (version, payload) => {
25
35
  if (version === 1) {
@@ -37,6 +47,9 @@ class HasPreviousStateHandlerImp extends HasPreviousStateHandler {
37
47
  }
38
48
  hostHandler.registerRequestHandler(this);
39
49
  }
50
+ get stateMachine() {
51
+ return this.getCachedSingleton(StateMachine_1.HostStateMachine.type);
52
+ }
40
53
  castPayloadV1(payload) {
41
54
  const castPayload = payload;
42
55
  if (!castPayload.callback) {
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeOnAppIsReadyHandler = exports.OnAppIsReadyHandler = void 0;
4
4
  const HostAppObject_1 = require("../../../HostAppObject");
5
+ const Apps_1 = require("../../Apps");
5
6
  const Entities_1 = require("../Entities");
6
7
  class OnAppIsReadyHandler extends HostAppObject_1.HostAppObjectUC {
7
8
  constructor() {
@@ -19,7 +20,11 @@ class OnAppIsReadyHandlerImp extends OnAppIsReadyHandler {
19
20
  constructor(appObject) {
20
21
  super(appObject, OnAppIsReadyHandler.type);
21
22
  this.action = () => {
22
- throw new Entities_1.ActionNotImplemented(this.requestType);
23
+ if (!this.app) {
24
+ this.error("No App");
25
+ return;
26
+ }
27
+ this.app.state = Apps_1.AppState.READY;
23
28
  };
24
29
  this.handleRequest = (version) => {
25
30
  if (version === 1) {
@@ -36,4 +41,7 @@ class OnAppIsReadyHandlerImp extends OnAppIsReadyHandler {
36
41
  }
37
42
  hostHandler.registerRequestHandler(this);
38
43
  }
44
+ get app() {
45
+ return this.getCachedLocalComponent(Apps_1.AppEntity.type);
46
+ }
39
47
  }
@@ -1,6 +1,6 @@
1
1
  import { HostAppObject, HostAppObjectUC } from "../../../HostAppObject";
2
2
  import { RequestHandler } from "../Entities";
3
- export declare type OnStateChangeAction = (state: object, assets: string[], validationErrorMessage?: string) => void;
3
+ export declare type OnStateChangeAction = (state: object, assets: string[], validationErrorMessage?: string, responseType?: string) => void;
4
4
  export declare abstract class OnStateChangeHandler extends HostAppObjectUC implements RequestHandler {
5
5
  static readonly type = "OnStateChangeHandler";
6
6
  readonly requestType = "ON_STATE_CHANGE";
@@ -9,10 +9,12 @@ export declare abstract class OnStateChangeHandler extends HostAppObjectUC imple
9
9
  }
10
10
  export declare function makeOnStateChangeHandler(appObject: HostAppObject): OnStateChangeHandler;
11
11
  export declare class OnStateChangeHandlerImp extends OnStateChangeHandler {
12
+ private get editStateEntity();
12
13
  action: OnStateChangeAction;
13
14
  handleRequest: (version: number, payload: unknown) => void;
14
15
  private castPayloadV1;
15
16
  private castPayloadV2;
16
17
  private castPayloadV3;
18
+ private castPayloadV4;
17
19
  constructor(appObject: HostAppObject);
18
20
  }
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OnStateChangeHandlerImp = exports.makeOnStateChangeHandler = exports.OnStateChangeHandler = void 0;
4
4
  const HostAppObject_1 = require("../../../HostAppObject");
5
+ const StateMachine_1 = require("../../StateMachine");
5
6
  const Entities_1 = require("../Entities");
6
7
  class OnStateChangeHandler extends HostAppObject_1.HostAppObjectUC {
7
8
  constructor() {
@@ -18,8 +19,22 @@ exports.makeOnStateChangeHandler = makeOnStateChangeHandler;
18
19
  class OnStateChangeHandlerImp extends OnStateChangeHandler {
19
20
  constructor(appObject) {
20
21
  super(appObject, OnStateChangeHandler.type);
21
- this.action = () => {
22
- throw new Entities_1.ActionNotImplemented(this.requestType);
22
+ this.action = (state, assets, validationErrorMessage, responseType) => {
23
+ if (!this.editStateEntity)
24
+ return;
25
+ const editingState = this.editStateEntity.editingState;
26
+ if (!editingState)
27
+ return;
28
+ editingState.setStateData(state);
29
+ editingState.assets = assets;
30
+ this.editStateEntity.stateValidationMessage = validationErrorMessage;
31
+ if (!responseType)
32
+ return;
33
+ const response = responseLookupMap.get(responseType.toUpperCase());
34
+ if (!response) {
35
+ this.warn(`Unable to parse ${responseType} into an expected response`);
36
+ }
37
+ editingState.expectedResponse = response;
23
38
  };
24
39
  this.handleRequest = (version, payload) => {
25
40
  if (version === 1) {
@@ -34,6 +49,10 @@ class OnStateChangeHandlerImp extends OnStateChangeHandler {
34
49
  const { stateObject, assets, validationErrorMessage } = this.castPayloadV3(payload);
35
50
  this.action(stateObject, assets, validationErrorMessage);
36
51
  }
52
+ else if (version === 4) {
53
+ const { stateObject, assets, validationErrorMessage, responseType } = this.castPayloadV4(payload);
54
+ this.action(stateObject, assets, validationErrorMessage, responseType);
55
+ }
37
56
  else {
38
57
  throw new Entities_1.UnsupportedRequestVersion(this.requestType, version);
39
58
  }
@@ -45,6 +64,9 @@ class OnStateChangeHandlerImp extends OnStateChangeHandler {
45
64
  }
46
65
  hostHandler.registerRequestHandler(this);
47
66
  }
67
+ get editStateEntity() {
68
+ return this.getCachedSingleton(StateMachine_1.HostEditingStateEntity.type);
69
+ }
48
70
  castPayloadV1(payload) {
49
71
  const castPayload = payload;
50
72
  if (castPayload.stateObject === undefined) {
@@ -66,5 +88,20 @@ class OnStateChangeHandlerImp extends OnStateChangeHandler {
66
88
  }
67
89
  return castPayload;
68
90
  }
91
+ castPayloadV4(payload) {
92
+ const castPayload = payload;
93
+ if (castPayload.stateObject === undefined) {
94
+ throw new Entities_1.UnableToParsePayload(this.requestType, 3, JSON.stringify(payload));
95
+ }
96
+ return castPayload;
97
+ }
69
98
  }
70
99
  exports.OnStateChangeHandlerImp = OnStateChangeHandlerImp;
100
+ const responseLookupMap = new Map([
101
+ ["HIT", StateMachine_1.ChallengeResponse.HIT],
102
+ ["MULTIHIT", StateMachine_1.ChallengeResponse.MULTIHIT],
103
+ ["NONE", StateMachine_1.ChallengeResponse.NONE],
104
+ ["PROGRESS", StateMachine_1.ChallengeResponse.PROGRESS],
105
+ ["QUALITY", StateMachine_1.ChallengeResponse.QUALITY],
106
+ ["SCORE", StateMachine_1.ChallengeResponse.SCORE]
107
+ ]);