@araminix/platform 0.0.0-stage → 1.0.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 (159) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +210 -2
  3. package/dist/index.d.ts +15 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +15 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/src/Platform.d.ts +48 -0
  8. package/dist/src/Platform.d.ts.map +1 -0
  9. package/dist/src/Platform.js +275 -0
  10. package/dist/src/Platform.js.map +1 -0
  11. package/dist/src/agent/AgentController.d.ts +20 -0
  12. package/dist/src/agent/AgentController.d.ts.map +1 -0
  13. package/dist/src/agent/AgentController.js +224 -0
  14. package/dist/src/agent/AgentController.js.map +1 -0
  15. package/dist/src/agent/agentWorkerDriver.d.ts +11 -0
  16. package/dist/src/agent/agentWorkerDriver.d.ts.map +1 -0
  17. package/dist/src/agent/agentWorkerDriver.js +20 -0
  18. package/dist/src/agent/agentWorkerDriver.js.map +1 -0
  19. package/dist/src/agent/d.d.ts +39 -0
  20. package/dist/src/agent/d.d.ts.map +1 -0
  21. package/dist/src/agent/d.js +91 -0
  22. package/dist/src/agent/d.js.map +1 -0
  23. package/dist/src/agent/worker.d.ts +2 -0
  24. package/dist/src/agent/worker.d.ts.map +1 -0
  25. package/dist/src/agent/worker.js +67 -0
  26. package/dist/src/agent/worker.js.map +1 -0
  27. package/dist/src/builder/Fragment.d.ts +40 -0
  28. package/dist/src/builder/Fragment.d.ts.map +1 -0
  29. package/dist/src/builder/Fragment.js +87 -0
  30. package/dist/src/builder/Fragment.js.map +1 -0
  31. package/dist/src/builder/Panel.d.ts +30 -0
  32. package/dist/src/builder/Panel.d.ts.map +1 -0
  33. package/dist/src/builder/Panel.js +45 -0
  34. package/dist/src/builder/Panel.js.map +1 -0
  35. package/dist/src/builder/builder.d.ts +31 -0
  36. package/dist/src/builder/builder.d.ts.map +1 -0
  37. package/dist/src/builder/builder.js +43 -0
  38. package/dist/src/builder/builder.js.map +1 -0
  39. package/dist/src/executor/ActivityInstance.d.ts +98 -0
  40. package/dist/src/executor/ActivityInstance.d.ts.map +1 -0
  41. package/dist/src/executor/ActivityInstance.js +389 -0
  42. package/dist/src/executor/ActivityInstance.js.map +1 -0
  43. package/dist/src/executor/AppInstance.d.ts +73 -0
  44. package/dist/src/executor/AppInstance.d.ts.map +1 -0
  45. package/dist/src/executor/AppInstance.js +399 -0
  46. package/dist/src/executor/AppInstance.js.map +1 -0
  47. package/dist/src/executor/Instance.d.ts +37 -0
  48. package/dist/src/executor/Instance.d.ts.map +1 -0
  49. package/dist/src/executor/Instance.js +303 -0
  50. package/dist/src/executor/Instance.js.map +1 -0
  51. package/dist/src/executor/index.d.ts +4 -0
  52. package/dist/src/executor/index.d.ts.map +1 -0
  53. package/dist/src/executor/index.js +3 -0
  54. package/dist/src/executor/index.js.map +1 -0
  55. package/dist/src/executor/proto.d.ts +120 -0
  56. package/dist/src/executor/proto.d.ts.map +1 -0
  57. package/dist/src/executor/proto.js +207 -0
  58. package/dist/src/executor/proto.js.map +1 -0
  59. package/dist/src/executor/worker.d.ts +2 -0
  60. package/dist/src/executor/worker.d.ts.map +1 -0
  61. package/dist/src/executor/worker.js +154 -0
  62. package/dist/src/executor/worker.js.map +1 -0
  63. package/dist/src/executor/workerDriver.d.ts +14 -0
  64. package/dist/src/executor/workerDriver.d.ts.map +1 -0
  65. package/dist/src/executor/workerDriver.js +26 -0
  66. package/dist/src/executor/workerDriver.js.map +1 -0
  67. package/dist/src/lib/actors.d.ts +94 -0
  68. package/dist/src/lib/actors.d.ts.map +1 -0
  69. package/dist/src/lib/actors.js +139 -0
  70. package/dist/src/lib/actors.js.map +1 -0
  71. package/dist/src/lib/d.d.ts +145 -0
  72. package/dist/src/lib/d.d.ts.map +1 -0
  73. package/dist/src/lib/d.js +296 -0
  74. package/dist/src/lib/d.js.map +1 -0
  75. package/dist/src/lib/worker_socket.d.ts +56 -0
  76. package/dist/src/lib/worker_socket.d.ts.map +1 -0
  77. package/dist/src/lib/worker_socket.js +161 -0
  78. package/dist/src/lib/worker_socket.js.map +1 -0
  79. package/dist/src/server/AuthProvider.d.ts +130 -0
  80. package/dist/src/server/AuthProvider.d.ts.map +1 -0
  81. package/dist/src/server/AuthProvider.js +58 -0
  82. package/dist/src/server/AuthProvider.js.map +1 -0
  83. package/dist/src/server/ConnectRequest.d.ts +15 -0
  84. package/dist/src/server/ConnectRequest.d.ts.map +1 -0
  85. package/dist/src/server/ConnectRequest.js +36 -0
  86. package/dist/src/server/ConnectRequest.js.map +1 -0
  87. package/dist/src/server/Endpoint.d.ts +49 -0
  88. package/dist/src/server/Endpoint.d.ts.map +1 -0
  89. package/dist/src/server/Endpoint.js +414 -0
  90. package/dist/src/server/Endpoint.js.map +1 -0
  91. package/dist/src/server/EndpointController.d.ts +15 -0
  92. package/dist/src/server/EndpointController.d.ts.map +1 -0
  93. package/dist/src/server/EndpointController.js +92 -0
  94. package/dist/src/server/EndpointController.js.map +1 -0
  95. package/dist/src/server/index.d.ts +7 -0
  96. package/dist/src/server/index.d.ts.map +1 -0
  97. package/dist/src/server/index.js +7 -0
  98. package/dist/src/server/index.js.map +1 -0
  99. package/dist/src/utils/i18n.d.ts +20 -0
  100. package/dist/src/utils/i18n.d.ts.map +1 -0
  101. package/dist/src/utils/i18n.js +41 -0
  102. package/dist/src/utils/i18n.js.map +1 -0
  103. package/dist/src/utils/index.d.ts +4 -0
  104. package/dist/src/utils/index.d.ts.map +1 -0
  105. package/dist/src/utils/index.js +4 -0
  106. package/dist/src/utils/index.js.map +1 -0
  107. package/dist/src/utils/log_middleware.d.ts +3 -0
  108. package/dist/src/utils/log_middleware.d.ts.map +1 -0
  109. package/dist/src/utils/log_middleware.js +37 -0
  110. package/dist/src/utils/log_middleware.js.map +1 -0
  111. package/dist/src/utils/minioService.d.ts +53 -0
  112. package/dist/src/utils/minioService.d.ts.map +1 -0
  113. package/dist/src/utils/minioService.js +163 -0
  114. package/dist/src/utils/minioService.js.map +1 -0
  115. package/dist/tests/actors.test.d.ts +2 -0
  116. package/dist/tests/actors.test.d.ts.map +1 -0
  117. package/dist/tests/actors.test.js +45 -0
  118. package/dist/tests/actors.test.js.map +1 -0
  119. package/dist/tests/authProvider.test.d.ts +2 -0
  120. package/dist/tests/authProvider.test.d.ts.map +1 -0
  121. package/dist/tests/authProvider.test.js +24 -0
  122. package/dist/tests/authProvider.test.js.map +1 -0
  123. package/dist/tests/builder.test.d.ts +2 -0
  124. package/dist/tests/builder.test.d.ts.map +1 -0
  125. package/dist/tests/builder.test.js +37 -0
  126. package/dist/tests/builder.test.js.map +1 -0
  127. package/dist/tests/connectRequest.test.d.ts +2 -0
  128. package/dist/tests/connectRequest.test.d.ts.map +1 -0
  129. package/dist/tests/connectRequest.test.js +55 -0
  130. package/dist/tests/connectRequest.test.js.map +1 -0
  131. package/dist/tests/endpointController.test.d.ts +2 -0
  132. package/dist/tests/endpointController.test.d.ts.map +1 -0
  133. package/dist/tests/endpointController.test.js +28 -0
  134. package/dist/tests/endpointController.test.js.map +1 -0
  135. package/dist/tests/i18n.test.d.ts +2 -0
  136. package/dist/tests/i18n.test.d.ts.map +1 -0
  137. package/dist/tests/i18n.test.js +25 -0
  138. package/dist/tests/i18n.test.js.map +1 -0
  139. package/dist/tests/logMiddleware.test.d.ts +2 -0
  140. package/dist/tests/logMiddleware.test.d.ts.map +1 -0
  141. package/dist/tests/logMiddleware.test.js +10 -0
  142. package/dist/tests/logMiddleware.test.js.map +1 -0
  143. package/dist/tests/minioService.test.d.ts +2 -0
  144. package/dist/tests/minioService.test.d.ts.map +1 -0
  145. package/dist/tests/minioService.test.js +29 -0
  146. package/dist/tests/minioService.test.js.map +1 -0
  147. package/dist/tests/platform.test.d.ts +2 -0
  148. package/dist/tests/platform.test.d.ts.map +1 -0
  149. package/dist/tests/platform.test.js +43 -0
  150. package/dist/tests/platform.test.js.map +1 -0
  151. package/dist/tests/proto.test.d.ts +2 -0
  152. package/dist/tests/proto.test.d.ts.map +1 -0
  153. package/dist/tests/proto.test.js +37 -0
  154. package/dist/tests/proto.test.js.map +1 -0
  155. package/dist/tests/workerSocket.test.d.ts +2 -0
  156. package/dist/tests/workerSocket.test.d.ts.map +1 -0
  157. package/dist/tests/workerSocket.test.js +53 -0
  158. package/dist/tests/workerSocket.test.js.map +1 -0
  159. package/package.json +69 -3
