@vived/host 3.0.0 → 3.1.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 (73) hide show
  1. package/lib/Components/Assets/Entities/AssetEntity.d.ts +1 -1
  2. package/lib/Components/Assets/Entities/AssetEntity.js +11 -9
  3. package/lib/Components/Assets/Mocks/MockPrefetchAssets.d.ts +8 -0
  4. package/lib/Components/Assets/Mocks/MockPrefetchAssets.js +15 -0
  5. package/lib/Components/Assets/Mocks/index.d.ts +1 -0
  6. package/lib/Components/Assets/Mocks/index.js +1 -0
  7. package/lib/Components/Assets/UCs/PrefetchAssetsUC.d.ts +7 -0
  8. package/lib/Components/Assets/UCs/PrefetchAssetsUC.js +69 -0
  9. package/lib/Components/Assets/UCs/index.d.ts +9 -8
  10. package/lib/Components/Assets/UCs/index.js +1 -0
  11. package/lib/Components/Handler/UCs/HasNextStateHandler.js +15 -2
  12. package/lib/Components/Handler/UCs/HasPreviousStateHandler.js +15 -2
  13. package/lib/Components/Handler/UCs/OnStateChangeHandler.d.ts +3 -1
  14. package/lib/Components/Handler/UCs/OnStateChangeHandler.js +39 -2
  15. package/lib/Components/StateMachine/Adapters/hostStateMachinePMAdapter.d.ts +3 -0
  16. package/lib/Components/StateMachine/Adapters/hostStateMachinePMAdapter.js +23 -0
  17. package/lib/Components/StateMachine/Adapters/hostStateMachinePMAdater.d.ts +3 -0
  18. package/lib/Components/StateMachine/Adapters/hostStateMachinePMAdater.js +23 -0
  19. package/lib/Components/StateMachine/Adapters/index.d.ts +2 -0
  20. package/lib/Components/StateMachine/Adapters/index.js +14 -0
  21. package/lib/Components/StateMachine/Adapters/isEditingPMAdapter.d.ts +3 -0
  22. package/lib/Components/StateMachine/Adapters/isEditingPMAdapter.js +23 -0
  23. package/lib/Components/StateMachine/Controllers/deleteState.d.ts +2 -0
  24. package/lib/Components/StateMachine/Controllers/deleteState.js +13 -0
  25. package/lib/Components/StateMachine/Controllers/duplicateState.d.ts +2 -0
  26. package/lib/Components/StateMachine/Controllers/duplicateState.js +13 -0
  27. package/lib/Components/StateMachine/Controllers/index.d.ts +2 -0
  28. package/lib/Components/StateMachine/Controllers/index.js +14 -0
  29. package/lib/Components/StateMachine/Entities/HostEditingStateEntity.d.ts +16 -0
  30. package/lib/Components/StateMachine/Entities/HostEditingStateEntity.js +121 -0
  31. package/lib/Components/StateMachine/Entities/HostStateEntity.d.ts +31 -0
  32. package/lib/Components/StateMachine/Entities/HostStateEntity.js +124 -0
  33. package/lib/Components/StateMachine/Entities/HostStateMachine.d.ts +20 -0
  34. package/lib/Components/StateMachine/Entities/HostStateMachine.js +161 -0
  35. package/lib/Components/StateMachine/Entities/index.d.ts +3 -0
  36. package/lib/Components/StateMachine/Entities/index.js +15 -0
  37. package/lib/Components/StateMachine/Mocks/MockDeleteStateUC.d.ts +8 -0
  38. package/lib/Components/StateMachine/Mocks/MockDeleteStateUC.js +15 -0
  39. package/lib/Components/StateMachine/Mocks/MockDuplicateStateUC.d.ts +8 -0
  40. package/lib/Components/StateMachine/Mocks/MockDuplicateStateUC.js +15 -0
  41. package/lib/Components/StateMachine/Mocks/MockHostEditingStateEntity.d.ts +16 -0
  42. package/lib/Components/StateMachine/Mocks/MockHostEditingStateEntity.js +30 -0
  43. package/lib/Components/StateMachine/Mocks/MockHostStateMachinePM.d.ts +8 -0
  44. package/lib/Components/StateMachine/Mocks/MockHostStateMachinePM.js +15 -0
  45. package/lib/Components/StateMachine/Mocks/MockIsEditingStatePM.d.ts +8 -0
  46. package/lib/Components/StateMachine/Mocks/MockIsEditingStatePM.js +15 -0
  47. package/lib/Components/StateMachine/Mocks/MockStateEntity.d.ts +16 -0
  48. package/lib/Components/StateMachine/Mocks/MockStateEntity.js +27 -0
  49. package/lib/Components/StateMachine/Mocks/index.d.ts +6 -0
  50. package/lib/Components/StateMachine/Mocks/index.js +18 -0
  51. package/lib/Components/StateMachine/PMs/EditingStatePM.d.ts +19 -0
  52. package/lib/Components/StateMachine/PMs/EditingStatePM.js +54 -0
  53. package/lib/Components/StateMachine/PMs/HostStateMachinePM.d.ts +23 -0
  54. package/lib/Components/StateMachine/PMs/HostStateMachinePM.js +70 -0
  55. package/lib/Components/StateMachine/PMs/IsEditingStatePM.d.ts +13 -0
  56. package/lib/Components/StateMachine/PMs/IsEditingStatePM.js +36 -0
  57. package/lib/Components/StateMachine/PMs/index.d.ts +2 -0
  58. package/lib/Components/StateMachine/PMs/index.js +14 -0
  59. package/lib/Components/StateMachine/UCs/DeleteStateUC.d.ts +7 -0
  60. package/lib/Components/StateMachine/UCs/DeleteStateUC.js +37 -0
  61. package/lib/Components/StateMachine/UCs/DuplicateStateUC.d.ts +7 -0
  62. package/lib/Components/StateMachine/UCs/DuplicateStateUC.js +39 -0
  63. package/lib/Components/StateMachine/UCs/index.d.ts +2 -0
  64. package/lib/Components/StateMachine/UCs/index.js +14 -0
  65. package/lib/Components/StateMachine/index.d.ts +6 -0
  66. package/lib/Components/StateMachine/index.js +18 -0
  67. package/lib/Components/index.d.ts +1 -0
  68. package/lib/Components/index.js +1 -0
  69. package/lib/Types/ReactHookPmAdapter.d.ts +6 -0
  70. package/lib/Types/ReactHookPmAdapter.js +2 -0
  71. package/lib/Types/index.d.ts +1 -0
  72. package/lib/Types/index.js +1 -0
  73. package/package.json +1 -1
