@tskmgr/client 0.0.3 → 0.0.6

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.3",
3
+ "version": "0.0.6",
4
4
  "license": "MIT",
5
5
  "dependencies": {
6
6
  "node-fetch": "^2.6.7",
7
- "@tskmgr/common": "0.0.3"
7
+ "@tskmgr/common": "0.0.6"
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,27 +3,42 @@
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
- const createdTasks = yield client.createTasks(newRun._id, { tasks });
24
- console.log(createdTasks);
25
- const closeRun = yield client.closeRun(newRun._id);
26
- console.log(closeRun);
35
+ const res = yield client.setLeader(newRun._id);
36
+ if (res.isLeader) {
37
+ const createdTasks = yield client.createTasks(newRun._id, { tasks });
38
+ console.log(createdTasks);
39
+ const closeRun = yield client.closeRun(newRun._id);
40
+ console.log(closeRun);
41
+ }
27
42
  yield client.runTasks(newRun._id);
28
43
  }
29
44
  catch (e) {
@@ -33,9 +48,10 @@ const client = client_factory_1.ClientFactory.createNew('http://localhost:3333',
33
48
  }))();
34
49
  function getNxTasks() {
35
50
  const tasks = [
36
- ...JSON.parse((0, child_process_1.execSync)('npx nx print-affected --target=lint').toString()).tasks,
37
- ...JSON.parse((0, child_process_1.execSync)('npx nx print-affected --target=test').toString()).tasks,
38
- ...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,
39
55
  ];
40
56
  return tasks;
41
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,YAAY,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAE1B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEtB,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,23 +1,31 @@
1
1
  /// <reference types="node" />
2
2
  import { ChildProcess, SpawnOptionsWithoutStdio } from 'child_process';
3
- import { ApiUrl, Run, CompleteTaskDto, CreateRunRequestDto, CreateTasksDto, StartTaskDto, StartTaskResponseDto, Task } from '@tskmgr/common';
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
+ }
4
12
  export declare class Client {
5
13
  private readonly apiUrl;
6
14
  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);
15
+ private readonly options;
16
+ static readonly DefaultOptions: ClientOptions;
17
+ constructor(apiUrl: ApiUrl, //
18
+ runnerId: string, options: ClientOptions);
14
19
  createRun(params: CreateRunRequestDto): Promise<Run>;
15
- closeRun(id: string): Promise<Run>;
16
- createTasks(id: string, params: CreateTasksDto): Promise<Task[]>;
17
- startTask(id: string, params: StartTaskDto): Promise<StartTaskResponseDto>;
18
- completeTask(id: string, params: CompleteTaskDto): Promise<Task>;
19
- failTask(id: string): Promise<Task>;
20
- runTasks(id: string): Promise<void[]>;
21
- defaultTaskRunner(id: string): Promise<void>;
20
+ closeRun(runId: string): Promise<Run>;
21
+ abortRun(runId: string): Promise<Run>;
22
+ failRun(runId: string): Promise<Run>;
23
+ setLeader(runId: string): Promise<SetLeaderResponseDto>;
24
+ createTasks(runId: string, params: CreateTasksDto): Promise<Task[]>;
25
+ startTask(runId: string, params: StartTaskDto): Promise<StartTaskResponseDto>;
26
+ runTasks(runId: string): Promise<void[]>;
27
+ completeTask(taskId: string, params: CompleteTaskDto): Promise<Task>;
28
+ failTask(taskId: string): Promise<Task>;
29
+ private defaultTaskRunner;
22
30
  }
23
31
  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,86 +6,111 @@ 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* () {
21
17
  const res = yield (0, node_fetch_1.default)(this.apiUrl.createRunUrl(), {
18
+ headers: { 'Content-Type': 'application/json' },
22
19
  method: 'POST',
23
20
  body: JSON.stringify(params),
24
- headers: { 'Content-Type': 'application/json' },
25
21
  });
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), {
32
- method: 'PUT',
27
+ const res = yield (0, node_fetch_1.default)(this.apiUrl.closeRunUrl(runId), {
33
28
  headers: { 'Content-Type': 'application/json' },
29
+ method: 'PUT',
34
30
  });
35
31
  return yield checkStatus(res).json();
36
32
  });
37
33
  }
38
- createTasks(id, params) {
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.createTasksUrl(id), {
41
- method: 'POST',
42
- body: JSON.stringify(params),
36
+ const res = yield (0, node_fetch_1.default)(this.apiUrl.abortRunUrl(runId), {
43
37
  headers: { 'Content-Type': 'application/json' },
38
+ method: 'PUT',
44
39
  });
45
40
  return yield checkStatus(res).json();
46
41
  });
47
42
  }
