@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,296 @@
1
+ import { Err, Ok } from '@araminix/lib';
2
+ import { AgentIndex } from '../agent/d.js';
3
+ import { ActivityInterface } from '../executor/ActivityInstance.js';
4
+ import workerDriver from '../executor/workerDriver.js';
5
+ import { Close, Destroy, NextPage, Nothing, OpenPage, PopPage, Prev, Refresh, Reload, ReplacePage, WizardAttached, WizardDetached, WizardDone, WizardNext, WizardNextReplace, WizardPop, } from './actors.js';
6
+ export class AppIndex {
7
+ i18n;
8
+ _appList = undefined;
9
+ constructor() { }
10
+ get appList() {
11
+ if (!this._appList) {
12
+ if (this.agents) {
13
+ this.agents.agentTypeList; // init agent names
14
+ }
15
+ this._appList = this.getAppsList();
16
+ }
17
+ return this._appList;
18
+ }
19
+ getAppsList() {
20
+ const arr = [];
21
+ for (const key of Object.getOwnPropertyNames(this)) {
22
+ const prop = this[key];
23
+ if (!(prop instanceof App)) {
24
+ continue;
25
+ }
26
+ if (prop.main === undefined) {
27
+ continue;
28
+ }
29
+ const name = key;
30
+ const app = prop;
31
+ app.name = name;
32
+ arr.push({ appName: name, app: app });
33
+ }
34
+ return arr;
35
+ }
36
+ async userApps(userId) {
37
+ const result = await this._getUserApps(userId);
38
+ if (result.isErr()) {
39
+ return new Err(result.e);
40
+ }
41
+ const userApps = result.unwrap();
42
+ const listing = [];
43
+ for (const entry of this.appList) {
44
+ const name = entry.appName;
45
+ const app = entry.app;
46
+ const userApp = userApps.find((a) => a.name === name);
47
+ if (userApp) {
48
+ listing.push({
49
+ name: name,
50
+ title: userApp.title,
51
+ category: app.category,
52
+ hidden: app.hidden,
53
+ widget: app.widget,
54
+ multiInstance: app.multiInstance,
55
+ description: app.description,
56
+ profiles: [...new Set(userApp.profiles)],
57
+ });
58
+ }
59
+ }
60
+ const byCategory = listing.reduce((acc, item) => {
61
+ if (!acc[item.category]) {
62
+ acc[item.category] = { category: item.category, apps: [] };
63
+ }
64
+ const appDesc = {
65
+ name: item.name,
66
+ title: item.title,
67
+ hidden: item.hidden,
68
+ widget: item.widget,
69
+ multiInstance: item.multiInstance,
70
+ category: item.category,
71
+ profiles: item.profiles,
72
+ description: item.description,
73
+ };
74
+ acc[item.category].apps.push(appDesc);
75
+ return acc;
76
+ }, {});
77
+ return new Ok(Object.values(byCategory));
78
+ }
79
+ }
80
+ export class App {
81
+ index;
82
+ name = '';
83
+ description = '';
84
+ category = 'Other';
85
+ hidden = false;
86
+ widget = false;
87
+ multiInstance = false;
88
+ constructor(index) {
89
+ this.index = index;
90
+ }
91
+ get profile() {
92
+ const launchedApp = workerDriver()?.appName;
93
+ const profile = workerDriver()?.profile;
94
+ if (launchedApp !== this.name) {
95
+ return null;
96
+ }
97
+ return profile;
98
+ }
99
+ dispatch(_action, _args) {
100
+ return [this.main, undefined];
101
+ }
102
+ async getSettings() {
103
+ return (await this._getSettings(workerDriver().userId, this.profile));
104
+ }
105
+ async getUnits() {
106
+ return (await this._getUnits(workerDriver().userId));
107
+ }
108
+ }
109
+ export class Activity {
110
+ ctx;
111
+ driver;
112
+ cleanUp = undefined;
113
+ _init(ctx, driver) {
114
+ const instance = this.new();
115
+ instance.ctx = ctx;
116
+ instance.driver = driver;
117
+ return new ActivityInterface(instance, () => instance.beforeRender(), () => instance._afterWake(), () => instance._cleanUp(), () => instance.render(), () => instance.title(instance.ctx), (c) => (instance.ctx = c));
118
+ }
119
+ _init2(ctx, driver) {
120
+ this.ctx = ctx;
121
+ this.driver = driver;
122
+ return new ActivityInterface(this, () => this.beforeRender(), () => this._afterWake(), () => this._cleanUp(), () => this.render(), () => this.title(this.ctx), (c) => (this.ctx = c));
123
+ }
124
+ get userId() {
125
+ return workerDriver().userId;
126
+ }
127
+ beforeRender() {
128
+ return this.$nothing();
129
+ }
130
+ _afterWake() {
131
+ this.cleanUp = this.afterWake();
132
+ }
133
+ _cleanUp() {
134
+ if (this.cleanUp) {
135
+ this.cleanUp();
136
+ this.cleanUp = undefined;
137
+ }
138
+ }
139
+ afterWake() { }
140
+ $nothing() {
141
+ return new Nothing();
142
+ }
143
+ $refresh(ctx) {
144
+ return new Refresh(this, ctx);
145
+ }
146
+ $reload() {
147
+ return new Reload();
148
+ }
149
+ async push(data) {
150
+ return await this.driver.push(data);
151
+ }
152
+ async trigger(actor) {
153
+ return await this.driver.trigger(actor);
154
+ }
155
+ }
156
+ export class Page extends Activity {
157
+ app;
158
+ constructor(app) {
159
+ super();
160
+ this.app = app;
161
+ }
162
+ new() {
163
+ return new this.constructor(this.app);
164
+ }
165
+ get profile() {
166
+ const launchedApp = workerDriver()?.appName;
167
+ const profile = workerDriver()?.profile;
168
+ if (launchedApp !== this.app.name) {
169
+ return null;
170
+ }
171
+ return profile;
172
+ }
173
+ $pop(ctx) {
174
+ return new PopPage(this, ctx);
175
+ }
176
+ $open(ctx) {
177
+ return new OpenPage(this, ctx);
178
+ }
179
+ $replace(ctx) {
180
+ return new ReplacePage(this, ctx);
181
+ }
182
+ $next(ctx) {
183
+ return new NextPage(this, ctx);
184
+ }
185
+ $close() {
186
+ return new Close(this);
187
+ }
188
+ $destroy() {
189
+ return new Destroy(this.app);
190
+ }
191
+ }
192
+ export class Wizard {
193
+ page;
194
+ constructor(page) {
195
+ this.page = page;
196
+ }
197
+ $detached(ctx, on) {
198
+ return new WizardDetached(this.main, ctx, on);
199
+ }
200
+ $attached(ctx, on) {
201
+ return new WizardAttached(this.main, ctx, on);
202
+ }
203
+ $pop(ctx, on) {
204
+ return new WizardPop(this.main, ctx, on);
205
+ }
206
+ }
207
+ export class SetupWizard extends Wizard {
208
+ constructor(app) {
209
+ super(new PhantomPage(app));
210
+ }
211
+ async title(_ctx) {
212
+ const title = typeof this.page.app.title === 'string' ? this.page.app.title : await this.page.app.title();
213
+ return `Setup ${title} `;
214
+ }
215
+ }
216
+ export class Stage extends Activity {
217
+ wizard;
218
+ constructor(wizard) {
219
+ super();
220
+ this.wizard = wizard;
221
+ }
222
+ new() {
223
+ return new this.constructor(this.wizard);
224
+ }
225
+ get profile() {
226
+ const launchedApp = workerDriver()?.appName;
227
+ const profile = workerDriver()?.profile;
228
+ if (launchedApp !== this.wizard.page.app.name) {
229
+ return null;
230
+ }
231
+ return profile;
232
+ }
233
+ get index() {
234
+ return this.wizard.page.app.index;
235
+ }
236
+ async title(ctx) {
237
+ return this.wizard.title(ctx);
238
+ }
239
+ $ok(v) {
240
+ return new WizardDone(this.wizard, new Ok(v));
241
+ }
242
+ $err(e) {
243
+ return new WizardDone(this.wizard, new Err(e));
244
+ }
245
+ $cancel() {
246
+ return new WizardDone(this.wizard, undefined);
247
+ }
248
+ $back() {
249
+ return new Prev(this);
250
+ }
251
+ $next(ctx) {
252
+ return new WizardNext(this, ctx);
253
+ }
254
+ $nextReplace(ctx) {
255
+ return new WizardNextReplace(this, ctx);
256
+ }
257
+ $destroy() {
258
+ return new Destroy(this.wizard.page.app);
259
+ }
260
+ }
261
+ export class MainPage extends Page {
262
+ }
263
+ export class PhantomAgentIndex extends AgentIndex {
264
+ }
265
+ export class PhantomAppIndex extends AppIndex {
266
+ _getUser(_userId) {
267
+ return Promise.resolve(new Err(undefined));
268
+ }
269
+ agents = new PhantomAgentIndex();
270
+ _getUserApps(_userId) {
271
+ return Promise.resolve(new Err(undefined));
272
+ }
273
+ }
274
+ export class PhantomApp extends App {
275
+ _getSettings(_userId, _profile) {
276
+ return Promise.resolve(new Err(undefined));
277
+ }
278
+ _getUnits(_userId) {
279
+ return Promise.resolve(new Err(undefined));
280
+ }
281
+ main = undefined;
282
+ setupWizard = undefined;
283
+ title = '';
284
+ }
285
+ export class PhantomPage extends Page {
286
+ title(_ctx) {
287
+ return '';
288
+ }
289
+ async render() { }
290
+ new() {
291
+ return new PhantomPage(this.app);
292
+ }
293
+ }
294
+ export const phantomApp = new PhantomApp(new PhantomAppIndex());
295
+ export const phantomPage = new PhantomPage(phantomApp);
296
+ //# sourceMappingURL=d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"d.js","sourceRoot":"","sources":["../../../src/lib/d.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { Result } from '@araminix/lib';
2
+ import type { MessagePort } from 'worker_threads';
3
+ export declare enum MessageRole {
4
+ Request = 0,
5
+ Resolve = 1,
6
+ Reject = 2
7
+ }
8
+ declare abstract class Message {
9
+ readonly _type: string;
10
+ abstract readonly _role: MessageRole;
11
+ }
12
+ export declare abstract class Req extends Message {
13
+ readonly _role = MessageRole.Request;
14
+ }
15
+ export declare class Res extends Message {
16
+ readonly _role = MessageRole.Resolve;
17
+ }
18
+ export declare class Rej extends Message {
19
+ readonly _role = MessageRole.Reject;
20
+ }
21
+ declare abstract class WorkerSocket {
22
+ private port;
23
+ private _active;
24
+ constructor(port: MessagePort);
25
+ get active(): boolean;
26
+ protected send<T = unknown>(data: T): Result<void, unknown>;
27
+ close(): void;
28
+ protected abstract onMessage(data: unknown): void;
29
+ protected abstract onClose(): void;
30
+ protected abstract onMessageError(error: Error): void;
31
+ }
32
+ export declare class RequestSocket extends WorkerSocket {
33
+ private deserialize;
34
+ private blockPromise;
35
+ private readPromise?;
36
+ constructor(port: MessagePort, deserialize: (data: unknown) => Req | Res | Rej | undefined);
37
+ protected onMessage(data: unknown): void;
38
+ protected onClose(): void;
39
+ protected onMessageError(_error: Error): void;
40
+ writeRead<TReq extends Req = Req, TRes extends Res = Res, TRej extends Rej = Rej>(input: TReq): Promise<Result<TRes, TRej | undefined>>;
41
+ }
42
+ export declare class ResponseSocket extends WorkerSocket {
43
+ private deserialize;
44
+ private readPromise?;
45
+ private latestMessage?;
46
+ constructor(port: MessagePort, deserialize: (data: unknown) => Req | Res | Rej | undefined);
47
+ protected onMessage(data: unknown): void;
48
+ protected onClose(): void;
49
+ protected onMessageError(_error: Error): void;
50
+ write<T = unknown>(response: (Res | Rej) | undefined): Result<void, T>;
51
+ resolve<TRes extends Res = Res, TErr = unknown>(response?: TRes): Result<void, TErr>;
52
+ reject<TRej extends Rej = Rej, TErr = unknown>(response?: TRej): Result<void, TErr>;
53
+ read<TReq extends Req = Req>(): Promise<Result<TReq, undefined>>;
54
+ }
55
+ export {};
56
+ //# sourceMappingURL=worker_socket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker_socket.d.ts","sourceRoot":"","sources":["../../../src/lib/worker_socket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ import { deal, Err, Ok } from '@araminix/lib';
2
+ export var MessageRole;
3
+ (function (MessageRole) {
4
+ MessageRole[MessageRole["Request"] = 0] = "Request";
5
+ MessageRole[MessageRole["Resolve"] = 1] = "Resolve";
6
+ MessageRole[MessageRole["Reject"] = 2] = "Reject";
7
+ })(MessageRole || (MessageRole = {}));
8
+ class Message {
9
+ _type = this.constructor.name;
10
+ }
11
+ export class Req extends Message {
12
+ _role = MessageRole.Request;
13
+ }
14
+ export class Res extends Message {
15
+ _role = MessageRole.Resolve;
16
+ }
17
+ export class Rej extends Message {
18
+ _role = MessageRole.Reject;
19
+ }
20
+ class WorkerSocket {
21
+ port;
22
+ _active = true;
23
+ constructor(port) {
24
+ this.port = port;
25
+ this.port.addListener('message', (data) => {
26
+ this.onMessage(data);
27
+ });
28
+ this.port.addListener('close', () => {
29
+ this._active = false;
30
+ this.onClose();
31
+ });
32
+ this.port.addListener('messageerror', (error) => {
33
+ this.onMessageError(error);
34
+ });
35
+ }
36
+ get active() {
37
+ return this._active;
38
+ }
39
+ send(data) {
40
+ try {
41
+ this.port.postMessage(data);
42
+ return new Ok(undefined);
43
+ }
44
+ catch (e) {
45
+ return new Err(e);
46
+ }
47
+ }
48
+ close() {
49
+ if (this._active) {
50
+ this.port.close();
51
+ }
52
+ }
53
+ }
54
+ export class RequestSocket extends WorkerSocket {
55
+ deserialize;
56
+ blockPromise = [];
57
+ readPromise;
58
+ constructor(port, deserialize) {
59
+ super(port);
60
+ this.deserialize = deserialize;
61
+ }
62
+ onMessage(data) {
63
+ if (this.readPromise) {
64
+ this.readPromise(this.deserialize(data));
65
+ this.readPromise = undefined;
66
+ }
67
+ }
68
+ onClose() {
69
+ if (this.readPromise) {
70
+ this.readPromise(undefined);
71
+ this.readPromise = undefined;
72
+ }
73
+ }
74
+ onMessageError(_error) {
75
+ if (this.readPromise) {
76
+ this.readPromise(undefined);
77
+ this.readPromise = undefined;
78
+ }
79
+ }
80
+ async writeRead(input) {
81
+ const wait = Promise.all([...this.blockPromise]);
82
+ const [blockPromise, blockResolve] = deal();
83
+ this.blockPromise.push(blockPromise);
84
+ await wait;
85
+ const result = await new Promise((res) => {
86
+ if (!this.active) {
87
+ res(undefined);
88
+ return;
89
+ }
90
+ if (this.readPromise) {
91
+ res(undefined);
92
+ return;
93
+ }
94
+ if (this.send(input).isErr()) {
95
+ res(undefined);
96
+ return;
97
+ }
98
+ this.readPromise = res;
99
+ });
100
+ blockResolve(undefined);
101
+ this.blockPromise = this.blockPromise.filter((promise) => promise !== blockPromise);
102
+ if (result instanceof Res) {
103
+ return new Ok(result);
104
+ }
105
+ if (result instanceof Rej) {
106
+ return new Err(result);
107
+ }
108
+ return new Err(undefined);
109
+ }
110
+ }
111
+ export class ResponseSocket extends WorkerSocket {
112
+ deserialize;
113
+ readPromise;
114
+ latestMessage;
115
+ constructor(port, deserialize) {
116
+ super(port);
117
+ this.deserialize = deserialize;
118
+ }
119
+ onMessage(data) {
120
+ const message = this.deserialize(data);
121
+ if (!(message instanceof Req)) {
122
+ this.send(undefined);
123
+ return;
124
+ }
125
+ if (this.readPromise) {
126
+ this.readPromise(new Ok(message));
127
+ return;
128
+ }
129
+ this.latestMessage = message;
130
+ }
131
+ onClose() {
132
+ if (this.readPromise) {
133
+ this.readPromise(new Err(undefined));
134
+ }
135
+ }
136
+ onMessageError(_error) { }
137
+ write(response) {
138
+ return this.send(response);
139
+ }
140
+ resolve(response = new Res()) {
141
+ return this.send(response);
142
+ }
143
+ reject(response = new Rej()) {
144
+ return this.send(response);
145
+ }
146
+ read() {
147
+ return new Promise((res) => {
148
+ if (!this.active) {
149
+ res(new Err(undefined));
150
+ return;
151
+ }
152
+ if (this.latestMessage) {
153
+ res(new Ok(this.latestMessage));
154
+ this.latestMessage = undefined;
155
+ return;
156
+ }
157
+ this.readPromise = res;
158
+ });
159
+ }
160
+ }
161
+ //# sourceMappingURL=worker_socket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker_socket.js","sourceRoot":"","sources":["../../../src/lib/worker_socket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ import { FileInfo, Result, t } from '@araminix/lib';
2
+ export declare const GoogleData: t.TypeC<{
3
+ email: t.StringC;
4
+ given_name: t.StringC;
5
+ family_name: t.StringC;
6
+ name: t.StringC;
7
+ picture: t.StringC;
8
+ }>;
9
+ export type GoogleDataType = t.TypeOf<typeof GoogleData>;
10
+ type Token = string;
11
+ export declare enum ClientType {
12
+ Agent = "Agent",
13
+ User = "User"
14
+ }
15
+ export declare abstract class ClientInfo {
16
+ abstract clientType: ClientType;
17
+ abstract id: string;
18
+ abstract runtimeId: string;
19
+ }
20
+ export interface SettingTablePreference {
21
+ [key: string]: {
22
+ collapsed: 'horizontal' | 'vertical' | null | undefined;
23
+ columns: string[];
24
+ };
25
+ }
26
+ export interface SettingCardPreference {
27
+ [key: string]: {
28
+ collapsed: 'horizontal' | 'vertical' | null | undefined;
29
+ };
30
+ }
31
+ export interface SettingNotification {
32
+ enabled: boolean;
33
+ channels: Array<'app' | 'sms' | 'push' | 'email'>;
34
+ default_channel: 'app' | 'sms' | 'push' | 'email';
35
+ push?: {
36
+ telegram_id: string;
37
+ };
38
+ }
39
+ export type SettingTwoFactor = {
40
+ enabled: boolean;
41
+ code?: string | null;
42
+ secret?: string | null;
43
+ };
44
+ export type UserSetting = {
45
+ notifications: SettingNotification;
46
+ widgets: Array<string>;
47
+ two_factor: SettingTwoFactor;
48
+ table_preferences?: SettingTablePreference;
49
+ card_preferences?: SettingCardPreference;
50
+ };
51
+ export declare class UserInfo extends ClientInfo {
52
+ readonly id: string;
53
+ readonly username: string;
54
+ readonly name: string;
55
+ readonly runtimeId: string;
56
+ readonly email: string;
57
+ readonly units: {
58
+ _key: string;
59
+ name: string;
60
+ code: string;
61
+ }[];
62
+ readonly activeUnit: {
63
+ _key: string;
64
+ name: string;
65
+ code: string;
66
+ };
67
+ readonly picture?: FileInfo | undefined;
68
+ readonly language?: string | undefined;
69
+ readonly employeeKey?: string | undefined;
70
+ readonly settings?: {
71
+ notifications: SettingNotification;
72
+ widgets: Array<string>;
73
+ two_factor: Omit<SettingTwoFactor, 'secret'>;
74
+ } | undefined;
75
+ readonly clientType = ClientType.User;
76
+ constructor(id: string, username: string, name: string, runtimeId: string, email: string, units: {
77
+ _key: string;
78
+ name: string;
79
+ code: string;
80
+ }[], activeUnit: {
81
+ _key: string;
82
+ name: string;
83
+ code: string;
84
+ }, picture?: FileInfo | undefined, language?: string | undefined, employeeKey?: string | undefined, settings?: {
85
+ notifications: SettingNotification;
86
+ widgets: Array<string>;
87
+ two_factor: Omit<SettingTwoFactor, 'secret'>;
88
+ } | undefined);
89
+ }
90
+ export declare class AgentInfo extends ClientInfo {
91
+ id: string;
92
+ agentType: string;
93
+ readonly clientType = ClientType.Agent;
94
+ readonly runtimeId: string;
95
+ constructor(id: string, agentType: string);
96
+ }
97
+ export type MobileRequestType<MODULE extends string = string, ACTION extends string = string, TData = unknown> = {
98
+ module: MODULE;
99
+ action: ACTION;
100
+ userId: string;
101
+ data: TData;
102
+ };
103
+ export type MobileResponseType<R = unknown, E = unknown> = {
104
+ status: number;
105
+ message?: string;
106
+ error?: E;
107
+ result?: R;
108
+ };
109
+ export declare abstract class AuthProvider {
110
+ abstract getInfo<TClient extends ClientInfo = ClientInfo, TErr = unknown>(token: Token): Promise<Result<TClient, TErr>>;
111
+ abstract auth<TAuthData = unknown, TErr = unknown>(data: TAuthData): Promise<Result<Token | {
112
+ twoFactorCode: string;
113
+ accountName: string;
114
+ }, TErr>>;
115
+ abstract googleAuth<TErr = unknown>(data: GoogleDataType): Promise<Result<Token | {
116
+ twoFactorCode: string;
117
+ accountName: string;
118
+ }, TErr>>;
119
+ abstract destroy(token: string): Promise<void>;
120
+ abstract refreshToken<TErr = unknown>(old_token: string): Promise<Result<string, TErr>>;
121
+ abstract request2FA<TErr = unknown>(userId: string): Promise<Result<string, TErr>>;
122
+ abstract enable2FA<TErr = unknown>(userId: string, secret: string, code: string): Promise<Result<boolean, TErr>>;
123
+ abstract verify2FA<TErr = unknown>(accountName: string, code: string, uuid: string): Promise<Result<Token | boolean, TErr>>;
124
+ abstract disable2FA<TErr = unknown>(userId: string): Promise<Result<boolean, TErr>>;
125
+ abstract requestUploadUrl<TErr = unknown>(attachmentId: string, fileName: string, mimeType: string): Promise<Result<string, TErr>>;
126
+ abstract requestDownloadUrl<TErr = unknown>(attachmentId: string, fileName: string): Promise<Result<string, TErr>>;
127
+ abstract mobileRequests<MODULE extends string = string, ACTION extends string = string, R = unknown, E = unknown>(data: MobileRequestType<MODULE, ACTION>): Promise<MobileResponseType<R, E>>;
128
+ }
129
+ export {};
130
+ //# sourceMappingURL=AuthProvider.d.ts.map