@tskmgr/client 0.0.5 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@tskmgr/client",
3
- "version": "0.0.5",
3
+ "version": "0.0.8",
4
4
  "license": "MIT",
5
5
  "dependencies": {
6
6
  "node-fetch": "^2.6.7",
7
- "@tskmgr/common": "0.0.5"
7
+ "@tskmgr/common": "0.0.8"
8
8
  },
9
9
  "main": "./src/index.js",
10
10
  "typings": "./src/index.d.ts",
@@ -2,5 +2,6 @@
2
2
  * IntelliJ debug:
3
3
  * Node parameters: --require ts-node/register --require tsconfig-paths/register
4
4
  * Environment variables: TS_NODE_PROJECT=libs/client/tsconfig.lib.json
5
+ * Start API: nx serve api
5
6
  */
6
7
  export {};
@@ -3,22 +3,34 @@
3
3
  * IntelliJ debug:
4
4
  * Node parameters: --require ts-node/register --require tsconfig-paths/register
5
5
  * Environment variables: TS_NODE_PROJECT=libs/client/tsconfig.lib.json
6
+ * Start API: nx serve api
6
7
  */
7
8
  Object.defineProperty(exports, "__esModule", { value: true });
8
9
  const tslib_1 = require("tslib");
9
10
  const child_process_1 = require("child_process");
11
+ const common_1 = require("@tskmgr/common");
10
12
  const client_factory_1 = require("./client-factory");
11
13
  const uuid_1 = require("uuid");
12
14
  delete process.env.TS_NODE_PROJECT;