48
- startTask(id, params) {
43
+ failRun(runId) {
49
44
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
50
- const res = yield (0, node_fetch_1.default)(this.apiUrl.startTaskUrl(id), {
51
- method: 'PUT',
52
- body: JSON.stringify(params),
45
+ const res = yield (0, node_fetch_1.default)(this.apiUrl.failRunUrl(runId), {
53
46
  headers: { 'Content-Type': 'application/json' },
47
+ method: 'PUT',
54
48
  });
55
49
  return yield checkStatus(res).json();
56
50
  });
57
51
  }
58
- completeTask(id, params) {
52
+ setLeader(runId) {
59
53
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
60
- const res = yield (0, node_fetch_1.default)(this.apiUrl.completeTaskUrl(id), {
54
+ const params = { runnerId: this.runnerId };
55
+ const res = yield (0, node_fetch_1.default)(this.apiUrl.setLeaderUrl(runId), {
56
+ headers: { 'Content-Type': 'application/json' },
61
57
  method: 'PUT',
62
58
  body: JSON.stringify(params),
59
+ });
60
+ return yield checkStatus(res).json();
61
+ });
62
+ }
63
+ createTasks(runId, params) {
64
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
65
+ const res = yield (0, node_fetch_1.default)(this.apiUrl.createTasksUrl(runId), {
63
66
  headers: { 'Content-Type': 'application/json' },
67
+ method: 'POST',
68
+ body: JSON.stringify(params),
64
69
  });
65
70
  return yield checkStatus(res).json();
66
71
  });
67
72
  }
68
- failTask(id) {
73
+ startTask(runId, params) {
69
74
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
70
- const res = yield (0, node_fetch_1.default)(this.apiUrl.failTaskUrl(id), {
71
- method: 'PUT',
75
+ const res = yield (0, node_fetch_1.default)(this.apiUrl.startTaskUrl(runId), {
72
76
  headers: { 'Content-Type': 'application/json' },
77
+ method: 'PUT',
78
+ body: JSON.stringify(params),
73
79
  });
74
80
  return yield checkStatus(res).json();
75
81
  });
76
82
  }
77
- runTasks(id) {
83
+ runTasks(runId) {
78
84
  const taskRunners = [];
79
- for (let i = 0; i < this.parallel; i++) {
80
- taskRunners.push(this.defaultTaskRunner(id));
85
+ for (let i = 0; i < this.options.parallel; i++) {
86
+ taskRunners.push(this.defaultTaskRunner(runId));
81
87
  }
82
88
  return Promise.all(taskRunners);
83
89
  }
84
- defaultTaskRunner(id) {
90
+ completeTask(taskId, params) {
91
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
92
+ const res = yield (0, node_fetch_1.default)(this.apiUrl.completeTaskUrl(taskId), {
93
+ headers: { 'Content-Type': 'application/json' },
94
+ method: 'PUT',
95
+ body: JSON.stringify(params),
96
+ });
97
+ return yield checkStatus(res).json();
98
+ });
99
+ }
100
+ failTask(taskId) {
101
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
102
+ const res = yield (0, node_fetch_1.default)(this.apiUrl.failTaskUrl(taskId), {
103
+ headers: { 'Content-Type': 'application/json' },
104
+ method: 'PUT',
105
+ });
106
+ return yield checkStatus(res).json();
107
+ });
108
+ }
109
+ defaultTaskRunner(runId) {
85
110
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
86
111
  let _continue = true;
87
112
  while (_continue) {
88
- const response = yield this.startTask(id, { runnerId: this.runnerId });
113
+ const response = yield this.startTask(runId, { runnerId: this.runnerId });
89
114
  if (!response.continue) {
90
115
  _continue = false;
91
116
  }
@@ -93,18 +118,18 @@ class Client {
93
118
  continue;
94
119
  }
95
120
  if (!response.task) {
96
- console.log(`polling for a new task in: ${this.pollingDelayMs} ms`);
97
- yield delay(this.pollingDelayMs);
121
+ console.log(`polling for a new task in: ${this.options.pollingDelayMs} ms`);
122
+ yield delay(this.options.pollingDelayMs);
98
123
  continue;
99
124
  }
100
125
  const { task } = response;
101
126
  let cached = false;
102
127
  let hasCompleted = true;
103
128
  const dataHandler = (data) => {
104
- this.dataCallback(task, data, () => (cached = true));
129
+ this.options.dataCallback(task, data, () => (cached = true));
105
130
  };
106
131
  const errorHandler = (data) => {
107
- this.errorCallback(task, data);
132
+ this.options.errorCallback(task, data);
108
133
  };
109
134
  try {
110
135
  yield spawnAsync(task.command, task.arguments, task.options, dataHandler, errorHandler);
@@ -126,6 +151,16 @@ class Client {
126
151
  }
127
152
  }
128
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
+ };
129
164
  function delay(ms) {
130
165
  return new Promise((resolve) => {
131
166
  setTimeout(resolve, ms);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../libs/client/src/lib/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../libs/client/src/lib/client.ts"],"names":[],"mappings":"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"}