@@ -0,0 +1,30 @@
1
+ import { BuildedPart, Part } from './builder.js';
2
+ import type { FragmentInterface } from './Fragment.js';
3
+ type Header = void | string | (() => Promise<string>) | (() => string);
4
+ type Styles = Array<string> | void;
5
+ export interface PanelSet {
6
+ header: Header;
7
+ styles: Array<string> | undefined;
8
+ render: () => void | Promise<void>;
9
+ }
10
+ export declare class Panel implements Part {
11
+ private id;
12
+ private styles;
13
+ private parts;
14
+ constructor(styles: Styles);
15
+ _addFragment(fragment: FragmentInterface): void;
16
+ _addPanel(panel: Panel): void;
17
+ _build(): BuildedPart;
18
+ }
19
+ type RenderAsync = () => Promise<void>;
20
+ type RenderSync = () => void;
21
+ declare function panel(init: {
22
+ render: RenderAsync;
23
+ styles?: Styles;
24
+ } | RenderAsync): Promise<void>;
25
+ declare function panel(init: {
26
+ render: RenderSync;
27
+ styles?: Styles;
28
+ } | RenderSync): void;
29
+ export default panel;
30
+ //# sourceMappingURL=Panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../../src/builder/Panel.ts"],"names":[],"mappings":"AAEA,OAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,KAAK,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;AACvE,KAAK,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAEnC,MAAM,WAAW,QAAQ;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IAClC,MAAM,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,qBAAa,KAAM,YAAW,IAAI;IAC9B,OAAO,CAAC,EAAE,CAAkB;IAC5B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAAc;IAE3B,YAAY,MAAM,EAAE,MAAM,EAEzB;IAED,YAAY,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAE9C;IAED,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAE5B;IAED,MAAM,IAAI,WAAW,CAOpB;CACJ;AAED,KAAK,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AACvC,KAAK,UAAU,GAAG,MAAM,IAAI,CAAC;AAE7B,iBAAS,KAAK,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5F,iBAAS,KAAK,CAAC,IAAI,EAAE;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,GAAG,IAAI,CAAC;eAqBlE,KAAK"}
@@ -0,0 +1,45 @@
1
+ import { uuid } from '@araminix/lib';
2
+ import builder from './builder.js';
3
+ export class Panel {
4
+ id = uuid();
5
+ styles;
6
+ parts = [];
7
+ constructor(styles) {
8
+ this.styles = styles === undefined ? [] : styles;
9
+ }
10
+ _addFragment(fragment) {
11
+ this.parts.push(fragment);
12
+ }
13
+ _addPanel(panel) {
14
+ this.parts.push(panel);
15
+ }
16
+ _build() {
17
+ return {
18
+ id: this.id,
19
+ type: 'Panel',
20
+ styles: this.styles,
21
+ content: this.parts.map((part) => part._build()),
22
+ };
23
+ }
24
+ }
25
+ function panel(init) {
26
+ const render = typeof init === 'function' ? init : init.render;
27
+ const styles = typeof init !== 'function' ? init.styles : undefined;
28
+ const p = new Panel(styles);
29
+ builder.pushPanel(p);
30
+ try {
31
+ const result = render();
32
+ if (result instanceof Promise) {
33
+ return result.then(() => {
34
+ builder.popPanel();
35
+ });
36
+ }
37
+ builder.popPanel();
38
+ }
39
+ catch (e) {
40
+ builder.popPanel();
41
+ throw e;
42
+ }
43
+ }
44
+ export default panel;
45
+ //# sourceMappingURL=Panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Panel.js","sourceRoot":"","sources":["../../../src/builder/Panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,OAA8B,MAAM,cAAc,CAAC;AAY1D,MAAM,OAAO,KAAK;IACN,EAAE,GAAW,IAAI,EAAE,CAAC;IACpB,MAAM,CAAgB;IACtB,KAAK,GAAW,EAAE,CAAC;IAE3B,YAAY,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACrD,CAAC;IAED,YAAY,CAAC,QAA2B;QACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,KAAY;QAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM;QACF,OAAO;YACH,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;SACnD,CAAC;IACN,CAAC;CACJ;AAOD,SAAS,KAAK,CAAC,IAAsF;IACjG,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAC/D,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAErB,IAAI,CAAC;QACD,MAAM,MAAM,GAAY,MAAM,EAAE,CAAC;QACjC,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACpB,OAAO,CAAC,QAAQ,EAAE,CAAC;YACvB,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,CAAC,QAAQ,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,QAAQ,EAAE,CAAC;QACnB,MAAM,CAAC,CAAC;IACZ,CAAC;AACL,CAAC;AAED,eAAe,KAAK,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { ActivityDriver } from '../executor/ActivityInstance.js';
2
+ import type { Actor } from '../lib/actors.js';
3
+ import type { FragmentInterface } from './Fragment.js';
4
+ import { Panel } from './Panel.js';
5
+ export type OnAction<D = unknown> = (data: D) => Promise<Actor> | Actor;
6
+ export type Response<D = unknown, R = unknown> = (data: D) => Promise<R> | R;
7
+ export interface Part {
8
+ _build(): BuildedPart;
9
+ }
10
+ export type BuildedPart = {
11
+ id: string;
12
+ type: string;
13
+ styles?: Array<string>;
14
+ content?: Array<BuildedPart>;
15
+ };
16
+ declare class Builder {
17
+ private fragments;
18
+ private mainPanel?;
19
+ private panelStack;
20
+ private activityFragmentDriver?;
21
+ pushPanel(panel: Panel): void;
22
+ addFragment(fragmentBuilderDriver: FragmentInterface): ActivityDriver;
23
+ popPanel(): void;
24
+ build(fragmentDriver: ActivityDriver, render: () => void | Promise<void>): Promise<{
25
+ fragments: Map<string, FragmentInterface>;
26
+ mainPanel: Panel;
27
+ }>;
28
+ }
29
+ declare const builder: Builder;
30
+ export default builder;
31
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/builder/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AACxE,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAE7E,MAAM,WAAW,IAAI;IACjB,MAAM,IAAI,WAAW,CAAC;CACzB;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;CAChC,CAAC;AAEF,cAAM,OAAO;IACT,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,SAAS,CAAC,CAAoB;IACtC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,sBAAsB,CAAC,CAAiB;IAEhD,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAO5B;IAED,WAAW,CAAC,qBAAqB,EAAE,iBAAiB,GAAG,cAAc,CAIpE;IAED,QAAQ,IAAI,IAAI,CAEf;IAEK,KAAK,CACP,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACnC,OAAO,CAAC;QACP,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QAC1C,SAAS,EAAE,KAAK,CAAC;KACpB,CAAC,CAiBD;CACJ;AAED,QAAA,MAAM,OAAO,SAAgB,CAAC;eACf,OAAO"}
@@ -0,0 +1,43 @@
1
+ import { Panel } from './Panel.js';
2
+ class Builder {
3
+ fragments = new Map();
4
+ mainPanel = undefined;
5
+ panelStack = [];
6
+ activityFragmentDriver;
7
+ pushPanel(panel) {
8
+ if (!this.mainPanel) {
9
+ this.mainPanel = panel;
10
+ }
11
+ else {
12
+ this.panelStack[this.panelStack.length - 1]._addPanel(panel);
13
+ }
14
+ this.panelStack.push(panel);
15
+ }
16
+ addFragment(fragmentBuilderDriver) {
17
+ this.panelStack[this.panelStack.length - 1]._addFragment(fragmentBuilderDriver);
18
+ this.fragments.set(fragmentBuilderDriver.id, fragmentBuilderDriver);
19
+ return this.activityFragmentDriver;
20
+ }
21
+ popPanel() {
22
+ this.panelStack.pop();
23
+ }
24
+ async build(fragmentDriver, render) {
25
+ this.activityFragmentDriver = fragmentDriver;
26
+ this.fragments = new Map();
27
+ this.mainPanel = new Panel(undefined);
28
+ this.panelStack = [this.mainPanel];
29
+ await render();
30
+ const result = {
31
+ fragments: this.fragments,
32
+ mainPanel: this.mainPanel,
33
+ };
34
+ this.fragments = new Map();
35
+ this.mainPanel = undefined;
36
+ this.activityFragmentDriver = undefined;
37
+ this.panelStack = [];
38
+ return result;
39
+ }
40
+ }
41
+ const builder = new Builder();
42
+ export default builder;
43
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/builder/builder.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAgBnC,MAAM,OAAO;IACD,SAAS,GAAmC,IAAI,GAAG,EAAE,CAAC;IACtD,SAAS,GAAW,SAAS,CAAC;IAC9B,UAAU,GAAY,EAAE,CAAC;IACzB,sBAAsB,CAAkB;IAEhD,SAAS,CAAC,KAAY;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,qBAAwC;QAChD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;QAChF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,sBAAuB,CAAC;IACxC,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,KAAK,CACP,cAA8B,EAC9B,MAAkC;QAKlC,IAAI,CAAC,sBAAsB,GAAG,cAAc,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEnC,MAAM,MAAM,EAAE,CAAC;QAEf,MAAM,MAAM,GAAG;YACX,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,eAAe,OAAO,CAAC"}
@@ -0,0 +1,98 @@
1
+ import { Result } from '@araminix/lib';
2
+ import { Actor, Close, Destroy, NextPage, OpenPage as PageOpen, ReplacePage as PageReplace, PopPage, Prev, Refresh, Reload, ReloadFragment, UpdateFragment, WizardAttached, WizardDetached, WizardDone, WizardNext, WizardNextReplace, WizardPop } from '../lib/actors.js';
3
+ import type { Activity } from '../lib/d.js';
4
+ import { ActivityDriver as ActivityAppDriver, AppError, AppResult } from './AppInstance.js';
5
+ export declare class ActivityInterface {
6
+ readonly activity: Activity<any>;
7
+ readonly beforeRender: () => Promise<Actor> | Actor;
8
+ readonly afterWake: () => void;
9
+ readonly cleanUp: () => void;
10
+ readonly render: () => Promise<void>;
11
+ readonly title: () => Promise<string> | string;
12
+ readonly updateCtx: (ctx: any) => void;
13
+ constructor(activity: Activity<any>, beforeRender: () => Promise<Actor> | Actor, afterWake: () => void, cleanUp: () => void, render: () => Promise<void>, title: () => Promise<string> | string, updateCtx: (ctx: any) => void);
14
+ }
15
+ export declare class ActivityDriver {
16
+ private activity;
17
+ private instanceDriver;
18
+ constructor(activity: ActivityInstance, instanceDriver: ActivityAppDriver);
19
+ get status(): Status;
20
+ push<TData = unknown>(data: TData): Promise<AppResult>;
21
+ trigger(actor: Actor): Promise<AppResult>;
22
+ }
23
+ declare enum Status {
24
+ Initiated = 0,
25
+ Prepared = 1,
26
+ Rendered = 2,
27
+ Waked = 3,
28
+ Done = 4
29
+ }
30
+ type WizardHandler = void | ((result: Result<any, any> | undefined) => Promise<any> | any);
31
+ export declare class ActivityInstance {
32
+ private activityTemplate;
33
+ private ctx;
34
+ driver: ActivityAppDriver;
35
+ private fragments;
36
+ private panel?;
37
+ protected activityInterface: ActivityInterface;
38
+ underActivity: ActivityInstance | undefined;
39
+ sourceActivity: ActivityInstance | undefined;
40
+ popActivity: ActivityInstance | undefined;
41
+ status: Status;
42
+ private activityDriver;
43
+ title: string;
44
+ isPop: boolean;
45
+ constructor(activityTemplate: Activity<any>, ctx: any);
46
+ init(driver: ActivityAppDriver, underActivity: ActivityInstance | undefined, sourceActivity: ActivityInstance | undefined, isPop?: boolean): void;
47
+ triggerClose(): Promise<AppResult>;
48
+ private cleanUpFragments;
49
+ resetBeforeLoad(): void;
50
+ load(): Promise<AppResult>;
51
+ private resetBeforeReload;
52
+ reload(): Promise<AppResult>;
53
+ refreshSelf(): Promise<AppResult>;
54
+ resetBeforeRefresh(): void;
55
+ refresh(ctx: any): Promise<AppResult>;
56
+ prev(): Promise<AppResult>;
57
+ suspend(): void;
58
+ action(fragmentId: string, name: string, data: any): Promise<Result<void, AppError>>;
59
+ query(fragmentId: string, name: string, data: any): Promise<Result<any, AppError>>;
60
+ wake(): Promise<AppResult>;
61
+ prepare(): Promise<AppResult>;
62
+ handleActor(actor: Actor): Promise<AppResult>;
63
+ protected handleNextPage(actor: NextPage): Promise<AppResult>;
64
+ protected handleOpenPage(actor: PageOpen): Promise<AppResult>;
65
+ protected handlePagePop(actor: PopPage): Promise<AppResult>;
66
+ protected handleReplacePage(actor: PageReplace): Promise<AppResult>;
67
+ protected handleRefresh(actor: Refresh): Promise<AppResult>;
68
+ protected handleReload(_actor: Reload): Promise<AppResult>;
69
+ protected handleFragmentReload(actor: ReloadFragment): Promise<AppResult>;
70
+ protected handleFragmentUpdate(actor: UpdateFragment): Promise<AppResult>;
71
+ protected handleWizardAttached(actor: WizardAttached): Promise<AppResult>;
72
+ setPop(activity?: ActivityInstance): void;
73
+ protected handleWizardPop(actor: WizardPop): Promise<AppResult>;
74
+ protected handleWizardDetached(actor: WizardDetached): Promise<AppResult>;
75
+ protected handleDestroy(_: Destroy): Promise<AppResult>;
76
+ protected handleClose(close: Close): Promise<AppResult>;
77
+ protected handlePrev(prev: Prev): Promise<AppResult>;
78
+ cancel(): Promise<AppResult>;
79
+ protected handleWizardDone(_actor: WizardDone): Promise<AppResult>;
80
+ protected handleWizardNext(_actor: WizardNext): Promise<AppResult>;
81
+ protected handleWizardNextReplace(_actor: WizardNextReplace): Promise<AppResult>;
82
+ hasPrev(): boolean;
83
+ }
84
+ export declare class StageInstance extends ActivityInstance {
85
+ on: WizardHandler;
86
+ constructor(activity: Activity<any>, ctx: any, on: WizardHandler);
87
+ hasPrev(): boolean;
88
+ protected handlePrev(prev: Prev): Promise<AppResult>;
89
+ protected handleWizardDone(actor: WizardDone): Promise<AppResult>;
90
+ cancel(): Promise<AppResult>;
91
+ protected handleClose(close: Close): Promise<AppResult>;
92
+ protected handleNextPage(_actor: NextPage): Promise<AppResult>;
93
+ protected handleReplacePage(_actor: PageReplace): Promise<AppResult>;
94
+ protected handleWizardNext(actor: WizardNext): Promise<AppResult>;
95
+ protected handleWizardNextReplace(actor: WizardNextReplace): Promise<AppResult>;
96
+ }
97
+ export {};
98
+ //# sourceMappingURL=ActivityInstance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActivityInstance.d.ts","sourceRoot":"","sources":["../../../src/executor/ActivityInstance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,eAAe,CAAC;AAIpD,OAAO,EACH,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EAER,QAAQ,IAAI,QAAQ,EACpB,WAAW,IAAI,WAAW,EAC1B,OAAO,EACP,IAAI,EACJ,OAAO,EACP,MAAM,EACN,cAAc,EACd,cAAc,EAEd,cAAc,EACd,cAAc,EACd,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,SAAS,EACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,IAAI,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE5F,qBAAa,iBAAiB;IAC1B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;IAC/C,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;IAEvC,YACI,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,EACvB,YAAY,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,EAC1C,SAAS,EAAE,MAAM,IAAI,EACrB,OAAO,EAAE,MAAM,IAAI,EACnB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,EACrC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,EAShC;CACJ;AAED,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,cAAc,CAAoB;IAE1C,YAAY,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EAGxE;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEK,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAE3D;IAEK,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAE9C;CACJ;AAED,aAAK,MAAM;IACP,SAAS,IAAI;IACb,QAAQ,IAAI;IACZ,QAAQ,IAAI;IACZ,KAAK,IAAI;IACT,IAAI,IAAI;CACX;AAED,KAAK,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;AAE3F,qBAAa,gBAAgB;IACzB,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,GAAG,CAAM;IACjB,MAAM,EAAG,iBAAiB,CAAC;IAC3B,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,KAAK,CAAC,CAA0B;IACxC,SAAS,CAAC,iBAAiB,EAAG,iBAAiB,CAAC;IAChD,aAAa,EAAE,gBAAgB,GAAG,SAAS,CAAa;IACxD,cAAc,EAAE,gBAAgB,GAAG,SAAS,CAAa;IACzD,WAAW,EAAE,gBAAgB,GAAG,SAAS,CAAa;IACtD,MAAM,EAAE,MAAM,CAAoB;IAClC,OAAO,CAAC,cAAc,CAAkB;IACxC,KAAK,EAAE,MAAM,CAAM;IACnB,KAAK,EAAE,OAAO,CAAS;IAEvB,YAAY,gBAAgB,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAGpD;IAED,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,GAAG,SAAS,EAAE,cAAc,EAAE,gBAAgB,GAAG,SAAS,EAAE,KAAK,GAAE,OAAe,GAAG,IAAI,CAOvJ;IAEK,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC,CAEvC;IAED,OAAO,CAAC,gBAAgB;IAMxB,eAAe,IAAI,IAAI,CAMtB;IAEK,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,CAsB/B;IAED,OAAO,CAAC,iBAAiB;IAQnB,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,CAGjC;IAEK,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC,CAEtC;IAED,kBAAkB,IAAI,IAAI,CAMzB;IAEK,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAK1C;IAEK,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,CAK/B;IAED,OAAO,IAAI,IAAI,CAId;IAEK,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAWzF;IAEK,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAWvF;IAEK,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC,CAO/B;IAEK,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC,CASlC;IAEK,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAyClD;IAED,UAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAGlE;IAED,UAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAGlE;IAED,UAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAGhE;IAED,UAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAGxE;IAED,UAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAMhE;IAED,UAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAE/D;IAED,UAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAO9E;IAED,UAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAM9E;IAED,UAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAG9E;IAED,MAAM,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAKxC;IAED,UAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAGpE;IAED,UAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAG9E;IAED,UAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAE5D;IAED,UAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAK5D;IAED,UAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAQzD;IAEK,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,CASjC;IAED,UAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAEvE;IAED,UAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAEvE;IAED,UAAgB,uBAAuB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAErF;IAED,OAAO,IAAI,OAAO,CAEjB;CACJ;AAED,qBAAa,aAAc,SAAQ,gBAAgB;IAC/C,EAAE,EAAE,aAAa,CAAC;IAElB,YAAY,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,EAG/D;IAED,OAAO,IAAI,OAAO,CAEjB;IAED,UAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAWzD;IAED,UAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAEtE;IAEK,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,CAEjC;IAED,UAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAK5D;IAED,UAAgB,cAAc,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAEnE;IAED,UAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAEzE;IAED,UAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAMtE;IAED,UAAgB,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAMpF;CACJ"}
@@ -0,0 +1,389 @@
1
+ import { Err, ok, Ok } from '@araminix/lib';
2
+ import builder from '../builder/builder.js';
3
+ import { Close, Destroy, NextPage, Nothing, OpenPage as PageOpen, ReplacePage as PageReplace, PopPage, Prev, Refresh, Reload, ReloadFragment, UpdateFragment, UpdateTypes, WizardAttached, WizardDetached, WizardDone, WizardNext, WizardNextReplace, WizardPop, } from '../lib/actors.js';
4
+ import { AppError } from './AppInstance.js';
5
+ export class ActivityInterface {
6
+ activity;
7
+ beforeRender;
8
+ afterWake;
9
+ cleanUp;
10
+ render;
11
+ title;
12
+ updateCtx;
13
+ constructor(activity, beforeRender, afterWake, cleanUp, render, title, updateCtx) {
14
+ this.activity = activity;
15
+ this.beforeRender = beforeRender;
16
+ this.afterWake = afterWake;
17
+ this.cleanUp = cleanUp;
18
+ this.render = render;
19
+ this.title = title;
20
+ this.updateCtx = updateCtx;
21
+ }
22
+ }
23
+ export class ActivityDriver {
24
+ activity;
25
+ instanceDriver;
26
+ constructor(activity, instanceDriver) {
27
+ this.activity = activity;
28
+ this.instanceDriver = instanceDriver;
29
+ }
30
+ get status() {
31
+ return this.activity.status;
32
+ }
33
+ async push(data) {
34
+ return await this.instanceDriver.sendPush(data);
35
+ }
36
+ async trigger(actor) {
37
+ return await this.activity.handleActor(actor);
38
+ }
39
+ }
40
+ var Status;
41
+ (function (Status) {
42
+ Status[Status["Initiated"] = 0] = "Initiated";
43
+ Status[Status["Prepared"] = 1] = "Prepared";
44
+ Status[Status["Rendered"] = 2] = "Rendered";
45
+ Status[Status["Waked"] = 3] = "Waked";
46
+ Status[Status["Done"] = 4] = "Done";
47
+ })(Status || (Status = {}));
48
+ export class ActivityInstance {
49
+ activityTemplate;
50
+ ctx;
51
+ driver;
52
+ fragments = new Map();
53
+ panel = undefined;
54
+ activityInterface;
55
+ underActivity = undefined;
56
+ sourceActivity = undefined;
57
+ popActivity = undefined;
58
+ status = Status.Initiated;
59
+ activityDriver;
60
+ title = '';
61
+ isPop = false;
62
+ constructor(activityTemplate, ctx) {
63
+ this.activityTemplate = activityTemplate;
64
+ this.ctx = ctx;
65
+ }
66
+ init(driver, underActivity, sourceActivity, isPop = false) {
67
+ this.driver = driver;
68
+ this.underActivity = underActivity;
69
+ this.sourceActivity = sourceActivity;
70
+ this.isPop = isPop;
71
+ this.activityDriver = new ActivityDriver(this, this.driver);
72
+ this.activityInterface = this.activityTemplate._init(this.ctx, this.activityDriver);
73
+ }
74
+ async triggerClose() {
75
+ return await this.cancel();
76
+ }
77
+ cleanUpFragments() {
78
+ for (const fragment of this.fragments.values()) {
79
+ fragment.cleanUp();
80
+ }
81
+ }
82
+ resetBeforeLoad() {
83
+ if (this.status > Status.Initiated) {
84
+ this.status = Status.Initiated;
85
+ this.cleanUpFragments();
86
+ this.activityInterface.cleanUp();
87
+ }
88
+ }
89
+ async load() {
90
+ const isWaked = this.status === Status.Waked;
91
+ if (this.status < Status.Rendered) {
92
+ if (this.status === Status.Initiated) {
93
+ const prepareResult = await this.prepare();
94
+ if (prepareResult.isErr()) {
95
+ return prepareResult;
96
+ }
97
+ }
98
+ const build = await builder.build(this.activityDriver, this.activityInterface.render);
99
+ this.panel = build.mainPanel._build();
100
+ this.fragments = build.fragments;
101
+ this.status = Status.Rendered;
102
+ }
103
+ const result = await this.driver.sendBuild(this.panel, this.isPop, this.hasPrev());
104
+ if (result.isErr()) {
105
+ return result;
106
+ }
107
+ if (!isWaked) {
108
+ await this.wake();
109
+ }
110
+ return ok();
111
+ }
112
+ resetBeforeReload() {
113
+ if (this.status > Status.Prepared) {
114
+ this.status = Status.Prepared;
115
+ this.cleanUpFragments();
116
+ this.activityInterface.cleanUp();
117
+ }
118
+ }
119
+ async reload() {
120
+ this.resetBeforeReload();
121
+ return await this.load();
122
+ }
123
+ async refreshSelf() {
124
+ return await this.refresh(this.ctx);
125
+ }
126
+ resetBeforeRefresh() {
127
+ if (this.status > Status.Initiated) {
128
+ this.status = Status.Initiated;
129
+ this.cleanUpFragments();
130
+ this.activityInterface.cleanUp();
131
+ }
132
+ }
133
+ async refresh(ctx) {
134
+ this.ctx = ctx;
135
+ this.resetBeforeRefresh();
136
+ this.activityInterface.updateCtx(ctx);
137
+ return await this.load();
138
+ }
139
+ async prev() {
140
+ if (this.underActivity) {
141
+ return await this.driver.replace(this.underActivity);
142
+ }
143
+ return new Err(AppError.WrongAction);
144
+ }
145
+ suspend() {
146
+ this.cleanUpFragments();
147
+ this.activityInterface.cleanUp();
148
+ this.status = Status.Prepared;
149
+ }
150
+ async action(fragmentId, name, data) {
151
+ const fragment = this.fragments.get(fragmentId);
152
+ if (!fragment) {
153
+ return new Err(AppError.WrongAction);
154
+ }
155
+ const action = fragment.actions.get(name);
156
+ if (!action) {
157
+ return new Err(AppError.WrongAction);
158
+ }
159
+ const actor = await action(data);
160
+ return await this.handleActor(actor);
161
+ }
162
+ async query(fragmentId, name, data) {
163
+ const fragment = this.fragments.get(fragmentId);
164
+ if (!fragment) {
165
+ return new Err(AppError.WrongAction);
166
+ }
167
+ const query = fragment.queries.get(name);
168
+ if (!query) {
169
+ return new Err(AppError.WrongAction);
170
+ }
171
+ const result = await query(data);
172
+ return new Ok(result);
173
+ }
174
+ async wake() {
175
+ this.status = Status.Waked;
176
+ this.activityInterface.afterWake();
177
+ if (this.popActivity) {
178
+ return await this.popActivity.load();
179
+ }
180
+ return ok();
181
+ }
182
+ async prepare() {
183
+ this.title = await this.activityInterface.title();
184
+ await this.driver.updateActivityList();
185
+ const action = await this.activityInterface.beforeRender();
186
+ this.status = Status.Prepared;
187
+ if (!(action instanceof Nothing)) {
188
+ return await this.handleActor(action);
189
+ }
190
+ return ok();
191
+ }
192
+ async handleActor(actor) {
193
+ switch (true) {
194
+ case actor instanceof PageOpen:
195
+ return await this.handleOpenPage(actor);
196
+ case actor instanceof PageReplace:
197
+ return await this.handleReplacePage(actor);
198
+ case actor instanceof PopPage:
199
+ return await this.handlePagePop(actor);
200
+ case actor instanceof NextPage:
201
+ return await this.handleNextPage(actor);
202
+ case actor instanceof Close:
203
+ return await this.handleClose(actor);
204
+ case actor instanceof Prev:
205
+ return await this.handlePrev(actor);
206
+ case actor instanceof Destroy:
207
+ return await this.handleDestroy(actor);
208
+ case actor instanceof WizardAttached:
209
+ return await this.handleWizardAttached(actor);
210
+ case actor instanceof WizardPop:
211
+ return await this.handleWizardPop(actor);
212
+ case actor instanceof WizardDetached:
213
+ return await this.handleWizardDetached(actor);
214
+ case actor instanceof WizardNext:
215
+ return await this.handleWizardNext(actor);
216
+ case actor instanceof WizardNextReplace:
217
+ return await this.handleWizardNextReplace(actor);
218
+ case actor instanceof WizardDone:
219
+ return await this.handleWizardDone(actor);
220
+ case actor instanceof ReloadFragment:
221
+ return await this.handleFragmentReload(actor);
222
+ case actor instanceof UpdateFragment:
223
+ return await this.handleFragmentUpdate(actor);
224
+ case actor instanceof Reload:
225
+ return await this.handleReload(actor);
226
+ case actor instanceof Refresh:
227
+ return await this.handleRefresh(actor);
228
+ case actor instanceof Nothing:
229
+ return await this.driver.wake();
230
+ default:
231
+ return new Err(AppError.WrongAction);
232
+ }
233
+ }
234
+ async handleNextPage(actor) {
235
+ const instance = new ActivityInstance(actor.page, actor.ctx);
236
+ return await this.driver.overlay(instance);
237
+ }
238
+ async handleOpenPage(actor) {
239
+ const instance = new ActivityInstance(actor.page, actor.ctx);
240
+ return await this.driver.open(instance);
241
+ }
242
+ async handlePagePop(actor) {
243
+ const instance = new ActivityInstance(actor.page, actor.ctx);
244
+ return await this.driver.pop(instance);
245
+ }
246
+ async handleReplacePage(actor) {
247
+ const instance = new ActivityInstance(actor.page, actor.ctx);
248
+ return await this.driver.replace(instance);
249
+ }
250
+ async handleRefresh(actor) {
251
+ if (this.activityInterface.activity === actor.activity) {
252
+ return await this.driver.refresh(actor.ctx);
253
+ }
254
+ else {
255
+ return new Err(AppError.WrongAction);
256
+ }
257
+ }
258
+ async handleReload(_actor) {
259
+ return await this.driver.reload();
260
+ }
261
+ async handleFragmentReload(actor) {
262
+ const fragment = this.fragments.get(actor.fragmentId);
263
+ if (fragment) {
264
+ const load = await fragment.load();
265
+ return await this.driver.sendUpdate(fragment.id, UpdateTypes.Full, load);
266
+ }
267
+ return new Err(AppError.WrongAction);
268
+ }
269
+ async handleFragmentUpdate(actor) {
270
+ const fragment = this.fragments.get(actor.fragmentId);
271
+ if (fragment) {
272
+ return await this.driver.sendUpdate(fragment.id, actor.type, actor.data);
273
+ }
274
+ return new Err(AppError.WrongAction);
275
+ }
276
+ async handleWizardAttached(actor) {
277
+ const instance = new StageInstance(actor.mainStage, actor.ctx, actor.on);
278
+ return await this.driver.source(instance);
279
+ }
280
+ setPop(activity) {
281
+ this.popActivity = activity;
282
+ if (this.status === Status.Done) {
283
+ this.status = Status.Waked;
284
+ }
285
+ }
286
+ async handleWizardPop(actor) {
287
+ const instance = new StageInstance(actor.mainStage, actor.ctx, actor.on);
288
+ return await this.driver.pop(instance);
289
+ }
290
+ async handleWizardDetached(actor) {
291
+ const instance = new StageInstance(actor.mainStage, actor.ctx, actor.on);
292
+ return await this.driver.open(instance);
293
+ }
294
+ async handleDestroy(_) {
295
+ return await this.driver.destroy();
296
+ }
297
+ async handleClose(close) {
298
+ if (close.activity !== this.activityInterface.activity) {
299
+ return new Err(AppError.WrongAction);
300
+ }
301
+ return await this.driver.close();
302
+ }
303
+ async handlePrev(prev) {
304
+ if (prev.activity !== this.activityInterface.activity) {
305
+ return new Err(AppError.WrongAction);
306
+ }
307
+ if (this.underActivity) {
308
+ return await this.driver.replace(this.underActivity);
309
+ }
310
+ return new Err(AppError.WrongAction);
311
+ }
312
+ async cancel() {
313
+ if (this.sourceActivity) {
314
+ const result = await this.driver.replace(this.sourceActivity, false);
315
+ if (result.isErr()) {
316
+ return result;
317
+ }
318
+ return ok();
319
+ }
320
+ return await this.driver.close();
321
+ }
322
+ async handleWizardDone(_actor) {
323
+ return new Err(AppError.WrongAction);
324
+ }
325
+ async handleWizardNext(_actor) {
326
+ return new Err(AppError.WrongAction);
327
+ }
328
+ async handleWizardNextReplace(_actor) {
329
+ return new Err(AppError.WrongAction);
330
+ }
331
+ hasPrev() {
332
+ return !!this.underActivity;
333
+ }
334
+ }
335
+ export class StageInstance extends ActivityInstance {
336
+ on;
337
+ constructor(activity, ctx, on) {
338
+ super(activity, ctx);
339
+ this.on = on;
340
+ }
341
+ hasPrev() {
342
+ return !!this.underActivity || !!this.sourceActivity;
343
+ }
344
+ async handlePrev(prev) {
345
+ if (prev.activity !== this.activityInterface.activity) {
346
+ return new Err(AppError.WrongAction);
347
+ }
348
+ if (this.underActivity) {
349
+ return await this.driver.replace(this.underActivity);
350
+ }
351
+ if (this.sourceActivity) {
352
+ return await this.cancel();
353
+ }
354
+ return new Err(AppError.WrongAction);
355
+ }
356
+ async handleWizardDone(actor) {
357
+ return await this.driver.wizardDone(actor.result);
358
+ }
359
+ async cancel() {
360
+ return await this.driver.wizardDone(undefined);
361
+ }
362
+ async handleClose(close) {
363
+ if (close.activity !== this.activityInterface.activity) {
364
+ return new Err(AppError.WrongAction);
365
+ }
366
+ return await this.driver.wizardDone(undefined);
367
+ }
368
+ async handleNextPage(_actor) {
369
+ return new Err(AppError.WrongAction);
370
+ }
371
+ async handleReplacePage(_actor) {
372
+ return new Err(AppError.WrongAction);
373
+ }
374
+ async handleWizardNext(actor) {
375
+ if (actor.stage.wizard === this.activityInterface.activity.wizard) {
376
+ const instance = new StageInstance(actor.stage, actor.ctx, this.on);
377
+ return await this.driver.overlay(instance);
378
+ }
379
+ return new Err(AppError.WrongAction);
380
+ }
381
+ async handleWizardNextReplace(actor) {
382
+ if (actor.stage.wizard === this.activityInterface.activity.wizard) {
383
+ const instance = new StageInstance(actor.stage, actor.ctx, this.on);
384
+ return await this.driver.replace(instance);
385
+ }
386
+ return new Err(AppError.WrongAction);
387
+ }
388
+ }
389
+ //# sourceMappingURL=ActivityInstance.js.map