@privateaim/telemetry-kit 0.8.20 → 0.8.22

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/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.8.22](https://github.com/PrivateAIM/hub/compare/v0.8.21...v0.8.22) (2026-01-27)
4
+
5
+
6
+ ### Features
7
+
8
+ * migrate to esm & replace jest with vitest ([#1368](https://github.com/PrivateAIM/hub/issues/1368)) ([5a4d9d1](https://github.com/PrivateAIM/hub/commit/5a4d9d1ce118f65740aa49caf948208eac299032))
9
+ * replace loki with victorialogs ([#1346](https://github.com/PrivateAIM/hub/issues/1346)) ([ddf42ce](https://github.com/PrivateAIM/hub/commit/ddf42ced181c4e29ab55c2f5e1ebc155c44095c7))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * **deps:** bump the minorandpatch group across 1 directory with 12 updates ([#1343](https://github.com/PrivateAIM/hub/issues/1343)) ([015daa8](https://github.com/PrivateAIM/hub/commit/015daa8d7403b906eeb175d7ab83dd9df665dc6a))
15
+ * **deps:** bump the minorandpatch group across 1 directory with 16 updates ([#1329](https://github.com/PrivateAIM/hub/issues/1329)) ([7b394da](https://github.com/PrivateAIM/hub/commit/7b394da159d8e52cc37fe489832307a234f3ddb0))
16
+ * **deps:** bump the minorandpatch group across 1 directory with 9 updates ([#1331](https://github.com/PrivateAIM/hub/issues/1331)) ([2802bc3](https://github.com/PrivateAIM/hub/commit/2802bc319b84453f8bb351ba1723d9a58bba9830))
17
+ * entity subscriber & analysis-metadata component (trigger) ([#1280](https://github.com/PrivateAIM/hub/issues/1280)) ([b565e9e](https://github.com/PrivateAIM/hub/commit/b565e9e58e4eca147944214ded6aa8387afab0c0))
18
+
19
+
20
+ ### Dependencies
21
+
22
+ * The following workspace dependencies were updated
23
+ * devDependencies
24
+ * @privateaim/kit bumped from ^0.8.21 to ^0.8.22
25
+ * peerDependencies
26
+ * @privateaim/kit bumped from ^0.8.21 to ^0.8.22
27
+
28
+ ## [0.8.21](https://github.com/PrivateAIM/hub/compare/v0.8.20...v0.8.21) (2025-11-04)
29
+
30
+
31
+ ### Dependencies
32
+
33
+ * The following workspace dependencies were updated
34
+ * devDependencies
35
+ * @privateaim/kit bumped from ^0.8.20 to ^0.8.21
36
+ * peerDependencies
37
+ * @privateaim/kit bumped from ^0.8.20 to ^0.8.21
38
+
3
39
  ## [0.8.20](https://github.com/PrivateAIM/hub/compare/v0.8.19...v0.8.20) (2025-10-29)
4
40
 
5
41
 
@@ -1,9 +1,9 @@
1
1
  import type { LogChannel, LogLevel } from './constants';
2
2
  export interface Log {
3
3
  /**
4
- * Time in micro seconds
4
+ * ISO String
5
5
  */
6
- time: string | bigint;
6
+ time: string;
7
7
  /**
8
8
  * message
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/domains/log/entity.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGxD,MAAM,WAAW,GAAG;IAChB;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,GAAG,UAAU,EAAE,CAAC;IAEzB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED,KAAK,aAAa,GAAG,CAAC,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;AAEnE,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/domains/log/entity.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGxD,MAAM,WAAW,GAAG;IAChB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,EAAE,GAAG,UAAU,EAAE,CAAC;IAEzB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED,KAAK,aAAa,GAAG,CAAC,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;AAEnE,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/domains/log/helpers.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAI,GAAG,CAMvD"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/domains/log/helpers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE9C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,GAAI,GAAG,CAMvD"}
package/dist/index.mjs CHANGED
@@ -3,103 +3,40 @@ import { buildQuery } from 'rapiq';
3
3
  import { createValidator } from '@validup/adapter-zod';
4
4
  import { Container } from 'validup';
5
5
  import zod from 'zod';
6
- import { nanoSeconds } from '@privateaim/kit';
7
6
 
8
- /*
9
- * Copyright (c) 2023-2024.
10
- * Author Peter Placzek (tada5hi)
11
- * For the full copyright and license information,
12
- * view the LICENSE file that was distributed with this source code.
13
- */ function _define_property$2(obj, key, value) {
14
- if (key in obj) {
15
- Object.defineProperty(obj, key, {
16
- value: value,
17
- enumerable: true,
18
- configurable: true,
19
- writable: true
20
- });
21
- } else {
22
- obj[key] = value;
23
- }
24
- return obj;
25
- }
26
7
  class BaseAPI {
27
- // -----------------------------------------------------------------------------------
28
- setClient(input) {
29
- this.client = isClient(input) ? input : createClient(input);
30
- }
8
+ client;
31
9
  // -----------------------------------------------------------------------------------
32
10
  constructor(context){
33
- _define_property$2(this, "client", void 0);
34
11
  context = context || {};
35
12
  this.setClient(context.client);
36
13
  }
37
- }
38
-
39
- /*
40
- * Copyright (c) 2021-2024.
41
- * Author Peter Placzek (tada5hi)
42
- * For the full copyright and license information,
43
- * view the LICENSE file that was distributed with this source code.
44
- */ function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
45
- try {
46
- var info = gen[key](arg);
47
- var value = info.value;
48
- } catch (error) {
49
- reject(error);
50
- return;
51
- }
52
- if (info.done) {
53
- resolve(value);
54
- } else {
55
- Promise.resolve(value).then(_next, _throw);
14
+ // -----------------------------------------------------------------------------------
15
+ setClient(input) {
16
+ this.client = isClient(input) ? input : createClient(input);
56
17
  }
57
18
  }
58
- function _async_to_generator$1(fn) {
59
- return function() {
60
- var self = this, args = arguments;
61
- return new Promise(function(resolve, reject) {
62
- var gen = fn.apply(self, args);
63
- function _next(value) {
64
- asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "next", value);
65
- }
66
- function _throw(err) {
67
- asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "throw", err);
68
- }
69
- _next(undefined);
70
- });
71
- };
72
- }
19
+
73
20
  class EventAPI extends BaseAPI {
74
- getMany(options) {
75
- return _async_to_generator$1(function*() {
76
- const { data: response } = yield this.client.get(`events${buildQuery(options)}`);
77
- return response;
78
- }).call(this);
21
+ async getMany(options) {
22
+ const { data: response } = await this.client.get(`events${buildQuery(options)}`);
23
+ return response;
79
24
  }
80
- getOne(id) {
81
- return _async_to_generator$1(function*() {
82
- const { data: response } = yield this.client.get(`events/${id}`);
83
- return response;
84
- }).call(this);
25
+ async getOne(id) {
26
+ const { data: response } = await this.client.get(`events/${id}`);
27
+ return response;
85
28
  }
86
- delete(id) {
87
- return _async_to_generator$1(function*() {
88
- const { data: response } = yield this.client.delete(`events/${id}`);
89
- return response;
90
- }).call(this);
29
+ async delete(id) {
30
+ const { data: response } = await this.client.delete(`events/${id}`);
31
+ return response;
91
32
  }
92
- update(id, data) {
93
- return _async_to_generator$1(function*() {
94
- const { data: response } = yield this.client.post(`events/${id}`, data);
95
- return response;
96
- }).call(this);
33
+ async update(id, data) {
34
+ const { data: response } = await this.client.post(`events/${id}`, data);
35
+ return response;
97
36
  }
98
- create(data) {
99
- return _async_to_generator$1(function*() {
100
- const { data: response } = yield this.client.post('events', data);
101
- return response;
102
- }).call(this);
37
+ async create(data) {
38
+ const { data: response } = await this.client.post('events', data);
39
+ return response;
103
40
  }
104
41
  }
105
42
 
@@ -155,57 +92,17 @@ class EventValidator extends Container {
155
92
  }
156
93
  }
157
94
 
158
- /*
159
- * Copyright (c) 2021-2024.
160
- * Author Peter Placzek (tada5hi)
161
- * For the full copyright and license information,
162
- * view the LICENSE file that was distributed with this source code.
163
- */ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
164
- try {
165
- var info = gen[key](arg);
166
- var value = info.value;
167
- } catch (error) {
168
- reject(error);
169
- return;
170
- }
171
- if (info.done) {
172
- resolve(value);
173
- } else {
174
- Promise.resolve(value).then(_next, _throw);
175
- }
176
- }
177
- function _async_to_generator(fn) {
178
- return function() {
179
- var self = this, args = arguments;
180
- return new Promise(function(resolve, reject) {
181
- var gen = fn.apply(self, args);
182
- function _next(value) {
183
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
184
- }
185
- function _throw(err) {
186
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
187
- }
188
- _next(undefined);
189
- });
190
- };
191
- }
192
95
  class LogAPI extends BaseAPI {
193
- getMany(options) {
194
- return _async_to_generator(function*() {
195
- const { data: response } = yield this.client.get(`logs${buildQuery(options)}`);
196
- return response;
197
- }).call(this);
96
+ async getMany(options) {
97
+ const { data: response } = await this.client.get(`logs${buildQuery(options)}`);
98
+ return response;
198
99
  }
199
- deleteMany(options) {
200
- return _async_to_generator(function*() {
201
- yield this.client.delete(`logs${buildQuery(options)}`);
202
- }).call(this);
100
+ async deleteMany(options) {
101
+ await this.client.delete(`logs${buildQuery(options)}`);
203
102
  }
204
- create(data) {
205
- return _async_to_generator(function*() {
206
- const { data: response } = yield this.client.post('logs', data);
207
- return response;
208
- }).call(this);
103
+ async create(data) {
104
+ const { data: response } = await this.client.post('logs', data);
105
+ return response;
209
106
  }
210
107
  }
211
108
 
@@ -282,58 +179,12 @@ var LogChannel = /*#__PURE__*/ function(LogChannel) {
282
179
  * Author Peter Placzek (tada5hi)
283
180
  * For the full copyright and license information,
284
181
  * view the LICENSE file that was distributed with this source code.
285
- */ function _define_property$1(obj, key, value) {
286
- if (key in obj) {
287
- Object.defineProperty(obj, key, {
288
- value: value,
289
- enumerable: true,
290
- configurable: true,
291
- writable: true
292
- });
293
- } else {
294
- obj[key] = value;
295
- }
296
- return obj;
297
- }
298
- function _object_spread(target) {
299
- for(var i = 1; i < arguments.length; i++){
300
- var source = arguments[i] != null ? arguments[i] : {};
301
- var ownKeys = Object.keys(source);
302
- if (typeof Object.getOwnPropertySymbols === "function") {
303
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
304
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
305
- }));
306
- }
307
- ownKeys.forEach(function(key) {
308
- _define_property$1(target, key, source[key]);
309
- });
310
- }
311
- return target;
312
- }
313
- function ownKeys(object, enumerableOnly) {
314
- var keys = Object.keys(object);
315
- if (Object.getOwnPropertySymbols) {
316
- var symbols = Object.getOwnPropertySymbols(object);
317
- keys.push.apply(keys, symbols);
318
- }
319
- return keys;
320
- }
321
- function _object_spread_props(target, source) {
322
- source = source != null ? source : {};
323
- if (Object.getOwnPropertyDescriptors) {
324
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
325
- } else {
326
- ownKeys(Object(source)).forEach(function(key) {
327
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
328
- });
329
- }
330
- return target;
331
- }
332
- function normalizeLogInput(input) {
333
- return _object_spread_props(_object_spread({}, input), {
334
- time: input.time || nanoSeconds(),
182
+ */ function normalizeLogInput(input) {
183
+ return {
184
+ ...input,
185
+ time: input.time || new Date().toISOString(),
335
186
  labels: input.labels || {}
336
- });
187
+ };
337
188
  }
338
189
 
339
190
  class LogValidator extends Container {
@@ -342,7 +193,7 @@ class LogValidator extends Container {
342
193
  this.mount('time', {
343
194
  optional: true
344
195
  }, createValidator(zod.string().min(0).max(20).or(zod.bigint()).optional()));
345
- this.mount('message', createValidator(zod.string().min(3).max(2048)));
196
+ this.mount('message', createValidator(zod.string().min(3).max(4096)));
346
197
  this.mount('service', createValidator(zod.string().min(3).max(64)));
347
198
  // ----------------------------------------------
348
199
  this.mount('level', createValidator(zod.enum(Object.values(LogLevel))));
@@ -364,27 +215,11 @@ class LogValidator extends Container {
364
215
  return DomainType;
365
216
  }({});
366
217
 
367
- /*
368
- * Copyright (c) 2022-2024.
369
- * Author Peter Placzek (tada5hi)
370
- * For the full copyright and license information,
371
- * view the LICENSE file that was distributed with this source code.
372
- */ function _define_property(obj, key, value) {
373
- if (key in obj) {
374
- Object.defineProperty(obj, key, {
375
- value: value,
376
- enumerable: true,
377
- configurable: true,
378
- writable: true
379
- });
380
- } else {
381
- obj[key] = value;
382
- }
383
- return obj;
384
- }
385
218
  class APIClient extends Client {
219
+ event;
220
+ log;
386
221
  constructor(config){
387
- super(config), _define_property(this, "event", void 0), _define_property(this, "log", void 0);
222
+ super(config);
388
223
  this.event = new EventAPI({
389
224
  client: this
390
225
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/domains/base.ts","../src/domains/event/api.ts","../src/domains/event/validator.ts","../src/domains/log/api.ts","../src/domains/log/constants.ts","../src/domains/log/helpers.ts","../src/domains/log/validator.ts","../src/domains/constants.ts","../src/http/api-client/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createClient, isClient } from 'hapic';\nimport type { Client, RequestBaseOptions } from 'hapic';\nimport type { BaseAPIContext } from './types-base';\n\nexport class BaseAPI {\n protected client! : Client;\n\n // -----------------------------------------------------------------------------------\n\n constructor(context?: BaseAPIContext) {\n context = context || {};\n\n this.setClient(context.client);\n }\n\n // -----------------------------------------------------------------------------------\n\n setClient(input?: Client | RequestBaseOptions) {\n this.client = isClient(input) ?\n input :\n createClient(input);\n }\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { BuildInput } from 'rapiq';\nimport { buildQuery } from 'rapiq';\nimport type { Event } from './entity';\nimport type { CollectionResourceResponse, SingleResourceResponse } from '../types-base';\nimport { BaseAPI } from '../base';\n\nexport class EventAPI extends BaseAPI {\n async getMany(options?: BuildInput<Event>): Promise<CollectionResourceResponse<Event>> {\n const { data: response } = await this.client.get(`events${buildQuery(options)}`);\n return response;\n }\n\n async getOne(id: Event['id']): Promise<SingleResourceResponse<Event>> {\n const { data: response } = await this.client.get(`events/${id}`);\n\n return response;\n }\n\n async delete(id: Event['id']): Promise<SingleResourceResponse<Event>> {\n const { data: response } = await this.client.delete(`events/${id}`);\n\n return response;\n }\n\n async update(id: Event['id'], data: Partial<Event>): Promise<SingleResourceResponse<Event>> {\n const { data: response } = await this.client.post(`events/${id}`, data);\n\n return response;\n }\n\n async create(data: Partial<Event>): Promise<SingleResourceResponse<Event>> {\n const { data: response } = await this.client.post('events', data);\n\n return response;\n }\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createValidator } from '@validup/adapter-zod';\nimport { Container } from 'validup';\nimport zod from 'zod';\nimport type { Event } from './entity';\n\nexport class EventValidator extends Container<Event> {\n protected initialize() {\n super.initialize();\n\n this.mount(\n 'ref_type',\n createValidator(\n zod\n .string()\n .min(3)\n .max(128),\n ),\n );\n\n this.mount(\n 'ref_id',\n { optional: true },\n createValidator(\n zod\n .uuidv4()\n .nullable(),\n ),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'scope',\n createValidator(\n zod\n .string()\n .min(3)\n .max(128),\n ),\n );\n\n this.mount(\n 'name',\n createValidator(\n zod\n .string()\n .min(3)\n .max(128),\n ),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'data',\n { optional: true },\n createValidator(\n zod\n .record(zod.string(), zod.any())\n .nullable(),\n ),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'expiring',\n { optional: true },\n createValidator(\n zod\n .boolean()\n .nullable(),\n ),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'request_path',\n { optional: true },\n createValidator(zod.string().min(3).max(256).nullable()),\n );\n\n this.mount(\n 'request_method',\n { optional: true },\n createValidator(zod.string().min(3).max(10).nullable()),\n );\n\n this.mount(\n 'request_ip_address',\n { optional: true },\n createValidator(zod.ipv4().nullable()),\n );\n\n this.mount(\n 'request_user_agent',\n { optional: true },\n createValidator(zod.string().min(3).max(512).nullable()),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'actor_type',\n { optional: true },\n createValidator(zod.string().min(3).max(64).nullable()),\n );\n\n this.mount(\n 'actor_id',\n { optional: true },\n createValidator(zod.uuidv4().nullable()),\n );\n\n this.mount(\n 'actor_name',\n { optional: true },\n createValidator(zod.string().min(3).max(64).nullable()),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'realm_id',\n { optional: true },\n createValidator(zod.uuidv4().nullable()),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'expires_at',\n { optional: true },\n createValidator(\n zod.iso.datetime()\n .nullable(),\n ),\n );\n }\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { BuildInput } from 'rapiq';\nimport { buildQuery } from 'rapiq';\nimport type { Log, LogInput } from './entity';\nimport type { CollectionResourceResponse, SingleResourceResponse } from '../types-base';\nimport { BaseAPI } from '../base';\n\nexport class LogAPI extends BaseAPI {\n async getMany(options?: BuildInput<Log>): Promise<CollectionResourceResponse<Log>> {\n const { data: response } = await this.client.get(`logs${buildQuery(options)}`);\n return response;\n }\n\n async deleteMany(options?: BuildInput<Log>): Promise<void> {\n await this.client.delete(`logs${buildQuery(options)}`);\n }\n\n async create(data: LogInput): Promise<SingleResourceResponse<Log>> {\n const { data: response } = await this.client.post('logs', data);\n\n return response;\n }\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum LogLevel {\n /**\n * indicates that the system is unusable\n * and requires immediate attention\n */\n EMERGENCE = 'emerg',\n\n /**\n * indicates that immediate action is necessary\n * to resolve a critical issue.\n */\n ALERT = 'alert',\n\n /**\n * signifies critical conditions in the program that demand\n * intervention to prevent system failure.\n */\n CRITICAL = 'crit',\n\n /**\n * indicates error conditions that impair\n * some operation but are less severe than critical situations.\n */\n ERROR = 'error',\n\n /**\n * signifies potential issues that may lead to errors\n * or unexpected behavior in the future if not addressed.\n */\n WARNING = 'warn',\n\n /**\n * applies to normal but significant\n * conditions that may require monitoring\n */\n NOTICE = 'notice',\n\n /**\n * includes messages that provide a record\n * of the normal operation of the system.\n */\n INFORMATIONAL = 'info',\n\n /**\n * intended for logging detailed information about the system\n * for debugging purposes.\n */\n DEBUG = 'debug',\n}\n\nexport enum LogLevelColor {\n EMERGENCE = '#8B0000',\n ALERT = '#FF0000',\n CRITICAL = '#FF4500',\n ERROR = '#FF6347',\n WARNING = '#FFD700',\n NOTICE = '#1E90FF',\n INFORMATIONAL = '#228B22',\n DEBUG = '#A9A9A9',\n}\n\nexport enum LogFlag {\n CHANNEL = 'channel',\n\n COMPONENT = 'component',\n\n SERVICE = 'service',\n\n LEVEL = 'level',\n\n REF_TYPE = 'ref_type',\n\n REF_ID = 'ref_id',\n}\n\nexport enum LogChannel {\n HTTP = 'http',\n WEBSOCKET = 'websocket',\n BACKGROUND = 'background',\n SYSTEM = 'system',\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { nanoSeconds } from '@privateaim/kit';\nimport type { Log, LogInput } from './entity';\n\nexport function normalizeLogInput(input: LogInput) : Log {\n return {\n ...input,\n time: input.time || nanoSeconds(),\n labels: input.labels || {},\n };\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createValidator } from '@validup/adapter-zod';\nimport { Container } from 'validup';\nimport zod from 'zod';\nimport { LogChannel, LogLevel } from './constants';\nimport type { LogInput } from './entity';\n\nexport class LogValidator extends Container<LogInput> {\n protected initialize() {\n super.initialize();\n\n this.mount(\n 'time',\n { optional: true },\n createValidator(\n zod\n .string()\n .min(0)\n .max(20)\n .or(zod.bigint())\n .optional(),\n ),\n );\n\n this.mount(\n 'message',\n createValidator(\n zod\n .string()\n .min(3)\n .max(2048),\n ),\n );\n\n this.mount(\n 'service',\n createValidator(\n zod\n .string()\n .min(3)\n .max(64),\n ),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'level',\n createValidator(\n zod\n .enum(Object.values(LogLevel)),\n ),\n );\n\n this.mount(\n 'channel',\n createValidator(\n zod\n .enum(Object.values(LogChannel)),\n ),\n );\n\n this.mount(\n 'labels',\n { optional: true },\n createValidator(\n zod\n .record(zod.string(), zod.string())\n .nullable(),\n ),\n );\n }\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum DomainType {\n EVENT = 'event',\n LOG = 'log',\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { RequestBaseOptions } from 'hapic';\nimport { Client, HookName, isClientError } from 'hapic';\nimport {\n EventAPI,\n LogAPI,\n} from '../../domains';\n\nexport class APIClient extends Client {\n public readonly event : EventAPI;\n\n public readonly log : LogAPI;\n\n constructor(config: RequestBaseOptions) {\n super(config);\n\n this.event = new EventAPI({ client: this });\n this.log = new LogAPI({ client: this });\n\n this.on(HookName.RESPONSE_ERROR, ((error) => {\n if (\n isClientError(error) &&\n error.response &&\n error.response.data &&\n typeof error.response.data.message === 'string'\n ) {\n error.message = error.response.data.message;\n }\n\n throw error;\n }));\n }\n}\n"],"names":["_define_property","BaseAPI","setClient","input","client","isClient","createClient","context","asyncGeneratorStep","EventAPI","getMany","options","data","response","get","buildQuery","getOne","id","delete","update","post","create","EventValidator","Container","initialize","mount","createValidator","zod","string","min","max","optional","uuidv4","nullable","record","any","boolean","ipv4","iso","datetime","LogAPI","deleteMany","LogLevel","LogLevelColor","LogFlag","LogChannel","normalizeLogInput","time","nanoSeconds","labels","LogValidator","or","bigint","enum","Object","values","DomainType","APIClient","Client","config","event","log","on","HookName","RESPONSE_ERROR","error","isClientError","message"],"mappings":";;;;;;;AAAA;;;;;AAKC,IAAA,SAAAA,kBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAA;;;;;;;;;;;;;AAMM,MAAMC,OAAAA,CAAAA;;AAaTC,IAAAA,SAAAA,CAAUC,KAAmC,EAAE;AAC3C,QAAA,IAAI,CAACC,MAAM,GAAGC,QAAAA,CAASF,KAAAA,CAAAA,GACnBA,QACAG,YAAAA,CAAaH,KAAAA,CAAAA;AACrB,IAAA;;AAZA,IAAA,WAAA,CAAYI,OAAwB,CAAE;AAJtC,QAAAP,kBAAA,CAAA,IAAA,EAAUI,UAAV,MAAA,CAAA;AAKIG,QAAAA,OAAAA,GAAUA,WAAW,EAAC;AAEtB,QAAA,IAAI,CAACL,SAAS,CAACK,OAAAA,CAAQH,MAAM,CAAA;AACjC,IAAA;AASJ;;AC7BA;;;;;AAKC,IAAA,SAAAI,oBAAA,CAAA,GAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,GAAA,EAAA,GAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQM,MAAMC,QAAAA,SAAiBR,OAAAA,CAAAA;AACpBS,IAAAA,OAAAA,CAAQC,OAA2B,EAAA;;AACrC,YAAA,MAAM,EAAEC,IAAAA,EAAMC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAACT,MAAM,CAACU,GAAG,CAAC,CAAC,MAAM,EAAEC,WAAWJ,OAAAA,CAAAA,CAAAA,CAAU,CAAA;YAC/E,OAAOE,QAAAA;AACX,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA;;AAEMG,IAAAA,MAAAA,CAAOC,EAAe,EAAA;;AACxB,YAAA,MAAM,EAAEL,IAAAA,EAAMC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAACT,MAAM,CAACU,GAAG,CAAC,CAAC,OAAO,EAAEG,EAAAA,CAAAA,CAAI,CAAA;YAE/D,OAAOJ,QAAAA;AACX,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA;;AAEMK,IAAAA,MAAAA,CAAOD,EAAe,EAAA;;AACxB,YAAA,MAAM,EAAEL,IAAAA,EAAMC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAACT,MAAM,CAACc,MAAM,CAAC,CAAC,OAAO,EAAED,EAAAA,CAAAA,CAAI,CAAA;YAElE,OAAOJ,QAAAA;AACX,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA;;IAEMM,MAAAA,CAAOF,EAAe,EAAEL,IAAoB,EAAA;;AAC9C,YAAA,MAAM,EAAEA,IAAAA,EAAMC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAACT,MAAM,CAACgB,IAAI,CAAC,CAAC,OAAO,EAAEH,IAAI,EAAEL,IAAAA,CAAAA;YAElE,OAAOC,QAAAA;AACX,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA;;AAEMQ,IAAAA,MAAAA,CAAOT,IAAoB,EAAA;;AAC7B,YAAA,MAAM,EAAEA,IAAAA,EAAMC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAACT,MAAM,CAACgB,IAAI,CAAC,QAAA,EAAUR,IAAAA,CAAAA;YAE5D,OAAOC,QAAAA;AACX,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA;;AACJ;;AC9BO,MAAMS,cAAAA,SAAuBC,SAAAA,CAAAA;IACtBC,UAAAA,GAAa;AACnB,QAAA,KAAK,CAACA,UAAAA,EAAAA;AAEN,QAAA,IAAI,CAACC,KAAK,CACN,UAAA,EACAC,eAAAA,CACIC,GAAAA,CACKC,MAAM,EAAA,CACNC,GAAG,CAAC,CAAA,CAAA,CACJC,GAAG,CAAC,GAAA,CAAA,CAAA,CAAA;QAIjB,IAAI,CAACL,KAAK,CACN,QAAA,EACA;YAAEM,QAAAA,EAAU;AAAK,SAAA,EACjBL,eAAAA,CACIC,GAAAA,CACKK,MAAM,EAAA,CACNC,QAAQ,EAAA,CAAA,CAAA;;AAMrB,QAAA,IAAI,CAACR,KAAK,CACN,OAAA,EACAC,eAAAA,CACIC,GAAAA,CACKC,MAAM,EAAA,CACNC,GAAG,CAAC,CAAA,CAAA,CACJC,GAAG,CAAC,GAAA,CAAA,CAAA,CAAA;AAIjB,QAAA,IAAI,CAACL,KAAK,CACN,MAAA,EACAC,eAAAA,CACIC,GAAAA,CACKC,MAAM,EAAA,CACNC,GAAG,CAAC,CAAA,CAAA,CACJC,GAAG,CAAC,GAAA,CAAA,CAAA,CAAA;;QAMjB,IAAI,CAACL,KAAK,CACN,MAAA,EACA;YAAEM,QAAAA,EAAU;SAAK,EACjBL,eAAAA,CACIC,GAAAA,CACKO,MAAM,CAACP,GAAAA,CAAIC,MAAM,EAAA,EAAID,GAAAA,CAAIQ,GAAG,EAAA,CAAA,CAC5BF,QAAQ,EAAA,CAAA,CAAA;;QAMrB,IAAI,CAACR,KAAK,CACN,UAAA,EACA;YAAEM,QAAAA,EAAU;AAAK,SAAA,EACjBL,eAAAA,CACIC,GAAAA,CACKS,OAAO,EAAA,CACPH,QAAQ,EAAA,CAAA,CAAA;;QAMrB,IAAI,CAACR,KAAK,CACN,cAAA,EACA;YAAEM,QAAAA,EAAU;SAAK,EACjBL,eAAAA,CAAgBC,GAAAA,CAAIC,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,GAAA,CAAA,CAAKG,QAAQ,EAAA,CAAA,CAAA;QAGzD,IAAI,CAACR,KAAK,CACN,gBAAA,EACA;YAAEM,QAAAA,EAAU;SAAK,EACjBL,eAAAA,CAAgBC,GAAAA,CAAIC,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,EAAA,CAAA,CAAIG,QAAQ,EAAA,CAAA,CAAA;QAGxD,IAAI,CAACR,KAAK,CACN,oBAAA,EACA;YAAEM,QAAAA,EAAU;AAAK,SAAA,EACjBL,eAAAA,CAAgBC,GAAAA,CAAIU,IAAI,EAAA,CAAGJ,QAAQ,EAAA,CAAA,CAAA;QAGvC,IAAI,CAACR,KAAK,CACN,oBAAA,EACA;YAAEM,QAAAA,EAAU;SAAK,EACjBL,eAAAA,CAAgBC,GAAAA,CAAIC,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,GAAA,CAAA,CAAKG,QAAQ,EAAA,CAAA,CAAA;;QAKzD,IAAI,CAACR,KAAK,CACN,YAAA,EACA;YAAEM,QAAAA,EAAU;SAAK,EACjBL,eAAAA,CAAgBC,GAAAA,CAAIC,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,EAAA,CAAA,CAAIG,QAAQ,EAAA,CAAA,CAAA;QAGxD,IAAI,CAACR,KAAK,CACN,UAAA,EACA;YAAEM,QAAAA,EAAU;AAAK,SAAA,EACjBL,eAAAA,CAAgBC,GAAAA,CAAIK,MAAM,EAAA,CAAGC,QAAQ,EAAA,CAAA,CAAA;QAGzC,IAAI,CAACR,KAAK,CACN,YAAA,EACA;YAAEM,QAAAA,EAAU;SAAK,EACjBL,eAAAA,CAAgBC,GAAAA,CAAIC,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,EAAA,CAAA,CAAIG,QAAQ,EAAA,CAAA,CAAA;;QAKxD,IAAI,CAACR,KAAK,CACN,UAAA,EACA;YAAEM,QAAAA,EAAU;AAAK,SAAA,EACjBL,eAAAA,CAAgBC,GAAAA,CAAIK,MAAM,EAAA,CAAGC,QAAQ,EAAA,CAAA,CAAA;;QAKzC,IAAI,CAACR,KAAK,CACN,YAAA,EACA;YAAEM,QAAAA,EAAU;AAAK,SAAA,EACjBL,gBACIC,GAAAA,CAAIW,GAAG,CAACC,QAAQ,GACXN,QAAQ,EAAA,CAAA,CAAA;AAGzB,IAAA;AACJ;;ACnJA;;;;;AAKC,IAAA,SAAA,kBAAA,CAAA,GAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,GAAA,EAAA,GAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQM,MAAMO,MAAAA,SAAevC,OAAAA,CAAAA;AAClBS,IAAAA,OAAAA,CAAQC,OAAyB,EAAA;;AACnC,YAAA,MAAM,EAAEC,IAAAA,EAAMC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAACT,MAAM,CAACU,GAAG,CAAC,CAAC,IAAI,EAAEC,WAAWJ,OAAAA,CAAAA,CAAAA,CAAU,CAAA;YAC7E,OAAOE,QAAAA;AACX,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA;;AAEM4B,IAAAA,UAAAA,CAAW9B,OAAyB,EAAA;;YACtC,MAAM,IAAI,CAACP,MAAM,CAACc,MAAM,CAAC,CAAC,IAAI,EAAEH,UAAAA,CAAWJ,OAAAA,CAAAA,CAAAA,CAAU,CAAA;AACzD,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA;;AAEMU,IAAAA,MAAAA,CAAOT,IAAc,EAAA;;AACvB,YAAA,MAAM,EAAEA,IAAAA,EAAMC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAACT,MAAM,CAACgB,IAAI,CAAC,MAAA,EAAQR,IAAAA,CAAAA;YAE1D,OAAOC,QAAAA;AACX,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA;;AACJ;;AC5BA;;;;;IAOO,IAAK6B,QAAAA,iBAAAA,SAAAA,QAAAA,EAAAA;AACR;;;AAGC,QAAA,QAAA,CAAA,WAAA,CAAA,GAAA,OAAA;AAGD;;;AAGC,QAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAA;AAGD;;;AAGC,QAAA,QAAA,CAAA,UAAA,CAAA,GAAA,MAAA;AAGD;;;AAGC,QAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAA;AAGD;;;AAGC,QAAA,QAAA,CAAA,SAAA,CAAA,GAAA,MAAA;AAGD;;;AAGC,QAAA,QAAA,CAAA,QAAA,CAAA,GAAA,QAAA;AAGD;;;AAGC,QAAA,QAAA,CAAA,eAAA,CAAA,GAAA,MAAA;AAGD;;;AAGC,QAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAA;AA9COA,IAAAA,OAAAA,QAAAA;AAgDX,CAAA,CAAA,EAAA;AAEM,IAAA,aAAKC,iBAAAA,SAAAA,aAAAA,EAAAA;;;;;;;;;AAAAA,IAAAA,OAAAA,aAAAA;AASX,CAAA,CAAA,EAAA;AAEM,IAAA,OAAKC,iBAAAA,SAAAA,OAAAA,EAAAA;;;;;;;AAAAA,IAAAA,OAAAA,OAAAA;AAYX,CAAA,CAAA,EAAA;AAEM,IAAA,UAAKC,iBAAAA,SAAAA,UAAAA,EAAAA;;;;;AAAAA,IAAAA,OAAAA,UAAAA;AAKX,CAAA,CAAA,EAAA;;ACvFD;;;;;AAKC,IAAA,SAAA7C,kBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKM,SAAS8C,kBAAkB3C,KAAe,EAAA;AAC7C,IAAA,OAAO,oBAAA,CAAA,cAAA,CAAA,EAAA,EACAA,KAAAA,CAAAA,EAAAA;QACH4C,IAAAA,EAAM5C,KAAAA,CAAM4C,IAAI,IAAIC,WAAAA,EAAAA;QACpBC,MAAAA,EAAQ9C,KAAAA,CAAM8C,MAAM,IAAI;;AAEhC;;ACHO,MAAMC,YAAAA,SAAqB3B,SAAAA,CAAAA;IACpBC,UAAAA,GAAa;AACnB,QAAA,KAAK,CAACA,UAAAA,EAAAA;QAEN,IAAI,CAACC,KAAK,CACN,MAAA,EACA;YAAEM,QAAAA,EAAU;AAAK,SAAA,EACjBL,eAAAA,CACIC,GAAAA,CACKC,MAAM,EAAA,CACNC,GAAG,CAAC,CAAA,CAAA,CACJC,GAAG,CAAC,IACJqB,EAAE,CAACxB,GAAAA,CAAIyB,MAAM,IACbrB,QAAQ,EAAA,CAAA,CAAA;AAIrB,QAAA,IAAI,CAACN,KAAK,CACN,SAAA,EACAC,eAAAA,CACIC,GAAAA,CACKC,MAAM,EAAA,CACNC,GAAG,CAAC,CAAA,CAAA,CACJC,GAAG,CAAC,IAAA,CAAA,CAAA,CAAA;AAIjB,QAAA,IAAI,CAACL,KAAK,CACN,SAAA,EACAC,eAAAA,CACIC,GAAAA,CACKC,MAAM,EAAA,CACNC,GAAG,CAAC,CAAA,CAAA,CACJC,GAAG,CAAC,EAAA,CAAA,CAAA,CAAA;;QAMjB,IAAI,CAACL,KAAK,CACN,OAAA,EACAC,eAAAA,CACIC,IACK0B,IAAI,CAACC,MAAAA,CAAOC,MAAM,CAACb,QAAAA,CAAAA,CAAAA,CAAAA,CAAAA;QAIhC,IAAI,CAACjB,KAAK,CACN,SAAA,EACAC,eAAAA,CACIC,IACK0B,IAAI,CAACC,MAAAA,CAAOC,MAAM,CAACV,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA;QAIhC,IAAI,CAACpB,KAAK,CACN,QAAA,EACA;YAAEM,QAAAA,EAAU;SAAK,EACjBL,eAAAA,CACIC,GAAAA,CACKO,MAAM,CAACP,GAAAA,CAAIC,MAAM,EAAA,EAAID,GAAAA,CAAIC,MAAM,EAAA,CAAA,CAC/BK,QAAQ,EAAA,CAAA,CAAA;AAGzB,IAAA;AACJ;;AC9EA;;;;;IAOO,IAAKuB,UAAAA,iBAAAA,SAAAA,UAAAA,EAAAA;;;AAAAA,IAAAA,OAAAA,UAAAA;AAGX,CAAA,CAAA,EAAA;;ACVD;;;;;AAKC,IAAA,SAAA,gBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAA;;;;;;;;;;;;;AASM,MAAMC,SAAAA,SAAkBC,MAAAA,CAAAA;AAK3B,IAAA,WAAA,CAAYC,MAA0B,CAAE;QACpC,KAAK,CAACA,SALV,gBAAA,CAAA,IAAA,EAAgBC,OAAAA,EAAhB,MAAA,CAAA,EAEA,gBAAA,CAAA,IAAA,EAAgBC,OAAhB,MAAA,CAAA;AAKI,QAAA,IAAI,CAACD,KAAK,GAAG,IAAInD,QAAAA,CAAS;AAAEL,YAAAA,MAAAA,EAAQ;AAAK,SAAA,CAAA;AACzC,QAAA,IAAI,CAACyD,GAAG,GAAG,IAAIrB,MAAAA,CAAO;AAAEpC,YAAAA,MAAAA,EAAQ;AAAK,SAAA,CAAA;AAErC,QAAA,IAAI,CAAC0D,EAAE,CAACC,QAAAA,CAASC,cAAc,EAAG,CAACC,KAAAA,GAAAA;AAC/B,YAAA,IACIC,cAAcD,KAAAA,CAAAA,IACdA,KAAAA,CAAMpD,QAAQ,IACdoD,KAAAA,CAAMpD,QAAQ,CAACD,IAAI,IACnB,OAAOqD,MAAMpD,QAAQ,CAACD,IAAI,CAACuD,OAAO,KAAK,QAAA,EACzC;AACEF,gBAAAA,KAAAA,CAAME,OAAO,GAAGF,KAAAA,CAAMpD,QAAQ,CAACD,IAAI,CAACuD,OAAO;AAC/C,YAAA;YAEA,MAAMF,KAAAA;AACV,QAAA,CAAA,CAAA;AACJ,IAAA;AACJ;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/domains/base.ts","../src/domains/event/api.ts","../src/domains/event/validator.ts","../src/domains/log/api.ts","../src/domains/log/constants.ts","../src/domains/log/helpers.ts","../src/domains/log/validator.ts","../src/domains/constants.ts","../src/http/api-client/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createClient, isClient } from 'hapic';\nimport type { Client, RequestBaseOptions } from 'hapic';\nimport type { BaseAPIContext } from './types-base';\n\nexport class BaseAPI {\n protected client! : Client;\n\n // -----------------------------------------------------------------------------------\n\n constructor(context?: BaseAPIContext) {\n context = context || {};\n\n this.setClient(context.client);\n }\n\n // -----------------------------------------------------------------------------------\n\n setClient(input?: Client | RequestBaseOptions) {\n this.client = isClient(input) ?\n input :\n createClient(input);\n }\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { BuildInput } from 'rapiq';\nimport { buildQuery } from 'rapiq';\nimport type { Event } from './entity';\nimport type { CollectionResourceResponse, SingleResourceResponse } from '../types-base';\nimport { BaseAPI } from '../base';\n\nexport class EventAPI extends BaseAPI {\n async getMany(options?: BuildInput<Event>): Promise<CollectionResourceResponse<Event>> {\n const { data: response } = await this.client.get(`events${buildQuery(options)}`);\n return response;\n }\n\n async getOne(id: Event['id']): Promise<SingleResourceResponse<Event>> {\n const { data: response } = await this.client.get(`events/${id}`);\n\n return response;\n }\n\n async delete(id: Event['id']): Promise<SingleResourceResponse<Event>> {\n const { data: response } = await this.client.delete(`events/${id}`);\n\n return response;\n }\n\n async update(id: Event['id'], data: Partial<Event>): Promise<SingleResourceResponse<Event>> {\n const { data: response } = await this.client.post(`events/${id}`, data);\n\n return response;\n }\n\n async create(data: Partial<Event>): Promise<SingleResourceResponse<Event>> {\n const { data: response } = await this.client.post('events', data);\n\n return response;\n }\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createValidator } from '@validup/adapter-zod';\nimport { Container } from 'validup';\nimport zod from 'zod';\nimport type { Event } from './entity';\n\nexport class EventValidator extends Container<Event> {\n protected initialize() {\n super.initialize();\n\n this.mount(\n 'ref_type',\n createValidator(\n zod\n .string()\n .min(3)\n .max(128),\n ),\n );\n\n this.mount(\n 'ref_id',\n { optional: true },\n createValidator(\n zod\n .uuidv4()\n .nullable(),\n ),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'scope',\n createValidator(\n zod\n .string()\n .min(3)\n .max(128),\n ),\n );\n\n this.mount(\n 'name',\n createValidator(\n zod\n .string()\n .min(3)\n .max(128),\n ),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'data',\n { optional: true },\n createValidator(\n zod\n .record(zod.string(), zod.any())\n .nullable(),\n ),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'expiring',\n { optional: true },\n createValidator(\n zod\n .boolean()\n .nullable(),\n ),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'request_path',\n { optional: true },\n createValidator(zod.string().min(3).max(256).nullable()),\n );\n\n this.mount(\n 'request_method',\n { optional: true },\n createValidator(zod.string().min(3).max(10).nullable()),\n );\n\n this.mount(\n 'request_ip_address',\n { optional: true },\n createValidator(zod.ipv4().nullable()),\n );\n\n this.mount(\n 'request_user_agent',\n { optional: true },\n createValidator(zod.string().min(3).max(512).nullable()),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'actor_type',\n { optional: true },\n createValidator(zod.string().min(3).max(64).nullable()),\n );\n\n this.mount(\n 'actor_id',\n { optional: true },\n createValidator(zod.uuidv4().nullable()),\n );\n\n this.mount(\n 'actor_name',\n { optional: true },\n createValidator(zod.string().min(3).max(64).nullable()),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'realm_id',\n { optional: true },\n createValidator(zod.uuidv4().nullable()),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'expires_at',\n { optional: true },\n createValidator(\n zod.iso.datetime()\n .nullable(),\n ),\n );\n }\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { BuildInput } from 'rapiq';\nimport { buildQuery } from 'rapiq';\nimport type { Log, LogInput } from './entity';\nimport type { CollectionResourceResponse, SingleResourceResponse } from '../types-base';\nimport { BaseAPI } from '../base';\n\nexport class LogAPI extends BaseAPI {\n async getMany(options?: BuildInput<Log>): Promise<CollectionResourceResponse<Log>> {\n const { data: response } = await this.client.get(`logs${buildQuery(options)}`);\n return response;\n }\n\n async deleteMany(options?: BuildInput<Log>): Promise<void> {\n await this.client.delete(`logs${buildQuery(options)}`);\n }\n\n async create(data: LogInput): Promise<SingleResourceResponse<Log>> {\n const { data: response } = await this.client.post('logs', data);\n\n return response;\n }\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum LogLevel {\n /**\n * indicates that the system is unusable\n * and requires immediate attention\n */\n EMERGENCE = 'emerg',\n\n /**\n * indicates that immediate action is necessary\n * to resolve a critical issue.\n */\n ALERT = 'alert',\n\n /**\n * signifies critical conditions in the program that demand\n * intervention to prevent system failure.\n */\n CRITICAL = 'crit',\n\n /**\n * indicates error conditions that impair\n * some operation but are less severe than critical situations.\n */\n ERROR = 'error',\n\n /**\n * signifies potential issues that may lead to errors\n * or unexpected behavior in the future if not addressed.\n */\n WARNING = 'warn',\n\n /**\n * applies to normal but significant\n * conditions that may require monitoring\n */\n NOTICE = 'notice',\n\n /**\n * includes messages that provide a record\n * of the normal operation of the system.\n */\n INFORMATIONAL = 'info',\n\n /**\n * intended for logging detailed information about the system\n * for debugging purposes.\n */\n DEBUG = 'debug',\n}\n\nexport enum LogLevelColor {\n EMERGENCE = '#8B0000',\n ALERT = '#FF0000',\n CRITICAL = '#FF4500',\n ERROR = '#FF6347',\n WARNING = '#FFD700',\n NOTICE = '#1E90FF',\n INFORMATIONAL = '#228B22',\n DEBUG = '#A9A9A9',\n}\n\nexport enum LogFlag {\n CHANNEL = 'channel',\n\n COMPONENT = 'component',\n\n SERVICE = 'service',\n\n LEVEL = 'level',\n\n REF_TYPE = 'ref_type',\n\n REF_ID = 'ref_id',\n}\n\nexport enum LogChannel {\n HTTP = 'http',\n WEBSOCKET = 'websocket',\n BACKGROUND = 'background',\n SYSTEM = 'system',\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Log, LogInput } from './entity';\n\nexport function normalizeLogInput(input: LogInput) : Log {\n return {\n ...input,\n time: input.time || new Date().toISOString(),\n labels: input.labels || {},\n };\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createValidator } from '@validup/adapter-zod';\nimport { Container } from 'validup';\nimport zod from 'zod';\nimport { LogChannel, LogLevel } from './constants';\nimport type { LogInput } from './entity';\n\nexport class LogValidator extends Container<LogInput> {\n protected initialize() {\n super.initialize();\n\n this.mount(\n 'time',\n { optional: true },\n createValidator(\n zod\n .string()\n .min(0)\n .max(20)\n .or(zod.bigint())\n .optional(),\n ),\n );\n\n this.mount(\n 'message',\n createValidator(\n zod\n .string()\n .min(3)\n .max(4096),\n ),\n );\n\n this.mount(\n 'service',\n createValidator(\n zod\n .string()\n .min(3)\n .max(64),\n ),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'level',\n createValidator(\n zod\n .enum(Object.values(LogLevel)),\n ),\n );\n\n this.mount(\n 'channel',\n createValidator(\n zod\n .enum(Object.values(LogChannel)),\n ),\n );\n\n this.mount(\n 'labels',\n { optional: true },\n createValidator(\n zod\n .record(zod.string(), zod.string())\n .nullable(),\n ),\n );\n }\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum DomainType {\n EVENT = 'event',\n LOG = 'log',\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { RequestBaseOptions } from 'hapic';\nimport { Client, HookName, isClientError } from 'hapic';\nimport {\n EventAPI,\n LogAPI,\n} from '../../domains';\n\nexport class APIClient extends Client {\n public readonly event : EventAPI;\n\n public readonly log : LogAPI;\n\n constructor(config: RequestBaseOptions) {\n super(config);\n\n this.event = new EventAPI({ client: this });\n this.log = new LogAPI({ client: this });\n\n this.on(HookName.RESPONSE_ERROR, ((error) => {\n if (\n isClientError(error) &&\n error.response &&\n error.response.data &&\n typeof error.response.data.message === 'string'\n ) {\n error.message = error.response.data.message;\n }\n\n throw error;\n }));\n }\n}\n"],"names":["BaseAPI","client","context","setClient","input","isClient","createClient","EventAPI","getMany","options","data","response","get","buildQuery","getOne","id","delete","update","post","create","EventValidator","Container","initialize","mount","createValidator","zod","string","min","max","optional","uuidv4","nullable","record","any","boolean","ipv4","iso","datetime","LogAPI","deleteMany","LogLevel","LogLevelColor","LogFlag","LogChannel","normalizeLogInput","time","Date","toISOString","labels","LogValidator","or","bigint","enum","Object","values","DomainType","APIClient","Client","event","log","config","on","HookName","RESPONSE_ERROR","error","isClientError","message"],"mappings":"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"}
package/package.json CHANGED
@@ -1,40 +1,39 @@
1
1
  {
2
2
  "name": "@privateaim/telemetry-kit",
3
- "version": "0.8.20",
3
+ "type": "module",
4
+ "version": "0.8.22",
4
5
  "license": "Apache-2.0",
5
6
  "description": "",
7
+ "module": "./dist/index.mjs",
8
+ "types": "./dist/index.d.ts",
6
9
  "exports": {
7
10
  "./package.json": "./package.json",
8
11
  ".": {
9
12
  "types": "./dist/index.d.ts",
10
- "import": "./dist/index.mjs",
11
- "require": "./dist/index.cjs"
13
+ "import": "./dist/index.mjs"
12
14
  }
13
15
  },
14
- "main": "./dist/index.cjs",
15
- "module": "./dist/index.mjs",
16
- "types": "./dist/index.d.ts",
17
16
  "author": {
18
17
  "name": "Peter Placzek",
19
18
  "email": "admin@tada5hi.net",
20
19
  "url": "https://github.com/tada5hi"
21
20
  },
22
21
  "dependencies": {
23
- "@validup/adapter-zod": "^0.1.11",
22
+ "@validup/adapter-zod": "^0.1.12",
24
23
  "validup": "^0.1.9",
25
- "zod": "^4.1.12"
24
+ "zod": "^4.2.1"
26
25
  },
27
26
  "devDependencies": {
28
- "@authup/kit": "^1.0.0-beta.27",
29
- "@authup/core-kit": "^1.0.0-beta.27",
30
- "@privateaim/kit": "^0.8.20",
27
+ "@authup/kit": "^1.0.0-beta.28",
28
+ "@authup/core-kit": "^1.0.0-beta.28",
29
+ "@privateaim/kit": "^0.8.22",
31
30
  "hapic": "^2.7.0",
32
31
  "rapiq": "^0.9.0"
33
32
  },
34
33
  "peerDependencies": {
35
- "@authup/kit": "^1.0.0-beta.27",
36
- "@authup/core-kit": "^1.0.0-beta.27",
37
- "@privateaim/kit": "^0.8.20",
34
+ "@authup/kit": "^1.0.0-beta.28",
35
+ "@authup/core-kit": "^1.0.0-beta.28",
36
+ "@privateaim/kit": "^0.8.22",
38
37
  "hapic": "^2.7.0",
39
38
  "rapiq": "^0.9.0"
40
39
  },
package/rollup.config.mjs CHANGED
@@ -10,10 +10,5 @@ import fs from 'node:fs';
10
10
  import { createConfig } from '../../rollup.config.mjs';
11
11
 
12
12
  export default createConfig({
13
- pkg: JSON.parse(fs.readFileSync(new URL('./package.json', import.meta.url), {encoding: 'utf-8'})),
14
- swc: {
15
- jsc: {
16
- target: 'es2016'
17
- }
18
- }
13
+ pkg: JSON.parse(fs.readFileSync(new URL('./package.json', import.meta.url), { encoding: 'utf-8' })),
19
14
  });
@@ -10,9 +10,9 @@ import type { LogChannel, LogLevel } from './constants';
10
10
  // todo: update logger-transport on new top level log flags
11
11
  export interface Log {
12
12
  /**
13
- * Time in micro seconds
13
+ * ISO String
14
14
  */
15
- time: string | bigint,
15
+ time: string,
16
16
 
17
17
  /**
18
18
  * message
@@ -5,13 +5,12 @@
5
5
  * view the LICENSE file that was distributed with this source code.
6
6
  */
7
7
 
8
- import { nanoSeconds } from '@privateaim/kit';
9
8
  import type { Log, LogInput } from './entity';
10
9
 
11
10
  export function normalizeLogInput(input: LogInput) : Log {
12
11
  return {
13
12
  ...input,
14
- time: input.time || nanoSeconds(),
13
+ time: input.time || new Date().toISOString(),
15
14
  labels: input.labels || {},
16
15
  };
17
16
  }
@@ -34,7 +34,7 @@ export class LogValidator extends Container<LogInput> {
34
34
  zod
35
35
  .string()
36
36
  .min(3)
37
- .max(2048),
37
+ .max(4096),
38
38
  ),
39
39
  );
40
40
 
package/dist/index.cjs DELETED
@@ -1,416 +0,0 @@
1
- 'use strict';
2
-
3
- var hapic = require('hapic');
4
- var rapiq = require('rapiq');
5
- var adapterZod = require('@validup/adapter-zod');
6
- var validup = require('validup');
7
- var zod = require('zod');
8
- var kit = require('@privateaim/kit');
9
-
10
- /*
11
- * Copyright (c) 2023-2024.
12
- * Author Peter Placzek (tada5hi)
13
- * For the full copyright and license information,
14
- * view the LICENSE file that was distributed with this source code.
15
- */ function _define_property$2(obj, key, value) {
16
- if (key in obj) {
17
- Object.defineProperty(obj, key, {
18
- value: value,
19
- enumerable: true,
20
- configurable: true,
21
- writable: true
22
- });
23
- } else {
24
- obj[key] = value;
25
- }
26
- return obj;
27
- }
28
- class BaseAPI {
29
- // -----------------------------------------------------------------------------------
30
- setClient(input) {
31
- this.client = hapic.isClient(input) ? input : hapic.createClient(input);
32
- }
33
- // -----------------------------------------------------------------------------------
34
- constructor(context){
35
- _define_property$2(this, "client", void 0);
36
- context = context || {};
37
- this.setClient(context.client);
38
- }
39
- }
40
-
41
- /*
42
- * Copyright (c) 2021-2024.
43
- * Author Peter Placzek (tada5hi)
44
- * For the full copyright and license information,
45
- * view the LICENSE file that was distributed with this source code.
46
- */ function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
47
- try {
48
- var info = gen[key](arg);
49
- var value = info.value;
50
- } catch (error) {
51
- reject(error);
52
- return;
53
- }
54
- if (info.done) {
55
- resolve(value);
56
- } else {
57
- Promise.resolve(value).then(_next, _throw);
58
- }
59
- }
60
- function _async_to_generator$1(fn) {
61
- return function() {
62
- var self = this, args = arguments;
63
- return new Promise(function(resolve, reject) {
64
- var gen = fn.apply(self, args);
65
- function _next(value) {
66
- asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "next", value);
67
- }
68
- function _throw(err) {
69
- asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "throw", err);
70
- }
71
- _next(undefined);
72
- });
73
- };
74
- }
75
- class EventAPI extends BaseAPI {
76
- getMany(options) {
77
- return _async_to_generator$1(function*() {
78
- const { data: response } = yield this.client.get(`events${rapiq.buildQuery(options)}`);
79
- return response;
80
- }).call(this);
81
- }
82
- getOne(id) {
83
- return _async_to_generator$1(function*() {
84
- const { data: response } = yield this.client.get(`events/${id}`);
85
- return response;
86
- }).call(this);
87
- }
88
- delete(id) {
89
- return _async_to_generator$1(function*() {
90
- const { data: response } = yield this.client.delete(`events/${id}`);
91
- return response;
92
- }).call(this);
93
- }
94
- update(id, data) {
95
- return _async_to_generator$1(function*() {
96
- const { data: response } = yield this.client.post(`events/${id}`, data);
97
- return response;
98
- }).call(this);
99
- }
100
- create(data) {
101
- return _async_to_generator$1(function*() {
102
- const { data: response } = yield this.client.post('events', data);
103
- return response;
104
- }).call(this);
105
- }
106
- }
107
-
108
- class EventValidator extends validup.Container {
109
- initialize() {
110
- super.initialize();
111
- this.mount('ref_type', adapterZod.createValidator(zod.string().min(3).max(128)));
112
- this.mount('ref_id', {
113
- optional: true
114
- }, adapterZod.createValidator(zod.uuidv4().nullable()));
115
- // ----------------------------------------------
116
- this.mount('scope', adapterZod.createValidator(zod.string().min(3).max(128)));
117
- this.mount('name', adapterZod.createValidator(zod.string().min(3).max(128)));
118
- // ----------------------------------------------
119
- this.mount('data', {
120
- optional: true
121
- }, adapterZod.createValidator(zod.record(zod.string(), zod.any()).nullable()));
122
- // ----------------------------------------------
123
- this.mount('expiring', {
124
- optional: true
125
- }, adapterZod.createValidator(zod.boolean().nullable()));
126
- // ----------------------------------------------
127
- this.mount('request_path', {
128
- optional: true
129
- }, adapterZod.createValidator(zod.string().min(3).max(256).nullable()));
130
- this.mount('request_method', {
131
- optional: true
132
- }, adapterZod.createValidator(zod.string().min(3).max(10).nullable()));
133
- this.mount('request_ip_address', {
134
- optional: true
135
- }, adapterZod.createValidator(zod.ipv4().nullable()));
136
- this.mount('request_user_agent', {
137
- optional: true
138
- }, adapterZod.createValidator(zod.string().min(3).max(512).nullable()));
139
- // ----------------------------------------------
140
- this.mount('actor_type', {
141
- optional: true
142
- }, adapterZod.createValidator(zod.string().min(3).max(64).nullable()));
143
- this.mount('actor_id', {
144
- optional: true
145
- }, adapterZod.createValidator(zod.uuidv4().nullable()));
146
- this.mount('actor_name', {
147
- optional: true
148
- }, adapterZod.createValidator(zod.string().min(3).max(64).nullable()));
149
- // ----------------------------------------------
150
- this.mount('realm_id', {
151
- optional: true
152
- }, adapterZod.createValidator(zod.uuidv4().nullable()));
153
- // ----------------------------------------------
154
- this.mount('expires_at', {
155
- optional: true
156
- }, adapterZod.createValidator(zod.iso.datetime().nullable()));
157
- }
158
- }
159
-
160
- /*
161
- * Copyright (c) 2021-2024.
162
- * Author Peter Placzek (tada5hi)
163
- * For the full copyright and license information,
164
- * view the LICENSE file that was distributed with this source code.
165
- */ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
166
- try {
167
- var info = gen[key](arg);
168
- var value = info.value;
169
- } catch (error) {
170
- reject(error);
171
- return;
172
- }
173
- if (info.done) {
174
- resolve(value);
175
- } else {
176
- Promise.resolve(value).then(_next, _throw);
177
- }
178
- }
179
- function _async_to_generator(fn) {
180
- return function() {
181
- var self = this, args = arguments;
182
- return new Promise(function(resolve, reject) {
183
- var gen = fn.apply(self, args);
184
- function _next(value) {
185
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
186
- }
187
- function _throw(err) {
188
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
189
- }
190
- _next(undefined);
191
- });
192
- };
193
- }
194
- class LogAPI extends BaseAPI {
195
- getMany(options) {
196
- return _async_to_generator(function*() {
197
- const { data: response } = yield this.client.get(`logs${rapiq.buildQuery(options)}`);
198
- return response;
199
- }).call(this);
200
- }
201
- deleteMany(options) {
202
- return _async_to_generator(function*() {
203
- yield this.client.delete(`logs${rapiq.buildQuery(options)}`);
204
- }).call(this);
205
- }
206
- create(data) {
207
- return _async_to_generator(function*() {
208
- const { data: response } = yield this.client.post('logs', data);
209
- return response;
210
- }).call(this);
211
- }
212
- }
213
-
214
- /*
215
- * Copyright (c) 2025.
216
- * Author Peter Placzek (tada5hi)
217
- * For the full copyright and license information,
218
- * view the LICENSE file that was distributed with this source code.
219
- */ var LogLevel = /*#__PURE__*/ function(LogLevel) {
220
- /**
221
- * indicates that the system is unusable
222
- * and requires immediate attention
223
- */ LogLevel["EMERGENCE"] = "emerg";
224
- /**
225
- * indicates that immediate action is necessary
226
- * to resolve a critical issue.
227
- */ LogLevel["ALERT"] = "alert";
228
- /**
229
- * signifies critical conditions in the program that demand
230
- * intervention to prevent system failure.
231
- */ LogLevel["CRITICAL"] = "crit";
232
- /**
233
- * indicates error conditions that impair
234
- * some operation but are less severe than critical situations.
235
- */ LogLevel["ERROR"] = "error";
236
- /**
237
- * signifies potential issues that may lead to errors
238
- * or unexpected behavior in the future if not addressed.
239
- */ LogLevel["WARNING"] = "warn";
240
- /**
241
- * applies to normal but significant
242
- * conditions that may require monitoring
243
- */ LogLevel["NOTICE"] = "notice";
244
- /**
245
- * includes messages that provide a record
246
- * of the normal operation of the system.
247
- */ LogLevel["INFORMATIONAL"] = "info";
248
- /**
249
- * intended for logging detailed information about the system
250
- * for debugging purposes.
251
- */ LogLevel["DEBUG"] = "debug";
252
- return LogLevel;
253
- }({});
254
- var LogLevelColor = /*#__PURE__*/ function(LogLevelColor) {
255
- LogLevelColor["EMERGENCE"] = "#8B0000";
256
- LogLevelColor["ALERT"] = "#FF0000";
257
- LogLevelColor["CRITICAL"] = "#FF4500";
258
- LogLevelColor["ERROR"] = "#FF6347";
259
- LogLevelColor["WARNING"] = "#FFD700";
260
- LogLevelColor["NOTICE"] = "#1E90FF";
261
- LogLevelColor["INFORMATIONAL"] = "#228B22";
262
- LogLevelColor["DEBUG"] = "#A9A9A9";
263
- return LogLevelColor;
264
- }({});
265
- var LogFlag = /*#__PURE__*/ function(LogFlag) {
266
- LogFlag["CHANNEL"] = "channel";
267
- LogFlag["COMPONENT"] = "component";
268
- LogFlag["SERVICE"] = "service";
269
- LogFlag["LEVEL"] = "level";
270
- LogFlag["REF_TYPE"] = "ref_type";
271
- LogFlag["REF_ID"] = "ref_id";
272
- return LogFlag;
273
- }({});
274
- var LogChannel = /*#__PURE__*/ function(LogChannel) {
275
- LogChannel["HTTP"] = "http";
276
- LogChannel["WEBSOCKET"] = "websocket";
277
- LogChannel["BACKGROUND"] = "background";
278
- LogChannel["SYSTEM"] = "system";
279
- return LogChannel;
280
- }({});
281
-
282
- /*
283
- * Copyright (c) 2025.
284
- * Author Peter Placzek (tada5hi)
285
- * For the full copyright and license information,
286
- * view the LICENSE file that was distributed with this source code.
287
- */ function _define_property$1(obj, key, value) {
288
- if (key in obj) {
289
- Object.defineProperty(obj, key, {
290
- value: value,
291
- enumerable: true,
292
- configurable: true,
293
- writable: true
294
- });
295
- } else {
296
- obj[key] = value;
297
- }
298
- return obj;
299
- }
300
- function _object_spread(target) {
301
- for(var i = 1; i < arguments.length; i++){
302
- var source = arguments[i] != null ? arguments[i] : {};
303
- var ownKeys = Object.keys(source);
304
- if (typeof Object.getOwnPropertySymbols === "function") {
305
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
306
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
307
- }));
308
- }
309
- ownKeys.forEach(function(key) {
310
- _define_property$1(target, key, source[key]);
311
- });
312
- }
313
- return target;
314
- }
315
- function ownKeys(object, enumerableOnly) {
316
- var keys = Object.keys(object);
317
- if (Object.getOwnPropertySymbols) {
318
- var symbols = Object.getOwnPropertySymbols(object);
319
- keys.push.apply(keys, symbols);
320
- }
321
- return keys;
322
- }
323
- function _object_spread_props(target, source) {
324
- source = source != null ? source : {};
325
- if (Object.getOwnPropertyDescriptors) {
326
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
327
- } else {
328
- ownKeys(Object(source)).forEach(function(key) {
329
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
330
- });
331
- }
332
- return target;
333
- }
334
- function normalizeLogInput(input) {
335
- return _object_spread_props(_object_spread({}, input), {
336
- time: input.time || kit.nanoSeconds(),
337
- labels: input.labels || {}
338
- });
339
- }
340
-
341
- class LogValidator extends validup.Container {
342
- initialize() {
343
- super.initialize();
344
- this.mount('time', {
345
- optional: true
346
- }, adapterZod.createValidator(zod.string().min(0).max(20).or(zod.bigint()).optional()));
347
- this.mount('message', adapterZod.createValidator(zod.string().min(3).max(2048)));
348
- this.mount('service', adapterZod.createValidator(zod.string().min(3).max(64)));
349
- // ----------------------------------------------
350
- this.mount('level', adapterZod.createValidator(zod.enum(Object.values(LogLevel))));
351
- this.mount('channel', adapterZod.createValidator(zod.enum(Object.values(LogChannel))));
352
- this.mount('labels', {
353
- optional: true
354
- }, adapterZod.createValidator(zod.record(zod.string(), zod.string()).nullable()));
355
- }
356
- }
357
-
358
- /*
359
- * Copyright (c) 2025.
360
- * Author Peter Placzek (tada5hi)
361
- * For the full copyright and license information,
362
- * view the LICENSE file that was distributed with this source code.
363
- */ var DomainType = /*#__PURE__*/ function(DomainType) {
364
- DomainType["EVENT"] = "event";
365
- DomainType["LOG"] = "log";
366
- return DomainType;
367
- }({});
368
-
369
- /*
370
- * Copyright (c) 2022-2024.
371
- * Author Peter Placzek (tada5hi)
372
- * For the full copyright and license information,
373
- * view the LICENSE file that was distributed with this source code.
374
- */ function _define_property(obj, key, value) {
375
- if (key in obj) {
376
- Object.defineProperty(obj, key, {
377
- value: value,
378
- enumerable: true,
379
- configurable: true,
380
- writable: true
381
- });
382
- } else {
383
- obj[key] = value;
384
- }
385
- return obj;
386
- }
387
- class APIClient extends hapic.Client {
388
- constructor(config){
389
- super(config), _define_property(this, "event", void 0), _define_property(this, "log", void 0);
390
- this.event = new EventAPI({
391
- client: this
392
- });
393
- this.log = new LogAPI({
394
- client: this
395
- });
396
- this.on(hapic.HookName.RESPONSE_ERROR, (error)=>{
397
- if (hapic.isClientError(error) && error.response && error.response.data && typeof error.response.data.message === 'string') {
398
- error.message = error.response.data.message;
399
- }
400
- throw error;
401
- });
402
- }
403
- }
404
-
405
- exports.APIClient = APIClient;
406
- exports.DomainType = DomainType;
407
- exports.EventAPI = EventAPI;
408
- exports.EventValidator = EventValidator;
409
- exports.LogAPI = LogAPI;
410
- exports.LogChannel = LogChannel;
411
- exports.LogFlag = LogFlag;
412
- exports.LogLevel = LogLevel;
413
- exports.LogLevelColor = LogLevelColor;
414
- exports.LogValidator = LogValidator;
415
- exports.normalizeLogInput = normalizeLogInput;
416
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/domains/base.ts","../src/domains/event/api.ts","../src/domains/event/validator.ts","../src/domains/log/api.ts","../src/domains/log/constants.ts","../src/domains/log/helpers.ts","../src/domains/log/validator.ts","../src/domains/constants.ts","../src/http/api-client/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2023-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createClient, isClient } from 'hapic';\nimport type { Client, RequestBaseOptions } from 'hapic';\nimport type { BaseAPIContext } from './types-base';\n\nexport class BaseAPI {\n protected client! : Client;\n\n // -----------------------------------------------------------------------------------\n\n constructor(context?: BaseAPIContext) {\n context = context || {};\n\n this.setClient(context.client);\n }\n\n // -----------------------------------------------------------------------------------\n\n setClient(input?: Client | RequestBaseOptions) {\n this.client = isClient(input) ?\n input :\n createClient(input);\n }\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { BuildInput } from 'rapiq';\nimport { buildQuery } from 'rapiq';\nimport type { Event } from './entity';\nimport type { CollectionResourceResponse, SingleResourceResponse } from '../types-base';\nimport { BaseAPI } from '../base';\n\nexport class EventAPI extends BaseAPI {\n async getMany(options?: BuildInput<Event>): Promise<CollectionResourceResponse<Event>> {\n const { data: response } = await this.client.get(`events${buildQuery(options)}`);\n return response;\n }\n\n async getOne(id: Event['id']): Promise<SingleResourceResponse<Event>> {\n const { data: response } = await this.client.get(`events/${id}`);\n\n return response;\n }\n\n async delete(id: Event['id']): Promise<SingleResourceResponse<Event>> {\n const { data: response } = await this.client.delete(`events/${id}`);\n\n return response;\n }\n\n async update(id: Event['id'], data: Partial<Event>): Promise<SingleResourceResponse<Event>> {\n const { data: response } = await this.client.post(`events/${id}`, data);\n\n return response;\n }\n\n async create(data: Partial<Event>): Promise<SingleResourceResponse<Event>> {\n const { data: response } = await this.client.post('events', data);\n\n return response;\n }\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createValidator } from '@validup/adapter-zod';\nimport { Container } from 'validup';\nimport zod from 'zod';\nimport type { Event } from './entity';\n\nexport class EventValidator extends Container<Event> {\n protected initialize() {\n super.initialize();\n\n this.mount(\n 'ref_type',\n createValidator(\n zod\n .string()\n .min(3)\n .max(128),\n ),\n );\n\n this.mount(\n 'ref_id',\n { optional: true },\n createValidator(\n zod\n .uuidv4()\n .nullable(),\n ),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'scope',\n createValidator(\n zod\n .string()\n .min(3)\n .max(128),\n ),\n );\n\n this.mount(\n 'name',\n createValidator(\n zod\n .string()\n .min(3)\n .max(128),\n ),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'data',\n { optional: true },\n createValidator(\n zod\n .record(zod.string(), zod.any())\n .nullable(),\n ),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'expiring',\n { optional: true },\n createValidator(\n zod\n .boolean()\n .nullable(),\n ),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'request_path',\n { optional: true },\n createValidator(zod.string().min(3).max(256).nullable()),\n );\n\n this.mount(\n 'request_method',\n { optional: true },\n createValidator(zod.string().min(3).max(10).nullable()),\n );\n\n this.mount(\n 'request_ip_address',\n { optional: true },\n createValidator(zod.ipv4().nullable()),\n );\n\n this.mount(\n 'request_user_agent',\n { optional: true },\n createValidator(zod.string().min(3).max(512).nullable()),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'actor_type',\n { optional: true },\n createValidator(zod.string().min(3).max(64).nullable()),\n );\n\n this.mount(\n 'actor_id',\n { optional: true },\n createValidator(zod.uuidv4().nullable()),\n );\n\n this.mount(\n 'actor_name',\n { optional: true },\n createValidator(zod.string().min(3).max(64).nullable()),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'realm_id',\n { optional: true },\n createValidator(zod.uuidv4().nullable()),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'expires_at',\n { optional: true },\n createValidator(\n zod.iso.datetime()\n .nullable(),\n ),\n );\n }\n}\n","/*\n * Copyright (c) 2021-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { BuildInput } from 'rapiq';\nimport { buildQuery } from 'rapiq';\nimport type { Log, LogInput } from './entity';\nimport type { CollectionResourceResponse, SingleResourceResponse } from '../types-base';\nimport { BaseAPI } from '../base';\n\nexport class LogAPI extends BaseAPI {\n async getMany(options?: BuildInput<Log>): Promise<CollectionResourceResponse<Log>> {\n const { data: response } = await this.client.get(`logs${buildQuery(options)}`);\n return response;\n }\n\n async deleteMany(options?: BuildInput<Log>): Promise<void> {\n await this.client.delete(`logs${buildQuery(options)}`);\n }\n\n async create(data: LogInput): Promise<SingleResourceResponse<Log>> {\n const { data: response } = await this.client.post('logs', data);\n\n return response;\n }\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum LogLevel {\n /**\n * indicates that the system is unusable\n * and requires immediate attention\n */\n EMERGENCE = 'emerg',\n\n /**\n * indicates that immediate action is necessary\n * to resolve a critical issue.\n */\n ALERT = 'alert',\n\n /**\n * signifies critical conditions in the program that demand\n * intervention to prevent system failure.\n */\n CRITICAL = 'crit',\n\n /**\n * indicates error conditions that impair\n * some operation but are less severe than critical situations.\n */\n ERROR = 'error',\n\n /**\n * signifies potential issues that may lead to errors\n * or unexpected behavior in the future if not addressed.\n */\n WARNING = 'warn',\n\n /**\n * applies to normal but significant\n * conditions that may require monitoring\n */\n NOTICE = 'notice',\n\n /**\n * includes messages that provide a record\n * of the normal operation of the system.\n */\n INFORMATIONAL = 'info',\n\n /**\n * intended for logging detailed information about the system\n * for debugging purposes.\n */\n DEBUG = 'debug',\n}\n\nexport enum LogLevelColor {\n EMERGENCE = '#8B0000',\n ALERT = '#FF0000',\n CRITICAL = '#FF4500',\n ERROR = '#FF6347',\n WARNING = '#FFD700',\n NOTICE = '#1E90FF',\n INFORMATIONAL = '#228B22',\n DEBUG = '#A9A9A9',\n}\n\nexport enum LogFlag {\n CHANNEL = 'channel',\n\n COMPONENT = 'component',\n\n SERVICE = 'service',\n\n LEVEL = 'level',\n\n REF_TYPE = 'ref_type',\n\n REF_ID = 'ref_id',\n}\n\nexport enum LogChannel {\n HTTP = 'http',\n WEBSOCKET = 'websocket',\n BACKGROUND = 'background',\n SYSTEM = 'system',\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { nanoSeconds } from '@privateaim/kit';\nimport type { Log, LogInput } from './entity';\n\nexport function normalizeLogInput(input: LogInput) : Log {\n return {\n ...input,\n time: input.time || nanoSeconds(),\n labels: input.labels || {},\n };\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { createValidator } from '@validup/adapter-zod';\nimport { Container } from 'validup';\nimport zod from 'zod';\nimport { LogChannel, LogLevel } from './constants';\nimport type { LogInput } from './entity';\n\nexport class LogValidator extends Container<LogInput> {\n protected initialize() {\n super.initialize();\n\n this.mount(\n 'time',\n { optional: true },\n createValidator(\n zod\n .string()\n .min(0)\n .max(20)\n .or(zod.bigint())\n .optional(),\n ),\n );\n\n this.mount(\n 'message',\n createValidator(\n zod\n .string()\n .min(3)\n .max(2048),\n ),\n );\n\n this.mount(\n 'service',\n createValidator(\n zod\n .string()\n .min(3)\n .max(64),\n ),\n );\n\n // ----------------------------------------------\n\n this.mount(\n 'level',\n createValidator(\n zod\n .enum(Object.values(LogLevel)),\n ),\n );\n\n this.mount(\n 'channel',\n createValidator(\n zod\n .enum(Object.values(LogChannel)),\n ),\n );\n\n this.mount(\n 'labels',\n { optional: true },\n createValidator(\n zod\n .record(zod.string(), zod.string())\n .nullable(),\n ),\n );\n }\n}\n","/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nexport enum DomainType {\n EVENT = 'event',\n LOG = 'log',\n}\n","/*\n * Copyright (c) 2022-2024.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { RequestBaseOptions } from 'hapic';\nimport { Client, HookName, isClientError } from 'hapic';\nimport {\n EventAPI,\n LogAPI,\n} from '../../domains';\n\nexport class APIClient extends Client {\n public readonly event : EventAPI;\n\n public readonly log : LogAPI;\n\n constructor(config: RequestBaseOptions) {\n super(config);\n\n this.event = new EventAPI({ client: this });\n this.log = new LogAPI({ client: this });\n\n this.on(HookName.RESPONSE_ERROR, ((error) => {\n if (\n isClientError(error) &&\n error.response &&\n error.response.data &&\n typeof error.response.data.message === 'string'\n ) {\n error.message = error.response.data.message;\n }\n\n throw error;\n }));\n }\n}\n"],"names":["_define_property","BaseAPI","setClient","input","client","isClient","createClient","context","asyncGeneratorStep","EventAPI","getMany","options","data","response","get","buildQuery","getOne","id","delete","update","post","create","EventValidator","Container","initialize","mount","createValidator","zod","string","min","max","optional","uuidv4","nullable","record","any","boolean","ipv4","iso","datetime","LogAPI","deleteMany","LogLevel","LogLevelColor","LogFlag","LogChannel","normalizeLogInput","time","nanoSeconds","labels","LogValidator","or","bigint","enum","Object","values","DomainType","APIClient","Client","config","event","log","on","HookName","RESPONSE_ERROR","error","isClientError","message"],"mappings":";;;;;;;;;AAAA;;;;;AAKC,IAAA,SAAAA,kBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAA;;;;;;;;;;;;;AAMM,MAAMC,OAAAA,CAAAA;;AAaTC,IAAAA,SAAAA,CAAUC,KAAmC,EAAE;AAC3C,QAAA,IAAI,CAACC,MAAM,GAAGC,cAAAA,CAASF,KAAAA,CAAAA,GACnBA,QACAG,kBAAAA,CAAaH,KAAAA,CAAAA;AACrB,IAAA;;AAZA,IAAA,WAAA,CAAYI,OAAwB,CAAE;AAJtC,QAAAP,kBAAA,CAAA,IAAA,EAAUI,UAAV,MAAA,CAAA;AAKIG,QAAAA,OAAAA,GAAUA,WAAW,EAAC;AAEtB,QAAA,IAAI,CAACL,SAAS,CAACK,OAAAA,CAAQH,MAAM,CAAA;AACjC,IAAA;AASJ;;AC7BA;;;;;AAKC,IAAA,SAAAI,oBAAA,CAAA,GAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,GAAA,EAAA,GAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQM,MAAMC,QAAAA,SAAiBR,OAAAA,CAAAA;AACpBS,IAAAA,OAAAA,CAAQC,OAA2B,EAAA;;AACrC,YAAA,MAAM,EAAEC,IAAAA,EAAMC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAACT,MAAM,CAACU,GAAG,CAAC,CAAC,MAAM,EAAEC,iBAAWJ,OAAAA,CAAAA,CAAAA,CAAU,CAAA;YAC/E,OAAOE,QAAAA;AACX,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA;;AAEMG,IAAAA,MAAAA,CAAOC,EAAe,EAAA;;AACxB,YAAA,MAAM,EAAEL,IAAAA,EAAMC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAACT,MAAM,CAACU,GAAG,CAAC,CAAC,OAAO,EAAEG,EAAAA,CAAAA,CAAI,CAAA;YAE/D,OAAOJ,QAAAA;AACX,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA;;AAEMK,IAAAA,MAAAA,CAAOD,EAAe,EAAA;;AACxB,YAAA,MAAM,EAAEL,IAAAA,EAAMC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAACT,MAAM,CAACc,MAAM,CAAC,CAAC,OAAO,EAAED,EAAAA,CAAAA,CAAI,CAAA;YAElE,OAAOJ,QAAAA;AACX,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA;;IAEMM,MAAAA,CAAOF,EAAe,EAAEL,IAAoB,EAAA;;AAC9C,YAAA,MAAM,EAAEA,IAAAA,EAAMC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAACT,MAAM,CAACgB,IAAI,CAAC,CAAC,OAAO,EAAEH,IAAI,EAAEL,IAAAA,CAAAA;YAElE,OAAOC,QAAAA;AACX,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA;;AAEMQ,IAAAA,MAAAA,CAAOT,IAAoB,EAAA;;AAC7B,YAAA,MAAM,EAAEA,IAAAA,EAAMC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAACT,MAAM,CAACgB,IAAI,CAAC,QAAA,EAAUR,IAAAA,CAAAA;YAE5D,OAAOC,QAAAA;AACX,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA;;AACJ;;AC9BO,MAAMS,cAAAA,SAAuBC,iBAAAA,CAAAA;IACtBC,UAAAA,GAAa;AACnB,QAAA,KAAK,CAACA,UAAAA,EAAAA;AAEN,QAAA,IAAI,CAACC,KAAK,CACN,UAAA,EACAC,0BAAAA,CACIC,GAAAA,CACKC,MAAM,EAAA,CACNC,GAAG,CAAC,CAAA,CAAA,CACJC,GAAG,CAAC,GAAA,CAAA,CAAA,CAAA;QAIjB,IAAI,CAACL,KAAK,CACN,QAAA,EACA;YAAEM,QAAAA,EAAU;AAAK,SAAA,EACjBL,0BAAAA,CACIC,GAAAA,CACKK,MAAM,EAAA,CACNC,QAAQ,EAAA,CAAA,CAAA;;AAMrB,QAAA,IAAI,CAACR,KAAK,CACN,OAAA,EACAC,0BAAAA,CACIC,GAAAA,CACKC,MAAM,EAAA,CACNC,GAAG,CAAC,CAAA,CAAA,CACJC,GAAG,CAAC,GAAA,CAAA,CAAA,CAAA;AAIjB,QAAA,IAAI,CAACL,KAAK,CACN,MAAA,EACAC,0BAAAA,CACIC,GAAAA,CACKC,MAAM,EAAA,CACNC,GAAG,CAAC,CAAA,CAAA,CACJC,GAAG,CAAC,GAAA,CAAA,CAAA,CAAA;;QAMjB,IAAI,CAACL,KAAK,CACN,MAAA,EACA;YAAEM,QAAAA,EAAU;SAAK,EACjBL,0BAAAA,CACIC,GAAAA,CACKO,MAAM,CAACP,GAAAA,CAAIC,MAAM,EAAA,EAAID,GAAAA,CAAIQ,GAAG,EAAA,CAAA,CAC5BF,QAAQ,EAAA,CAAA,CAAA;;QAMrB,IAAI,CAACR,KAAK,CACN,UAAA,EACA;YAAEM,QAAAA,EAAU;AAAK,SAAA,EACjBL,0BAAAA,CACIC,GAAAA,CACKS,OAAO,EAAA,CACPH,QAAQ,EAAA,CAAA,CAAA;;QAMrB,IAAI,CAACR,KAAK,CACN,cAAA,EACA;YAAEM,QAAAA,EAAU;SAAK,EACjBL,0BAAAA,CAAgBC,GAAAA,CAAIC,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,GAAA,CAAA,CAAKG,QAAQ,EAAA,CAAA,CAAA;QAGzD,IAAI,CAACR,KAAK,CACN,gBAAA,EACA;YAAEM,QAAAA,EAAU;SAAK,EACjBL,0BAAAA,CAAgBC,GAAAA,CAAIC,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,EAAA,CAAA,CAAIG,QAAQ,EAAA,CAAA,CAAA;QAGxD,IAAI,CAACR,KAAK,CACN,oBAAA,EACA;YAAEM,QAAAA,EAAU;AAAK,SAAA,EACjBL,0BAAAA,CAAgBC,GAAAA,CAAIU,IAAI,EAAA,CAAGJ,QAAQ,EAAA,CAAA,CAAA;QAGvC,IAAI,CAACR,KAAK,CACN,oBAAA,EACA;YAAEM,QAAAA,EAAU;SAAK,EACjBL,0BAAAA,CAAgBC,GAAAA,CAAIC,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,GAAA,CAAA,CAAKG,QAAQ,EAAA,CAAA,CAAA;;QAKzD,IAAI,CAACR,KAAK,CACN,YAAA,EACA;YAAEM,QAAAA,EAAU;SAAK,EACjBL,0BAAAA,CAAgBC,GAAAA,CAAIC,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,EAAA,CAAA,CAAIG,QAAQ,EAAA,CAAA,CAAA;QAGxD,IAAI,CAACR,KAAK,CACN,UAAA,EACA;YAAEM,QAAAA,EAAU;AAAK,SAAA,EACjBL,0BAAAA,CAAgBC,GAAAA,CAAIK,MAAM,EAAA,CAAGC,QAAQ,EAAA,CAAA,CAAA;QAGzC,IAAI,CAACR,KAAK,CACN,YAAA,EACA;YAAEM,QAAAA,EAAU;SAAK,EACjBL,0BAAAA,CAAgBC,GAAAA,CAAIC,MAAM,EAAA,CAAGC,GAAG,CAAC,CAAA,CAAA,CAAGC,GAAG,CAAC,EAAA,CAAA,CAAIG,QAAQ,EAAA,CAAA,CAAA;;QAKxD,IAAI,CAACR,KAAK,CACN,UAAA,EACA;YAAEM,QAAAA,EAAU;AAAK,SAAA,EACjBL,0BAAAA,CAAgBC,GAAAA,CAAIK,MAAM,EAAA,CAAGC,QAAQ,EAAA,CAAA,CAAA;;QAKzC,IAAI,CAACR,KAAK,CACN,YAAA,EACA;YAAEM,QAAAA,EAAU;AAAK,SAAA,EACjBL,2BACIC,GAAAA,CAAIW,GAAG,CAACC,QAAQ,GACXN,QAAQ,EAAA,CAAA,CAAA;AAGzB,IAAA;AACJ;;ACnJA;;;;;AAKC,IAAA,SAAA,kBAAA,CAAA,GAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,GAAA,EAAA,GAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQM,MAAMO,MAAAA,SAAevC,OAAAA,CAAAA;AAClBS,IAAAA,OAAAA,CAAQC,OAAyB,EAAA;;AACnC,YAAA,MAAM,EAAEC,IAAAA,EAAMC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAACT,MAAM,CAACU,GAAG,CAAC,CAAC,IAAI,EAAEC,iBAAWJ,OAAAA,CAAAA,CAAAA,CAAU,CAAA;YAC7E,OAAOE,QAAAA;AACX,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA;;AAEM4B,IAAAA,UAAAA,CAAW9B,OAAyB,EAAA;;YACtC,MAAM,IAAI,CAACP,MAAM,CAACc,MAAM,CAAC,CAAC,IAAI,EAAEH,gBAAAA,CAAWJ,OAAAA,CAAAA,CAAAA,CAAU,CAAA;AACzD,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA;;AAEMU,IAAAA,MAAAA,CAAOT,IAAc,EAAA;;AACvB,YAAA,MAAM,EAAEA,IAAAA,EAAMC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAACT,MAAM,CAACgB,IAAI,CAAC,MAAA,EAAQR,IAAAA,CAAAA;YAE1D,OAAOC,QAAAA;AACX,QAAA,CAAA,CAAA,CAAA,IAAA,CAAA,IAAA,CAAA;;AACJ;;AC5BA;;;;;IAOO,IAAK6B,QAAAA,iBAAAA,SAAAA,QAAAA,EAAAA;AACR;;;AAGC,QAAA,QAAA,CAAA,WAAA,CAAA,GAAA,OAAA;AAGD;;;AAGC,QAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAA;AAGD;;;AAGC,QAAA,QAAA,CAAA,UAAA,CAAA,GAAA,MAAA;AAGD;;;AAGC,QAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAA;AAGD;;;AAGC,QAAA,QAAA,CAAA,SAAA,CAAA,GAAA,MAAA;AAGD;;;AAGC,QAAA,QAAA,CAAA,QAAA,CAAA,GAAA,QAAA;AAGD;;;AAGC,QAAA,QAAA,CAAA,eAAA,CAAA,GAAA,MAAA;AAGD;;;AAGC,QAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAA;AA9COA,IAAAA,OAAAA,QAAAA;AAgDX,CAAA,CAAA,EAAA;AAEM,IAAA,aAAKC,iBAAAA,SAAAA,aAAAA,EAAAA;;;;;;;;;AAAAA,IAAAA,OAAAA,aAAAA;AASX,CAAA,CAAA,EAAA;AAEM,IAAA,OAAKC,iBAAAA,SAAAA,OAAAA,EAAAA;;;;;;;AAAAA,IAAAA,OAAAA,OAAAA;AAYX,CAAA,CAAA,EAAA;AAEM,IAAA,UAAKC,iBAAAA,SAAAA,UAAAA,EAAAA;;;;;AAAAA,IAAAA,OAAAA,UAAAA;AAKX,CAAA,CAAA,EAAA;;ACvFD;;;;;AAKC,IAAA,SAAA7C,kBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKM,SAAS8C,kBAAkB3C,KAAe,EAAA;AAC7C,IAAA,OAAO,oBAAA,CAAA,cAAA,CAAA,EAAA,EACAA,KAAAA,CAAAA,EAAAA;QACH4C,IAAAA,EAAM5C,KAAAA,CAAM4C,IAAI,IAAIC,eAAAA,EAAAA;QACpBC,MAAAA,EAAQ9C,KAAAA,CAAM8C,MAAM,IAAI;;AAEhC;;ACHO,MAAMC,YAAAA,SAAqB3B,iBAAAA,CAAAA;IACpBC,UAAAA,GAAa;AACnB,QAAA,KAAK,CAACA,UAAAA,EAAAA;QAEN,IAAI,CAACC,KAAK,CACN,MAAA,EACA;YAAEM,QAAAA,EAAU;AAAK,SAAA,EACjBL,0BAAAA,CACIC,GAAAA,CACKC,MAAM,EAAA,CACNC,GAAG,CAAC,CAAA,CAAA,CACJC,GAAG,CAAC,IACJqB,EAAE,CAACxB,GAAAA,CAAIyB,MAAM,IACbrB,QAAQ,EAAA,CAAA,CAAA;AAIrB,QAAA,IAAI,CAACN,KAAK,CACN,SAAA,EACAC,0BAAAA,CACIC,GAAAA,CACKC,MAAM,EAAA,CACNC,GAAG,CAAC,CAAA,CAAA,CACJC,GAAG,CAAC,IAAA,CAAA,CAAA,CAAA;AAIjB,QAAA,IAAI,CAACL,KAAK,CACN,SAAA,EACAC,0BAAAA,CACIC,GAAAA,CACKC,MAAM,EAAA,CACNC,GAAG,CAAC,CAAA,CAAA,CACJC,GAAG,CAAC,EAAA,CAAA,CAAA,CAAA;;QAMjB,IAAI,CAACL,KAAK,CACN,OAAA,EACAC,0BAAAA,CACIC,IACK0B,IAAI,CAACC,MAAAA,CAAOC,MAAM,CAACb,QAAAA,CAAAA,CAAAA,CAAAA,CAAAA;QAIhC,IAAI,CAACjB,KAAK,CACN,SAAA,EACAC,0BAAAA,CACIC,IACK0B,IAAI,CAACC,MAAAA,CAAOC,MAAM,CAACV,UAAAA,CAAAA,CAAAA,CAAAA,CAAAA;QAIhC,IAAI,CAACpB,KAAK,CACN,QAAA,EACA;YAAEM,QAAAA,EAAU;SAAK,EACjBL,0BAAAA,CACIC,GAAAA,CACKO,MAAM,CAACP,GAAAA,CAAIC,MAAM,EAAA,EAAID,GAAAA,CAAIC,MAAM,EAAA,CAAA,CAC/BK,QAAQ,EAAA,CAAA,CAAA;AAGzB,IAAA;AACJ;;AC9EA;;;;;IAOO,IAAKuB,UAAAA,iBAAAA,SAAAA,UAAAA,EAAAA;;;AAAAA,IAAAA,OAAAA,UAAAA;AAGX,CAAA,CAAA,EAAA;;ACVD;;;;;AAKC,IAAA,SAAA,gBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAA;;;;;;;;;;;;;AASM,MAAMC,SAAAA,SAAkBC,YAAAA,CAAAA;AAK3B,IAAA,WAAA,CAAYC,MAA0B,CAAE;QACpC,KAAK,CAACA,SALV,gBAAA,CAAA,IAAA,EAAgBC,OAAAA,EAAhB,MAAA,CAAA,EAEA,gBAAA,CAAA,IAAA,EAAgBC,OAAhB,MAAA,CAAA;AAKI,QAAA,IAAI,CAACD,KAAK,GAAG,IAAInD,QAAAA,CAAS;AAAEL,YAAAA,MAAAA,EAAQ;AAAK,SAAA,CAAA;AACzC,QAAA,IAAI,CAACyD,GAAG,GAAG,IAAIrB,MAAAA,CAAO;AAAEpC,YAAAA,MAAAA,EAAQ;AAAK,SAAA,CAAA;AAErC,QAAA,IAAI,CAAC0D,EAAE,CAACC,cAAAA,CAASC,cAAc,EAAG,CAACC,KAAAA,GAAAA;AAC/B,YAAA,IACIC,oBAAcD,KAAAA,CAAAA,IACdA,KAAAA,CAAMpD,QAAQ,IACdoD,KAAAA,CAAMpD,QAAQ,CAACD,IAAI,IACnB,OAAOqD,MAAMpD,QAAQ,CAACD,IAAI,CAACuD,OAAO,KAAK,QAAA,EACzC;AACEF,gBAAAA,KAAAA,CAAME,OAAO,GAAGF,KAAAA,CAAMpD,QAAQ,CAACD,IAAI,CAACuD,OAAO;AAC/C,YAAA;YAEA,MAAMF,KAAAA;AACV,QAAA,CAAA,CAAA;AACJ,IAAA;AACJ;;;;;;;;;;;;;;"}