@@ -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);
@@ -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) {
@@ -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
+ ]);
@@ -0,0 +1,3 @@
1
+ import { ReactHookPmAdapter } from "../../../Types/ReactHookPmAdapter";
2
+ import { HostStateMachineVM } from "../PMs";
3
+ export declare const hostStateMachinePMAdapter: ReactHookPmAdapter<HostStateMachineVM>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hostStateMachinePMAdapter = void 0;
4
+ const PMs_1 = require("../PMs");
5
+ exports.hostStateMachinePMAdapter = {
6
+ defaultVM: PMs_1.defaultHostStateMachineVM,
7
+ subscribe: (appObjects, setVM) => {
8
+ const pm = PMs_1.HostStateMachinePM.get(appObjects);
9
+ if (!pm) {
10
+ appObjects.submitError("hostStateMachinePMAdapter", "Unable to find HostStateMachinePM");
11
+ return;
12
+ }
13
+ pm.addView(setVM);
14
+ },
15
+ unsubscribe: (appObjects, setVM) => {
16
+ const pm = PMs_1.HostStateMachinePM.get(appObjects);
17
+ if (!pm) {
18
+ appObjects.submitError("hostStateMachinePMAdapter", "Unable to find HostStateMachinePM");
19
+ return;
20
+ }
21
+ pm.removeView(setVM);
22
+ }
23
+ };
@@ -0,0 +1,3 @@
1
+ import { ReactHookPmAdapter } from "../../../Types/ReactHookPmAdapter";
2
+ import { HostStateMachineVM } from "../PMs";
3
+ export declare const hostStateMachinePMAdapter: ReactHookPmAdapter<HostStateMachineVM>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hostStateMachinePMAdapter = void 0;
4
+ const PMs_1 = require("../PMs");
5
+ exports.hostStateMachinePMAdapter = {
6
+ defaultVM: PMs_1.defaultHostStateMachineVM,
7
+ subscribe: (appObjects, setVM) => {
8
+ const pm = PMs_1.HostStateMachinePM.get(appObjects);
9
+ if (!pm) {
10
+ appObjects.submitError("hostStateMachinePMAdater", "Unable to find HostStateMachinePM");
11
+ return;
12
+ }
13
+ pm.addView(setVM);
14
+ },
15
+ unsubscribe: (appObjects, setVM) => {
16
+ const pm = PMs_1.HostStateMachinePM.get(appObjects);
17
+ if (!pm) {
18
+ appObjects.submitError("hostStateMachinePMAdater", "Unable to find HostStateMachinePM");
19
+ return;
20
+ }
21
+ pm.removeView(setVM);
22
+ }
23
+ };
@@ -0,0 +1,2 @@
1
+ export * from "./hostStateMachinePMAdapter";
2
+ export * from "./isEditingPMAdapter";
@@ -0,0 +1,14 @@
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("./hostStateMachinePMAdapter"), exports);
14
+ __exportStar(require("./isEditingPMAdapter"), exports);
@@ -0,0 +1,3 @@
1
+ import { ReactHookPmAdapter } from "../../../Types/ReactHookPmAdapter";
2
+ import { EditingStateVM } from "../PMs";
3
+ export declare const isEditingPMAdapter: ReactHookPmAdapter<EditingStateVM>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isEditingPMAdapter = void 0;
4
+ const PMs_1 = require("../PMs");
5
+ exports.isEditingPMAdapter = {
6
+ defaultVM: PMs_1.defaultIsEditingStateVM,
7
+ subscribe: (appObjects, setVM) => {
8
+ const pm = PMs_1.EditingStatePM.get(appObjects);
9
+ if (!pm) {
10
+ appObjects.submitError("isEditingPMAdapter", "Unable to find HostStateMachinePM");
11
+ return;
12
+ }
13
+ pm.addView(setVM);
14
+ },
15
+ unsubscribe: (appObjects, setVM) => {
16
+ const pm = PMs_1.EditingStatePM.get(appObjects);
17
+ if (!pm) {
18
+ appObjects.submitError("isEditingPMAdapter", "Unable to find HostStateMachinePM");
19
+ return;
20
+ }
21
+ pm.removeView(setVM);
22
+ }
23
+ };
@@ -0,0 +1,2 @@
1
+ import { HostAppObjectRepo } from "../../../HostAppObject";
2
+ export declare function deleteState(id: string, appObjects: HostAppObjectRepo): void;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteState = void 0;
4
+ const UCs_1 = require("../UCs");
5
+ function deleteState(id, appObjects) {
6
+ const uc = UCs_1.DeleteStateUC.get(appObjects);
7
+ if (!uc) {
8
+ appObjects.submitWarning("duplicateState", "Unable to find DeleteStateUC");
9
+ return;
10
+ }
11
+ uc.deleteState(id);
12
+ }
13
+ exports.deleteState = deleteState;
@@ -0,0 +1,2 @@
1
+ import { HostAppObjectRepo } from "../../../HostAppObject";
2
+ export declare function duplicateState(id: string, appObjects: HostAppObjectRepo): void;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.duplicateState = void 0;
4
+ const UCs_1 = require("../UCs");
5
+ function duplicateState(id, appObjects) {
6
+ const uc = UCs_1.DuplicateStateUC.get(appObjects);
7
+ if (!uc) {
8
+ appObjects.submitWarning("duplicateState", "Unable to find DuplicateStateUC");
9
+ return;
10
+ }
11
+ uc.duplicateState(id);
12
+ }
13
+ exports.duplicateState = duplicateState;
@@ -0,0 +1,2 @@
1
+ export * from "./deleteState";
2
+ export * from "./duplicateState";
@@ -0,0 +1,14 @@
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("./deleteState"), exports);
14
+ __exportStar(require("./duplicateState"), exports);
@@ -0,0 +1,16 @@
1
+ import { HostAppObject, HostAppObjectEntity, HostAppObjectRepo } from "../../../HostAppObject";
2
+ import { HostStateEntity } from "./HostStateEntity";
3
+ export declare abstract class HostEditingStateEntity extends HostAppObjectEntity {
4
+ static type: string;
5
+ abstract get isEditing(): boolean;
6
+ abstract get isNewState(): boolean;
7
+ abstract get editingState(): HostStateEntity | undefined;
8
+ abstract get somethingHasChanged(): boolean;
9
+ abstract stateValidationMessage?: string;
10
+ abstract startNewState(): HostStateEntity | undefined;
11
+ abstract startEditing(state: HostStateEntity): void;
12
+ abstract cancelEditState(): void;
13
+ abstract finishEditing(): void;
14
+ static get(appObjects: HostAppObjectRepo): HostEditingStateEntity | undefined;
15
+ }
16
+ export declare function makeHostEditingStateEntity(appObject: HostAppObject): HostEditingStateEntity;