13
- const client = client_factory_1.ClientFactory.createNew('http://localhost:3333', '1', 4, dataCallback, errorCallback);
15
+ const options = { parallel: 4, dataCallback, errorCallback };
16
+ const client = client_factory_1.ClientFactory.createNew('http://localhost:3333', 'RUNNER_1', options);
14
17
  (() => (0, tslib_1.__awaiter)(void 0, void 0, void 0, function* () {
15
18
  try {
16
- const nxTasks = getNxTasks();
17
- const tasks = [];
18
- for (const nxTask of nxTasks) {
19
- tasks.push({ name: nxTask.target.project, type: nxTask.target.target, command: nxTask.command, options: { shell: true } });
20
- }
21
- const newRun = yield client.createRun({ name: (0, uuid_1.v4)(), type: '123', pullRequestName: '123' });
19
+ const tasks = getNxTasks().map((nxTask) => {
20
+ return {
21
+ name: nxTask.target.project,
22
+ type: nxTask.target.target,
23
+ command: nxTask.command,
24
+ options: { shell: true },
25
+ priority: common_1.TaskPriority.Longest,
26
+ };
27
+ });
28
+ const newRun = yield client.createRun({
29
+ name: (0, uuid_1.v4)(),
30
+ type: '123',
31
+ pullRequestName: '123',
32
+ prioritization: [common_1.TaskPriority.Longest],
33
+ });
22
34
  console.log(newRun);
23
35
  const res = yield client.setLeader(newRun._id);
24
36
  if (res.isLeader) {
@@ -36,9 +48,10 @@ const client = client_factory_1.ClientFactory.createNew('http://localhost:3333',
36
48
  }))();
37
49
  function getNxTasks() {
38
50
  const tasks = [
39
- ...JSON.parse((0, child_process_1.execSync)('npx nx print-affected --target=lint').toString()).tasks,
40
- ...JSON.parse((0, child_process_1.execSync)('npx nx print-affected --target=test').toString()).tasks,
41
- ...JSON.parse((0, child_process_1.execSync)('npx nx print-affected --target=build').toString()).tasks,
51
+ // --all should be removed in CI environment. Just for demo purpose.
52
+ ...JSON.parse((0, child_process_1.execSync)('npx nx print-affected --all --target=lint').toString()).tasks,
53
+ ...JSON.parse((0, child_process_1.execSync)('npx nx print-affected --all --target=test').toString()).tasks,
54
+ ...JSON.parse((0, child_process_1.execSync)('npx nx print-affected --all --target=build').toString()).tasks,
42
55
  ];
43
56
  return tasks;
44
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client-example.js","sourceRoot":"","sources":["../../../../../libs/client/src/lib/client-example.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,iDAAyC;AAEzC,qDAAiD;AACjD,+BAAkC;AAElC,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;AAEnC,MAAM,MAAM,GAAG,8BAAa,CAAC,SAAS,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;AAErG,CAAC,GAAS,EAAE;IACV,IAAI;QACF,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAoB,EAAE,CAAC;QAElC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;SAC5H;QAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAA,SAAI,GAAE,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,GAAG,CAAC,QAAQ,EAAE;YAChB,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACrE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAE1B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SACvB;QAED,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KACnC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;AACH,CAAC,CAAA,CAAC,EAAE,CAAC;AAEL,SAAS,UAAU;IACjB,MAAM,KAAK,GAAa;QACtB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,wBAAQ,EAAC,qCAAqC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK;QAC/E,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,wBAAQ,EAAC,qCAAqC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK;QAC/E,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,wBAAQ,EAAC,sCAAsC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK;KACjF,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,IAAU,EAAE,IAAY,EAAE,MAAkB;IAChE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,yEAAyE;IACzE,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,gDAAgD,CAAC,EAAE;QAC5H,MAAM,EAAE,CAAC;KACV;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAU,EAAE,IAAY;IAC7C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"client-example.js","sourceRoot":"","sources":["../../../../../libs/client/src/lib/client-example.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- import { Client } from './client';
2
- import { Task } from '@tskmgr/common';
1
+ import { Client, ClientOptions } from './client';
3
2
  export declare class ClientFactory {
4
3
  static createNew(baseUrl: string, //
5
- runnerId: string, parallel?: number, dataCallback?: (task: Task, data: string, cached: () => void) => void, errorCallback?: (task: Task, data: string) => void, pollingDelayMs?: number, retryDelayMs?: number, retryCount?: number): Client;
4
+ runnerId: string, options?: ClientOptions): Client;
6
5
  }
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
- /* eslint-disable @typescript-eslint/no-empty-function */
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.ClientFactory = void 0;
5
4
  const client_1 = require("./client");
6
5
  const common_1 = require("@tskmgr/common");
7
6
  class ClientFactory {
8
7
  static createNew(baseUrl, //
9
- runnerId, parallel = 1, dataCallback = () => { }, errorCallback = () => { }, pollingDelayMs = 2500, retryDelayMs = 5000, retryCount = 2) {
8
+ runnerId, options) {
10
9
  return new client_1.Client(common_1.ApiUrl.create(baseUrl), //
11
- runnerId, parallel, dataCallback, errorCallback, pollingDelayMs, retryDelayMs, retryCount);
10
+ runnerId, Object.assign(Object.assign({}, client_1.Client.DefaultOptions), options));
12
11
  }
13
12
  }
14
13
  exports.ClientFactory = ClientFactory;
@@ -1 +1 @@
1
- {"version":3,"file":"client-factory.js","sourceRoot":"","sources":["../../../../../libs/client/src/lib/client-factory.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;AAEzD,qCAAkC;AAClC,2CAA8C;AAE9C,MAAa,aAAa;IACjB,MAAM,CAAC,SAAS,CACrB,OAAe,EAAE,EAAE;IACnB,QAAgB,EAChB,QAAQ,GAAG,CAAC,EACZ,eAAuE,GAAG,EAAE,GAAE,CAAC,EAC/E,gBAAoD,GAAG,EAAE,GAAE,CAAC,EAC5D,cAAc,GAAG,IAAI,EACrB,YAAY,GAAG,IAAI,EACnB,UAAU,GAAG,CAAC;QAEd,OAAO,IAAI,eAAM,CACf,eAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE;QAC1B,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,cAAc,EACd,YAAY,EACZ,UAAU,CACX,CAAC;IACJ,CAAC;CACF;AAtBD,sCAsBC"}
1
+ {"version":3,"file":"client-factory.js","sourceRoot":"","sources":["../../../../../libs/client/src/lib/client-factory.ts"],"names":[],"mappings":";;;AAAA,qCAAiD;AACjD,2CAAwC;AAExC,MAAa,aAAa;IACjB,MAAM,CAAC,SAAS,CACrB,OAAe,EAAE,EAAE;IACnB,QAAgB,EAChB,OAAuB;QAEvB,OAAO,IAAI,eAAM,CACf,eAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE;QAC1B,QAAQ,kCACH,eAAM,CAAC,cAAc,GAAK,OAAO,EACvC,CAAC;IACJ,CAAC;CACF;AAZD,sCAYC"}
@@ -1,26 +1,32 @@
1
1
  /// <reference types="node" />
2
2
  import { ChildProcess, SpawnOptionsWithoutStdio } from 'child_process';
3
3
  import { ApiUrl, Run, CompleteTaskDto, CreateRunRequestDto, CreateTasksDto, StartTaskDto, StartTaskResponseDto, Task, SetLeaderResponseDto } from '@tskmgr/common';
4
+ export interface ClientOptions {
5
+ parallel?: number;
6
+ dataCallback?: (task: Task, data: string, cached: () => void) => void;
7
+ errorCallback?: (task: Task, data: string) => void;
8
+ pollingDelayMs?: number;
9
+ retryDelayMs?: number;
10
+ retryCount?: number;
11
+ spawnOptions?: SpawnOptionsWithoutStdio;
12
+ }
4
13
  export declare class Client {
5
14
  private readonly apiUrl;
6
15
  private readonly runnerId;
7
- private readonly parallel;
8
- private readonly dataCallback;
9
- private readonly errorCallback;
10
- private readonly pollingDelayMs;
11
- private readonly retryDelayMs;
12
- private readonly retryCount;
13
- constructor(apiUrl: ApiUrl, runnerId: string, parallel: number, dataCallback: (task: Task, data: string, cached: () => void) => void, errorCallback: (task: Task, data: string) => void, pollingDelayMs: any, retryDelayMs: any, retryCount: any);
16
+ private readonly options;
17
+ static readonly DefaultOptions: ClientOptions;
18
+ constructor(apiUrl: ApiUrl, //
19
+ runnerId: string, options: ClientOptions);
14
20
  createRun(params: CreateRunRequestDto): Promise<Run>;
15
- closeRun(id: string): Promise<Run>;
16
- abortRun(id: string): Promise<Run>;
17
- failRun(id: string): Promise<Run>;
18
- setLeader(id: string): Promise<SetLeaderResponseDto>;
19
- createTasks(id: string, params: CreateTasksDto): Promise<Task[]>;
20
- startTask(id: string, params: StartTaskDto): Promise<StartTaskResponseDto>;
21
- completeTask(id: string, params: CompleteTaskDto): Promise<Task>;
22
- failTask(id: string): Promise<Task>;
23
- runTasks(id: string): Promise<void[]>;
24
- defaultTaskRunner(id: string): Promise<void>;
21
+ closeRun(runId: string): Promise<Run>;
22
+ abortRun(runId: string): Promise<Run>;
23
+ failRun(runId: string): Promise<Run>;
24
+ setLeader(runId: string): Promise<SetLeaderResponseDto>;
25
+ createTasks(runId: string, params: CreateTasksDto): Promise<Task[]>;
26
+ startTask(runId: string, params: StartTaskDto): Promise<StartTaskResponseDto>;
27
+ runTasks(runId: string): Promise<void[]>;
28
+ completeTask(taskId: string, params: CompleteTaskDto): Promise<Task>;
29
+ failTask(taskId: string): Promise<Task>;
30
+ private defaultTaskRunner;
25
31
  }
26
32
  export declare function spawnAsync(command: string, args?: ReadonlyArray<string>, options?: SpawnOptionsWithoutStdio, dataCallback?: (data: string) => void, errorCallback?: (data: string) => void): Promise<ChildProcess>;
package/src/lib/client.js CHANGED
@@ -6,15 +6,11 @@ const child_process_1 = require("child_process");
6
6
  const node_fetch_1 = require("node-fetch");
7
7
  const readline_1 = require("readline");
8
8
  class Client {
9
- constructor(apiUrl, runnerId, parallel, dataCallback, errorCallback, pollingDelayMs, retryDelayMs, retryCount) {
9
+ constructor(apiUrl, //
10
+ runnerId, options) {
10
11
  this.apiUrl = apiUrl;
11
12
  this.runnerId = runnerId;
12
- this.parallel = parallel;
13
- this.dataCallback = dataCallback;
14
- this.errorCallback = errorCallback;
15
- this.pollingDelayMs = pollingDelayMs;
16
- this.retryDelayMs = retryDelayMs;
17
- this.retryCount = retryCount;
13
+ this.options = options;
18
14
  }
19
15
  createRun(params) {
20
16
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
@@ -26,37 +22,37 @@ class Client {
26
22
  return yield checkStatus(res).json();
27
23
  });
28
24
  }
29
- closeRun(id) {
25
+ closeRun(runId) {
30
26
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
31
- const res = yield (0, node_fetch_1.default)(this.apiUrl.closeRunUrl(id), {
27
+ const res = yield (0, node_fetch_1.default)(this.apiUrl.closeRunUrl(runId), {
32
28
  headers: { 'Content-Type': 'application/json' },
33
29
  method: 'PUT',
34
30
  });
35
31
  return yield checkStatus(res).json();
36
32
  });
37
33
  }
38
- abortRun(id) {
34
+ abortRun(runId) {
39
35
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
40
- const res = yield (0, node_fetch_1.default)(this.apiUrl.abortRunUrl(id), {
36
+ const res = yield (0, node_fetch_1.default)(this.apiUrl.abortRunUrl(runId), {
41
37
  headers: { 'Content-Type': 'application/json' },
42
38
  method: 'PUT',
43
39
  });
44
40
  return yield checkStatus(res).json();
45
41
  });
46
42
  }
47
- failRun(id) {
43
+ failRun(runId) {
48
44
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
49
- const res = yield (0, node_fetch_1.default)(this.apiUrl.failRunUrl(id), {
45
+ const res = yield (0, node_fetch_1.default)(this.apiUrl.failRunUrl(runId), {
50
46
  headers: { 'Content-Type': 'application/json' },
51
47
  method: 'PUT',
52
48
  });
53
49
  return yield checkStatus(res).json();
54
50
  });
55
51
  }
56
- setLeader(id) {
52
+ setLeader(runId) {
57
53
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
58
54
  const params = { runnerId: this.runnerId };
59
- const res = yield (0, node_fetch_1.default)(this.apiUrl.setLeaderUrl(id), {
55
+ const res = yield (0, node_fetch_1.default)(this.apiUrl.setLeaderUrl(runId), {
60
56
  headers: { 'Content-Type': 'application/json' },
61
57
  method: 'PUT',
62
58
  body: JSON.stringify(params),
@@ -64,9 +60,9 @@ class Client {
64
60
  return yield checkStatus(res).json();
65
61
  });
66
62
  }
67
- createTasks(id, params) {
63
+ createTasks(runId, params) {
68
64
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
69
- const res = yield (0, node_fetch_1.default)(this.apiUrl.createTasksUrl(id), {
65
+ const res = yield (0, node_fetch_1.default)(this.apiUrl.createTasksUrl(runId), {
70
66
  headers: { 'Content-Type': 'application/json' },
71
67
  method: 'POST',
72
68
  body: JSON.stringify(params),
@@ -74,9 +70,9 @@ class Client {
74
70
  return yield checkStatus(res).json();
75
71
  });
76
72
  }
77
- startTask(id, params) {
73
+ startTask(runId, params) {
78
74
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
79
- const res = yield (0, node_fetch_1.default)(this.apiUrl.startTaskUrl(id), {
75
+ const res = yield (0, node_fetch_1.default)(this.apiUrl.startTaskUrl(runId), {
80
76
  headers: { 'Content-Type': 'application/json' },
81
77
  method: 'PUT',
82
78
  body: JSON.stringify(params),
@@ -84,9 +80,16 @@ class Client {
84
80
  return yield checkStatus(res).json();
85
81
  });
86
82
  }
87
- completeTask(id, params) {
83
+ runTasks(runId) {
84
+ const taskRunners = [];
85
+ for (let i = 0; i < this.options.parallel; i++) {
86
+ taskRunners.push(this.defaultTaskRunner(runId));
87
+ }
88
+ return Promise.all(taskRunners);
89
+ }
90
+ completeTask(taskId, params) {
88
91
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
89
- const res = yield (0, node_fetch_1.default)(this.apiUrl.completeTaskUrl(id), {
92
+ const res = yield (0, node_fetch_1.default)(this.apiUrl.completeTaskUrl(taskId), {
90
93
  headers: { 'Content-Type': 'application/json' },
91
94
  method: 'PUT',
92
95
  body: JSON.stringify(params),
@@ -94,27 +97,20 @@ class Client {
94
97
  return yield checkStatus(res).json();
95
98
  });
96
99
  }
97
- failTask(id) {
100
+ failTask(taskId) {
98
101
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
99
- const res = yield (0, node_fetch_1.default)(this.apiUrl.failTaskUrl(id), {
102
+ const res = yield (0, node_fetch_1.default)(this.apiUrl.failTaskUrl(taskId), {
100
103
  headers: { 'Content-Type': 'application/json' },
101
104
  method: 'PUT',
102
105
  });
103
106
  return yield checkStatus(res).json();
104
107
  });
105
108
  }
106
- runTasks(id) {
107
- const taskRunners = [];
108
- for (let i = 0; i < this.parallel; i++) {
109
- taskRunners.push(this.defaultTaskRunner(id));
110
- }
111
- return Promise.all(taskRunners);
112
- }
113
- defaultTaskRunner(id) {
109
+ defaultTaskRunner(runId) {
114
110
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
115
111
  let _continue = true;
116
112
  while (_continue) {
117
- const response = yield this.startTask(id, { runnerId: this.runnerId });
113
+ const response = yield this.startTask(runId, { runnerId: this.runnerId });
118
114
  if (!response.continue) {
119
115
  _continue = false;
120
116
  }
@@ -122,21 +118,21 @@ class Client {
122
118
  continue;
123
119
  }
124
120
  if (!response.task) {
125
- console.log(`polling for a new task in: ${this.pollingDelayMs} ms`);
126
- yield delay(this.pollingDelayMs);
121
+ console.log(`polling for a new task in: ${this.options.pollingDelayMs} ms`);
122
+ yield delay(this.options.pollingDelayMs);
127
123
  continue;
128
124
  }
129
125
  const { task } = response;
130
126
  let cached = false;
131
127
  let hasCompleted = true;
132
128
  const dataHandler = (data) => {
133
- this.dataCallback(task, data, () => (cached = true));
129
+ this.options.dataCallback(task, data, () => (cached = true));
134
130
  };
135
131
  const errorHandler = (data) => {
136
- this.errorCallback(task, data);
132
+ this.options.errorCallback(task, data);
137
133
  };
138
134
  try {
139
- yield spawnAsync(task.command, task.arguments, task.options, dataHandler, errorHandler);
135
+ yield spawnAsync(task.command, task.arguments, Object.assign(Object.assign({}, task.options), this.options.spawnOptions), dataHandler, errorHandler);
140
136
  }
141
137
  catch (e) {
142
138
  hasCompleted = false;
@@ -155,6 +151,16 @@ class Client {
155
151
  }
156
152
  }
157
153
  exports.Client = Client;
154
+ Client.DefaultOptions = {
155
+ parallel: 1,
156
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
157
+ dataCallback: (task, data, cached) => { },
158
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
159
+ errorCallback: (task, data) => { },
160
+ pollingDelayMs: 2500,
161
+ retryDelayMs: 5000,
162
+ retryCount: 2,
163
+ };
158
164
  function delay(ms) {
159
165
  return new Promise((resolve) => {
160
166
  setTimeout(resolve, ms);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../libs/client/src/lib/client.ts"],"names":[],"mappings":";;;;AAAA,iDAA8E;AAa9E,2CAA+B;AAC/B,uCAA2C;AAE3C,MAAa,MAAM;IACjB,YACmB,MAAc,EACd,QAAgB,EAChB,QAAgB,EAChB,YAAoE,EACpE,aAAiD,EACjD,cAAc,EACd,YAAY,EACZ,UAAU;QAPV,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAQ;QAChB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,iBAAY,GAAZ,YAAY,CAAwD;QACpE,kBAAa,GAAb,aAAa,CAAoC;QACjD,mBAAc,GAAd,cAAc,CAAA;QACd,iBAAY,GAAZ,YAAY,CAAA;QACZ,eAAU,GAAV,UAAU,CAAA;IAC1B,CAAC;IAES,SAAS,CAAC,MAA2B;;YAChD,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAK,EAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE;gBAClD,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aAC7B,CAAC,CAAC;YAEH,OAAO,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC;KAAA;IAEY,QAAQ,CAAC,EAAU;;YAC9B,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAK,EAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;gBACnD,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,OAAO,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC;KAAA;IAEY,QAAQ,CAAC,EAAU;;YAC9B,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAK,EAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;gBACnD,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,OAAO,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC;KAAA;IAEY,OAAO,CAAC,EAAU;;YAC7B,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAK,EAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;gBAClD,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,OAAO,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC;KAAA;IAEY,SAAS,CAAC,EAAU;;YAC/B,MAAM,MAAM,GAAwB,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChE,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAK,EAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;gBACpD,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aAC7B,CAAC,CAAC;YAEH,OAAO,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC;KAAA;IAEY,WAAW,CAAC,EAAU,EAAE,MAAsB;;YACzD,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAK,EAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE;gBACtD,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aAC7B,CAAC,CAAC;YAEH,OAAO,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC;KAAA;IAEY,SAAS,CAAC,EAAU,EAAE,MAAoB;;YACrD,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAK,EAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE;gBACpD,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aAC7B,CAAC,CAAC;YAEH,OAAO,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC;KAAA;IAEY,YAAY,CAAC,EAAU,EAAE,MAAuB;;YAC3D,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAK,EAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,EAAE;gBACvD,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;aAC7B,CAAC,CAAC;YAEH,OAAO,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC;KAAA;IAEY,QAAQ,CAAC,EAAU;;YAC9B,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAK,EAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;gBACnD,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,OAAO,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC;KAAA;IAEM,QAAQ,CAAC,EAAU;QACxB,MAAM,WAAW,GAAG,EAAE,CAAC;QAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;YACtC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC;SAC9C;QAED,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAEK,iBAAiB,CAAC,EAAU;;YAChC,IAAI,SAAS,GAAG,IAAI,CAAC;YAErB,OAAO,SAAS,EAAE;gBAChB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAEvE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;oBACtB,SAAS,GAAG,KAAK,CAAC;iBACnB;gBAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;oBACxC,SAAS;iBACV;gBAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;oBAClB,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC;oBACpE,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBACjC,SAAS;iBACV;gBAED,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;gBAC1B,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,IAAI,YAAY,GAAG,IAAI,CAAC;gBAExB,MAAM,WAAW,GAAG,CAAC,IAAY,EAAQ,EAAE;oBACzC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;gBACvD,CAAC,CAAC;gBAEF,MAAM,YAAY,GAAG,CAAC,IAAY,EAAQ,EAAE;oBAC1C,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACjC,CAAC,CAAC;gBAEF,IAAI;oBACF,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;iBACzF;gBAAC,OAAO,CAAC,EAAE;oBACV,YAAY,GAAG,KAAK,CAAC;oBACrB,MAAM,CAAC,CAAC;iBACT;wBAAS;oBACR,IAAI,YAAY,EAAE;wBAChB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;qBAC/C;yBAAM;wBACL,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBAC/B;iBACF;aACF;QACH,CAAC;KAAA;CACF;AA3JD,wBA2JC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAsB,UAAU,CAC9B,OAAe,EACf,IAA4B,EAC5B,OAAkC,EAClC,YAAqC,EACrC,aAAsC;;QAEtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,YAAY,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAEnD,MAAM,cAAc,GAAG,IAAA,0BAAe,EAAC,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;YACvE,MAAM,cAAc,GAAG,IAAA,0BAAe,EAAC,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;YAEvE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACxC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;YAEzC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChC,IAAI,IAAI,KAAK,CAAC,EAAE;oBACd,OAAO,CAAC,YAAY,CAAC,CAAC;iBACvB;qBAAM;oBACL,MAAM,CAAC,YAAY,CAAC,CAAC;iBACtB;YACH,CAAC,CAAC,CAAC;YAEH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;gBACtC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,oCAAoC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CAAA;AA5BD,gCA4BC;AAED,MAAM,iBAAkB,SAAQ,KAAK;IACnC,YAA4B,QAAQ;QAClC,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAD9C,aAAQ,GAAR,QAAQ,CAAA;QAElC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,EAAE;IAC/B,IAAI,QAAQ,CAAC,EAAE,EAAE;QACf,kDAAkD;QAClD,OAAO,QAAQ,CAAC;KACjB;SAAM;QACL,MAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC;KACvC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../libs/client/src/lib/client.ts"],"names":[],"mappings":"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"}