@privateaim/server-kit 0.8.12 → 0.8.14
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 +31 -0
- package/dist/index.cjs +86 -33
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +48 -34
- package/dist/index.mjs.map +1 -1
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/loki/index.d.ts +3 -0
- package/dist/services/loki/index.d.ts.map +1 -0
- package/dist/services/loki/module.d.ts +3 -0
- package/dist/services/loki/module.d.ts.map +1 -0
- package/dist/services/loki/singleton.d.ts +6 -0
- package/dist/services/loki/singleton.d.ts.map +1 -0
- package/package.json +6 -5
- package/src/services/index.ts +1 -0
- package/src/services/loki/index.ts +9 -0
- package/src/services/loki/module.ts +30 -0
- package/src/services/loki/singleton.ts +26 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.8.14](https://github.com/PrivateAIM/hub/compare/v0.8.13...v0.8.14) (2025-07-10)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* enable custom url for loki compactor & querier ([2c0d7da](https://github.com/PrivateAIM/hub/commit/2c0d7dab59e18a3ba4bbe645366e9576d00fe845))
|
|
9
|
+
* submit & receive logs with loki ([#1100](https://github.com/PrivateAIM/hub/issues/1100)) ([83698d4](https://github.com/PrivateAIM/hub/commit/83698d43549cc3a34410bd01910288ba1b263201))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* **deps:** bump the minorandpatch group across 1 directory with 19 updates ([#1099](https://github.com/PrivateAIM/hub/issues/1099)) ([30b0ab6](https://github.com/PrivateAIM/hub/commit/30b0ab6b748b287380eb84ac0c8aae4ee22e0be7))
|
|
15
|
+
* **deps:** bump the minorandpatch group across 1 directory with 24 updates ([#1084](https://github.com/PrivateAIM/hub/issues/1084)) ([92a3f43](https://github.com/PrivateAIM/hub/commit/92a3f43eb47795a7fff756939a036f2e771bd3cd))
|
|
16
|
+
* **deps:** bump the minorandpatch group across 1 directory with 8 updates ([#1105](https://github.com/PrivateAIM/hub/issues/1105)) ([c4f9255](https://github.com/PrivateAIM/hub/commit/c4f9255832f6473ea1d3fc1793ff9ec2aefacf4c))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Dependencies
|
|
20
|
+
|
|
21
|
+
* The following workspace dependencies were updated
|
|
22
|
+
* dependencies
|
|
23
|
+
* @privateaim/kit bumped from ^0.8.13 to ^0.8.14
|
|
24
|
+
|
|
25
|
+
## [0.8.13](https://github.com/PrivateAIM/hub/compare/v0.8.12...v0.8.13) (2025-05-05)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Dependencies
|
|
29
|
+
|
|
30
|
+
* The following workspace dependencies were updated
|
|
31
|
+
* dependencies
|
|
32
|
+
* @privateaim/kit bumped from ^0.8.12 to ^0.8.13
|
|
33
|
+
|
|
3
34
|
## [0.8.12](https://github.com/PrivateAIM/hub/compare/v0.8.11...v0.8.12) (2025-04-25)
|
|
4
35
|
|
|
5
36
|
|
package/dist/index.cjs
CHANGED
|
@@ -12,6 +12,7 @@ var path = require('node:path');
|
|
|
12
12
|
var typeormExtension = require('typeorm-extension');
|
|
13
13
|
var winston = require('winston');
|
|
14
14
|
var redisEmitter = require('@socket.io/redis-emitter');
|
|
15
|
+
var loki = require('@hapic/loki');
|
|
15
16
|
|
|
16
17
|
/*
|
|
17
18
|
* Copyright (c) 2023-2024.
|
|
@@ -83,30 +84,30 @@ function isQueueRouterPayload(input) {
|
|
|
83
84
|
return kit.isObject(input) && typeof input.id === 'string' && typeof input.type === 'string' && kit.hasOwnProperty(input, 'data') && kit.isObject(input.data) && kit.hasOwnProperty(input, 'metadata') && kit.isObject(input.metadata);
|
|
84
85
|
}
|
|
85
86
|
|
|
86
|
-
const instance$
|
|
87
|
+
const instance$b = singa.singa({
|
|
87
88
|
name: 'amqp'
|
|
88
89
|
});
|
|
89
90
|
function setAmqpClientFactory(factory) {
|
|
90
|
-
instance$
|
|
91
|
+
instance$b.setFactory(factory);
|
|
91
92
|
}
|
|
92
93
|
function isAmqpClientUsable() {
|
|
93
|
-
return instance$
|
|
94
|
+
return instance$b.has() || instance$b.hasFactory();
|
|
94
95
|
}
|
|
95
96
|
function useAmqpClient() {
|
|
96
|
-
return instance$
|
|
97
|
+
return instance$b.use();
|
|
97
98
|
}
|
|
98
99
|
|
|
99
|
-
const instance$
|
|
100
|
+
const instance$a = singa.singa({
|
|
100
101
|
name: 'vault'
|
|
101
102
|
});
|
|
102
103
|
function setVaultFactory(factory) {
|
|
103
|
-
instance$
|
|
104
|
+
instance$a.setFactory(factory);
|
|
104
105
|
}
|
|
105
106
|
function isVaultClientUsable() {
|
|
106
|
-
return instance$
|
|
107
|
+
return instance$a.has() || instance$a.hasFactory();
|
|
107
108
|
}
|
|
108
109
|
function useVaultClient() {
|
|
109
|
-
return instance$
|
|
110
|
+
return instance$a.use();
|
|
110
111
|
}
|
|
111
112
|
|
|
112
113
|
function guessAuthupTokenCreatorOptions() {
|
|
@@ -127,17 +128,17 @@ function guessAuthupTokenCreatorOptions() {
|
|
|
127
128
|
return options;
|
|
128
129
|
}
|
|
129
130
|
|
|
130
|
-
const instance$
|
|
131
|
+
const instance$9 = singa.singa({
|
|
131
132
|
name: 'clientAuthenticationHook'
|
|
132
133
|
});
|
|
133
134
|
function setClientAuthenticationHookFactory(factory) {
|
|
134
|
-
instance$
|
|
135
|
+
instance$9.setFactory(factory);
|
|
135
136
|
}
|
|
136
137
|
function isClientAuthenticationHookUsable() {
|
|
137
|
-
return instance$
|
|
138
|
+
return instance$9.has() || instance$9.hasFactory();
|
|
138
139
|
}
|
|
139
140
|
function useClientAuthenticationHook() {
|
|
140
|
-
return instance$
|
|
141
|
+
return instance$9.use();
|
|
141
142
|
}
|
|
142
143
|
|
|
143
144
|
class AuthupClient extends coreHttpKit.Client {
|
|
@@ -154,49 +155,49 @@ class AuthupClient extends coreHttpKit.Client {
|
|
|
154
155
|
}
|
|
155
156
|
}
|
|
156
157
|
|
|
157
|
-
const instance$
|
|
158
|
+
const instance$8 = singa.singa({
|
|
158
159
|
name: 'authup'
|
|
159
160
|
});
|
|
160
161
|
function useAuthupClient() {
|
|
161
|
-
return instance$
|
|
162
|
+
return instance$8.use();
|
|
162
163
|
}
|
|
163
164
|
function isAuthupClientUsable() {
|
|
164
|
-
return instance$
|
|
165
|
+
return instance$8.has() || instance$8.hasFactory();
|
|
165
166
|
}
|
|
166
167
|
function setAuthupClientFactory(factory) {
|
|
167
|
-
instance$
|
|
168
|
+
instance$8.setFactory(factory);
|
|
168
169
|
}
|
|
169
170
|
|
|
170
|
-
const instance$
|
|
171
|
+
const instance$7 = singa.singa({
|
|
171
172
|
name: 'redis'
|
|
172
173
|
});
|
|
173
174
|
function setRedisFactory(factory) {
|
|
174
|
-
instance$
|
|
175
|
+
instance$7.setFactory(factory);
|
|
175
176
|
}
|
|
176
177
|
function isRedisClientUsable() {
|
|
177
|
-
return instance$
|
|
178
|
+
return instance$7.has() || instance$7.hasFactory();
|
|
178
179
|
}
|
|
179
180
|
function setRedisClient(input) {
|
|
180
|
-
instance$
|
|
181
|
+
instance$7.set(input);
|
|
181
182
|
}
|
|
182
183
|
function useRedisClient() {
|
|
183
|
-
return instance$
|
|
184
|
+
return instance$7.use();
|
|
184
185
|
}
|
|
185
186
|
|
|
186
|
-
const instance$
|
|
187
|
+
const instance$6 = singa.singa({
|
|
187
188
|
name: 'redisPublish',
|
|
188
189
|
factory: ()=>useRedisClient().duplicate()
|
|
189
190
|
});
|
|
190
191
|
function useRedisPublishClient() {
|
|
191
|
-
return instance$
|
|
192
|
+
return instance$6.use();
|
|
192
193
|
}
|
|
193
194
|
|
|
194
|
-
const instance$
|
|
195
|
+
const instance$5 = singa.singa({
|
|
195
196
|
name: 'redisSubscribe',
|
|
196
197
|
factory: ()=>useRedisClient().duplicate()
|
|
197
198
|
});
|
|
198
199
|
function useRedisSubscribeClient() {
|
|
199
|
-
return instance$
|
|
200
|
+
return instance$5.use();
|
|
200
201
|
}
|
|
201
202
|
|
|
202
203
|
/*
|
|
@@ -376,7 +377,7 @@ class Cache {
|
|
|
376
377
|
}
|
|
377
378
|
}
|
|
378
379
|
|
|
379
|
-
const instance$
|
|
380
|
+
const instance$4 = singa.singa({
|
|
380
381
|
name: 'cache',
|
|
381
382
|
factory: ()=>{
|
|
382
383
|
let adapter;
|
|
@@ -389,7 +390,7 @@ const instance$3 = singa.singa({
|
|
|
389
390
|
}
|
|
390
391
|
});
|
|
391
392
|
function useCache() {
|
|
392
|
-
return instance$
|
|
393
|
+
return instance$4.use();
|
|
393
394
|
}
|
|
394
395
|
|
|
395
396
|
function createLogger(ctx = {}) {
|
|
@@ -431,20 +432,20 @@ function createLogger(ctx = {}) {
|
|
|
431
432
|
});
|
|
432
433
|
}
|
|
433
434
|
|
|
434
|
-
const instance$
|
|
435
|
+
const instance$3 = singa.singa({
|
|
435
436
|
name: 'logger'
|
|
436
437
|
});
|
|
437
438
|
function setLoggerFactory(factory) {
|
|
438
|
-
instance$
|
|
439
|
+
instance$3.setFactory(factory);
|
|
439
440
|
}
|
|
440
441
|
function isLoggerUsable() {
|
|
441
|
-
return instance$
|
|
442
|
+
return instance$3.has() || instance$3.hasFactory();
|
|
442
443
|
}
|
|
443
444
|
function setLogger(input) {
|
|
444
|
-
instance$
|
|
445
|
+
instance$3.set(input);
|
|
445
446
|
}
|
|
446
447
|
function useLogger() {
|
|
447
|
-
return instance$
|
|
448
|
+
return instance$3.use();
|
|
448
449
|
}
|
|
449
450
|
|
|
450
451
|
/*
|
|
@@ -609,7 +610,7 @@ class DomainEventSocketPublisher {
|
|
|
609
610
|
}
|
|
610
611
|
}
|
|
611
612
|
|
|
612
|
-
const instance$
|
|
613
|
+
const instance$2 = singa.singa({
|
|
613
614
|
name: 'domainEventPublisher',
|
|
614
615
|
factory: ()=>{
|
|
615
616
|
const publisher = new DomainEventPublisher();
|
|
@@ -622,6 +623,19 @@ const instance$1 = singa.singa({
|
|
|
622
623
|
}
|
|
623
624
|
});
|
|
624
625
|
function useDomainEventPublisher() {
|
|
626
|
+
return instance$2.use();
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
const instance$1 = singa.singa({
|
|
630
|
+
name: 'loki'
|
|
631
|
+
});
|
|
632
|
+
function setLokiFactory(factory) {
|
|
633
|
+
instance$1.setFactory(factory);
|
|
634
|
+
}
|
|
635
|
+
function isLokiClientUsable() {
|
|
636
|
+
return instance$1.has() || instance$1.hasFactory();
|
|
637
|
+
}
|
|
638
|
+
function useLokiClient() {
|
|
625
639
|
return instance$1.use();
|
|
626
640
|
}
|
|
627
641
|
|
|
@@ -769,6 +783,42 @@ Object.defineProperty(exports, "createRedisClient", {
|
|
|
769
783
|
enumerable: true,
|
|
770
784
|
get: function () { return redisExtension.createClient; }
|
|
771
785
|
});
|
|
786
|
+
Object.defineProperty(exports, "LokiClient", {
|
|
787
|
+
enumerable: true,
|
|
788
|
+
get: function () { return loki.LokiClient; }
|
|
789
|
+
});
|
|
790
|
+
Object.defineProperty(exports, "LokiCompactorDeletionRequestCreate", {
|
|
791
|
+
enumerable: true,
|
|
792
|
+
get: function () { return loki.CompactorDeletionRequestCreate; }
|
|
793
|
+
});
|
|
794
|
+
Object.defineProperty(exports, "LokiConfig", {
|
|
795
|
+
enumerable: true,
|
|
796
|
+
get: function () { return loki.Config; }
|
|
797
|
+
});
|
|
798
|
+
Object.defineProperty(exports, "LokiConfigInput", {
|
|
799
|
+
enumerable: true,
|
|
800
|
+
get: function () { return loki.ConfigInput; }
|
|
801
|
+
});
|
|
802
|
+
Object.defineProperty(exports, "LokiDistributorPushStream", {
|
|
803
|
+
enumerable: true,
|
|
804
|
+
get: function () { return loki.DistributorPushStream; }
|
|
805
|
+
});
|
|
806
|
+
Object.defineProperty(exports, "LokiQuerierQueryRangeOptions", {
|
|
807
|
+
enumerable: true,
|
|
808
|
+
get: function () { return loki.QuerierQueryRangeOptions; }
|
|
809
|
+
});
|
|
810
|
+
Object.defineProperty(exports, "LokiQuerierQueryResult", {
|
|
811
|
+
enumerable: true,
|
|
812
|
+
get: function () { return loki.QuerierQueryResult; }
|
|
813
|
+
});
|
|
814
|
+
Object.defineProperty(exports, "createLokiClient", {
|
|
815
|
+
enumerable: true,
|
|
816
|
+
get: function () { return loki.createClient; }
|
|
817
|
+
});
|
|
818
|
+
Object.defineProperty(exports, "nanoSeconds", {
|
|
819
|
+
enumerable: true,
|
|
820
|
+
get: function () { return loki.nanoSeconds; }
|
|
821
|
+
});
|
|
772
822
|
exports.AuthupClient = AuthupClient;
|
|
773
823
|
exports.Cache = Cache;
|
|
774
824
|
exports.ComponentError = ComponentError;
|
|
@@ -790,6 +840,7 @@ exports.isAuthupClientUsable = isAuthupClientUsable;
|
|
|
790
840
|
exports.isClientAuthenticationHookUsable = isClientAuthenticationHookUsable;
|
|
791
841
|
exports.isComponentError = isComponentError;
|
|
792
842
|
exports.isLoggerUsable = isLoggerUsable;
|
|
843
|
+
exports.isLokiClientUsable = isLokiClientUsable;
|
|
793
844
|
exports.isQueuePayload = isQueuePayload;
|
|
794
845
|
exports.isQueueRouterPayload = isQueueRouterPayload;
|
|
795
846
|
exports.isQueueRouterUsable = isQueueRouterUsable;
|
|
@@ -800,6 +851,7 @@ exports.setAuthupClientFactory = setAuthupClientFactory;
|
|
|
800
851
|
exports.setClientAuthenticationHookFactory = setClientAuthenticationHookFactory;
|
|
801
852
|
exports.setLogger = setLogger;
|
|
802
853
|
exports.setLoggerFactory = setLoggerFactory;
|
|
854
|
+
exports.setLokiFactory = setLokiFactory;
|
|
803
855
|
exports.setRedisClient = setRedisClient;
|
|
804
856
|
exports.setRedisFactory = setRedisFactory;
|
|
805
857
|
exports.setVaultFactory = setVaultFactory;
|
|
@@ -809,6 +861,7 @@ exports.useCache = useCache;
|
|
|
809
861
|
exports.useClientAuthenticationHook = useClientAuthenticationHook;
|
|
810
862
|
exports.useDomainEventPublisher = useDomainEventPublisher;
|
|
811
863
|
exports.useLogger = useLogger;
|
|
864
|
+
exports.useLokiClient = useLokiClient;
|
|
812
865
|
exports.useQueueRouter = useQueueRouter;
|
|
813
866
|
exports.useRedisClient = useRedisClient;
|
|
814
867
|
exports.useRedisPublishClient = useRedisPublishClient;
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/core/component/error.ts","../src/core/component/helper.ts","../src/core/queue/utils.ts","../src/core/queue-router/constants.ts","../src/core/queue-router/helpers.ts","../src/services/amqp/module.ts","../src/services/vault/singleton.ts","../src/services/authup/helpers.ts","../src/services/authup-client-authentication-hook/singleton.ts","../src/services/authup/module.ts","../src/services/authup/singleton.ts","../src/services/redis/singleton.ts","../src/services/redis/singleton-publish.ts","../src/services/redis/singleton-subscribe.ts","../src/services/cache/adapters/memory.ts","../src/services/cache/adapters/redis.ts","../src/services/cache/adapters/factory.ts","../src/services/cache/helper.ts","../src/services/cache/module.ts","../src/services/cache/singleton.ts","../src/services/logger/module.ts","../src/services/logger/singleton.ts","../src/services/domain-event/module.ts","../src/services/domain-event/utils.ts","../src/services/domain-event/redis/module.ts","../src/services/domain-event/socket/module.ts","../src/services/domain-event/singleton.ts","../src/core/queue-router/module.ts","../src/core/queue-router/singleton.ts","../src/utils/has-property.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 type { ComponentErrorOptions } from './type';\n\nexport class ComponentError extends Error {\n public code?: string | null;\n\n constructor(input: ComponentErrorOptions) {\n super(input.message, { cause: input.cause });\n\n this.code = input.code;\n }\n}\n","/*\n * Copyright (c) 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 { isObject } from '@privateaim/kit';\nimport type { ComponentError } from './error';\n\nexport function isComponentError(input: unknown) : input is ComponentError {\n if (!isObject(input)) {\n return false;\n }\n\n if (\n typeof input.message !== 'undefined' &&\n typeof input.message !== 'string'\n ) {\n return false;\n }\n\n if (typeof input.code === 'undefined') {\n return true;\n }\n\n return typeof input.code === 'string' || input.code === null;\n}\n","/*\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 { hasOwnProperty, isObject } from '@privateaim/kit';\nimport type { QueuePayload } from './type';\n\nexport function isQueuePayload(input: unknown) : input is QueuePayload {\n return isObject(input) &&\n hasOwnProperty(input, 'data') &&\n isObject(input.data) &&\n hasOwnProperty(input, 'metadata') &&\n isObject(input.metadata);\n}\n","/*\n * Copyright (c) 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\nexport enum QueueRouterRoutingType {\n WORK = 'work',\n PUB_SUB = 'pubSub',\n}\n","/*\n * Copyright (c) 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 { createNanoID, hasOwnProperty, isObject } from '@privateaim/kit';\nimport type { QueueRouterPayload, QueueRouterPayloadInput } from './types';\n\nexport function buildQueueRouterPublishPayload(\n input: QueueRouterPayloadInput,\n) : QueueRouterPayload {\n return {\n id: input.id || createNanoID(),\n type: input.type,\n data: input.data || {},\n metadata: {\n timestamp: Date.now(),\n ...input.metadata,\n },\n };\n}\n\nexport function isQueueRouterPayload(input: unknown) : input is QueueRouterPayload {\n return isObject(input) &&\n typeof input.id === 'string' &&\n typeof input.type === 'string' &&\n hasOwnProperty(input, 'data') &&\n isObject(input.data) &&\n hasOwnProperty(input, 'metadata') &&\n isObject(input.metadata);\n}\n","/*\n * Copyright (c) 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 { Client } from 'amqp-extension';\nimport type { Factory } from 'singa';\nimport { singa } from 'singa';\n\nconst instance = singa<Client>({\n name: 'amqp',\n});\n\nexport function setAmqpClientFactory(factory: Factory<Client>) {\n instance.setFactory(factory);\n}\n\nexport function isAmqpClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function useAmqpClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { Factory } from 'singa';\nimport { singa } from 'singa';\nimport type { VaultClient } from '@hapic/vault';\n\nconst instance = singa<VaultClient>({\n name: 'vault',\n});\n\nexport function setVaultFactory(factory: Factory<VaultClient>) {\n instance.setFactory(factory);\n}\n\nexport function isVaultClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function useVaultClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { TokenCreatorOptions } from '@authup/core-http-kit';\nimport { isVaultClientUsable, useVaultClient } from '../vault';\n\nexport function guessAuthupTokenCreatorOptions() : TokenCreatorOptions {\n let options : TokenCreatorOptions;\n if (isVaultClientUsable()) {\n options = {\n type: 'robotInVault',\n name: 'system',\n vault: useVaultClient(),\n };\n } else {\n options = {\n type: 'user',\n name: 'admin',\n password: 'start123',\n };\n }\n\n return options;\n}\n","/*\n * Copyright (c) 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 { ClientAuthenticationHook } from '@authup/core-http-kit';\nimport type { Factory } from 'singa';\nimport { singa } from 'singa';\n\nconst instance = singa<ClientAuthenticationHook>({\n name: 'clientAuthenticationHook',\n});\n\nexport function setClientAuthenticationHookFactory(factory: Factory<ClientAuthenticationHook>) {\n instance.setFactory(factory);\n}\n\nexport function isClientAuthenticationHookUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function useClientAuthenticationHook() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 {\n Client,\n ClientAuthenticationHook,\n} from '@authup/core-http-kit';\nimport {\n isClientAuthenticationHookUsable,\n setClientAuthenticationHookFactory,\n useClientAuthenticationHook,\n} from '../authup-client-authentication-hook';\nimport { guessAuthupTokenCreatorOptions } from './helpers';\nimport type { AuthupClientOptions } from './types';\n\nexport class AuthupClient extends Client {\n constructor(options: AuthupClientOptions = {}) {\n super(options);\n\n if (!isClientAuthenticationHookUsable()) {\n setClientAuthenticationHookFactory(\n () => new ClientAuthenticationHook({\n baseURL: options.baseURL,\n tokenCreator: options.tokenCreator || guessAuthupTokenCreatorOptions(),\n }),\n );\n }\n\n const hook = useClientAuthenticationHook();\n hook.attach(this);\n }\n}\n","/*\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 type { Client } from '@authup/core-http-kit';\nimport type { Factory } from 'singa';\nimport { singa } from 'singa';\n\nconst instance = singa<Client>({\n name: 'authup',\n});\n\nexport function useAuthupClient() {\n return instance.use();\n}\n\nexport function isAuthupClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function setAuthupClientFactory(factory: Factory<Client>) {\n instance.setFactory(factory);\n}\n","/*\n * Copyright (c) 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 { Client } from 'redis-extension';\nimport type { Factory } from 'singa';\nimport { singa } from 'singa';\n\nconst instance = singa<Client>({\n name: 'redis',\n});\n\nexport function setRedisFactory(factory: Factory<Client>) {\n instance.setFactory(factory);\n}\n\nexport function isRedisClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function setRedisClient(input: Client) {\n instance.set(input);\n}\n\nexport function useRedisClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { Client } from 'redis-extension';\nimport { singa } from 'singa';\nimport { useRedisClient } from './singleton';\n\nconst instance = singa<Client>({\n name: 'redisPublish',\n factory: () => useRedisClient().duplicate(),\n});\n\nexport function useRedisPublishClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { Client } from 'redis-extension';\nimport { singa } from 'singa';\nimport { useRedisClient } from './singleton';\n\nconst instance = singa<Client>({\n name: 'redisSubscribe',\n factory: () => useRedisClient().duplicate(),\n});\n\nexport function useRedisSubscribeClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 2024-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 { Options } from '@isaacs/ttlcache';\nimport TTLCache from '@isaacs/ttlcache';\nimport type { CacheClearOptions, CacheSetOptions } from '../types';\nimport type { CacheAdapter } from './types';\n\nexport class MemoryCacheAdapter<\n VALUE = any,\n> implements CacheAdapter {\n protected instance : TTLCache<string, VALUE>;\n\n constructor(options: Options<string, VALUE> = {}) {\n this.instance = new TTLCache<string, VALUE>({\n checkAgeOnGet: true,\n ttl: Infinity,\n ...(options || {}),\n });\n }\n\n async get(key: string): Promise<VALUE> {\n return this.instance.get(key);\n }\n\n async has(key: string) : Promise<boolean> {\n return this.instance.has(key);\n }\n\n async set(key: string, value: VALUE, options: CacheSetOptions): Promise<void> {\n this.instance.set(key, value, {\n ttl: options.ttl,\n });\n }\n\n async drop(key: string): Promise<void> {\n this.instance.delete(key);\n }\n\n async dropMany(keys: string[]) : Promise<void> {\n for (let i = 0; i < keys.length; i++) {\n this.instance.delete(keys[i]);\n }\n }\n\n async clear(options: CacheClearOptions = {}) : Promise<void> {\n if (options.prefix) {\n const keys = this.instance.keys();\n let iterator = keys.next();\n while (!iterator.done) {\n if (iterator.value.startsWith(options.prefix)) {\n this.instance.delete(iterator.value);\n }\n\n iterator = keys.next();\n }\n\n return;\n }\n\n this.instance.clear();\n }\n}\n","/*\n * Copyright (c) 2024-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 { Client } from 'redis-extension';\nimport { JsonAdapter } from 'redis-extension';\nimport { useRedisClient } from '../../redis';\nimport type { CacheClearOptions, CacheSetOptions } from '../types';\nimport type { CacheAdapter } from './types';\n\nexport class RedisCacheAdapter implements CacheAdapter {\n protected client : Client;\n\n protected instance : JsonAdapter;\n\n constructor() {\n this.client = useRedisClient();\n this.instance = new JsonAdapter(this.client);\n }\n\n async get(key: string): Promise<any> {\n return this.instance.get(key);\n }\n\n async has(key: string) : Promise<boolean> {\n const exists = await this.client.exists(key);\n\n return !!exists;\n }\n\n async set(key: string, value: any, options: CacheSetOptions): Promise<void> {\n await this.instance.set(key, value, {\n milliseconds: options.ttl,\n });\n }\n\n async drop(key: string): Promise<void> {\n await this.instance.drop(key);\n }\n\n async dropMany(keys: string[]) : Promise<void> {\n const pipeline = this.client.pipeline();\n\n for (let i = 0; i < keys.length; i++) {\n pipeline.del(keys[i]);\n }\n\n await pipeline.exec();\n }\n\n async clear(options: CacheClearOptions = {}) : Promise<void> {\n if (options.prefix) {\n const pipeline = this.client.pipeline();\n\n const keys = await this.client.keys(`${options.prefix}*`);\n for (let i = 0; i < keys.length; i++) {\n pipeline.del(keys[i]);\n }\n\n await pipeline.exec();\n\n return;\n }\n await this.client.flushdb();\n }\n}\n","/*\n * Copyright (c) 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 { isRedisClientUsable } from '../../redis';\nimport { MemoryCacheAdapter } from './memory';\nimport { RedisCacheAdapter } from './redis';\n\nexport function createCacheAdapter() {\n if (isRedisClientUsable()) {\n return new RedisCacheAdapter();\n }\n\n return new MemoryCacheAdapter();\n}\n","/*\n * Copyright (c) 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 { buildRedisKeyPath } from '../redis';\nimport type { CacheKeyBuildOptions } from './types';\n\nexport function buildCacheKey(options: CacheKeyBuildOptions) {\n return buildRedisKeyPath(options);\n}\n","/*\n * Copyright (c) 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 { CacheAdapter } from './adapters';\nimport type { CacheClearOptions, CacheSetOptions } from './types';\n\nexport class Cache {\n protected adapter : CacheAdapter;\n\n constructor(adapter: CacheAdapter) {\n this.adapter = adapter;\n }\n\n async set(key: string, value: any, options: CacheSetOptions = {}) : Promise<void> {\n await this.adapter.set(key, value, options);\n }\n\n async get(key: string) : Promise<any | undefined> {\n return this.adapter.get(key);\n }\n\n async has(key: string) : Promise<boolean> {\n return this.adapter.has(key);\n }\n\n async drop(key: string) : Promise<void> {\n return this.adapter.drop(key);\n }\n\n async dropMany(keys: string[]) : Promise<void> {\n return this.adapter.dropMany(keys);\n }\n\n async clear(options: CacheClearOptions = {}) : Promise<void> {\n return this.adapter.clear(options);\n }\n}\n","/*\n * Copyright (c) 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 { singa } from 'singa';\nimport { isRedisClientUsable } from '../redis';\nimport type { CacheAdapter } from './adapters';\nimport { MemoryCacheAdapter, RedisCacheAdapter } from './adapters';\nimport { Cache } from './module';\n\nconst instance = singa<Cache>({\n name: 'cache',\n factory: () => {\n let adapter : CacheAdapter;\n if (isRedisClientUsable()) {\n adapter = new RedisCacheAdapter();\n } else {\n adapter = new MemoryCacheAdapter();\n }\n\n return new Cache(adapter);\n },\n});\n\nexport function useCache() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { read } from 'envix';\nimport path from 'node:path';\nimport { EnvironmentName } from 'typeorm-extension';\nimport type { Logger } from 'winston';\nimport { createLogger as create, format, transports } from 'winston';\nimport type { LoggerCreateContext, LoggerTransports } from './types';\n\nexport function createLogger(ctx: LoggerCreateContext = {}) : Logger {\n const { directory, options = {} } = ctx;\n\n let loggerTransports : LoggerTransports;\n if (read('env') === EnvironmentName.PRODUCTION) {\n loggerTransports = [\n new transports.Console({\n level: 'info',\n }),\n new transports.File({\n filename: path.join(directory || process.cwd(), 'access.log'),\n level: 'http',\n maxsize: 10 * 1024 * 1024, // 10MB\n maxFiles: 5,\n }),\n new transports.File({\n filename: path.join(directory || process.cwd(), 'error.log'),\n level: 'warn',\n maxsize: 10 * 1024 * 1024, // 10MB\n maxFiles: 5,\n }),\n ];\n } else {\n loggerTransports = [\n new transports.Console({\n level: 'debug',\n }),\n ];\n }\n\n return create({\n format: format.combine(\n format.errors({ stack: true }),\n format.timestamp(),\n format.colorize(),\n format.simple(),\n ),\n level: 'debug',\n transports: loggerTransports,\n // todo: deeply merge options\n ...(options || {}),\n });\n}\n","/*\n * Copyright (c) 2023.\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 Factory, singa } from 'singa';\nimport type { Logger } from 'winston';\n\nconst instance = singa<Logger>({\n name: 'logger',\n});\n\nexport function setLoggerFactory(factory: Factory<Logger>) {\n instance.setFactory(factory);\n}\n\nexport function isLoggerUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function setLogger(input: Logger) {\n instance.set(input);\n}\n\nexport function useLogger() {\n return instance.use();\n}\n","/*\n * Copyright (c) 2024-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 { DomainEventRecord } from '@privateaim/kit';\nimport { buildDomainEventFullName } from '@privateaim/kit';\nimport { isLoggerUsable, useLogger } from '../logger';\nimport type { DomainEventPublishContext, IDomainEventPublisher } from './type';\n\nexport class DomainEventPublisher implements IDomainEventPublisher {\n protected publishers : Set<IDomainEventPublisher>;\n\n constructor() {\n this.publishers = new Set<IDomainEventPublisher>();\n }\n\n addPublisher(publisher: IDomainEventPublisher) {\n this.publishers.add(publisher);\n }\n\n async safePublish<T extends DomainEventRecord>(\n ctx: DomainEventPublishContext<T>,\n ) : Promise<void> {\n try {\n await this.publish(ctx);\n } catch (e) {\n if (isLoggerUsable()) {\n useLogger().error(`Publishing event ${buildDomainEventFullName(ctx.data.type, ctx.data.event)} failed`);\n useLogger().error(e);\n }\n }\n }\n\n async publish<T extends DomainEventRecord>(\n ctx: DomainEventPublishContext<T>,\n ) : Promise<void> {\n if (isLoggerUsable()) {\n useLogger().info(`Publishing event ${buildDomainEventFullName(ctx.data.type, ctx.data.event)}`);\n }\n\n const publishers = this.publishers.values();\n while (true) {\n const it = publishers.next();\n if (it.done) {\n return;\n }\n\n await it.value.publish(ctx);\n }\n }\n}\n","/*\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 { isObject } from '@privateaim/kit';\nimport type { DomainEventChannelName } from './type';\n\nexport function transformEventData<T>(input: T) : T {\n if (isObject(input)) {\n const keys = Object.keys(input);\n for (let i = 0; i < keys.length; i++) {\n const value = input[keys[i]];\n if (value instanceof Date) {\n input[keys[i]] = value.toISOString();\n }\n }\n }\n\n return input;\n}\n\nexport function buildEventChannelName(\n input: DomainEventChannelName,\n id?: string | number,\n) : string {\n if (typeof input === 'string') {\n return input;\n }\n\n return input(id);\n}\n","/*\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 type { Client } from 'redis-extension';\nimport type { DomainEventPublishContext, IDomainEventPublisher } from '../type';\nimport { buildEventChannelName, transformEventData } from '../utils';\n\nexport class DomainEventRedisPublisher implements IDomainEventPublisher {\n protected driver : Client;\n\n constructor(client: Client) {\n this.driver = client;\n }\n\n async publish(ctx: DomainEventPublishContext) : Promise<void> {\n const data = JSON.stringify(transformEventData(ctx.data));\n\n const pipeline = this.driver.pipeline();\n for (let i = 0; i < ctx.destinations.length; i++) {\n const keyPrefix = (ctx.destinations[i].namespace ? `${ctx.destinations[i].namespace}:` : '');\n\n let key = keyPrefix + buildEventChannelName(ctx.destinations[i].channel);\n pipeline.publish(key, data);\n\n if (typeof ctx.destinations[i].channel === 'function') {\n key = keyPrefix + buildEventChannelName(ctx.destinations[i].channel, ctx.data.data.id);\n pipeline.publish(key, data);\n }\n }\n\n await pipeline.exec();\n }\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 { buildDomainEventFullName } from '@privateaim/kit';\nimport { Emitter } from '@socket.io/redis-emitter';\nimport type { Client } from 'redis-extension';\nimport type { DomainEventPublishContext, IDomainEventPublisher } from '../type';\nimport { buildEventChannelName, transformEventData } from '../utils';\n\nexport class DomainEventSocketPublisher implements IDomainEventPublisher {\n protected client : Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n async publish(ctx: DomainEventPublishContext) : Promise<void> {\n ctx.data = transformEventData(ctx.data);\n\n for (let i = 0; i < ctx.destinations.length; i++) {\n let namespace : string;\n if (ctx.destinations[i].namespace) {\n namespace = ctx.destinations[i].namespace;\n } else {\n namespace = '/';\n }\n\n const emitter = new Emitter(this.client, {}, namespace);\n\n const fullEventName = buildDomainEventFullName(ctx.data.type, ctx.data.event);\n\n const rooms : string[] = [\n buildEventChannelName(ctx.destinations[i].channel),\n ];\n\n if (typeof ctx.destinations[i].channel === 'function') {\n rooms.push(buildEventChannelName(ctx.destinations[i].channel, ctx.data.data.id));\n }\n\n for (let j = 0; j < rooms.length; j++) {\n emitter\n .in(rooms[j])\n .emit(fullEventName, {\n ...ctx.data,\n meta: {\n namespace,\n roomName: rooms[j],\n },\n });\n }\n }\n }\n}\n","/*\n * Copyright (c) 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 { singa } from 'singa';\nimport { isRedisClientUsable, useRedisClient } from '../redis';\nimport { DomainEventPublisher } from './module';\nimport { DomainEventRedisPublisher } from './redis';\nimport { DomainEventSocketPublisher } from './socket';\n\nconst instance = singa<DomainEventPublisher>({\n name: 'domainEventPublisher',\n factory: () => {\n const publisher = new DomainEventPublisher();\n\n if (isRedisClientUsable()) {\n const client = useRedisClient();\n\n publisher.addPublisher(new DomainEventRedisPublisher(client));\n publisher.addPublisher(new DomainEventSocketPublisher(client));\n }\n\n return publisher;\n },\n});\n\nexport function useDomainEventPublisher() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { ExchangeType } from 'amqp-extension';\nimport type { Client } from 'amqp-extension';\nimport { isLoggerUsable, useLogger } from '../../services';\nimport { QueueRouterRoutingType } from './constants';\nimport { isQueueRouterPayload } from './helpers';\nimport type {\n QueueRouterHandler,\n QueueRouterHandlers,\n QueueRouterPayload, QueueRouterRouting,\n} from './types';\n\nexport class QueueRouter {\n protected driver : Client;\n\n //----------------------------------------------------------------\n\n constructor(driver: Client) {\n this.driver = driver;\n }\n\n //----------------------------------------------------------------\n\n publish(message: QueueRouterPayload) : Promise<boolean> {\n let exchange : Client;\n if (message.metadata.routing.type === 'work') {\n exchange = this.driver.of({\n type: ExchangeType.DIRECT,\n name: message.metadata.routing.namespace || '',\n });\n } else {\n exchange = this.driver.of({\n type: ExchangeType.TOPIC,\n name: message.metadata.routing.namespace || 'FLAME',\n });\n }\n\n if (isLoggerUsable()) {\n useLogger()\n .debug(`Publishing queue message ${message.type} in ${message.metadata.routing.key}`);\n }\n\n return exchange.publish(message.metadata.routing.key, message, {\n type: message.type,\n messageId: message.id,\n persistent: message.metadata.persistent ??\n message.metadata.routing.type === QueueRouterRoutingType.WORK,\n });\n }\n\n consume(routing: QueueRouterRouting, handlers: QueueRouterHandlers) : Promise<void> {\n let exchange : Client;\n if (routing.type === 'work') {\n exchange = this.driver.of({\n type: ExchangeType.DIRECT,\n name: routing.namespace || '',\n });\n } else {\n exchange = this.driver.of({\n type: ExchangeType.TOPIC,\n name: routing.namespace || 'FLAME',\n });\n }\n\n return exchange.consume(routing.key, {\n prefetchCount: routing.type === QueueRouterRoutingType.WORK ? 1 : undefined,\n // noAck: routing.type !== QueueRouterRoutingType.WORK,\n requeueOnFailure: routing.type === QueueRouterRoutingType.WORK,\n }, {\n $any: async (input) => {\n const payload = JSON.parse(input.content.toString('utf-8'));\n if (!isQueueRouterPayload(payload)) {\n return;\n }\n\n if (input.fields.redelivered) {\n if (isLoggerUsable()) {\n useLogger()\n .debug(`Queue message ${input.properties.type} in ${routing.key} is not processed again.`);\n }\n\n return;\n }\n\n if (isLoggerUsable()) {\n useLogger()\n .debug(`Consuming queue message ${input.properties.type} in ${routing.key}`);\n }\n\n let handler : QueueRouterHandler | undefined;\n\n if (\n typeof input.properties.type === 'string' &&\n handlers[input.properties.type]\n ) {\n handler = handlers[input.properties.type];\n } else {\n handler = handlers.$any;\n }\n\n if (typeof handler !== 'function') {\n if (isLoggerUsable()) {\n useLogger()\n .debug(`No queue handler to consume message ${input.properties.type} in ${routing.key}`);\n }\n\n return;\n }\n\n await handler(payload);\n },\n });\n }\n}\n","/*\n * Copyright (c) 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 { singa } from 'singa';\nimport { isAmqpClientUsable, useAmqpClient } from '../../services';\nimport { QueueRouter } from './module';\n\nconst instance = singa<QueueRouter>({\n name: 'queueRouter',\n factory: () => {\n const amqp = useAmqpClient();\n\n return new QueueRouter(amqp);\n },\n});\n\nexport function isQueueRouterUsable() {\n return instance.has() || isAmqpClientUsable();\n}\n\nexport function useQueueRouter() {\n return instance.use();\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\nexport function hasOwnProperty<X extends Record<string, any>, Y extends PropertyKey>(\n obj: X,\n prop: Y,\n): obj is X & Record<Y, unknown> {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],"names":["_define_property","ComponentError","Error","constructor","input","message","cause","code","isComponentError","isObject","isQueuePayload","hasOwnProperty","data","metadata","QueueRouterRoutingType","buildQueueRouterPublishPayload","id","createNanoID","type","timestamp","Date","now","isQueueRouterPayload","instance","singa","name","setAmqpClientFactory","factory","setFactory","isAmqpClientUsable","has","hasFactory","useAmqpClient","use","setVaultFactory","isVaultClientUsable","useVaultClient","guessAuthupTokenCreatorOptions","options","vault","password","setClientAuthenticationHookFactory","isClientAuthenticationHookUsable","useClientAuthenticationHook","AuthupClient","Client","ClientAuthenticationHook","baseURL","tokenCreator","hook","attach","useAuthupClient","isAuthupClientUsable","setAuthupClientFactory","setRedisFactory","isRedisClientUsable","setRedisClient","set","useRedisClient","duplicate","useRedisPublishClient","useRedisSubscribeClient","MemoryCacheAdapter","get","key","value","ttl","drop","delete","dropMany","keys","i","length","clear","prefix","iterator","next","done","startsWith","TTLCache","checkAgeOnGet","Infinity","RedisCacheAdapter","exists","client","milliseconds","pipeline","del","exec","flushdb","JsonAdapter","createCacheAdapter","buildCacheKey","buildRedisKeyPath","Cache","adapter","useCache","createLogger","ctx","directory","loggerTransports","read","EnvironmentName","PRODUCTION","transports","Console","level","File","filename","path","join","process","cwd","maxsize","maxFiles","create","format","combine","errors","stack","colorize","simple","setLoggerFactory","isLoggerUsable","setLogger","useLogger","DomainEventPublisher","addPublisher","publisher","publishers","add","safePublish","publish","e","error","buildDomainEventFullName","event","info","values","it","Set","transformEventData","Object","toISOString","buildEventChannelName","DomainEventRedisPublisher","JSON","stringify","driver","destinations","keyPrefix","namespace","channel","DomainEventSocketPublisher","emitter","Emitter","fullEventName","rooms","push","j","in","emit","meta","roomName","useDomainEventPublisher","QueueRouter","exchange","routing","of","ExchangeType","DIRECT","TOPIC","debug","messageId","persistent","WORK","consume","handlers","prefetchCount","undefined","requeueOnFailure","$any","payload","parse","content","toString","fields","redelivered","properties","handler","amqp","isQueueRouterUsable","useQueueRouter","obj","prop","prototype","call"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/core/component/error.ts","../src/core/component/helper.ts","../src/core/queue/utils.ts","../src/core/queue-router/constants.ts","../src/core/queue-router/helpers.ts","../src/services/amqp/module.ts","../src/services/vault/singleton.ts","../src/services/authup/helpers.ts","../src/services/authup-client-authentication-hook/singleton.ts","../src/services/authup/module.ts","../src/services/authup/singleton.ts","../src/services/redis/singleton.ts","../src/services/redis/singleton-publish.ts","../src/services/redis/singleton-subscribe.ts","../src/services/cache/adapters/memory.ts","../src/services/cache/adapters/redis.ts","../src/services/cache/adapters/factory.ts","../src/services/cache/helper.ts","../src/services/cache/module.ts","../src/services/cache/singleton.ts","../src/services/logger/module.ts","../src/services/logger/singleton.ts","../src/services/domain-event/module.ts","../src/services/domain-event/utils.ts","../src/services/domain-event/redis/module.ts","../src/services/domain-event/socket/module.ts","../src/services/domain-event/singleton.ts","../src/services/loki/singleton.ts","../src/core/queue-router/module.ts","../src/core/queue-router/singleton.ts","../src/utils/has-property.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 type { ComponentErrorOptions } from './type';\n\nexport class ComponentError extends Error {\n public code?: string | null;\n\n constructor(input: ComponentErrorOptions) {\n super(input.message, { cause: input.cause });\n\n this.code = input.code;\n }\n}\n","/*\n * Copyright (c) 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 { isObject } from '@privateaim/kit';\nimport type { ComponentError } from './error';\n\nexport function isComponentError(input: unknown) : input is ComponentError {\n if (!isObject(input)) {\n return false;\n }\n\n if (\n typeof input.message !== 'undefined' &&\n typeof input.message !== 'string'\n ) {\n return false;\n }\n\n if (typeof input.code === 'undefined') {\n return true;\n }\n\n return typeof input.code === 'string' || input.code === null;\n}\n","/*\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 { hasOwnProperty, isObject } from '@privateaim/kit';\nimport type { QueuePayload } from './type';\n\nexport function isQueuePayload(input: unknown) : input is QueuePayload {\n return isObject(input) &&\n hasOwnProperty(input, 'data') &&\n isObject(input.data) &&\n hasOwnProperty(input, 'metadata') &&\n isObject(input.metadata);\n}\n","/*\n * Copyright (c) 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\nexport enum QueueRouterRoutingType {\n WORK = 'work',\n PUB_SUB = 'pubSub',\n}\n","/*\n * Copyright (c) 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 { createNanoID, hasOwnProperty, isObject } from '@privateaim/kit';\nimport type { QueueRouterPayload, QueueRouterPayloadInput } from './types';\n\nexport function buildQueueRouterPublishPayload(\n input: QueueRouterPayloadInput,\n) : QueueRouterPayload {\n return {\n id: input.id || createNanoID(),\n type: input.type,\n data: input.data || {},\n metadata: {\n timestamp: Date.now(),\n ...input.metadata,\n },\n };\n}\n\nexport function isQueueRouterPayload(input: unknown) : input is QueueRouterPayload {\n return isObject(input) &&\n typeof input.id === 'string' &&\n typeof input.type === 'string' &&\n hasOwnProperty(input, 'data') &&\n isObject(input.data) &&\n hasOwnProperty(input, 'metadata') &&\n isObject(input.metadata);\n}\n","/*\n * Copyright (c) 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 { Client } from 'amqp-extension';\nimport type { Factory } from 'singa';\nimport { singa } from 'singa';\n\nconst instance = singa<Client>({\n name: 'amqp',\n});\n\nexport function setAmqpClientFactory(factory: Factory<Client>) {\n instance.setFactory(factory);\n}\n\nexport function isAmqpClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function useAmqpClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { Factory } from 'singa';\nimport { singa } from 'singa';\nimport type { VaultClient } from '@hapic/vault';\n\nconst instance = singa<VaultClient>({\n name: 'vault',\n});\n\nexport function setVaultFactory(factory: Factory<VaultClient>) {\n instance.setFactory(factory);\n}\n\nexport function isVaultClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function useVaultClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { TokenCreatorOptions } from '@authup/core-http-kit';\nimport { isVaultClientUsable, useVaultClient } from '../vault';\n\nexport function guessAuthupTokenCreatorOptions() : TokenCreatorOptions {\n let options : TokenCreatorOptions;\n if (isVaultClientUsable()) {\n options = {\n type: 'robotInVault',\n name: 'system',\n vault: useVaultClient(),\n };\n } else {\n options = {\n type: 'user',\n name: 'admin',\n password: 'start123',\n };\n }\n\n return options;\n}\n","/*\n * Copyright (c) 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 { ClientAuthenticationHook } from '@authup/core-http-kit';\nimport type { Factory } from 'singa';\nimport { singa } from 'singa';\n\nconst instance = singa<ClientAuthenticationHook>({\n name: 'clientAuthenticationHook',\n});\n\nexport function setClientAuthenticationHookFactory(factory: Factory<ClientAuthenticationHook>) {\n instance.setFactory(factory);\n}\n\nexport function isClientAuthenticationHookUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function useClientAuthenticationHook() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 {\n Client,\n ClientAuthenticationHook,\n} from '@authup/core-http-kit';\nimport {\n isClientAuthenticationHookUsable,\n setClientAuthenticationHookFactory,\n useClientAuthenticationHook,\n} from '../authup-client-authentication-hook';\nimport { guessAuthupTokenCreatorOptions } from './helpers';\nimport type { AuthupClientOptions } from './types';\n\nexport class AuthupClient extends Client {\n constructor(options: AuthupClientOptions = {}) {\n super(options);\n\n if (!isClientAuthenticationHookUsable()) {\n setClientAuthenticationHookFactory(\n () => new ClientAuthenticationHook({\n baseURL: options.baseURL,\n tokenCreator: options.tokenCreator || guessAuthupTokenCreatorOptions(),\n }),\n );\n }\n\n const hook = useClientAuthenticationHook();\n hook.attach(this);\n }\n}\n","/*\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 type { Client } from '@authup/core-http-kit';\nimport type { Factory } from 'singa';\nimport { singa } from 'singa';\n\nconst instance = singa<Client>({\n name: 'authup',\n});\n\nexport function useAuthupClient() {\n return instance.use();\n}\n\nexport function isAuthupClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function setAuthupClientFactory(factory: Factory<Client>) {\n instance.setFactory(factory);\n}\n","/*\n * Copyright (c) 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 { Client } from 'redis-extension';\nimport type { Factory } from 'singa';\nimport { singa } from 'singa';\n\nconst instance = singa<Client>({\n name: 'redis',\n});\n\nexport function setRedisFactory(factory: Factory<Client>) {\n instance.setFactory(factory);\n}\n\nexport function isRedisClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function setRedisClient(input: Client) {\n instance.set(input);\n}\n\nexport function useRedisClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { Client } from 'redis-extension';\nimport { singa } from 'singa';\nimport { useRedisClient } from './singleton';\n\nconst instance = singa<Client>({\n name: 'redisPublish',\n factory: () => useRedisClient().duplicate(),\n});\n\nexport function useRedisPublishClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { Client } from 'redis-extension';\nimport { singa } from 'singa';\nimport { useRedisClient } from './singleton';\n\nconst instance = singa<Client>({\n name: 'redisSubscribe',\n factory: () => useRedisClient().duplicate(),\n});\n\nexport function useRedisSubscribeClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 2024-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 { Options } from '@isaacs/ttlcache';\nimport TTLCache from '@isaacs/ttlcache';\nimport type { CacheClearOptions, CacheSetOptions } from '../types';\nimport type { CacheAdapter } from './types';\n\nexport class MemoryCacheAdapter<\n VALUE = any,\n> implements CacheAdapter {\n protected instance : TTLCache<string, VALUE>;\n\n constructor(options: Options<string, VALUE> = {}) {\n this.instance = new TTLCache<string, VALUE>({\n checkAgeOnGet: true,\n ttl: Infinity,\n ...(options || {}),\n });\n }\n\n async get(key: string): Promise<VALUE> {\n return this.instance.get(key);\n }\n\n async has(key: string) : Promise<boolean> {\n return this.instance.has(key);\n }\n\n async set(key: string, value: VALUE, options: CacheSetOptions): Promise<void> {\n this.instance.set(key, value, {\n ttl: options.ttl,\n });\n }\n\n async drop(key: string): Promise<void> {\n this.instance.delete(key);\n }\n\n async dropMany(keys: string[]) : Promise<void> {\n for (let i = 0; i < keys.length; i++) {\n this.instance.delete(keys[i]);\n }\n }\n\n async clear(options: CacheClearOptions = {}) : Promise<void> {\n if (options.prefix) {\n const keys = this.instance.keys();\n let iterator = keys.next();\n while (!iterator.done) {\n if (iterator.value.startsWith(options.prefix)) {\n this.instance.delete(iterator.value);\n }\n\n iterator = keys.next();\n }\n\n return;\n }\n\n this.instance.clear();\n }\n}\n","/*\n * Copyright (c) 2024-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 { Client } from 'redis-extension';\nimport { JsonAdapter } from 'redis-extension';\nimport { useRedisClient } from '../../redis';\nimport type { CacheClearOptions, CacheSetOptions } from '../types';\nimport type { CacheAdapter } from './types';\n\nexport class RedisCacheAdapter implements CacheAdapter {\n protected client : Client;\n\n protected instance : JsonAdapter;\n\n constructor() {\n this.client = useRedisClient();\n this.instance = new JsonAdapter(this.client);\n }\n\n async get(key: string): Promise<any> {\n return this.instance.get(key);\n }\n\n async has(key: string) : Promise<boolean> {\n const exists = await this.client.exists(key);\n\n return !!exists;\n }\n\n async set(key: string, value: any, options: CacheSetOptions): Promise<void> {\n await this.instance.set(key, value, {\n milliseconds: options.ttl,\n });\n }\n\n async drop(key: string): Promise<void> {\n await this.instance.drop(key);\n }\n\n async dropMany(keys: string[]) : Promise<void> {\n const pipeline = this.client.pipeline();\n\n for (let i = 0; i < keys.length; i++) {\n pipeline.del(keys[i]);\n }\n\n await pipeline.exec();\n }\n\n async clear(options: CacheClearOptions = {}) : Promise<void> {\n if (options.prefix) {\n const pipeline = this.client.pipeline();\n\n const keys = await this.client.keys(`${options.prefix}*`);\n for (let i = 0; i < keys.length; i++) {\n pipeline.del(keys[i]);\n }\n\n await pipeline.exec();\n\n return;\n }\n await this.client.flushdb();\n }\n}\n","/*\n * Copyright (c) 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 { isRedisClientUsable } from '../../redis';\nimport { MemoryCacheAdapter } from './memory';\nimport { RedisCacheAdapter } from './redis';\n\nexport function createCacheAdapter() {\n if (isRedisClientUsable()) {\n return new RedisCacheAdapter();\n }\n\n return new MemoryCacheAdapter();\n}\n","/*\n * Copyright (c) 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 { buildRedisKeyPath } from '../redis';\nimport type { CacheKeyBuildOptions } from './types';\n\nexport function buildCacheKey(options: CacheKeyBuildOptions) {\n return buildRedisKeyPath(options);\n}\n","/*\n * Copyright (c) 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 { CacheAdapter } from './adapters';\nimport type { CacheClearOptions, CacheSetOptions } from './types';\n\nexport class Cache {\n protected adapter : CacheAdapter;\n\n constructor(adapter: CacheAdapter) {\n this.adapter = adapter;\n }\n\n async set(key: string, value: any, options: CacheSetOptions = {}) : Promise<void> {\n await this.adapter.set(key, value, options);\n }\n\n async get(key: string) : Promise<any | undefined> {\n return this.adapter.get(key);\n }\n\n async has(key: string) : Promise<boolean> {\n return this.adapter.has(key);\n }\n\n async drop(key: string) : Promise<void> {\n return this.adapter.drop(key);\n }\n\n async dropMany(keys: string[]) : Promise<void> {\n return this.adapter.dropMany(keys);\n }\n\n async clear(options: CacheClearOptions = {}) : Promise<void> {\n return this.adapter.clear(options);\n }\n}\n","/*\n * Copyright (c) 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 { singa } from 'singa';\nimport { isRedisClientUsable } from '../redis';\nimport type { CacheAdapter } from './adapters';\nimport { MemoryCacheAdapter, RedisCacheAdapter } from './adapters';\nimport { Cache } from './module';\n\nconst instance = singa<Cache>({\n name: 'cache',\n factory: () => {\n let adapter : CacheAdapter;\n if (isRedisClientUsable()) {\n adapter = new RedisCacheAdapter();\n } else {\n adapter = new MemoryCacheAdapter();\n }\n\n return new Cache(adapter);\n },\n});\n\nexport function useCache() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { read } from 'envix';\nimport path from 'node:path';\nimport { EnvironmentName } from 'typeorm-extension';\nimport type { Logger } from 'winston';\nimport { createLogger as create, format, transports } from 'winston';\nimport type { LoggerCreateContext, LoggerTransports } from './types';\n\nexport function createLogger(ctx: LoggerCreateContext = {}) : Logger {\n const { directory, options = {} } = ctx;\n\n let loggerTransports : LoggerTransports;\n if (read('env') === EnvironmentName.PRODUCTION) {\n loggerTransports = [\n new transports.Console({\n level: 'info',\n }),\n new transports.File({\n filename: path.join(directory || process.cwd(), 'access.log'),\n level: 'http',\n maxsize: 10 * 1024 * 1024, // 10MB\n maxFiles: 5,\n }),\n new transports.File({\n filename: path.join(directory || process.cwd(), 'error.log'),\n level: 'warn',\n maxsize: 10 * 1024 * 1024, // 10MB\n maxFiles: 5,\n }),\n ];\n } else {\n loggerTransports = [\n new transports.Console({\n level: 'debug',\n }),\n ];\n }\n\n return create({\n format: format.combine(\n format.errors({ stack: true }),\n format.timestamp(),\n format.colorize(),\n format.simple(),\n ),\n level: 'debug',\n transports: loggerTransports,\n // todo: deeply merge options\n ...(options || {}),\n });\n}\n","/*\n * Copyright (c) 2023.\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 Factory, singa } from 'singa';\nimport type { Logger } from 'winston';\n\nconst instance = singa<Logger>({\n name: 'logger',\n});\n\nexport function setLoggerFactory(factory: Factory<Logger>) {\n instance.setFactory(factory);\n}\n\nexport function isLoggerUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function setLogger(input: Logger) {\n instance.set(input);\n}\n\nexport function useLogger() {\n return instance.use();\n}\n","/*\n * Copyright (c) 2024-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 { DomainEventRecord } from '@privateaim/kit';\nimport { buildDomainEventFullName } from '@privateaim/kit';\nimport { isLoggerUsable, useLogger } from '../logger';\nimport type { DomainEventPublishContext, IDomainEventPublisher } from './type';\n\nexport class DomainEventPublisher implements IDomainEventPublisher {\n protected publishers : Set<IDomainEventPublisher>;\n\n constructor() {\n this.publishers = new Set<IDomainEventPublisher>();\n }\n\n addPublisher(publisher: IDomainEventPublisher) {\n this.publishers.add(publisher);\n }\n\n async safePublish<T extends DomainEventRecord>(\n ctx: DomainEventPublishContext<T>,\n ) : Promise<void> {\n try {\n await this.publish(ctx);\n } catch (e) {\n if (isLoggerUsable()) {\n useLogger().error(`Publishing event ${buildDomainEventFullName(ctx.data.type, ctx.data.event)} failed`);\n useLogger().error(e);\n }\n }\n }\n\n async publish<T extends DomainEventRecord>(\n ctx: DomainEventPublishContext<T>,\n ) : Promise<void> {\n if (isLoggerUsable()) {\n useLogger().info(`Publishing event ${buildDomainEventFullName(ctx.data.type, ctx.data.event)}`);\n }\n\n const publishers = this.publishers.values();\n while (true) {\n const it = publishers.next();\n if (it.done) {\n return;\n }\n\n await it.value.publish(ctx);\n }\n }\n}\n","/*\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 { isObject } from '@privateaim/kit';\nimport type { DomainEventChannelName } from './type';\n\nexport function transformEventData<T>(input: T) : T {\n if (isObject(input)) {\n const keys = Object.keys(input);\n for (let i = 0; i < keys.length; i++) {\n const value = input[keys[i]];\n if (value instanceof Date) {\n input[keys[i]] = value.toISOString();\n }\n }\n }\n\n return input;\n}\n\nexport function buildEventChannelName(\n input: DomainEventChannelName,\n id?: string | number,\n) : string {\n if (typeof input === 'string') {\n return input;\n }\n\n return input(id);\n}\n","/*\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 type { Client } from 'redis-extension';\nimport type { DomainEventPublishContext, IDomainEventPublisher } from '../type';\nimport { buildEventChannelName, transformEventData } from '../utils';\n\nexport class DomainEventRedisPublisher implements IDomainEventPublisher {\n protected driver : Client;\n\n constructor(client: Client) {\n this.driver = client;\n }\n\n async publish(ctx: DomainEventPublishContext) : Promise<void> {\n const data = JSON.stringify(transformEventData(ctx.data));\n\n const pipeline = this.driver.pipeline();\n for (let i = 0; i < ctx.destinations.length; i++) {\n const keyPrefix = (ctx.destinations[i].namespace ? `${ctx.destinations[i].namespace}:` : '');\n\n let key = keyPrefix + buildEventChannelName(ctx.destinations[i].channel);\n pipeline.publish(key, data);\n\n if (typeof ctx.destinations[i].channel === 'function') {\n key = keyPrefix + buildEventChannelName(ctx.destinations[i].channel, ctx.data.data.id);\n pipeline.publish(key, data);\n }\n }\n\n await pipeline.exec();\n }\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 { buildDomainEventFullName } from '@privateaim/kit';\nimport { Emitter } from '@socket.io/redis-emitter';\nimport type { Client } from 'redis-extension';\nimport type { DomainEventPublishContext, IDomainEventPublisher } from '../type';\nimport { buildEventChannelName, transformEventData } from '../utils';\n\nexport class DomainEventSocketPublisher implements IDomainEventPublisher {\n protected client : Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n async publish(ctx: DomainEventPublishContext) : Promise<void> {\n ctx.data = transformEventData(ctx.data);\n\n for (let i = 0; i < ctx.destinations.length; i++) {\n let namespace : string;\n if (ctx.destinations[i].namespace) {\n namespace = ctx.destinations[i].namespace;\n } else {\n namespace = '/';\n }\n\n const emitter = new Emitter(this.client, {}, namespace);\n\n const fullEventName = buildDomainEventFullName(ctx.data.type, ctx.data.event);\n\n const rooms : string[] = [\n buildEventChannelName(ctx.destinations[i].channel),\n ];\n\n if (typeof ctx.destinations[i].channel === 'function') {\n rooms.push(buildEventChannelName(ctx.destinations[i].channel, ctx.data.data.id));\n }\n\n for (let j = 0; j < rooms.length; j++) {\n emitter\n .in(rooms[j])\n .emit(fullEventName, {\n ...ctx.data,\n meta: {\n namespace,\n roomName: rooms[j],\n },\n });\n }\n }\n }\n}\n","/*\n * Copyright (c) 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 { singa } from 'singa';\nimport { isRedisClientUsable, useRedisClient } from '../redis';\nimport { DomainEventPublisher } from './module';\nimport { DomainEventRedisPublisher } from './redis';\nimport { DomainEventSocketPublisher } from './socket';\n\nconst instance = singa<DomainEventPublisher>({\n name: 'domainEventPublisher',\n factory: () => {\n const publisher = new DomainEventPublisher();\n\n if (isRedisClientUsable()) {\n const client = useRedisClient();\n\n publisher.addPublisher(new DomainEventRedisPublisher(client));\n publisher.addPublisher(new DomainEventSocketPublisher(client));\n }\n\n return publisher;\n },\n});\n\nexport function useDomainEventPublisher() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { Factory } from 'singa';\nimport { singa } from 'singa';\nimport type { LokiClient } from '@hapic/loki';\n\nconst instance = singa<LokiClient>({\n name: 'loki',\n});\n\nexport function setLokiFactory(factory: Factory<LokiClient>) {\n instance.setFactory(factory);\n}\n\nexport function isLokiClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function useLokiClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { ExchangeType } from 'amqp-extension';\nimport type { Client } from 'amqp-extension';\nimport { isLoggerUsable, useLogger } from '../../services';\nimport { QueueRouterRoutingType } from './constants';\nimport { isQueueRouterPayload } from './helpers';\nimport type {\n QueueRouterHandler,\n QueueRouterHandlers,\n QueueRouterPayload, QueueRouterRouting,\n} from './types';\n\nexport class QueueRouter {\n protected driver : Client;\n\n //----------------------------------------------------------------\n\n constructor(driver: Client) {\n this.driver = driver;\n }\n\n //----------------------------------------------------------------\n\n publish(message: QueueRouterPayload) : Promise<boolean> {\n let exchange : Client;\n if (message.metadata.routing.type === 'work') {\n exchange = this.driver.of({\n type: ExchangeType.DIRECT,\n name: message.metadata.routing.namespace || '',\n });\n } else {\n exchange = this.driver.of({\n type: ExchangeType.TOPIC,\n name: message.metadata.routing.namespace || 'FLAME',\n });\n }\n\n if (isLoggerUsable()) {\n useLogger()\n .debug(`Publishing queue message ${message.type} in ${message.metadata.routing.key}`);\n }\n\n return exchange.publish(message.metadata.routing.key, message, {\n type: message.type,\n messageId: message.id,\n persistent: message.metadata.persistent ??\n message.metadata.routing.type === QueueRouterRoutingType.WORK,\n });\n }\n\n consume(routing: QueueRouterRouting, handlers: QueueRouterHandlers) : Promise<void> {\n let exchange : Client;\n if (routing.type === 'work') {\n exchange = this.driver.of({\n type: ExchangeType.DIRECT,\n name: routing.namespace || '',\n });\n } else {\n exchange = this.driver.of({\n type: ExchangeType.TOPIC,\n name: routing.namespace || 'FLAME',\n });\n }\n\n return exchange.consume(routing.key, {\n prefetchCount: routing.type === QueueRouterRoutingType.WORK ? 1 : undefined,\n // noAck: routing.type !== QueueRouterRoutingType.WORK,\n requeueOnFailure: routing.type === QueueRouterRoutingType.WORK,\n }, {\n $any: async (input) => {\n const payload = JSON.parse(input.content.toString('utf-8'));\n if (!isQueueRouterPayload(payload)) {\n return;\n }\n\n if (input.fields.redelivered) {\n if (isLoggerUsable()) {\n useLogger()\n .debug(`Queue message ${input.properties.type} in ${routing.key} is not processed again.`);\n }\n\n return;\n }\n\n if (isLoggerUsable()) {\n useLogger()\n .debug(`Consuming queue message ${input.properties.type} in ${routing.key}`);\n }\n\n let handler : QueueRouterHandler | undefined;\n\n if (\n typeof input.properties.type === 'string' &&\n handlers[input.properties.type]\n ) {\n handler = handlers[input.properties.type];\n } else {\n handler = handlers.$any;\n }\n\n if (typeof handler !== 'function') {\n if (isLoggerUsable()) {\n useLogger()\n .debug(`No queue handler to consume message ${input.properties.type} in ${routing.key}`);\n }\n\n return;\n }\n\n await handler(payload);\n },\n });\n }\n}\n","/*\n * Copyright (c) 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 { singa } from 'singa';\nimport { isAmqpClientUsable, useAmqpClient } from '../../services';\nimport { QueueRouter } from './module';\n\nconst instance = singa<QueueRouter>({\n name: 'queueRouter',\n factory: () => {\n const amqp = useAmqpClient();\n\n return new QueueRouter(amqp);\n },\n});\n\nexport function isQueueRouterUsable() {\n return instance.has() || isAmqpClientUsable();\n}\n\nexport function useQueueRouter() {\n return instance.use();\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\nexport function hasOwnProperty<X extends Record<string, any>, Y extends PropertyKey>(\n obj: X,\n prop: Y,\n): obj is X & Record<Y, unknown> {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],"names":["_define_property","ComponentError","Error","input","message","cause","code","isComponentError","isObject","isQueuePayload","hasOwnProperty","data","metadata","QueueRouterRoutingType","buildQueueRouterPublishPayload","id","createNanoID","type","timestamp","Date","now","isQueueRouterPayload","instance","singa","name","setAmqpClientFactory","factory","setFactory","isAmqpClientUsable","has","hasFactory","useAmqpClient","use","setVaultFactory","isVaultClientUsable","useVaultClient","guessAuthupTokenCreatorOptions","options","vault","password","setClientAuthenticationHookFactory","isClientAuthenticationHookUsable","useClientAuthenticationHook","AuthupClient","Client","ClientAuthenticationHook","baseURL","tokenCreator","hook","attach","useAuthupClient","isAuthupClientUsable","setAuthupClientFactory","setRedisFactory","isRedisClientUsable","setRedisClient","set","useRedisClient","duplicate","useRedisPublishClient","useRedisSubscribeClient","MemoryCacheAdapter","get","key","value","ttl","drop","delete","dropMany","keys","i","length","clear","prefix","iterator","next","done","startsWith","TTLCache","checkAgeOnGet","Infinity","RedisCacheAdapter","exists","client","milliseconds","pipeline","del","exec","flushdb","JsonAdapter","createCacheAdapter","buildCacheKey","buildRedisKeyPath","Cache","adapter","useCache","createLogger","ctx","directory","loggerTransports","read","EnvironmentName","PRODUCTION","transports","Console","level","File","filename","path","join","process","cwd","maxsize","maxFiles","create","format","combine","errors","stack","colorize","simple","setLoggerFactory","isLoggerUsable","setLogger","useLogger","DomainEventPublisher","addPublisher","publisher","publishers","add","safePublish","publish","e","error","buildDomainEventFullName","event","info","values","it","Set","transformEventData","Object","toISOString","buildEventChannelName","DomainEventRedisPublisher","JSON","stringify","driver","destinations","keyPrefix","namespace","channel","DomainEventSocketPublisher","emitter","Emitter","fullEventName","rooms","push","j","in","emit","meta","roomName","useDomainEventPublisher","setLokiFactory","isLokiClientUsable","useLokiClient","QueueRouter","exchange","routing","of","ExchangeType","DIRECT","TOPIC","debug","messageId","persistent","WORK","consume","handlers","prefetchCount","undefined","requeueOnFailure","$any","payload","parse","content","toString","fields","redelivered","properties","handler","amqp","isQueueRouterUsable","useQueueRouter","obj","prop","prototype","call"],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;AAKC,IAAA,SAAAA,kBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAA;;;;;;;;;;;;;AAIM,MAAMC,cAAAA,SAAuBC,KAAAA,CAAAA;AAGhC,IAAA,WAAA,CAAYC,KAA4B,CAAE;QACtC,KAAK,CAACA,KAAAA,CAAMC,OAAO,EAAE;AAAEC,YAAAA,KAAAA,EAAOF,MAAME;SAAM,CAAA,EAH9CL,kBAAA,CAAA,IAAA,EAAOM,QAAP,MAAA,CAAA;AAKI,QAAA,IAAI,CAACA,IAAI,GAAGH,KAAAA,CAAMG,IAAI;AAC1B,IAAA;AACJ;;ACPO,SAASC,iBAAiBJ,KAAc,EAAA;IAC3C,IAAI,CAACK,aAASL,KAAAA,CAAAA,EAAQ;QAClB,OAAO,KAAA;AACX,IAAA;IAEA,IACI,OAAOA,MAAMC,OAAO,KAAK,eACzB,OAAOD,KAAAA,CAAMC,OAAO,KAAK,QAAA,EAC3B;QACE,OAAO,KAAA;AACX,IAAA;AAEA,IAAA,IAAI,OAAOD,KAAAA,CAAMG,IAAI,KAAK,WAAA,EAAa;QACnC,OAAO,IAAA;AACX,IAAA;AAEA,IAAA,OAAO,OAAOH,KAAAA,CAAMG,IAAI,KAAK,QAAA,IAAYH,KAAAA,CAAMG,IAAI,KAAK,IAAA;AAC5D;;ACjBO,SAASG,eAAeN,KAAc,EAAA;AACzC,IAAA,OAAOK,YAAAA,CAASL,KAAAA,CAAAA,IACZO,kBAAAA,CAAeP,KAAAA,EAAO,WACtBK,YAAAA,CAASL,KAAAA,CAAMQ,IAAI,CAAA,IACnBD,kBAAAA,CAAeP,KAAAA,EAAO,UAAA,CAAA,IACtBK,YAAAA,CAASL,MAAMS,QAAQ,CAAA;AAC/B;;AChBA;;;;;IAOO,IAAKC,sBAAAA,iBAAAA,SAAAA,sBAAAA,EAAAA;;;AAAAA,IAAAA,OAAAA,sBAAAA;AAGX,CAAA,CAAA,EAAA;;ACAM,SAASC,+BACZX,KAA8B,EAAA;IAE9B,OAAO;QACHY,EAAAA,EAAIZ,KAAAA,CAAMY,EAAE,IAAIC,gBAAAA,EAAAA;AAChBC,QAAAA,IAAAA,EAAMd,MAAMc,IAAI;QAChBN,IAAAA,EAAMR,KAAAA,CAAMQ,IAAI,IAAI,EAAC;QACrBC,QAAAA,EAAU;AACNM,YAAAA,SAAAA,EAAWC,KAAKC,GAAG,EAAA;AACnB,YAAA,GAAGjB,MAAMS;AACb;AACJ,KAAA;AACJ;AAEO,SAASS,qBAAqBlB,KAAc,EAAA;IAC/C,OAAOK,YAAAA,CAASL,KAAAA,CAAAA,IACZ,OAAOA,KAAAA,CAAMY,EAAE,KAAK,QAAA,IACpB,OAAOZ,KAAAA,CAAMc,IAAI,KAAK,QAAA,IACtBP,mBAAeP,KAAAA,EAAO,MAAA,CAAA,IACtBK,YAAAA,CAASL,KAAAA,CAAMQ,IAAI,CAAA,IACnBD,mBAAeP,KAAAA,EAAO,UAAA,CAAA,IACtBK,YAAAA,CAASL,KAAAA,CAAMS,QAAQ,CAAA;AAC/B;;ACrBA,MAAMU,aAAWC,WAAAA,CAAc;IAC3BC,IAAAA,EAAM;AACV,CAAA,CAAA;AAEO,SAASC,qBAAqBC,OAAwB,EAAA;AACzDJ,IAAAA,UAAAA,CAASK,UAAU,CAACD,OAAAA,CAAAA;AACxB;AAEO,SAASE,kBAAAA,GAAAA;AACZ,IAAA,OAAON,UAAAA,CAASO,GAAG,EAAA,IAAMP,UAAAA,CAASQ,UAAU,EAAA;AAChD;AAEO,SAASC,aAAAA,GAAAA;AACZ,IAAA,OAAOT,WAASU,GAAG,EAAA;AACvB;;ACdA,MAAMV,aAAWC,WAAAA,CAAmB;IAChCC,IAAAA,EAAM;AACV,CAAA,CAAA;AAEO,SAASS,gBAAgBP,OAA6B,EAAA;AACzDJ,IAAAA,UAAAA,CAASK,UAAU,CAACD,OAAAA,CAAAA;AACxB;AAEO,SAASQ,mBAAAA,GAAAA;AACZ,IAAA,OAAOZ,UAAAA,CAASO,GAAG,EAAA,IAAMP,UAAAA,CAASQ,UAAU,EAAA;AAChD;AAEO,SAASK,cAAAA,GAAAA;AACZ,IAAA,OAAOb,WAASU,GAAG,EAAA;AACvB;;ACfO,SAASI,8BAAAA,GAAAA;IACZ,IAAIC,OAAAA;AACJ,IAAA,IAAIH,mBAAAA,EAAAA,EAAuB;QACvBG,OAAAA,GAAU;YACNpB,IAAAA,EAAM,cAAA;YACNO,IAAAA,EAAM,QAAA;YACNc,KAAAA,EAAOH,cAAAA;AACX,SAAA;IACJ,CAAA,MAAO;QACHE,OAAAA,GAAU;YACNpB,IAAAA,EAAM,MAAA;YACNO,IAAAA,EAAM,OAAA;YACNe,QAAAA,EAAU;AACd,SAAA;AACJ,IAAA;IAEA,OAAOF,OAAAA;AACX;;AChBA,MAAMf,aAAWC,WAAAA,CAAgC;IAC7CC,IAAAA,EAAM;AACV,CAAA,CAAA;AAEO,SAASgB,mCAAmCd,OAA0C,EAAA;AACzFJ,IAAAA,UAAAA,CAASK,UAAU,CAACD,OAAAA,CAAAA;AACxB;AAEO,SAASe,gCAAAA,GAAAA;AACZ,IAAA,OAAOnB,UAAAA,CAASO,GAAG,EAAA,IAAMP,UAAAA,CAASQ,UAAU,EAAA;AAChD;AAEO,SAASY,2BAAAA,GAAAA;AACZ,IAAA,OAAOpB,WAASU,GAAG,EAAA;AACvB;;ACNO,MAAMW,YAAAA,SAAqBC,kBAAAA,CAAAA;IAC9B,WAAA,CAAYP,OAAAA,GAA+B,EAAE,CAAE;AAC3C,QAAA,KAAK,CAACA,OAAAA,CAAAA;AAEN,QAAA,IAAI,CAACI,gCAAAA,EAAAA,EAAoC;YACrCD,kCAAAA,CACI,IAAM,IAAIK,oCAAAA,CAAyB;AAC/BC,oBAAAA,OAAAA,EAAST,QAAQS,OAAO;oBACxBC,YAAAA,EAAcV,OAAAA,CAAQU,YAAY,IAAIX,8BAAAA;AAC1C,iBAAA,CAAA,CAAA;AAER,QAAA;AAEA,QAAA,MAAMY,IAAAA,GAAON,2BAAAA,EAAAA;QACbM,IAAAA,CAAKC,MAAM,CAAC,IAAI,CAAA;AACpB,IAAA;AACJ;;ACxBA,MAAM3B,aAAWC,WAAAA,CAAc;IAC3BC,IAAAA,EAAM;AACV,CAAA,CAAA;AAEO,SAAS0B,eAAAA,GAAAA;AACZ,IAAA,OAAO5B,WAASU,GAAG,EAAA;AACvB;AAEO,SAASmB,oBAAAA,GAAAA;AACZ,IAAA,OAAO7B,UAAAA,CAASO,GAAG,EAAA,IAAMP,UAAAA,CAASQ,UAAU,EAAA;AAChD;AAEO,SAASsB,uBAAuB1B,OAAwB,EAAA;AAC3DJ,IAAAA,UAAAA,CAASK,UAAU,CAACD,OAAAA,CAAAA;AACxB;;ACdA,MAAMJ,aAAWC,WAAAA,CAAc;IAC3BC,IAAAA,EAAM;AACV,CAAA,CAAA;AAEO,SAAS6B,gBAAgB3B,OAAwB,EAAA;AACpDJ,IAAAA,UAAAA,CAASK,UAAU,CAACD,OAAAA,CAAAA;AACxB;AAEO,SAAS4B,mBAAAA,GAAAA;AACZ,IAAA,OAAOhC,UAAAA,CAASO,GAAG,EAAA,IAAMP,UAAAA,CAASQ,UAAU,EAAA;AAChD;AAEO,SAASyB,eAAepD,KAAa,EAAA;AACxCmB,IAAAA,UAAAA,CAASkC,GAAG,CAACrD,KAAAA,CAAAA;AACjB;AAEO,SAASsD,cAAAA,GAAAA;AACZ,IAAA,OAAOnC,WAASU,GAAG,EAAA;AACvB;;AClBA,MAAMV,aAAWC,WAAAA,CAAc;IAC3BC,IAAAA,EAAM,cAAA;IACNE,OAAAA,EAAS,IAAM+B,iBAAiBC,SAAS;AAC7C,CAAA,CAAA;AAEO,SAASC,qBAAAA,GAAAA;AACZ,IAAA,OAAOrC,WAASU,GAAG,EAAA;AACvB;;ACPA,MAAMV,aAAWC,WAAAA,CAAc;IAC3BC,IAAAA,EAAM,gBAAA;IACNE,OAAAA,EAAS,IAAM+B,iBAAiBC,SAAS;AAC7C,CAAA,CAAA;AAEO,SAASE,uBAAAA,GAAAA;AACZ,IAAA,OAAOtC,WAASU,GAAG,EAAA;AACvB;;AClBA;;;;;AAKC,IAAA,SAAAhC,kBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAA;;;;;;;;;;;;;AAOM,MAAM6D,kBAAAA,CAAAA;IAaT,MAAMC,GAAAA,CAAIC,GAAW,EAAkB;AACnC,QAAA,OAAO,IAAI,CAACzC,QAAQ,CAACwC,GAAG,CAACC,GAAAA,CAAAA;AAC7B,IAAA;IAEA,MAAMlC,GAAAA,CAAIkC,GAAW,EAAqB;AACtC,QAAA,OAAO,IAAI,CAACzC,QAAQ,CAACO,GAAG,CAACkC,GAAAA,CAAAA;AAC7B,IAAA;AAEA,IAAA,MAAMP,IAAIO,GAAW,EAAEC,KAAY,EAAE3B,OAAwB,EAAiB;AAC1E,QAAA,IAAI,CAACf,QAAQ,CAACkC,GAAG,CAACO,KAAKC,KAAAA,EAAO;AAC1BC,YAAAA,GAAAA,EAAK5B,QAAQ4B;AACjB,SAAA,CAAA;AACJ,IAAA;IAEA,MAAMC,IAAAA,CAAKH,GAAW,EAAiB;AACnC,QAAA,IAAI,CAACzC,QAAQ,CAAC6C,MAAM,CAACJ,GAAAA,CAAAA;AACzB,IAAA;IAEA,MAAMK,QAAAA,CAASC,IAAc,EAAkB;AAC3C,QAAA,IAAK,IAAIC,CAAAA,GAAI,CAAA,EAAGA,IAAID,IAAAA,CAAKE,MAAM,EAAED,CAAAA,EAAAA,CAAK;AAClC,YAAA,IAAI,CAAChD,QAAQ,CAAC6C,MAAM,CAACE,IAAI,CAACC,CAAAA,CAAE,CAAA;AAChC,QAAA;AACJ,IAAA;AAEA,IAAA,MAAME,KAAAA,CAAMnC,OAAAA,GAA6B,EAAE,EAAkB;QACzD,IAAIA,OAAAA,CAAQoC,MAAM,EAAE;AAChB,YAAA,MAAMJ,IAAAA,GAAO,IAAI,CAAC/C,QAAQ,CAAC+C,IAAI,EAAA;YAC/B,IAAIK,QAAAA,GAAWL,KAAKM,IAAI,EAAA;YACxB,MAAO,CAACD,QAAAA,CAASE,IAAI,CAAE;AACnB,gBAAA,IAAIF,SAASV,KAAK,CAACa,UAAU,CAACxC,OAAAA,CAAQoC,MAAM,CAAA,EAAG;AAC3C,oBAAA,IAAI,CAACnD,QAAQ,CAAC6C,MAAM,CAACO,SAASV,KAAK,CAAA;AACvC,gBAAA;AAEAU,gBAAAA,QAAAA,GAAWL,KAAKM,IAAI,EAAA;AACxB,YAAA;AAEA,YAAA;AACJ,QAAA;QAEA,IAAI,CAACrD,QAAQ,CAACkD,KAAK,EAAA;AACvB,IAAA;IAhDA,WAAA,CAAYnC,OAAAA,GAAkC,EAAE,CAAE;AAFlD,QAAArC,kBAAA,CAAA,IAAA,EAAUsB,YAAV,MAAA,CAAA;AAGI,QAAA,IAAI,CAACA,QAAQ,GAAG,IAAIwD,QAAAA,CAAwB;YACxCC,aAAAA,EAAe,IAAA;YACfd,GAAAA,EAAKe,QAAAA;YACL,GAAI3C,OAAAA,IAAW;AACnB,SAAA,CAAA;AACJ,IAAA;AA2CJ;;AClEA;;;;;AAKC,IAAA,SAAArC,kBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAA;;;;;;;;;;;;;AAQM,MAAMiF,iBAAAA,CAAAA;IAUT,MAAMnB,GAAAA,CAAIC,GAAW,EAAgB;AACjC,QAAA,OAAO,IAAI,CAACzC,QAAQ,CAACwC,GAAG,CAACC,GAAAA,CAAAA;AAC7B,IAAA;IAEA,MAAMlC,GAAAA,CAAIkC,GAAW,EAAqB;AACtC,QAAA,MAAMmB,SAAS,MAAM,IAAI,CAACC,MAAM,CAACD,MAAM,CAACnB,GAAAA,CAAAA;AAExC,QAAA,OAAO,CAAC,CAACmB,MAAAA;AACb,IAAA;AAEA,IAAA,MAAM1B,IAAIO,GAAW,EAAEC,KAAU,EAAE3B,OAAwB,EAAiB;AACxE,QAAA,MAAM,IAAI,CAACf,QAAQ,CAACkC,GAAG,CAACO,KAAKC,KAAAA,EAAO;AAChCoB,YAAAA,YAAAA,EAAc/C,QAAQ4B;AAC1B,SAAA,CAAA;AACJ,IAAA;IAEA,MAAMC,IAAAA,CAAKH,GAAW,EAAiB;AACnC,QAAA,MAAM,IAAI,CAACzC,QAAQ,CAAC4C,IAAI,CAACH,GAAAA,CAAAA;AAC7B,IAAA;IAEA,MAAMK,QAAAA,CAASC,IAAc,EAAkB;AAC3C,QAAA,MAAMgB,QAAAA,GAAW,IAAI,CAACF,MAAM,CAACE,QAAQ,EAAA;AAErC,QAAA,IAAK,IAAIf,CAAAA,GAAI,CAAA,EAAGA,IAAID,IAAAA,CAAKE,MAAM,EAAED,CAAAA,EAAAA,CAAK;AAClCe,YAAAA,QAAAA,CAASC,GAAG,CAACjB,IAAI,CAACC,CAAAA,CAAE,CAAA;AACxB,QAAA;AAEA,QAAA,MAAMe,SAASE,IAAI,EAAA;AACvB,IAAA;AAEA,IAAA,MAAMf,KAAAA,CAAMnC,OAAAA,GAA6B,EAAE,EAAkB;QACzD,IAAIA,OAAAA,CAAQoC,MAAM,EAAE;AAChB,YAAA,MAAMY,QAAAA,GAAW,IAAI,CAACF,MAAM,CAACE,QAAQ,EAAA;AAErC,YAAA,MAAMhB,IAAAA,GAAO,MAAM,IAAI,CAACc,MAAM,CAACd,IAAI,CAAC,CAAA,EAAGhC,OAAAA,CAAQoC,MAAM,CAAC,CAAC,CAAC,CAAA;AACxD,YAAA,IAAK,IAAIH,CAAAA,GAAI,CAAA,EAAGA,IAAID,IAAAA,CAAKE,MAAM,EAAED,CAAAA,EAAAA,CAAK;AAClCe,gBAAAA,QAAAA,CAASC,GAAG,CAACjB,IAAI,CAACC,CAAAA,CAAE,CAAA;AACxB,YAAA;AAEA,YAAA,MAAMe,SAASE,IAAI,EAAA;AAEnB,YAAA;AACJ,QAAA;AACA,QAAA,MAAM,IAAI,CAACJ,MAAM,CAACK,OAAO,EAAA;AAC7B,IAAA;IAjDA,WAAA,EAAc;AAJd,QAAAxF,kBAAA,CAAA,IAAA,EAAUmF,UAAV,MAAA,CAAA;AAEA,QAAAnF,kBAAA,CAAA,IAAA,EAAUsB,YAAV,MAAA,CAAA;QAGI,IAAI,CAAC6D,MAAM,GAAG1B,cAAAA,EAAAA;AACd,QAAA,IAAI,CAACnC,QAAQ,GAAG,IAAImE,0BAAAA,CAAY,IAAI,CAACN,MAAM,CAAA;AAC/C,IAAA;AA+CJ;;ACzDO,SAASO,kBAAAA,GAAAA;AACZ,IAAA,IAAIpC,mBAAAA,EAAAA,EAAuB;AACvB,QAAA,OAAO,IAAI2B,iBAAAA,EAAAA;AACf,IAAA;AAEA,IAAA,OAAO,IAAIpB,kBAAAA,EAAAA;AACf;;ACPO,SAAS8B,cAActD,OAA6B,EAAA;AACvD,IAAA,OAAOuD,2BAAAA,CAAkBvD,OAAAA,CAAAA;AAC7B;;ACZA;;;;;AAKC,IAAA,SAAArC,kBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAA;;;;;;;;;;;;;AAKM,MAAM6F,KAAAA,CAAAA;IAOT,MAAMrC,GAAAA,CAAIO,GAAW,EAAEC,KAAU,EAAE3B,OAAAA,GAA2B,EAAE,EAAkB;AAC9E,QAAA,MAAM,IAAI,CAACyD,OAAO,CAACtC,GAAG,CAACO,KAAKC,KAAAA,EAAO3B,OAAAA,CAAAA;AACvC,IAAA;IAEA,MAAMyB,GAAAA,CAAIC,GAAW,EAA6B;AAC9C,QAAA,OAAO,IAAI,CAAC+B,OAAO,CAAChC,GAAG,CAACC,GAAAA,CAAAA;AAC5B,IAAA;IAEA,MAAMlC,GAAAA,CAAIkC,GAAW,EAAqB;AACtC,QAAA,OAAO,IAAI,CAAC+B,OAAO,CAACjE,GAAG,CAACkC,GAAAA,CAAAA;AAC5B,IAAA;IAEA,MAAMG,IAAAA,CAAKH,GAAW,EAAkB;AACpC,QAAA,OAAO,IAAI,CAAC+B,OAAO,CAAC5B,IAAI,CAACH,GAAAA,CAAAA;AAC7B,IAAA;IAEA,MAAMK,QAAAA,CAASC,IAAc,EAAkB;AAC3C,QAAA,OAAO,IAAI,CAACyB,OAAO,CAAC1B,QAAQ,CAACC,IAAAA,CAAAA;AACjC,IAAA;AAEA,IAAA,MAAMG,KAAAA,CAAMnC,OAAAA,GAA6B,EAAE,EAAkB;AACzD,QAAA,OAAO,IAAI,CAACyD,OAAO,CAACtB,KAAK,CAACnC,OAAAA,CAAAA;AAC9B,IAAA;AA1BA,IAAA,WAAA,CAAYyD,OAAqB,CAAE;AAFnC,QAAA9F,kBAAA,CAAA,IAAA,EAAU8F,WAAV,MAAA,CAAA;QAGI,IAAI,CAACA,OAAO,GAAGA,OAAAA;AACnB,IAAA;AAyBJ;;AC3BA,MAAMxE,aAAWC,WAAAA,CAAa;IAC1BC,IAAAA,EAAM,OAAA;IACNE,OAAAA,EAAS,IAAA;QACL,IAAIoE,OAAAA;AACJ,QAAA,IAAIxC,mBAAAA,EAAAA,EAAuB;AACvBwC,YAAAA,OAAAA,GAAU,IAAIb,iBAAAA,EAAAA;QAClB,CAAA,MAAO;AACHa,YAAAA,OAAAA,GAAU,IAAIjC,kBAAAA,EAAAA;AAClB,QAAA;AAEA,QAAA,OAAO,IAAIgC,KAAAA,CAAMC,OAAAA,CAAAA;AACrB,IAAA;AACJ,CAAA,CAAA;AAEO,SAASC,QAAAA,GAAAA;AACZ,IAAA,OAAOzE,WAASU,GAAG,EAAA;AACvB;;ACfO,SAASgE,YAAAA,CAAaC,GAAAA,GAA2B,EAAE,EAAA;AACtD,IAAA,MAAM,EAAEC,SAAS,EAAE7D,UAAU,EAAE,EAAE,GAAG4D,GAAAA;IAEpC,IAAIE,gBAAAA;AACJ,IAAA,IAAIC,UAAAA,CAAK,KAAA,CAAA,KAAWC,gCAAAA,CAAgBC,UAAU,EAAE;QAC5CH,gBAAAA,GAAmB;YACf,IAAII,kBAAAA,CAAWC,OAAO,CAAC;gBACnBC,KAAAA,EAAO;AACX,aAAA,CAAA;YACA,IAAIF,kBAAAA,CAAWG,IAAI,CAAC;AAChBC,gBAAAA,QAAAA,EAAUC,KAAKC,IAAI,CAACX,SAAAA,IAAaY,OAAAA,CAAQC,GAAG,EAAA,EAAI,YAAA,CAAA;gBAChDN,KAAAA,EAAO,MAAA;AACPO,gBAAAA,OAAAA,EAAS,KAAK,IAAA,GAAO,IAAA;gBACrBC,QAAAA,EAAU;AACd,aAAA,CAAA;YACA,IAAIV,kBAAAA,CAAWG,IAAI,CAAC;AAChBC,gBAAAA,QAAAA,EAAUC,KAAKC,IAAI,CAACX,SAAAA,IAAaY,OAAAA,CAAQC,GAAG,EAAA,EAAI,WAAA,CAAA;gBAChDN,KAAAA,EAAO,MAAA;AACPO,gBAAAA,OAAAA,EAAS,KAAK,IAAA,GAAO,IAAA;gBACrBC,QAAAA,EAAU;AACd,aAAA;AACH,SAAA;IACL,CAAA,MAAO;QACHd,gBAAAA,GAAmB;YACf,IAAII,kBAAAA,CAAWC,OAAO,CAAC;gBACnBC,KAAAA,EAAO;AACX,aAAA;AACH,SAAA;AACL,IAAA;AAEA,IAAA,OAAOS,oBAAAA,CAAO;AACVC,QAAAA,MAAAA,EAAQA,cAAAA,CAAOC,OAAO,CAClBD,cAAAA,CAAOE,MAAM,CAAC;YAAEC,KAAAA,EAAO;AAAK,SAAA,CAAA,EAC5BH,eAAOjG,SAAS,EAAA,EAChBiG,eAAOI,QAAQ,EAAA,EACfJ,eAAOK,MAAM,EAAA,CAAA;QAEjBf,KAAAA,EAAO,OAAA;QACPF,UAAAA,EAAYJ,gBAAAA;;QAEZ,GAAI9D,OAAAA,IAAW;AACnB,KAAA,CAAA;AACJ;;AC9CA,MAAMf,aAAWC,WAAAA,CAAc;IAC3BC,IAAAA,EAAM;AACV,CAAA,CAAA;AAEO,SAASiG,iBAAiB/F,OAAwB,EAAA;AACrDJ,IAAAA,UAAAA,CAASK,UAAU,CAACD,OAAAA,CAAAA;AACxB;AAEO,SAASgG,cAAAA,GAAAA;AACZ,IAAA,OAAOpG,UAAAA,CAASO,GAAG,EAAA,IAAMP,UAAAA,CAASQ,UAAU,EAAA;AAChD;AAEO,SAAS6F,UAAUxH,KAAa,EAAA;AACnCmB,IAAAA,UAAAA,CAASkC,GAAG,CAACrD,KAAAA,CAAAA;AACjB;AAEO,SAASyH,SAAAA,GAAAA;AACZ,IAAA,OAAOtG,WAASU,GAAG,EAAA;AACvB;;AC5BA;;;;;AAKC,IAAA,SAAAhC,kBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAA;;;;;;;;;;;;;AAOM,MAAM6H,oBAAAA,CAAAA;AAOTC,IAAAA,YAAAA,CAAaC,SAAgC,EAAE;AAC3C,QAAA,IAAI,CAACC,UAAU,CAACC,GAAG,CAACF,SAAAA,CAAAA;AACxB,IAAA;IAEA,MAAMG,WAAAA,CACFjC,GAAiC,EACnB;QACd,IAAI;YACA,MAAM,IAAI,CAACkC,OAAO,CAAClC,GAAAA,CAAAA;AACvB,QAAA,CAAA,CAAE,OAAOmC,CAAAA,EAAG;AACR,YAAA,IAAIV,cAAAA,EAAAA,EAAkB;AAClBE,gBAAAA,SAAAA,EAAAA,CAAYS,KAAK,CAAC,CAAC,iBAAiB,EAAEC,6BAAyBrC,GAAAA,CAAItF,IAAI,CAACM,IAAI,EAAEgF,GAAAA,CAAItF,IAAI,CAAC4H,KAAK,CAAA,CAAE,OAAO,CAAC,CAAA;AACtGX,gBAAAA,SAAAA,EAAAA,CAAYS,KAAK,CAACD,CAAAA,CAAAA;AACtB,YAAA;AACJ,QAAA;AACJ,IAAA;IAEA,MAAMD,OAAAA,CACFlC,GAAiC,EACnB;AACd,QAAA,IAAIyB,cAAAA,EAAAA,EAAkB;AAClBE,YAAAA,SAAAA,EAAAA,CAAYY,IAAI,CAAC,CAAC,iBAAiB,EAAEF,4BAAAA,CAAyBrC,GAAAA,CAAItF,IAAI,CAACM,IAAI,EAAEgF,GAAAA,CAAItF,IAAI,CAAC4H,KAAK,CAAA,CAAA,CAAG,CAAA;AAClG,QAAA;AAEA,QAAA,MAAMP,UAAAA,GAAa,IAAI,CAACA,UAAU,CAACS,MAAM,EAAA;AACzC,QAAA,MAAO,IAAA,CAAM;YACT,MAAMC,EAAAA,GAAKV,WAAWrD,IAAI,EAAA;YAC1B,IAAI+D,EAAAA,CAAG9D,IAAI,EAAE;AACT,gBAAA;AACJ,YAAA;AAEA,YAAA,MAAM8D,EAAAA,CAAG1E,KAAK,CAACmE,OAAO,CAAClC,GAAAA,CAAAA;AAC3B,QAAA;AACJ,IAAA;IArCA,WAAA,EAAc;AAFd,QAAAjG,kBAAA,CAAA,IAAA,EAAUgI,cAAV,MAAA,CAAA;QAGI,IAAI,CAACA,UAAU,GAAG,IAAIW,GAAAA,EAAAA;AAC1B,IAAA;AAoCJ;;AC3CO,SAASC,mBAAsBzI,KAAQ,EAAA;AAC1C,IAAA,IAAIK,aAASL,KAAAA,CAAAA,EAAQ;QACjB,MAAMkE,IAAAA,GAAOwE,MAAAA,CAAOxE,IAAI,CAAClE,KAAAA,CAAAA;AACzB,QAAA,IAAK,IAAImE,CAAAA,GAAI,CAAA,EAAGA,IAAID,IAAAA,CAAKE,MAAM,EAAED,CAAAA,EAAAA,CAAK;AAClC,YAAA,MAAMN,QAAQ7D,KAAK,CAACkE,IAAI,CAACC,EAAE,CAAC;AAC5B,YAAA,IAAIN,iBAAiB7C,IAAAA,EAAM;AACvBhB,gBAAAA,KAAK,CAACkE,IAAI,CAACC,EAAE,CAAC,GAAGN,MAAM8E,WAAW,EAAA;AACtC,YAAA;AACJ,QAAA;AACJ,IAAA;IAEA,OAAO3I,KAAAA;AACX;AAEO,SAAS4I,qBAAAA,CACZ5I,KAA6B,EAC7BY,EAAoB,EAAA;IAEpB,IAAI,OAAOZ,UAAU,QAAA,EAAU;QAC3B,OAAOA,KAAAA;AACX,IAAA;AAEA,IAAA,OAAOA,KAAAA,CAAMY,EAAAA,CAAAA;AACjB;;ACjCA;;;;;AAKC,IAAA,SAAAf,kBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAA;;;;;;;;;;;;;AAMM,MAAMgJ,yBAAAA,CAAAA;IAOT,MAAMb,OAAAA,CAAQlC,GAA8B,EAAkB;AAC1D,QAAA,MAAMtF,OAAOsI,IAAAA,CAAKC,SAAS,CAACN,kBAAAA,CAAmB3C,IAAItF,IAAI,CAAA,CAAA;AAEvD,QAAA,MAAM0E,QAAAA,GAAW,IAAI,CAAC8D,MAAM,CAAC9D,QAAQ,EAAA;QACrC,IAAK,IAAIf,IAAI,CAAA,EAAGA,CAAAA,GAAI2B,IAAImD,YAAY,CAAC7E,MAAM,EAAED,CAAAA,EAAAA,CAAK;AAC9C,YAAA,MAAM+E,YAAapD,GAAAA,CAAImD,YAAY,CAAC9E,CAAAA,CAAE,CAACgF,SAAS,GAAG,CAAA,EAAGrD,GAAAA,CAAImD,YAAY,CAAC9E,CAAAA,CAAE,CAACgF,SAAS,CAAC,CAAC,CAAC,GAAG,EAAA;YAEzF,IAAIvF,GAAAA,GAAMsF,YAAYN,qBAAAA,CAAsB9C,GAAAA,CAAImD,YAAY,CAAC9E,CAAAA,CAAE,CAACiF,OAAO,CAAA;YACvElE,QAAAA,CAAS8C,OAAO,CAACpE,GAAAA,EAAKpD,IAAAA,CAAAA;YAEtB,IAAI,OAAOsF,IAAImD,YAAY,CAAC9E,EAAE,CAACiF,OAAO,KAAK,UAAA,EAAY;AACnDxF,gBAAAA,GAAAA,GAAMsF,SAAAA,GAAYN,qBAAAA,CAAsB9C,GAAAA,CAAImD,YAAY,CAAC9E,CAAAA,CAAE,CAACiF,OAAO,EAAEtD,GAAAA,CAAItF,IAAI,CAACA,IAAI,CAACI,EAAE,CAAA;gBACrFsE,QAAAA,CAAS8C,OAAO,CAACpE,GAAAA,EAAKpD,IAAAA,CAAAA;AAC1B,YAAA;AACJ,QAAA;AAEA,QAAA,MAAM0E,SAASE,IAAI,EAAA;AACvB,IAAA;AArBA,IAAA,WAAA,CAAYJ,MAAc,CAAE;AAF5B,QAAAnF,kBAAA,CAAA,IAAA,EAAUmJ,UAAV,MAAA,CAAA;QAGI,IAAI,CAACA,MAAM,GAAGhE,MAAAA;AAClB,IAAA;AAoBJ;;ACpCA;;;;;AAKC,IAAA,SAAAnF,kBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAA;;;;;;;;;;;;;AAQM,MAAMwJ,0BAAAA,CAAAA;IAOT,MAAMrB,OAAAA,CAAQlC,GAA8B,EAAkB;AAC1DA,QAAAA,GAAAA,CAAItF,IAAI,GAAGiI,kBAAAA,CAAmB3C,GAAAA,CAAItF,IAAI,CAAA;QAEtC,IAAK,IAAI2D,IAAI,CAAA,EAAGA,CAAAA,GAAI2B,IAAImD,YAAY,CAAC7E,MAAM,EAAED,CAAAA,EAAAA,CAAK;YAC9C,IAAIgF,SAAAA;AACJ,YAAA,IAAIrD,IAAImD,YAAY,CAAC9E,CAAAA,CAAE,CAACgF,SAAS,EAAE;AAC/BA,gBAAAA,SAAAA,GAAYrD,GAAAA,CAAImD,YAAY,CAAC9E,CAAAA,CAAE,CAACgF,SAAS;YAC7C,CAAA,MAAO;gBACHA,SAAAA,GAAY,GAAA;AAChB,YAAA;YAEA,MAAMG,OAAAA,GAAU,IAAIC,oBAAAA,CAAQ,IAAI,CAACvE,MAAM,EAAE,EAAC,EAAGmE,SAAAA,CAAAA;YAE7C,MAAMK,aAAAA,GAAgBrB,4BAAAA,CAAyBrC,GAAAA,CAAItF,IAAI,CAACM,IAAI,EAAEgF,GAAAA,CAAItF,IAAI,CAAC4H,KAAK,CAAA;AAE5E,YAAA,MAAMqB,KAAAA,GAAmB;AACrBb,gBAAAA,qBAAAA,CAAsB9C,GAAAA,CAAImD,YAAY,CAAC9E,CAAAA,CAAE,CAACiF,OAAO;AACpD,aAAA;YAED,IAAI,OAAOtD,IAAImD,YAAY,CAAC9E,EAAE,CAACiF,OAAO,KAAK,UAAA,EAAY;AACnDK,gBAAAA,KAAAA,CAAMC,IAAI,CAACd,qBAAAA,CAAsB9C,GAAAA,CAAImD,YAAY,CAAC9E,CAAAA,CAAE,CAACiF,OAAO,EAAEtD,GAAAA,CAAItF,IAAI,CAACA,IAAI,CAACI,EAAE,CAAA,CAAA;AAClF,YAAA;AAEA,YAAA,IAAK,IAAI+I,CAAAA,GAAI,CAAA,EAAGA,IAAIF,KAAAA,CAAMrF,MAAM,EAAEuF,CAAAA,EAAAA,CAAK;gBACnCL,OAAAA,CACKM,EAAE,CAACH,KAAK,CAACE,EAAE,CAAA,CACXE,IAAI,CAACL,aAAAA,EAAe;AACjB,oBAAA,GAAG1D,IAAItF,IAAI;oBACXsJ,IAAAA,EAAM;AACFX,wBAAAA,SAAAA;wBACAY,QAAAA,EAAUN,KAAK,CAACE,CAAAA;AACpB;AACJ,iBAAA,CAAA;AACR,YAAA;AACJ,QAAA;AACJ,IAAA;AAvCA,IAAA,WAAA,CAAY3E,MAAc,CAAE;AAF5B,QAAAnF,kBAAA,CAAA,IAAA,EAAUmF,UAAV,MAAA,CAAA;QAGI,IAAI,CAACA,MAAM,GAAGA,MAAAA;AAClB,IAAA;AAsCJ;;AC3CA,MAAM7D,aAAWC,WAAAA,CAA4B;IACzCC,IAAAA,EAAM,sBAAA;IACNE,OAAAA,EAAS,IAAA;AACL,QAAA,MAAMqG,YAAY,IAAIF,oBAAAA,EAAAA;AAEtB,QAAA,IAAIvE,mBAAAA,EAAAA,EAAuB;AACvB,YAAA,MAAM6B,MAAAA,GAAS1B,cAAAA,EAAAA;YAEfsE,SAAAA,CAAUD,YAAY,CAAC,IAAIkB,yBAAAA,CAA0B7D,MAAAA,CAAAA,CAAAA;YACrD4C,SAAAA,CAAUD,YAAY,CAAC,IAAI0B,0BAAAA,CAA2BrE,MAAAA,CAAAA,CAAAA;AAC1D,QAAA;QAEA,OAAO4C,SAAAA;AACX,IAAA;AACJ,CAAA,CAAA;AAEO,SAASoC,uBAAAA,GAAAA;AACZ,IAAA,OAAO7I,WAASU,GAAG,EAAA;AACvB;;ACpBA,MAAMV,aAAWC,WAAAA,CAAkB;IAC/BC,IAAAA,EAAM;AACV,CAAA,CAAA;AAEO,SAAS4I,eAAe1I,OAA4B,EAAA;AACvDJ,IAAAA,UAAAA,CAASK,UAAU,CAACD,OAAAA,CAAAA;AACxB;AAEO,SAAS2I,kBAAAA,GAAAA;AACZ,IAAA,OAAO/I,UAAAA,CAASO,GAAG,EAAA,IAAMP,UAAAA,CAASQ,UAAU,EAAA;AAChD;AAEO,SAASwI,aAAAA,GAAAA;AACZ,IAAA,OAAOhJ,WAASU,GAAG,EAAA;AACvB;;ACzBA;;;;;AAKC,IAAA,SAAA,gBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,KAAA,EAAA;;;;;;;;;;;;;AAaM,MAAMuI,WAAAA,CAAAA;;AAWTpC,IAAAA,OAAAA,CAAQ/H,OAA2B,EAAqB;QACpD,IAAIoK,QAAAA;AACJ,QAAA,IAAIpK,QAAQQ,QAAQ,CAAC6J,OAAO,CAACxJ,IAAI,KAAK,MAAA,EAAQ;AAC1CuJ,YAAAA,QAAAA,GAAW,IAAI,CAACrB,MAAM,CAACuB,EAAE,CAAC;AACtBzJ,gBAAAA,IAAAA,EAAM0J,2BAAaC,MAAM;AACzBpJ,gBAAAA,IAAAA,EAAMpB,QAAQQ,QAAQ,CAAC6J,OAAO,CAACnB,SAAS,IAAI;AAChD,aAAA,CAAA;QACJ,CAAA,MAAO;AACHkB,YAAAA,QAAAA,GAAW,IAAI,CAACrB,MAAM,CAACuB,EAAE,CAAC;AACtBzJ,gBAAAA,IAAAA,EAAM0J,2BAAaE,KAAK;AACxBrJ,gBAAAA,IAAAA,EAAMpB,QAAQQ,QAAQ,CAAC6J,OAAO,CAACnB,SAAS,IAAI;AAChD,aAAA,CAAA;AACJ,QAAA;AAEA,QAAA,IAAI5B,cAAAA,EAAAA,EAAkB;AAClBE,YAAAA,SAAAA,EAAAA,CACKkD,KAAK,CAAC,CAAC,yBAAyB,EAAE1K,QAAQa,IAAI,CAAC,IAAI,EAAEb,QAAQQ,QAAQ,CAAC6J,OAAO,CAAC1G,GAAG,CAAA,CAAE,CAAA;AAC5F,QAAA;QAEA,OAAOyG,QAAAA,CAASrC,OAAO,CAAC/H,OAAAA,CAAQQ,QAAQ,CAAC6J,OAAO,CAAC1G,GAAG,EAAE3D,OAAAA,EAAS;AAC3Da,YAAAA,IAAAA,EAAMb,QAAQa,IAAI;AAClB8J,YAAAA,SAAAA,EAAW3K,QAAQW,EAAE;AACrBiK,YAAAA,UAAAA,EAAY5K,OAAAA,CAAQQ,QAAQ,CAACoK,UAAU,IACnC5K,OAAAA,CAAQQ,QAAQ,CAAC6J,OAAO,CAACxJ,IAAI,KAAKJ,uBAAuBoK;AACjE,SAAA,CAAA;AACJ,IAAA;IAEAC,OAAAA,CAAQT,OAA2B,EAAEU,QAA6B,EAAkB;QAChF,IAAIX,QAAAA;QACJ,IAAIC,OAAAA,CAAQxJ,IAAI,KAAK,MAAA,EAAQ;AACzBuJ,YAAAA,QAAAA,GAAW,IAAI,CAACrB,MAAM,CAACuB,EAAE,CAAC;AACtBzJ,gBAAAA,IAAAA,EAAM0J,2BAAaC,MAAM;gBACzBpJ,IAAAA,EAAMiJ,OAAAA,CAAQnB,SAAS,IAAI;AAC/B,aAAA,CAAA;QACJ,CAAA,MAAO;AACHkB,YAAAA,QAAAA,GAAW,IAAI,CAACrB,MAAM,CAACuB,EAAE,CAAC;AACtBzJ,gBAAAA,IAAAA,EAAM0J,2BAAaE,KAAK;gBACxBrJ,IAAAA,EAAMiJ,OAAAA,CAAQnB,SAAS,IAAI;AAC/B,aAAA,CAAA;AACJ,QAAA;AAEA,QAAA,OAAOkB,QAAAA,CAASU,OAAO,CAACT,OAAAA,CAAQ1G,GAAG,EAAE;AACjCqH,YAAAA,aAAAA,EAAeX,QAAQxJ,IAAI,KAAKJ,sBAAAA,CAAuBoK,IAAI,GAAG,CAAA,GAAII,SAAAA;;AAElEC,YAAAA,gBAAAA,EAAkBb,OAAAA,CAAQxJ,IAAI,KAAKJ,sBAAAA,CAAuBoK;SAC9D,EAAG;AACCM,YAAAA,IAAAA,EAAM,OAAOpL,KAAAA,GAAAA;gBACT,MAAMqL,OAAAA,GAAUvC,KAAKwC,KAAK,CAACtL,MAAMuL,OAAO,CAACC,QAAQ,CAAC,OAAA,CAAA,CAAA;gBAClD,IAAI,CAACtK,qBAAqBmK,OAAAA,CAAAA,EAAU;AAChC,oBAAA;AACJ,gBAAA;AAEA,gBAAA,IAAIrL,KAAAA,CAAMyL,MAAM,CAACC,WAAW,EAAE;AAC1B,oBAAA,IAAInE,cAAAA,EAAAA,EAAkB;AAClBE,wBAAAA,SAAAA,EAAAA,CACKkD,KAAK,CAAC,CAAC,cAAc,EAAE3K,MAAM2L,UAAU,CAAC7K,IAAI,CAAC,IAAI,EAAEwJ,OAAAA,CAAQ1G,GAAG,CAAC,wBAAwB,CAAC,CAAA;AACjG,oBAAA;AAEA,oBAAA;AACJ,gBAAA;AAEA,gBAAA,IAAI2D,cAAAA,EAAAA,EAAkB;AAClBE,oBAAAA,SAAAA,EAAAA,CACKkD,KAAK,CAAC,CAAC,wBAAwB,EAAE3K,KAAAA,CAAM2L,UAAU,CAAC7K,IAAI,CAAC,IAAI,EAAEwJ,OAAAA,CAAQ1G,GAAG,CAAA,CAAE,CAAA;AACnF,gBAAA;gBAEA,IAAIgI,OAAAA;AAEJ,gBAAA,IACI,OAAO5L,KAAAA,CAAM2L,UAAU,CAAC7K,IAAI,KAAK,QAAA,IACjCkK,QAAQ,CAAChL,KAAAA,CAAM2L,UAAU,CAAC7K,IAAI,CAAC,EACjC;AACE8K,oBAAAA,OAAAA,GAAUZ,QAAQ,CAAChL,KAAAA,CAAM2L,UAAU,CAAC7K,IAAI,CAAC;gBAC7C,CAAA,MAAO;AACH8K,oBAAAA,OAAAA,GAAUZ,SAASI,IAAI;AAC3B,gBAAA;gBAEA,IAAI,OAAOQ,YAAY,UAAA,EAAY;AAC/B,oBAAA,IAAIrE,cAAAA,EAAAA,EAAkB;AAClBE,wBAAAA,SAAAA,EAAAA,CACKkD,KAAK,CAAC,CAAC,oCAAoC,EAAE3K,KAAAA,CAAM2L,UAAU,CAAC7K,IAAI,CAAC,IAAI,EAAEwJ,OAAAA,CAAQ1G,GAAG,CAAA,CAAE,CAAA;AAC/F,oBAAA;AAEA,oBAAA;AACJ,gBAAA;AAEA,gBAAA,MAAMgI,OAAAA,CAAQP,OAAAA,CAAAA;AAClB,YAAA;AACJ,SAAA,CAAA;AACJ,IAAA;;AA/FA,IAAA,WAAA,CAAYrC,MAAc,CAAE;AAJ5B,QAAA,gBAAA,CAAA,IAAA,EAAUA,UAAV,MAAA,CAAA;QAKI,IAAI,CAACA,MAAM,GAAGA,MAAAA;AAClB,IAAA;AA8FJ;;AC5GA,MAAM7H,WAAWC,WAAAA,CAAmB;IAChCC,IAAAA,EAAM,aAAA;IACNE,OAAAA,EAAS,IAAA;AACL,QAAA,MAAMsK,IAAAA,GAAOjK,aAAAA,EAAAA;AAEb,QAAA,OAAO,IAAIwI,WAAAA,CAAYyB,IAAAA,CAAAA;AAC3B,IAAA;AACJ,CAAA,CAAA;AAEO,SAASC,mBAAAA,GAAAA;IACZ,OAAO3K,QAAAA,CAASO,GAAG,EAAA,IAAMD,kBAAAA,EAAAA;AAC7B;AAEO,SAASsK,cAAAA,GAAAA;AACZ,IAAA,OAAO5K,SAASU,GAAG,EAAA;AACvB;;AC1BA;;;;;AAKC,IAEM,SAAStB,cAAAA,CACZyL,GAAM,EACNC,IAAO,EAAA;AAEP,IAAA,OAAOvD,OAAOwD,SAAS,CAAC3L,cAAc,CAAC4L,IAAI,CAACH,GAAAA,EAAKC,IAAAA,CAAAA;AACrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.mjs
CHANGED
|
@@ -11,6 +11,7 @@ import path from 'node:path';
|
|
|
11
11
|
import { EnvironmentName } from 'typeorm-extension';
|
|
12
12
|
import { transports, createLogger as createLogger$1, format } from 'winston';
|
|
13
13
|
import { Emitter } from '@socket.io/redis-emitter';
|
|
14
|
+
export { LokiClient, CompactorDeletionRequestCreate as LokiCompactorDeletionRequestCreate, Config as LokiConfig, ConfigInput as LokiConfigInput, DistributorPushStream as LokiDistributorPushStream, QuerierQueryRangeOptions as LokiQuerierQueryRangeOptions, QuerierQueryResult as LokiQuerierQueryResult, createClient as createLokiClient, nanoSeconds } from '@hapic/loki';
|
|
14
15
|
|
|
15
16
|
/*
|
|
16
17
|
* Copyright (c) 2023-2024.
|
|
@@ -82,30 +83,30 @@ function isQueueRouterPayload(input) {
|
|
|
82
83
|
return isObject(input) && typeof input.id === 'string' && typeof input.type === 'string' && hasOwnProperty$1(input, 'data') && isObject(input.data) && hasOwnProperty$1(input, 'metadata') && isObject(input.metadata);
|
|
83
84
|
}
|
|
84
85
|
|
|
85
|
-
const instance$
|
|
86
|
+
const instance$b = singa({
|
|
86
87
|
name: 'amqp'
|
|
87
88
|
});
|
|
88
89
|
function setAmqpClientFactory(factory) {
|
|
89
|
-
instance$
|
|
90
|
+
instance$b.setFactory(factory);
|
|
90
91
|
}
|
|
91
92
|
function isAmqpClientUsable() {
|
|
92
|
-
return instance$
|
|
93
|
+
return instance$b.has() || instance$b.hasFactory();
|
|
93
94
|
}
|
|
94
95
|
function useAmqpClient() {
|
|
95
|
-
return instance$
|
|
96
|
+
return instance$b.use();
|
|
96
97
|
}
|
|
97
98
|
|
|
98
|
-
const instance$
|
|
99
|
+
const instance$a = singa({
|
|
99
100
|
name: 'vault'
|
|
100
101
|
});
|
|
101
102
|
function setVaultFactory(factory) {
|
|
102
|
-
instance$
|
|
103
|
+
instance$a.setFactory(factory);
|
|
103
104
|
}
|
|
104
105
|
function isVaultClientUsable() {
|
|
105
|
-
return instance$
|
|
106
|
+
return instance$a.has() || instance$a.hasFactory();
|
|
106
107
|
}
|
|
107
108
|
function useVaultClient() {
|
|
108
|
-
return instance$
|
|
109
|
+
return instance$a.use();
|
|
109
110
|
}
|
|
110
111
|
|
|
111
112
|
function guessAuthupTokenCreatorOptions() {
|
|
@@ -126,17 +127,17 @@ function guessAuthupTokenCreatorOptions() {
|
|
|
126
127
|
return options;
|
|
127
128
|
}
|
|
128
129
|
|
|
129
|
-
const instance$
|
|
130
|
+
const instance$9 = singa({
|
|
130
131
|
name: 'clientAuthenticationHook'
|
|
131
132
|
});
|
|
132
133
|
function setClientAuthenticationHookFactory(factory) {
|
|
133
|
-
instance$
|
|
134
|
+
instance$9.setFactory(factory);
|
|
134
135
|
}
|
|
135
136
|
function isClientAuthenticationHookUsable() {
|
|
136
|
-
return instance$
|
|
137
|
+
return instance$9.has() || instance$9.hasFactory();
|
|
137
138
|
}
|
|
138
139
|
function useClientAuthenticationHook() {
|
|
139
|
-
return instance$
|
|
140
|
+
return instance$9.use();
|
|
140
141
|
}
|
|
141
142
|
|
|
142
143
|
class AuthupClient extends Client {
|
|
@@ -153,49 +154,49 @@ class AuthupClient extends Client {
|
|
|
153
154
|
}
|
|
154
155
|
}
|
|
155
156
|
|
|
156
|
-
const instance$
|
|
157
|
+
const instance$8 = singa({
|
|
157
158
|
name: 'authup'
|
|
158
159
|
});
|
|
159
160
|
function useAuthupClient() {
|
|
160
|
-
return instance$
|
|
161
|
+
return instance$8.use();
|
|
161
162
|
}
|
|
162
163
|
function isAuthupClientUsable() {
|
|
163
|
-
return instance$
|
|
164
|
+
return instance$8.has() || instance$8.hasFactory();
|
|
164
165
|
}
|
|
165
166
|
function setAuthupClientFactory(factory) {
|
|
166
|
-
instance$
|
|
167
|
+
instance$8.setFactory(factory);
|
|
167
168
|
}
|
|
168
169
|
|
|
169
|
-
const instance$
|
|
170
|
+
const instance$7 = singa({
|
|
170
171
|
name: 'redis'
|
|
171
172
|
});
|
|
172
173
|
function setRedisFactory(factory) {
|
|
173
|
-
instance$
|
|
174
|
+
instance$7.setFactory(factory);
|
|
174
175
|
}
|
|
175
176
|
function isRedisClientUsable() {
|
|
176
|
-
return instance$
|
|
177
|
+
return instance$7.has() || instance$7.hasFactory();
|
|
177
178
|
}
|
|
178
179
|
function setRedisClient(input) {
|
|
179
|
-
instance$
|
|
180
|
+
instance$7.set(input);
|
|
180
181
|
}
|
|
181
182
|
function useRedisClient() {
|
|
182
|
-
return instance$
|
|
183
|
+
return instance$7.use();
|
|
183
184
|
}
|
|
184
185
|
|
|
185
|
-
const instance$
|
|
186
|
+
const instance$6 = singa({
|
|
186
187
|
name: 'redisPublish',
|
|
187
188
|
factory: ()=>useRedisClient().duplicate()
|
|
188
189
|
});
|
|
189
190
|
function useRedisPublishClient() {
|
|
190
|
-
return instance$
|
|
191
|
+
return instance$6.use();
|
|
191
192
|
}
|
|
192
193
|
|
|
193
|
-
const instance$
|
|
194
|
+
const instance$5 = singa({
|
|
194
195
|
name: 'redisSubscribe',
|
|
195
196
|
factory: ()=>useRedisClient().duplicate()
|
|
196
197
|
});
|
|
197
198
|
function useRedisSubscribeClient() {
|
|
198
|
-
return instance$
|
|
199
|
+
return instance$5.use();
|
|
199
200
|
}
|
|
200
201
|
|
|
201
202
|
/*
|
|
@@ -375,7 +376,7 @@ class Cache {
|
|
|
375
376
|
}
|
|
376
377
|
}
|
|
377
378
|
|
|
378
|
-
const instance$
|
|
379
|
+
const instance$4 = singa({
|
|
379
380
|
name: 'cache',
|
|
380
381
|
factory: ()=>{
|
|
381
382
|
let adapter;
|
|
@@ -388,7 +389,7 @@ const instance$3 = singa({
|
|
|
388
389
|
}
|
|
389
390
|
});
|
|
390
391
|
function useCache() {
|
|
391
|
-
return instance$
|
|
392
|
+
return instance$4.use();
|
|
392
393
|
}
|
|
393
394
|
|
|
394
395
|
function createLogger(ctx = {}) {
|
|
@@ -430,20 +431,20 @@ function createLogger(ctx = {}) {
|
|
|
430
431
|
});
|
|
431
432
|
}
|
|
432
433
|
|
|
433
|
-
const instance$
|
|
434
|
+
const instance$3 = singa({
|
|
434
435
|
name: 'logger'
|
|
435
436
|
});
|
|
436
437
|
function setLoggerFactory(factory) {
|
|
437
|
-
instance$
|
|
438
|
+
instance$3.setFactory(factory);
|
|
438
439
|
}
|
|
439
440
|
function isLoggerUsable() {
|
|
440
|
-
return instance$
|
|
441
|
+
return instance$3.has() || instance$3.hasFactory();
|
|
441
442
|
}
|
|
442
443
|
function setLogger(input) {
|
|
443
|
-
instance$
|
|
444
|
+
instance$3.set(input);
|
|
444
445
|
}
|
|
445
446
|
function useLogger() {
|
|
446
|
-
return instance$
|
|
447
|
+
return instance$3.use();
|
|
447
448
|
}
|
|
448
449
|
|
|
449
450
|
/*
|
|
@@ -608,7 +609,7 @@ class DomainEventSocketPublisher {
|
|
|
608
609
|
}
|
|
609
610
|
}
|
|
610
611
|
|
|
611
|
-
const instance$
|
|
612
|
+
const instance$2 = singa({
|
|
612
613
|
name: 'domainEventPublisher',
|
|
613
614
|
factory: ()=>{
|
|
614
615
|
const publisher = new DomainEventPublisher();
|
|
@@ -621,6 +622,19 @@ const instance$1 = singa({
|
|
|
621
622
|
}
|
|
622
623
|
});
|
|
623
624
|
function useDomainEventPublisher() {
|
|
625
|
+
return instance$2.use();
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
const instance$1 = singa({
|
|
629
|
+
name: 'loki'
|
|
630
|
+
});
|
|
631
|
+
function setLokiFactory(factory) {
|
|
632
|
+
instance$1.setFactory(factory);
|
|
633
|
+
}
|
|
634
|
+
function isLokiClientUsable() {
|
|
635
|
+
return instance$1.has() || instance$1.hasFactory();
|
|
636
|
+
}
|
|
637
|
+
function useLokiClient() {
|
|
624
638
|
return instance$1.use();
|
|
625
639
|
}
|
|
626
640
|
|
|
@@ -744,5 +758,5 @@ function useQueueRouter() {
|
|
|
744
758
|
return Object.prototype.hasOwnProperty.call(obj, prop);
|
|
745
759
|
}
|
|
746
760
|
|
|
747
|
-
export { AuthupClient, Cache, ComponentError, DomainEventPublisher, DomainEventRedisPublisher, DomainEventSocketPublisher, MemoryCacheAdapter, QueueRouter, QueueRouterRoutingType, RedisCacheAdapter, buildCacheKey, buildQueueRouterPublishPayload, createCacheAdapter, createLogger, guessAuthupTokenCreatorOptions, hasOwnProperty, isAmqpClientUsable, isAuthupClientUsable, isClientAuthenticationHookUsable, isComponentError, isLoggerUsable, isQueuePayload, isQueueRouterPayload, isQueueRouterUsable, isRedisClientUsable, isVaultClientUsable, setAmqpClientFactory, setAuthupClientFactory, setClientAuthenticationHookFactory, setLogger, setLoggerFactory, setRedisClient, setRedisFactory, setVaultFactory, useAmqpClient, useAuthupClient, useCache, useClientAuthenticationHook, useDomainEventPublisher, useLogger, useQueueRouter, useRedisClient, useRedisPublishClient, useRedisSubscribeClient, useVaultClient };
|
|
761
|
+
export { AuthupClient, Cache, ComponentError, DomainEventPublisher, DomainEventRedisPublisher, DomainEventSocketPublisher, MemoryCacheAdapter, QueueRouter, QueueRouterRoutingType, RedisCacheAdapter, buildCacheKey, buildQueueRouterPublishPayload, createCacheAdapter, createLogger, guessAuthupTokenCreatorOptions, hasOwnProperty, isAmqpClientUsable, isAuthupClientUsable, isClientAuthenticationHookUsable, isComponentError, isLoggerUsable, isLokiClientUsable, isQueuePayload, isQueueRouterPayload, isQueueRouterUsable, isRedisClientUsable, isVaultClientUsable, setAmqpClientFactory, setAuthupClientFactory, setClientAuthenticationHookFactory, setLogger, setLoggerFactory, setLokiFactory, setRedisClient, setRedisFactory, setVaultFactory, useAmqpClient, useAuthupClient, useCache, useClientAuthenticationHook, useDomainEventPublisher, useLogger, useLokiClient, useQueueRouter, useRedisClient, useRedisPublishClient, useRedisSubscribeClient, useVaultClient };
|
|
748
762
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/core/component/error.ts","../src/core/component/helper.ts","../src/core/queue/utils.ts","../src/core/queue-router/constants.ts","../src/core/queue-router/helpers.ts","../src/services/amqp/module.ts","../src/services/vault/singleton.ts","../src/services/authup/helpers.ts","../src/services/authup-client-authentication-hook/singleton.ts","../src/services/authup/module.ts","../src/services/authup/singleton.ts","../src/services/redis/singleton.ts","../src/services/redis/singleton-publish.ts","../src/services/redis/singleton-subscribe.ts","../src/services/cache/adapters/memory.ts","../src/services/cache/adapters/redis.ts","../src/services/cache/adapters/factory.ts","../src/services/cache/helper.ts","../src/services/cache/module.ts","../src/services/cache/singleton.ts","../src/services/logger/module.ts","../src/services/logger/singleton.ts","../src/services/domain-event/module.ts","../src/services/domain-event/utils.ts","../src/services/domain-event/redis/module.ts","../src/services/domain-event/socket/module.ts","../src/services/domain-event/singleton.ts","../src/core/queue-router/module.ts","../src/core/queue-router/singleton.ts","../src/utils/has-property.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 type { ComponentErrorOptions } from './type';\n\nexport class ComponentError extends Error {\n public code?: string | null;\n\n constructor(input: ComponentErrorOptions) {\n super(input.message, { cause: input.cause });\n\n this.code = input.code;\n }\n}\n","/*\n * Copyright (c) 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 { isObject } from '@privateaim/kit';\nimport type { ComponentError } from './error';\n\nexport function isComponentError(input: unknown) : input is ComponentError {\n if (!isObject(input)) {\n return false;\n }\n\n if (\n typeof input.message !== 'undefined' &&\n typeof input.message !== 'string'\n ) {\n return false;\n }\n\n if (typeof input.code === 'undefined') {\n return true;\n }\n\n return typeof input.code === 'string' || input.code === null;\n}\n","/*\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 { hasOwnProperty, isObject } from '@privateaim/kit';\nimport type { QueuePayload } from './type';\n\nexport function isQueuePayload(input: unknown) : input is QueuePayload {\n return isObject(input) &&\n hasOwnProperty(input, 'data') &&\n isObject(input.data) &&\n hasOwnProperty(input, 'metadata') &&\n isObject(input.metadata);\n}\n","/*\n * Copyright (c) 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\nexport enum QueueRouterRoutingType {\n WORK = 'work',\n PUB_SUB = 'pubSub',\n}\n","/*\n * Copyright (c) 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 { createNanoID, hasOwnProperty, isObject } from '@privateaim/kit';\nimport type { QueueRouterPayload, QueueRouterPayloadInput } from './types';\n\nexport function buildQueueRouterPublishPayload(\n input: QueueRouterPayloadInput,\n) : QueueRouterPayload {\n return {\n id: input.id || createNanoID(),\n type: input.type,\n data: input.data || {},\n metadata: {\n timestamp: Date.now(),\n ...input.metadata,\n },\n };\n}\n\nexport function isQueueRouterPayload(input: unknown) : input is QueueRouterPayload {\n return isObject(input) &&\n typeof input.id === 'string' &&\n typeof input.type === 'string' &&\n hasOwnProperty(input, 'data') &&\n isObject(input.data) &&\n hasOwnProperty(input, 'metadata') &&\n isObject(input.metadata);\n}\n","/*\n * Copyright (c) 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 { Client } from 'amqp-extension';\nimport type { Factory } from 'singa';\nimport { singa } from 'singa';\n\nconst instance = singa<Client>({\n name: 'amqp',\n});\n\nexport function setAmqpClientFactory(factory: Factory<Client>) {\n instance.setFactory(factory);\n}\n\nexport function isAmqpClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function useAmqpClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { Factory } from 'singa';\nimport { singa } from 'singa';\nimport type { VaultClient } from '@hapic/vault';\n\nconst instance = singa<VaultClient>({\n name: 'vault',\n});\n\nexport function setVaultFactory(factory: Factory<VaultClient>) {\n instance.setFactory(factory);\n}\n\nexport function isVaultClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function useVaultClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { TokenCreatorOptions } from '@authup/core-http-kit';\nimport { isVaultClientUsable, useVaultClient } from '../vault';\n\nexport function guessAuthupTokenCreatorOptions() : TokenCreatorOptions {\n let options : TokenCreatorOptions;\n if (isVaultClientUsable()) {\n options = {\n type: 'robotInVault',\n name: 'system',\n vault: useVaultClient(),\n };\n } else {\n options = {\n type: 'user',\n name: 'admin',\n password: 'start123',\n };\n }\n\n return options;\n}\n","/*\n * Copyright (c) 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 { ClientAuthenticationHook } from '@authup/core-http-kit';\nimport type { Factory } from 'singa';\nimport { singa } from 'singa';\n\nconst instance = singa<ClientAuthenticationHook>({\n name: 'clientAuthenticationHook',\n});\n\nexport function setClientAuthenticationHookFactory(factory: Factory<ClientAuthenticationHook>) {\n instance.setFactory(factory);\n}\n\nexport function isClientAuthenticationHookUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function useClientAuthenticationHook() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 {\n Client,\n ClientAuthenticationHook,\n} from '@authup/core-http-kit';\nimport {\n isClientAuthenticationHookUsable,\n setClientAuthenticationHookFactory,\n useClientAuthenticationHook,\n} from '../authup-client-authentication-hook';\nimport { guessAuthupTokenCreatorOptions } from './helpers';\nimport type { AuthupClientOptions } from './types';\n\nexport class AuthupClient extends Client {\n constructor(options: AuthupClientOptions = {}) {\n super(options);\n\n if (!isClientAuthenticationHookUsable()) {\n setClientAuthenticationHookFactory(\n () => new ClientAuthenticationHook({\n baseURL: options.baseURL,\n tokenCreator: options.tokenCreator || guessAuthupTokenCreatorOptions(),\n }),\n );\n }\n\n const hook = useClientAuthenticationHook();\n hook.attach(this);\n }\n}\n","/*\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 type { Client } from '@authup/core-http-kit';\nimport type { Factory } from 'singa';\nimport { singa } from 'singa';\n\nconst instance = singa<Client>({\n name: 'authup',\n});\n\nexport function useAuthupClient() {\n return instance.use();\n}\n\nexport function isAuthupClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function setAuthupClientFactory(factory: Factory<Client>) {\n instance.setFactory(factory);\n}\n","/*\n * Copyright (c) 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 { Client } from 'redis-extension';\nimport type { Factory } from 'singa';\nimport { singa } from 'singa';\n\nconst instance = singa<Client>({\n name: 'redis',\n});\n\nexport function setRedisFactory(factory: Factory<Client>) {\n instance.setFactory(factory);\n}\n\nexport function isRedisClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function setRedisClient(input: Client) {\n instance.set(input);\n}\n\nexport function useRedisClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { Client } from 'redis-extension';\nimport { singa } from 'singa';\nimport { useRedisClient } from './singleton';\n\nconst instance = singa<Client>({\n name: 'redisPublish',\n factory: () => useRedisClient().duplicate(),\n});\n\nexport function useRedisPublishClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { Client } from 'redis-extension';\nimport { singa } from 'singa';\nimport { useRedisClient } from './singleton';\n\nconst instance = singa<Client>({\n name: 'redisSubscribe',\n factory: () => useRedisClient().duplicate(),\n});\n\nexport function useRedisSubscribeClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 2024-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 { Options } from '@isaacs/ttlcache';\nimport TTLCache from '@isaacs/ttlcache';\nimport type { CacheClearOptions, CacheSetOptions } from '../types';\nimport type { CacheAdapter } from './types';\n\nexport class MemoryCacheAdapter<\n VALUE = any,\n> implements CacheAdapter {\n protected instance : TTLCache<string, VALUE>;\n\n constructor(options: Options<string, VALUE> = {}) {\n this.instance = new TTLCache<string, VALUE>({\n checkAgeOnGet: true,\n ttl: Infinity,\n ...(options || {}),\n });\n }\n\n async get(key: string): Promise<VALUE> {\n return this.instance.get(key);\n }\n\n async has(key: string) : Promise<boolean> {\n return this.instance.has(key);\n }\n\n async set(key: string, value: VALUE, options: CacheSetOptions): Promise<void> {\n this.instance.set(key, value, {\n ttl: options.ttl,\n });\n }\n\n async drop(key: string): Promise<void> {\n this.instance.delete(key);\n }\n\n async dropMany(keys: string[]) : Promise<void> {\n for (let i = 0; i < keys.length; i++) {\n this.instance.delete(keys[i]);\n }\n }\n\n async clear(options: CacheClearOptions = {}) : Promise<void> {\n if (options.prefix) {\n const keys = this.instance.keys();\n let iterator = keys.next();\n while (!iterator.done) {\n if (iterator.value.startsWith(options.prefix)) {\n this.instance.delete(iterator.value);\n }\n\n iterator = keys.next();\n }\n\n return;\n }\n\n this.instance.clear();\n }\n}\n","/*\n * Copyright (c) 2024-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 { Client } from 'redis-extension';\nimport { JsonAdapter } from 'redis-extension';\nimport { useRedisClient } from '../../redis';\nimport type { CacheClearOptions, CacheSetOptions } from '../types';\nimport type { CacheAdapter } from './types';\n\nexport class RedisCacheAdapter implements CacheAdapter {\n protected client : Client;\n\n protected instance : JsonAdapter;\n\n constructor() {\n this.client = useRedisClient();\n this.instance = new JsonAdapter(this.client);\n }\n\n async get(key: string): Promise<any> {\n return this.instance.get(key);\n }\n\n async has(key: string) : Promise<boolean> {\n const exists = await this.client.exists(key);\n\n return !!exists;\n }\n\n async set(key: string, value: any, options: CacheSetOptions): Promise<void> {\n await this.instance.set(key, value, {\n milliseconds: options.ttl,\n });\n }\n\n async drop(key: string): Promise<void> {\n await this.instance.drop(key);\n }\n\n async dropMany(keys: string[]) : Promise<void> {\n const pipeline = this.client.pipeline();\n\n for (let i = 0; i < keys.length; i++) {\n pipeline.del(keys[i]);\n }\n\n await pipeline.exec();\n }\n\n async clear(options: CacheClearOptions = {}) : Promise<void> {\n if (options.prefix) {\n const pipeline = this.client.pipeline();\n\n const keys = await this.client.keys(`${options.prefix}*`);\n for (let i = 0; i < keys.length; i++) {\n pipeline.del(keys[i]);\n }\n\n await pipeline.exec();\n\n return;\n }\n await this.client.flushdb();\n }\n}\n","/*\n * Copyright (c) 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 { isRedisClientUsable } from '../../redis';\nimport { MemoryCacheAdapter } from './memory';\nimport { RedisCacheAdapter } from './redis';\n\nexport function createCacheAdapter() {\n if (isRedisClientUsable()) {\n return new RedisCacheAdapter();\n }\n\n return new MemoryCacheAdapter();\n}\n","/*\n * Copyright (c) 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 { buildRedisKeyPath } from '../redis';\nimport type { CacheKeyBuildOptions } from './types';\n\nexport function buildCacheKey(options: CacheKeyBuildOptions) {\n return buildRedisKeyPath(options);\n}\n","/*\n * Copyright (c) 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 { CacheAdapter } from './adapters';\nimport type { CacheClearOptions, CacheSetOptions } from './types';\n\nexport class Cache {\n protected adapter : CacheAdapter;\n\n constructor(adapter: CacheAdapter) {\n this.adapter = adapter;\n }\n\n async set(key: string, value: any, options: CacheSetOptions = {}) : Promise<void> {\n await this.adapter.set(key, value, options);\n }\n\n async get(key: string) : Promise<any | undefined> {\n return this.adapter.get(key);\n }\n\n async has(key: string) : Promise<boolean> {\n return this.adapter.has(key);\n }\n\n async drop(key: string) : Promise<void> {\n return this.adapter.drop(key);\n }\n\n async dropMany(keys: string[]) : Promise<void> {\n return this.adapter.dropMany(keys);\n }\n\n async clear(options: CacheClearOptions = {}) : Promise<void> {\n return this.adapter.clear(options);\n }\n}\n","/*\n * Copyright (c) 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 { singa } from 'singa';\nimport { isRedisClientUsable } from '../redis';\nimport type { CacheAdapter } from './adapters';\nimport { MemoryCacheAdapter, RedisCacheAdapter } from './adapters';\nimport { Cache } from './module';\n\nconst instance = singa<Cache>({\n name: 'cache',\n factory: () => {\n let adapter : CacheAdapter;\n if (isRedisClientUsable()) {\n adapter = new RedisCacheAdapter();\n } else {\n adapter = new MemoryCacheAdapter();\n }\n\n return new Cache(adapter);\n },\n});\n\nexport function useCache() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { read } from 'envix';\nimport path from 'node:path';\nimport { EnvironmentName } from 'typeorm-extension';\nimport type { Logger } from 'winston';\nimport { createLogger as create, format, transports } from 'winston';\nimport type { LoggerCreateContext, LoggerTransports } from './types';\n\nexport function createLogger(ctx: LoggerCreateContext = {}) : Logger {\n const { directory, options = {} } = ctx;\n\n let loggerTransports : LoggerTransports;\n if (read('env') === EnvironmentName.PRODUCTION) {\n loggerTransports = [\n new transports.Console({\n level: 'info',\n }),\n new transports.File({\n filename: path.join(directory || process.cwd(), 'access.log'),\n level: 'http',\n maxsize: 10 * 1024 * 1024, // 10MB\n maxFiles: 5,\n }),\n new transports.File({\n filename: path.join(directory || process.cwd(), 'error.log'),\n level: 'warn',\n maxsize: 10 * 1024 * 1024, // 10MB\n maxFiles: 5,\n }),\n ];\n } else {\n loggerTransports = [\n new transports.Console({\n level: 'debug',\n }),\n ];\n }\n\n return create({\n format: format.combine(\n format.errors({ stack: true }),\n format.timestamp(),\n format.colorize(),\n format.simple(),\n ),\n level: 'debug',\n transports: loggerTransports,\n // todo: deeply merge options\n ...(options || {}),\n });\n}\n","/*\n * Copyright (c) 2023.\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 Factory, singa } from 'singa';\nimport type { Logger } from 'winston';\n\nconst instance = singa<Logger>({\n name: 'logger',\n});\n\nexport function setLoggerFactory(factory: Factory<Logger>) {\n instance.setFactory(factory);\n}\n\nexport function isLoggerUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function setLogger(input: Logger) {\n instance.set(input);\n}\n\nexport function useLogger() {\n return instance.use();\n}\n","/*\n * Copyright (c) 2024-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 { DomainEventRecord } from '@privateaim/kit';\nimport { buildDomainEventFullName } from '@privateaim/kit';\nimport { isLoggerUsable, useLogger } from '../logger';\nimport type { DomainEventPublishContext, IDomainEventPublisher } from './type';\n\nexport class DomainEventPublisher implements IDomainEventPublisher {\n protected publishers : Set<IDomainEventPublisher>;\n\n constructor() {\n this.publishers = new Set<IDomainEventPublisher>();\n }\n\n addPublisher(publisher: IDomainEventPublisher) {\n this.publishers.add(publisher);\n }\n\n async safePublish<T extends DomainEventRecord>(\n ctx: DomainEventPublishContext<T>,\n ) : Promise<void> {\n try {\n await this.publish(ctx);\n } catch (e) {\n if (isLoggerUsable()) {\n useLogger().error(`Publishing event ${buildDomainEventFullName(ctx.data.type, ctx.data.event)} failed`);\n useLogger().error(e);\n }\n }\n }\n\n async publish<T extends DomainEventRecord>(\n ctx: DomainEventPublishContext<T>,\n ) : Promise<void> {\n if (isLoggerUsable()) {\n useLogger().info(`Publishing event ${buildDomainEventFullName(ctx.data.type, ctx.data.event)}`);\n }\n\n const publishers = this.publishers.values();\n while (true) {\n const it = publishers.next();\n if (it.done) {\n return;\n }\n\n await it.value.publish(ctx);\n }\n }\n}\n","/*\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 { isObject } from '@privateaim/kit';\nimport type { DomainEventChannelName } from './type';\n\nexport function transformEventData<T>(input: T) : T {\n if (isObject(input)) {\n const keys = Object.keys(input);\n for (let i = 0; i < keys.length; i++) {\n const value = input[keys[i]];\n if (value instanceof Date) {\n input[keys[i]] = value.toISOString();\n }\n }\n }\n\n return input;\n}\n\nexport function buildEventChannelName(\n input: DomainEventChannelName,\n id?: string | number,\n) : string {\n if (typeof input === 'string') {\n return input;\n }\n\n return input(id);\n}\n","/*\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 type { Client } from 'redis-extension';\nimport type { DomainEventPublishContext, IDomainEventPublisher } from '../type';\nimport { buildEventChannelName, transformEventData } from '../utils';\n\nexport class DomainEventRedisPublisher implements IDomainEventPublisher {\n protected driver : Client;\n\n constructor(client: Client) {\n this.driver = client;\n }\n\n async publish(ctx: DomainEventPublishContext) : Promise<void> {\n const data = JSON.stringify(transformEventData(ctx.data));\n\n const pipeline = this.driver.pipeline();\n for (let i = 0; i < ctx.destinations.length; i++) {\n const keyPrefix = (ctx.destinations[i].namespace ? `${ctx.destinations[i].namespace}:` : '');\n\n let key = keyPrefix + buildEventChannelName(ctx.destinations[i].channel);\n pipeline.publish(key, data);\n\n if (typeof ctx.destinations[i].channel === 'function') {\n key = keyPrefix + buildEventChannelName(ctx.destinations[i].channel, ctx.data.data.id);\n pipeline.publish(key, data);\n }\n }\n\n await pipeline.exec();\n }\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 { buildDomainEventFullName } from '@privateaim/kit';\nimport { Emitter } from '@socket.io/redis-emitter';\nimport type { Client } from 'redis-extension';\nimport type { DomainEventPublishContext, IDomainEventPublisher } from '../type';\nimport { buildEventChannelName, transformEventData } from '../utils';\n\nexport class DomainEventSocketPublisher implements IDomainEventPublisher {\n protected client : Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n async publish(ctx: DomainEventPublishContext) : Promise<void> {\n ctx.data = transformEventData(ctx.data);\n\n for (let i = 0; i < ctx.destinations.length; i++) {\n let namespace : string;\n if (ctx.destinations[i].namespace) {\n namespace = ctx.destinations[i].namespace;\n } else {\n namespace = '/';\n }\n\n const emitter = new Emitter(this.client, {}, namespace);\n\n const fullEventName = buildDomainEventFullName(ctx.data.type, ctx.data.event);\n\n const rooms : string[] = [\n buildEventChannelName(ctx.destinations[i].channel),\n ];\n\n if (typeof ctx.destinations[i].channel === 'function') {\n rooms.push(buildEventChannelName(ctx.destinations[i].channel, ctx.data.data.id));\n }\n\n for (let j = 0; j < rooms.length; j++) {\n emitter\n .in(rooms[j])\n .emit(fullEventName, {\n ...ctx.data,\n meta: {\n namespace,\n roomName: rooms[j],\n },\n });\n }\n }\n }\n}\n","/*\n * Copyright (c) 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 { singa } from 'singa';\nimport { isRedisClientUsable, useRedisClient } from '../redis';\nimport { DomainEventPublisher } from './module';\nimport { DomainEventRedisPublisher } from './redis';\nimport { DomainEventSocketPublisher } from './socket';\n\nconst instance = singa<DomainEventPublisher>({\n name: 'domainEventPublisher',\n factory: () => {\n const publisher = new DomainEventPublisher();\n\n if (isRedisClientUsable()) {\n const client = useRedisClient();\n\n publisher.addPublisher(new DomainEventRedisPublisher(client));\n publisher.addPublisher(new DomainEventSocketPublisher(client));\n }\n\n return publisher;\n },\n});\n\nexport function useDomainEventPublisher() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { ExchangeType } from 'amqp-extension';\nimport type { Client } from 'amqp-extension';\nimport { isLoggerUsable, useLogger } from '../../services';\nimport { QueueRouterRoutingType } from './constants';\nimport { isQueueRouterPayload } from './helpers';\nimport type {\n QueueRouterHandler,\n QueueRouterHandlers,\n QueueRouterPayload, QueueRouterRouting,\n} from './types';\n\nexport class QueueRouter {\n protected driver : Client;\n\n //----------------------------------------------------------------\n\n constructor(driver: Client) {\n this.driver = driver;\n }\n\n //----------------------------------------------------------------\n\n publish(message: QueueRouterPayload) : Promise<boolean> {\n let exchange : Client;\n if (message.metadata.routing.type === 'work') {\n exchange = this.driver.of({\n type: ExchangeType.DIRECT,\n name: message.metadata.routing.namespace || '',\n });\n } else {\n exchange = this.driver.of({\n type: ExchangeType.TOPIC,\n name: message.metadata.routing.namespace || 'FLAME',\n });\n }\n\n if (isLoggerUsable()) {\n useLogger()\n .debug(`Publishing queue message ${message.type} in ${message.metadata.routing.key}`);\n }\n\n return exchange.publish(message.metadata.routing.key, message, {\n type: message.type,\n messageId: message.id,\n persistent: message.metadata.persistent ??\n message.metadata.routing.type === QueueRouterRoutingType.WORK,\n });\n }\n\n consume(routing: QueueRouterRouting, handlers: QueueRouterHandlers) : Promise<void> {\n let exchange : Client;\n if (routing.type === 'work') {\n exchange = this.driver.of({\n type: ExchangeType.DIRECT,\n name: routing.namespace || '',\n });\n } else {\n exchange = this.driver.of({\n type: ExchangeType.TOPIC,\n name: routing.namespace || 'FLAME',\n });\n }\n\n return exchange.consume(routing.key, {\n prefetchCount: routing.type === QueueRouterRoutingType.WORK ? 1 : undefined,\n // noAck: routing.type !== QueueRouterRoutingType.WORK,\n requeueOnFailure: routing.type === QueueRouterRoutingType.WORK,\n }, {\n $any: async (input) => {\n const payload = JSON.parse(input.content.toString('utf-8'));\n if (!isQueueRouterPayload(payload)) {\n return;\n }\n\n if (input.fields.redelivered) {\n if (isLoggerUsable()) {\n useLogger()\n .debug(`Queue message ${input.properties.type} in ${routing.key} is not processed again.`);\n }\n\n return;\n }\n\n if (isLoggerUsable()) {\n useLogger()\n .debug(`Consuming queue message ${input.properties.type} in ${routing.key}`);\n }\n\n let handler : QueueRouterHandler | undefined;\n\n if (\n typeof input.properties.type === 'string' &&\n handlers[input.properties.type]\n ) {\n handler = handlers[input.properties.type];\n } else {\n handler = handlers.$any;\n }\n\n if (typeof handler !== 'function') {\n if (isLoggerUsable()) {\n useLogger()\n .debug(`No queue handler to consume message ${input.properties.type} in ${routing.key}`);\n }\n\n return;\n }\n\n await handler(payload);\n },\n });\n }\n}\n","/*\n * Copyright (c) 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 { singa } from 'singa';\nimport { isAmqpClientUsable, useAmqpClient } from '../../services';\nimport { QueueRouter } from './module';\n\nconst instance = singa<QueueRouter>({\n name: 'queueRouter',\n factory: () => {\n const amqp = useAmqpClient();\n\n return new QueueRouter(amqp);\n },\n});\n\nexport function isQueueRouterUsable() {\n return instance.has() || isAmqpClientUsable();\n}\n\nexport function useQueueRouter() {\n return instance.use();\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\nexport function hasOwnProperty<X extends Record<string, any>, Y extends PropertyKey>(\n obj: X,\n prop: Y,\n): obj is X & Record<Y, unknown> {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],"names":["_define_property","ComponentError","Error","constructor","input","message","cause","code","isComponentError","isObject","isQueuePayload","hasOwnProperty","data","metadata","QueueRouterRoutingType","buildQueueRouterPublishPayload","id","createNanoID","type","timestamp","Date","now","isQueueRouterPayload","instance","singa","name","setAmqpClientFactory","factory","setFactory","isAmqpClientUsable","has","hasFactory","useAmqpClient","use","setVaultFactory","isVaultClientUsable","useVaultClient","guessAuthupTokenCreatorOptions","options","vault","password","setClientAuthenticationHookFactory","isClientAuthenticationHookUsable","useClientAuthenticationHook","AuthupClient","Client","ClientAuthenticationHook","baseURL","tokenCreator","hook","attach","useAuthupClient","isAuthupClientUsable","setAuthupClientFactory","setRedisFactory","isRedisClientUsable","setRedisClient","set","useRedisClient","duplicate","useRedisPublishClient","useRedisSubscribeClient","MemoryCacheAdapter","get","key","value","ttl","drop","delete","dropMany","keys","i","length","clear","prefix","iterator","next","done","startsWith","TTLCache","checkAgeOnGet","Infinity","RedisCacheAdapter","exists","client","milliseconds","pipeline","del","exec","flushdb","JsonAdapter","createCacheAdapter","buildCacheKey","buildRedisKeyPath","Cache","adapter","useCache","createLogger","ctx","directory","loggerTransports","read","EnvironmentName","PRODUCTION","transports","Console","level","File","filename","path","join","process","cwd","maxsize","maxFiles","create","format","combine","errors","stack","colorize","simple","setLoggerFactory","isLoggerUsable","setLogger","useLogger","DomainEventPublisher","addPublisher","publisher","publishers","add","safePublish","publish","e","error","buildDomainEventFullName","event","info","values","it","Set","transformEventData","Object","toISOString","buildEventChannelName","DomainEventRedisPublisher","JSON","stringify","driver","destinations","keyPrefix","namespace","channel","DomainEventSocketPublisher","emitter","Emitter","fullEventName","rooms","push","j","in","emit","meta","roomName","useDomainEventPublisher","QueueRouter","exchange","routing","of","ExchangeType","DIRECT","TOPIC","debug","messageId","persistent","WORK","consume","handlers","prefetchCount","undefined","requeueOnFailure","$any","payload","parse","content","toString","fields","redelivered","properties","handler","amqp","isQueueRouterUsable","useQueueRouter","obj","prop","prototype","call"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/core/component/error.ts","../src/core/component/helper.ts","../src/core/queue/utils.ts","../src/core/queue-router/constants.ts","../src/core/queue-router/helpers.ts","../src/services/amqp/module.ts","../src/services/vault/singleton.ts","../src/services/authup/helpers.ts","../src/services/authup-client-authentication-hook/singleton.ts","../src/services/authup/module.ts","../src/services/authup/singleton.ts","../src/services/redis/singleton.ts","../src/services/redis/singleton-publish.ts","../src/services/redis/singleton-subscribe.ts","../src/services/cache/adapters/memory.ts","../src/services/cache/adapters/redis.ts","../src/services/cache/adapters/factory.ts","../src/services/cache/helper.ts","../src/services/cache/module.ts","../src/services/cache/singleton.ts","../src/services/logger/module.ts","../src/services/logger/singleton.ts","../src/services/domain-event/module.ts","../src/services/domain-event/utils.ts","../src/services/domain-event/redis/module.ts","../src/services/domain-event/socket/module.ts","../src/services/domain-event/singleton.ts","../src/services/loki/singleton.ts","../src/core/queue-router/module.ts","../src/core/queue-router/singleton.ts","../src/utils/has-property.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 type { ComponentErrorOptions } from './type';\n\nexport class ComponentError extends Error {\n public code?: string | null;\n\n constructor(input: ComponentErrorOptions) {\n super(input.message, { cause: input.cause });\n\n this.code = input.code;\n }\n}\n","/*\n * Copyright (c) 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 { isObject } from '@privateaim/kit';\nimport type { ComponentError } from './error';\n\nexport function isComponentError(input: unknown) : input is ComponentError {\n if (!isObject(input)) {\n return false;\n }\n\n if (\n typeof input.message !== 'undefined' &&\n typeof input.message !== 'string'\n ) {\n return false;\n }\n\n if (typeof input.code === 'undefined') {\n return true;\n }\n\n return typeof input.code === 'string' || input.code === null;\n}\n","/*\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 { hasOwnProperty, isObject } from '@privateaim/kit';\nimport type { QueuePayload } from './type';\n\nexport function isQueuePayload(input: unknown) : input is QueuePayload {\n return isObject(input) &&\n hasOwnProperty(input, 'data') &&\n isObject(input.data) &&\n hasOwnProperty(input, 'metadata') &&\n isObject(input.metadata);\n}\n","/*\n * Copyright (c) 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\nexport enum QueueRouterRoutingType {\n WORK = 'work',\n PUB_SUB = 'pubSub',\n}\n","/*\n * Copyright (c) 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 { createNanoID, hasOwnProperty, isObject } from '@privateaim/kit';\nimport type { QueueRouterPayload, QueueRouterPayloadInput } from './types';\n\nexport function buildQueueRouterPublishPayload(\n input: QueueRouterPayloadInput,\n) : QueueRouterPayload {\n return {\n id: input.id || createNanoID(),\n type: input.type,\n data: input.data || {},\n metadata: {\n timestamp: Date.now(),\n ...input.metadata,\n },\n };\n}\n\nexport function isQueueRouterPayload(input: unknown) : input is QueueRouterPayload {\n return isObject(input) &&\n typeof input.id === 'string' &&\n typeof input.type === 'string' &&\n hasOwnProperty(input, 'data') &&\n isObject(input.data) &&\n hasOwnProperty(input, 'metadata') &&\n isObject(input.metadata);\n}\n","/*\n * Copyright (c) 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 { Client } from 'amqp-extension';\nimport type { Factory } from 'singa';\nimport { singa } from 'singa';\n\nconst instance = singa<Client>({\n name: 'amqp',\n});\n\nexport function setAmqpClientFactory(factory: Factory<Client>) {\n instance.setFactory(factory);\n}\n\nexport function isAmqpClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function useAmqpClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { Factory } from 'singa';\nimport { singa } from 'singa';\nimport type { VaultClient } from '@hapic/vault';\n\nconst instance = singa<VaultClient>({\n name: 'vault',\n});\n\nexport function setVaultFactory(factory: Factory<VaultClient>) {\n instance.setFactory(factory);\n}\n\nexport function isVaultClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function useVaultClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { TokenCreatorOptions } from '@authup/core-http-kit';\nimport { isVaultClientUsable, useVaultClient } from '../vault';\n\nexport function guessAuthupTokenCreatorOptions() : TokenCreatorOptions {\n let options : TokenCreatorOptions;\n if (isVaultClientUsable()) {\n options = {\n type: 'robotInVault',\n name: 'system',\n vault: useVaultClient(),\n };\n } else {\n options = {\n type: 'user',\n name: 'admin',\n password: 'start123',\n };\n }\n\n return options;\n}\n","/*\n * Copyright (c) 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 { ClientAuthenticationHook } from '@authup/core-http-kit';\nimport type { Factory } from 'singa';\nimport { singa } from 'singa';\n\nconst instance = singa<ClientAuthenticationHook>({\n name: 'clientAuthenticationHook',\n});\n\nexport function setClientAuthenticationHookFactory(factory: Factory<ClientAuthenticationHook>) {\n instance.setFactory(factory);\n}\n\nexport function isClientAuthenticationHookUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function useClientAuthenticationHook() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 {\n Client,\n ClientAuthenticationHook,\n} from '@authup/core-http-kit';\nimport {\n isClientAuthenticationHookUsable,\n setClientAuthenticationHookFactory,\n useClientAuthenticationHook,\n} from '../authup-client-authentication-hook';\nimport { guessAuthupTokenCreatorOptions } from './helpers';\nimport type { AuthupClientOptions } from './types';\n\nexport class AuthupClient extends Client {\n constructor(options: AuthupClientOptions = {}) {\n super(options);\n\n if (!isClientAuthenticationHookUsable()) {\n setClientAuthenticationHookFactory(\n () => new ClientAuthenticationHook({\n baseURL: options.baseURL,\n tokenCreator: options.tokenCreator || guessAuthupTokenCreatorOptions(),\n }),\n );\n }\n\n const hook = useClientAuthenticationHook();\n hook.attach(this);\n }\n}\n","/*\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 type { Client } from '@authup/core-http-kit';\nimport type { Factory } from 'singa';\nimport { singa } from 'singa';\n\nconst instance = singa<Client>({\n name: 'authup',\n});\n\nexport function useAuthupClient() {\n return instance.use();\n}\n\nexport function isAuthupClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function setAuthupClientFactory(factory: Factory<Client>) {\n instance.setFactory(factory);\n}\n","/*\n * Copyright (c) 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 { Client } from 'redis-extension';\nimport type { Factory } from 'singa';\nimport { singa } from 'singa';\n\nconst instance = singa<Client>({\n name: 'redis',\n});\n\nexport function setRedisFactory(factory: Factory<Client>) {\n instance.setFactory(factory);\n}\n\nexport function isRedisClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function setRedisClient(input: Client) {\n instance.set(input);\n}\n\nexport function useRedisClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { Client } from 'redis-extension';\nimport { singa } from 'singa';\nimport { useRedisClient } from './singleton';\n\nconst instance = singa<Client>({\n name: 'redisPublish',\n factory: () => useRedisClient().duplicate(),\n});\n\nexport function useRedisPublishClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { Client } from 'redis-extension';\nimport { singa } from 'singa';\nimport { useRedisClient } from './singleton';\n\nconst instance = singa<Client>({\n name: 'redisSubscribe',\n factory: () => useRedisClient().duplicate(),\n});\n\nexport function useRedisSubscribeClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 2024-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 { Options } from '@isaacs/ttlcache';\nimport TTLCache from '@isaacs/ttlcache';\nimport type { CacheClearOptions, CacheSetOptions } from '../types';\nimport type { CacheAdapter } from './types';\n\nexport class MemoryCacheAdapter<\n VALUE = any,\n> implements CacheAdapter {\n protected instance : TTLCache<string, VALUE>;\n\n constructor(options: Options<string, VALUE> = {}) {\n this.instance = new TTLCache<string, VALUE>({\n checkAgeOnGet: true,\n ttl: Infinity,\n ...(options || {}),\n });\n }\n\n async get(key: string): Promise<VALUE> {\n return this.instance.get(key);\n }\n\n async has(key: string) : Promise<boolean> {\n return this.instance.has(key);\n }\n\n async set(key: string, value: VALUE, options: CacheSetOptions): Promise<void> {\n this.instance.set(key, value, {\n ttl: options.ttl,\n });\n }\n\n async drop(key: string): Promise<void> {\n this.instance.delete(key);\n }\n\n async dropMany(keys: string[]) : Promise<void> {\n for (let i = 0; i < keys.length; i++) {\n this.instance.delete(keys[i]);\n }\n }\n\n async clear(options: CacheClearOptions = {}) : Promise<void> {\n if (options.prefix) {\n const keys = this.instance.keys();\n let iterator = keys.next();\n while (!iterator.done) {\n if (iterator.value.startsWith(options.prefix)) {\n this.instance.delete(iterator.value);\n }\n\n iterator = keys.next();\n }\n\n return;\n }\n\n this.instance.clear();\n }\n}\n","/*\n * Copyright (c) 2024-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 { Client } from 'redis-extension';\nimport { JsonAdapter } from 'redis-extension';\nimport { useRedisClient } from '../../redis';\nimport type { CacheClearOptions, CacheSetOptions } from '../types';\nimport type { CacheAdapter } from './types';\n\nexport class RedisCacheAdapter implements CacheAdapter {\n protected client : Client;\n\n protected instance : JsonAdapter;\n\n constructor() {\n this.client = useRedisClient();\n this.instance = new JsonAdapter(this.client);\n }\n\n async get(key: string): Promise<any> {\n return this.instance.get(key);\n }\n\n async has(key: string) : Promise<boolean> {\n const exists = await this.client.exists(key);\n\n return !!exists;\n }\n\n async set(key: string, value: any, options: CacheSetOptions): Promise<void> {\n await this.instance.set(key, value, {\n milliseconds: options.ttl,\n });\n }\n\n async drop(key: string): Promise<void> {\n await this.instance.drop(key);\n }\n\n async dropMany(keys: string[]) : Promise<void> {\n const pipeline = this.client.pipeline();\n\n for (let i = 0; i < keys.length; i++) {\n pipeline.del(keys[i]);\n }\n\n await pipeline.exec();\n }\n\n async clear(options: CacheClearOptions = {}) : Promise<void> {\n if (options.prefix) {\n const pipeline = this.client.pipeline();\n\n const keys = await this.client.keys(`${options.prefix}*`);\n for (let i = 0; i < keys.length; i++) {\n pipeline.del(keys[i]);\n }\n\n await pipeline.exec();\n\n return;\n }\n await this.client.flushdb();\n }\n}\n","/*\n * Copyright (c) 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 { isRedisClientUsable } from '../../redis';\nimport { MemoryCacheAdapter } from './memory';\nimport { RedisCacheAdapter } from './redis';\n\nexport function createCacheAdapter() {\n if (isRedisClientUsable()) {\n return new RedisCacheAdapter();\n }\n\n return new MemoryCacheAdapter();\n}\n","/*\n * Copyright (c) 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 { buildRedisKeyPath } from '../redis';\nimport type { CacheKeyBuildOptions } from './types';\n\nexport function buildCacheKey(options: CacheKeyBuildOptions) {\n return buildRedisKeyPath(options);\n}\n","/*\n * Copyright (c) 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 { CacheAdapter } from './adapters';\nimport type { CacheClearOptions, CacheSetOptions } from './types';\n\nexport class Cache {\n protected adapter : CacheAdapter;\n\n constructor(adapter: CacheAdapter) {\n this.adapter = adapter;\n }\n\n async set(key: string, value: any, options: CacheSetOptions = {}) : Promise<void> {\n await this.adapter.set(key, value, options);\n }\n\n async get(key: string) : Promise<any | undefined> {\n return this.adapter.get(key);\n }\n\n async has(key: string) : Promise<boolean> {\n return this.adapter.has(key);\n }\n\n async drop(key: string) : Promise<void> {\n return this.adapter.drop(key);\n }\n\n async dropMany(keys: string[]) : Promise<void> {\n return this.adapter.dropMany(keys);\n }\n\n async clear(options: CacheClearOptions = {}) : Promise<void> {\n return this.adapter.clear(options);\n }\n}\n","/*\n * Copyright (c) 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 { singa } from 'singa';\nimport { isRedisClientUsable } from '../redis';\nimport type { CacheAdapter } from './adapters';\nimport { MemoryCacheAdapter, RedisCacheAdapter } from './adapters';\nimport { Cache } from './module';\n\nconst instance = singa<Cache>({\n name: 'cache',\n factory: () => {\n let adapter : CacheAdapter;\n if (isRedisClientUsable()) {\n adapter = new RedisCacheAdapter();\n } else {\n adapter = new MemoryCacheAdapter();\n }\n\n return new Cache(adapter);\n },\n});\n\nexport function useCache() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { read } from 'envix';\nimport path from 'node:path';\nimport { EnvironmentName } from 'typeorm-extension';\nimport type { Logger } from 'winston';\nimport { createLogger as create, format, transports } from 'winston';\nimport type { LoggerCreateContext, LoggerTransports } from './types';\n\nexport function createLogger(ctx: LoggerCreateContext = {}) : Logger {\n const { directory, options = {} } = ctx;\n\n let loggerTransports : LoggerTransports;\n if (read('env') === EnvironmentName.PRODUCTION) {\n loggerTransports = [\n new transports.Console({\n level: 'info',\n }),\n new transports.File({\n filename: path.join(directory || process.cwd(), 'access.log'),\n level: 'http',\n maxsize: 10 * 1024 * 1024, // 10MB\n maxFiles: 5,\n }),\n new transports.File({\n filename: path.join(directory || process.cwd(), 'error.log'),\n level: 'warn',\n maxsize: 10 * 1024 * 1024, // 10MB\n maxFiles: 5,\n }),\n ];\n } else {\n loggerTransports = [\n new transports.Console({\n level: 'debug',\n }),\n ];\n }\n\n return create({\n format: format.combine(\n format.errors({ stack: true }),\n format.timestamp(),\n format.colorize(),\n format.simple(),\n ),\n level: 'debug',\n transports: loggerTransports,\n // todo: deeply merge options\n ...(options || {}),\n });\n}\n","/*\n * Copyright (c) 2023.\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 Factory, singa } from 'singa';\nimport type { Logger } from 'winston';\n\nconst instance = singa<Logger>({\n name: 'logger',\n});\n\nexport function setLoggerFactory(factory: Factory<Logger>) {\n instance.setFactory(factory);\n}\n\nexport function isLoggerUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function setLogger(input: Logger) {\n instance.set(input);\n}\n\nexport function useLogger() {\n return instance.use();\n}\n","/*\n * Copyright (c) 2024-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 { DomainEventRecord } from '@privateaim/kit';\nimport { buildDomainEventFullName } from '@privateaim/kit';\nimport { isLoggerUsable, useLogger } from '../logger';\nimport type { DomainEventPublishContext, IDomainEventPublisher } from './type';\n\nexport class DomainEventPublisher implements IDomainEventPublisher {\n protected publishers : Set<IDomainEventPublisher>;\n\n constructor() {\n this.publishers = new Set<IDomainEventPublisher>();\n }\n\n addPublisher(publisher: IDomainEventPublisher) {\n this.publishers.add(publisher);\n }\n\n async safePublish<T extends DomainEventRecord>(\n ctx: DomainEventPublishContext<T>,\n ) : Promise<void> {\n try {\n await this.publish(ctx);\n } catch (e) {\n if (isLoggerUsable()) {\n useLogger().error(`Publishing event ${buildDomainEventFullName(ctx.data.type, ctx.data.event)} failed`);\n useLogger().error(e);\n }\n }\n }\n\n async publish<T extends DomainEventRecord>(\n ctx: DomainEventPublishContext<T>,\n ) : Promise<void> {\n if (isLoggerUsable()) {\n useLogger().info(`Publishing event ${buildDomainEventFullName(ctx.data.type, ctx.data.event)}`);\n }\n\n const publishers = this.publishers.values();\n while (true) {\n const it = publishers.next();\n if (it.done) {\n return;\n }\n\n await it.value.publish(ctx);\n }\n }\n}\n","/*\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 { isObject } from '@privateaim/kit';\nimport type { DomainEventChannelName } from './type';\n\nexport function transformEventData<T>(input: T) : T {\n if (isObject(input)) {\n const keys = Object.keys(input);\n for (let i = 0; i < keys.length; i++) {\n const value = input[keys[i]];\n if (value instanceof Date) {\n input[keys[i]] = value.toISOString();\n }\n }\n }\n\n return input;\n}\n\nexport function buildEventChannelName(\n input: DomainEventChannelName,\n id?: string | number,\n) : string {\n if (typeof input === 'string') {\n return input;\n }\n\n return input(id);\n}\n","/*\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 type { Client } from 'redis-extension';\nimport type { DomainEventPublishContext, IDomainEventPublisher } from '../type';\nimport { buildEventChannelName, transformEventData } from '../utils';\n\nexport class DomainEventRedisPublisher implements IDomainEventPublisher {\n protected driver : Client;\n\n constructor(client: Client) {\n this.driver = client;\n }\n\n async publish(ctx: DomainEventPublishContext) : Promise<void> {\n const data = JSON.stringify(transformEventData(ctx.data));\n\n const pipeline = this.driver.pipeline();\n for (let i = 0; i < ctx.destinations.length; i++) {\n const keyPrefix = (ctx.destinations[i].namespace ? `${ctx.destinations[i].namespace}:` : '');\n\n let key = keyPrefix + buildEventChannelName(ctx.destinations[i].channel);\n pipeline.publish(key, data);\n\n if (typeof ctx.destinations[i].channel === 'function') {\n key = keyPrefix + buildEventChannelName(ctx.destinations[i].channel, ctx.data.data.id);\n pipeline.publish(key, data);\n }\n }\n\n await pipeline.exec();\n }\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 { buildDomainEventFullName } from '@privateaim/kit';\nimport { Emitter } from '@socket.io/redis-emitter';\nimport type { Client } from 'redis-extension';\nimport type { DomainEventPublishContext, IDomainEventPublisher } from '../type';\nimport { buildEventChannelName, transformEventData } from '../utils';\n\nexport class DomainEventSocketPublisher implements IDomainEventPublisher {\n protected client : Client;\n\n constructor(client: Client) {\n this.client = client;\n }\n\n async publish(ctx: DomainEventPublishContext) : Promise<void> {\n ctx.data = transformEventData(ctx.data);\n\n for (let i = 0; i < ctx.destinations.length; i++) {\n let namespace : string;\n if (ctx.destinations[i].namespace) {\n namespace = ctx.destinations[i].namespace;\n } else {\n namespace = '/';\n }\n\n const emitter = new Emitter(this.client, {}, namespace);\n\n const fullEventName = buildDomainEventFullName(ctx.data.type, ctx.data.event);\n\n const rooms : string[] = [\n buildEventChannelName(ctx.destinations[i].channel),\n ];\n\n if (typeof ctx.destinations[i].channel === 'function') {\n rooms.push(buildEventChannelName(ctx.destinations[i].channel, ctx.data.data.id));\n }\n\n for (let j = 0; j < rooms.length; j++) {\n emitter\n .in(rooms[j])\n .emit(fullEventName, {\n ...ctx.data,\n meta: {\n namespace,\n roomName: rooms[j],\n },\n });\n }\n }\n }\n}\n","/*\n * Copyright (c) 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 { singa } from 'singa';\nimport { isRedisClientUsable, useRedisClient } from '../redis';\nimport { DomainEventPublisher } from './module';\nimport { DomainEventRedisPublisher } from './redis';\nimport { DomainEventSocketPublisher } from './socket';\n\nconst instance = singa<DomainEventPublisher>({\n name: 'domainEventPublisher',\n factory: () => {\n const publisher = new DomainEventPublisher();\n\n if (isRedisClientUsable()) {\n const client = useRedisClient();\n\n publisher.addPublisher(new DomainEventRedisPublisher(client));\n publisher.addPublisher(new DomainEventSocketPublisher(client));\n }\n\n return publisher;\n },\n});\n\nexport function useDomainEventPublisher() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { Factory } from 'singa';\nimport { singa } from 'singa';\nimport type { LokiClient } from '@hapic/loki';\n\nconst instance = singa<LokiClient>({\n name: 'loki',\n});\n\nexport function setLokiFactory(factory: Factory<LokiClient>) {\n instance.setFactory(factory);\n}\n\nexport function isLokiClientUsable() {\n return instance.has() || instance.hasFactory();\n}\n\nexport function useLokiClient() {\n return instance.use();\n}\n","/*\n * Copyright (c) 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 { ExchangeType } from 'amqp-extension';\nimport type { Client } from 'amqp-extension';\nimport { isLoggerUsable, useLogger } from '../../services';\nimport { QueueRouterRoutingType } from './constants';\nimport { isQueueRouterPayload } from './helpers';\nimport type {\n QueueRouterHandler,\n QueueRouterHandlers,\n QueueRouterPayload, QueueRouterRouting,\n} from './types';\n\nexport class QueueRouter {\n protected driver : Client;\n\n //----------------------------------------------------------------\n\n constructor(driver: Client) {\n this.driver = driver;\n }\n\n //----------------------------------------------------------------\n\n publish(message: QueueRouterPayload) : Promise<boolean> {\n let exchange : Client;\n if (message.metadata.routing.type === 'work') {\n exchange = this.driver.of({\n type: ExchangeType.DIRECT,\n name: message.metadata.routing.namespace || '',\n });\n } else {\n exchange = this.driver.of({\n type: ExchangeType.TOPIC,\n name: message.metadata.routing.namespace || 'FLAME',\n });\n }\n\n if (isLoggerUsable()) {\n useLogger()\n .debug(`Publishing queue message ${message.type} in ${message.metadata.routing.key}`);\n }\n\n return exchange.publish(message.metadata.routing.key, message, {\n type: message.type,\n messageId: message.id,\n persistent: message.metadata.persistent ??\n message.metadata.routing.type === QueueRouterRoutingType.WORK,\n });\n }\n\n consume(routing: QueueRouterRouting, handlers: QueueRouterHandlers) : Promise<void> {\n let exchange : Client;\n if (routing.type === 'work') {\n exchange = this.driver.of({\n type: ExchangeType.DIRECT,\n name: routing.namespace || '',\n });\n } else {\n exchange = this.driver.of({\n type: ExchangeType.TOPIC,\n name: routing.namespace || 'FLAME',\n });\n }\n\n return exchange.consume(routing.key, {\n prefetchCount: routing.type === QueueRouterRoutingType.WORK ? 1 : undefined,\n // noAck: routing.type !== QueueRouterRoutingType.WORK,\n requeueOnFailure: routing.type === QueueRouterRoutingType.WORK,\n }, {\n $any: async (input) => {\n const payload = JSON.parse(input.content.toString('utf-8'));\n if (!isQueueRouterPayload(payload)) {\n return;\n }\n\n if (input.fields.redelivered) {\n if (isLoggerUsable()) {\n useLogger()\n .debug(`Queue message ${input.properties.type} in ${routing.key} is not processed again.`);\n }\n\n return;\n }\n\n if (isLoggerUsable()) {\n useLogger()\n .debug(`Consuming queue message ${input.properties.type} in ${routing.key}`);\n }\n\n let handler : QueueRouterHandler | undefined;\n\n if (\n typeof input.properties.type === 'string' &&\n handlers[input.properties.type]\n ) {\n handler = handlers[input.properties.type];\n } else {\n handler = handlers.$any;\n }\n\n if (typeof handler !== 'function') {\n if (isLoggerUsable()) {\n useLogger()\n .debug(`No queue handler to consume message ${input.properties.type} in ${routing.key}`);\n }\n\n return;\n }\n\n await handler(payload);\n },\n });\n }\n}\n","/*\n * Copyright (c) 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 { singa } from 'singa';\nimport { isAmqpClientUsable, useAmqpClient } from '../../services';\nimport { QueueRouter } from './module';\n\nconst instance = singa<QueueRouter>({\n name: 'queueRouter',\n factory: () => {\n const amqp = useAmqpClient();\n\n return new QueueRouter(amqp);\n },\n});\n\nexport function isQueueRouterUsable() {\n return instance.has() || isAmqpClientUsable();\n}\n\nexport function useQueueRouter() {\n return instance.use();\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\nexport function hasOwnProperty<X extends Record<string, any>, Y extends PropertyKey>(\n obj: X,\n prop: Y,\n): obj is X & Record<Y, unknown> {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],"names":["_define_property","ComponentError","Error","input","message","cause","code","isComponentError","isObject","isQueuePayload","hasOwnProperty","data","metadata","QueueRouterRoutingType","buildQueueRouterPublishPayload","id","createNanoID","type","timestamp","Date","now","isQueueRouterPayload","instance","singa","name","setAmqpClientFactory","factory","setFactory","isAmqpClientUsable","has","hasFactory","useAmqpClient","use","setVaultFactory","isVaultClientUsable","useVaultClient","guessAuthupTokenCreatorOptions","options","vault","password","setClientAuthenticationHookFactory","isClientAuthenticationHookUsable","useClientAuthenticationHook","AuthupClient","Client","ClientAuthenticationHook","baseURL","tokenCreator","hook","attach","useAuthupClient","isAuthupClientUsable","setAuthupClientFactory","setRedisFactory","isRedisClientUsable","setRedisClient","set","useRedisClient","duplicate","useRedisPublishClient","useRedisSubscribeClient","MemoryCacheAdapter","get","key","value","ttl","drop","delete","dropMany","keys","i","length","clear","prefix","iterator","next","done","startsWith","TTLCache","checkAgeOnGet","Infinity","RedisCacheAdapter","exists","client","milliseconds","pipeline","del","exec","flushdb","JsonAdapter","createCacheAdapter","buildCacheKey","buildRedisKeyPath","Cache","adapter","useCache","createLogger","ctx","directory","loggerTransports","read","EnvironmentName","PRODUCTION","transports","Console","level","File","filename","path","join","process","cwd","maxsize","maxFiles","create","format","combine","errors","stack","colorize","simple","setLoggerFactory","isLoggerUsable","setLogger","useLogger","DomainEventPublisher","addPublisher","publisher","publishers","add","safePublish","publish","e","error","buildDomainEventFullName","event","info","values","it","Set","transformEventData","Object","toISOString","buildEventChannelName","DomainEventRedisPublisher","JSON","stringify","driver","destinations","keyPrefix","namespace","channel","DomainEventSocketPublisher","emitter","Emitter","fullEventName","rooms","push","j","in","emit","meta","roomName","useDomainEventPublisher","setLokiFactory","isLokiClientUsable","useLokiClient","QueueRouter","exchange","routing","of","ExchangeType","DIRECT","TOPIC","debug","messageId","persistent","WORK","consume","handlers","prefetchCount","undefined","requeueOnFailure","$any","payload","parse","content","toString","fields","redelivered","properties","handler","amqp","isQueueRouterUsable","useQueueRouter","obj","prop","prototype","call"],"mappings":"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"}
|
package/dist/services/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAOA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,qCAAqC,CAAC;AACpD,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAOA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,qCAAqC,CAAC;AACpD,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/loki/index.ts"],"names":[],"mappings":"AAOA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { LokiClient, CompactorDeletionRequestCreate as LokiCompactorDeletionRequestCreate, Config as LokiConfig, ConfigInput as LokiConfigInput, DistributorPushStream as LokiDistributorPushStream, QuerierQueryRangeOptions as LokiQuerierQueryRangeOptions, QuerierQueryResult as LokiQuerierQueryResult, createClient as createLokiClient, nanoSeconds } from '@hapic/loki';
|
|
2
|
+
export { LokiClient, LokiConfig, LokiConfigInput, LokiCompactorDeletionRequestCreate, LokiDistributorPushStream, LokiQuerierQueryRangeOptions, LokiQuerierQueryResult, createLokiClient, nanoSeconds, };
|
|
3
|
+
//# sourceMappingURL=module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/services/loki/module.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,UAAU,EACV,8BAA8B,IAAI,kCAAkC,EACpE,MAAM,IAAI,UAAU,EACpB,WAAW,IAAI,eAAe,EAC9B,qBAAqB,IAAI,yBAAyB,EAClD,wBAAwB,IAAI,4BAA4B,EACxD,kBAAkB,IAAI,sBAAsB,EAC5C,YAAY,IAAI,gBAAgB,EAChC,WAAW,EACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACH,UAAU,EACV,UAAU,EACV,eAAe,EACf,kCAAkC,EAClC,yBAAyB,EACzB,4BAA4B,EAC5B,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,GACd,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Factory } from 'singa';
|
|
2
|
+
import type { LokiClient } from '@hapic/loki';
|
|
3
|
+
export declare function setLokiFactory(factory: Factory<LokiClient>): void;
|
|
4
|
+
export declare function isLokiClientUsable(): boolean;
|
|
5
|
+
export declare function useLokiClient(): LokiClient;
|
|
6
|
+
//# sourceMappingURL=singleton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../../../src/services/loki/singleton.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAErC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAM9C,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,QAE1D;AAED,wBAAgB,kBAAkB,YAEjC;AAED,wBAAgB,aAAa,eAE5B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@privateaim/server-kit",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.14",
|
|
4
4
|
"exports": {
|
|
5
5
|
"./package.json": "./package.json",
|
|
6
6
|
".": {
|
|
@@ -28,24 +28,25 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@ebec/http": "^2.3.0",
|
|
31
|
+
"@hapic/loki": "^1.1.0",
|
|
31
32
|
"@isaacs/ttlcache": "^1.4.1",
|
|
32
|
-
"@privateaim/kit": "^0.8.
|
|
33
|
+
"@privateaim/kit": "^0.8.14",
|
|
33
34
|
"@socket.io/redis-emitter": "^5.1.0",
|
|
34
35
|
"envix": "^1.5.0",
|
|
35
|
-
"hapic": "^2.
|
|
36
|
+
"hapic": "^2.7.0",
|
|
36
37
|
"singa": "^1.0.0",
|
|
37
38
|
"winston": "^3.17.0"
|
|
38
39
|
},
|
|
39
40
|
"devDependencies": {
|
|
40
41
|
"@authup/core-http-kit": "^1.0.0-beta.26",
|
|
41
|
-
"@hapic/vault": "^2.3.
|
|
42
|
+
"@hapic/vault": "^2.3.9",
|
|
42
43
|
"amqp-extension": "^4.0.0",
|
|
43
44
|
"redis-extension": "^2.0.2",
|
|
44
45
|
"typeorm-extension": "^3.7.1"
|
|
45
46
|
},
|
|
46
47
|
"peerDependencies": {
|
|
47
48
|
"@authup/core-http-kit": "^1.0.0-beta.26",
|
|
48
|
-
"@hapic/vault": "^2.3.
|
|
49
|
+
"@hapic/vault": "^2.3.9",
|
|
49
50
|
"amqp-extension": "^4.0.0",
|
|
50
51
|
"redis-extension": "^2.0.2",
|
|
51
52
|
"typeorm-extension": "^3.7.1"
|
package/src/services/index.ts
CHANGED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024.
|
|
3
|
+
* Author Peter Placzek (tada5hi)
|
|
4
|
+
* For the full copyright and license information,
|
|
5
|
+
* view the LICENSE file that was distributed with this source code.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import {
|
|
9
|
+
LokiClient,
|
|
10
|
+
CompactorDeletionRequestCreate as LokiCompactorDeletionRequestCreate,
|
|
11
|
+
Config as LokiConfig,
|
|
12
|
+
ConfigInput as LokiConfigInput,
|
|
13
|
+
DistributorPushStream as LokiDistributorPushStream,
|
|
14
|
+
QuerierQueryRangeOptions as LokiQuerierQueryRangeOptions,
|
|
15
|
+
QuerierQueryResult as LokiQuerierQueryResult,
|
|
16
|
+
createClient as createLokiClient,
|
|
17
|
+
nanoSeconds,
|
|
18
|
+
} from '@hapic/loki';
|
|
19
|
+
|
|
20
|
+
export {
|
|
21
|
+
LokiClient,
|
|
22
|
+
LokiConfig,
|
|
23
|
+
LokiConfigInput,
|
|
24
|
+
LokiCompactorDeletionRequestCreate,
|
|
25
|
+
LokiDistributorPushStream,
|
|
26
|
+
LokiQuerierQueryRangeOptions,
|
|
27
|
+
LokiQuerierQueryResult,
|
|
28
|
+
createLokiClient,
|
|
29
|
+
nanoSeconds,
|
|
30
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024.
|
|
3
|
+
* Author Peter Placzek (tada5hi)
|
|
4
|
+
* For the full copyright and license information,
|
|
5
|
+
* view the LICENSE file that was distributed with this source code.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { Factory } from 'singa';
|
|
9
|
+
import { singa } from 'singa';
|
|
10
|
+
import type { LokiClient } from '@hapic/loki';
|
|
11
|
+
|
|
12
|
+
const instance = singa<LokiClient>({
|
|
13
|
+
name: 'loki',
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export function setLokiFactory(factory: Factory<LokiClient>) {
|
|
17
|
+
instance.setFactory(factory);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function isLokiClientUsable() {
|
|
21
|
+
return instance.has() || instance.hasFactory();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function useLokiClient() {
|
|
25
|
+
return instance.use();
|
|
26
|
+
}
|