@goatlab/node-backend 0.0.16 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -38
- package/dist/container/Container.d.ts +441 -0
- package/dist/container/Container.js +895 -0
- package/dist/container/Container.js.map +1 -0
- package/dist/container/DistributedCacheInvalidator.d.ts +84 -0
- package/dist/container/DistributedCacheInvalidator.js +213 -0
- package/dist/container/DistributedCacheInvalidator.js.map +1 -0
- package/dist/container/LruCache.d.ts +14 -0
- package/dist/container/LruCache.js +23 -0
- package/dist/container/LruCache.js.map +1 -0
- package/dist/container/types.d.ts +128 -0
- package/dist/container/types.js +6 -0
- package/dist/container/types.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.js +53 -1
- package/dist/index.js.map +1 -1
- package/dist/server/bootstraps/getExpressTrpcApp.d.ts +17 -0
- package/dist/server/bootstraps/getExpressTrpcApp.js +98 -0
- package/dist/server/bootstraps/getExpressTrpcApp.js.map +1 -0
- package/dist/server/consts.d.ts +35 -0
- package/dist/server/consts.js +33 -0
- package/dist/server/consts.js.map +1 -0
- package/dist/server/context/context.model.d.ts +13 -0
- package/dist/server/context/context.model.js +3 -0
- package/dist/server/context/context.model.js.map +1 -0
- package/dist/server/context/request.context.d.ts +40 -0
- package/dist/server/context/request.context.js +65 -0
- package/dist/server/context/request.context.js.map +1 -0
- package/dist/server/context/trpc.context.d.ts +11 -0
- package/dist/server/context/trpc.context.js +67 -0
- package/dist/server/context/trpc.context.js.map +1 -0
- package/dist/server/initOpenApiDocs.d.ts +9 -0
- package/dist/server/initOpenApiDocs.js +18 -0
- package/dist/server/initOpenApiDocs.js.map +1 -0
- package/dist/server/middleware/cloudTaskDecrypt.middleware.d.ts +6 -0
- package/dist/server/middleware/cloudTaskDecrypt.middleware.js +44 -0
- package/dist/server/middleware/cloudTaskDecrypt.middleware.js.map +1 -0
- package/dist/server/middleware/error.middleware.d.ts +17 -0
- package/dist/server/middleware/error.middleware.js +66 -0
- package/dist/server/middleware/error.middleware.js.map +1 -0
- package/dist/server/middleware/handleRequest.middleware.d.ts +7 -0
- package/dist/server/middleware/handleRequest.middleware.js +40 -0
- package/dist/server/middleware/handleRequest.middleware.js.map +1 -0
- package/dist/server/middleware/logger/cloudRun.logger.d.ts +27 -0
- package/dist/server/middleware/logger/cloudRun.logger.js +87 -0
- package/dist/server/middleware/logger/cloudRun.logger.js.map +1 -0
- package/dist/server/middleware/logger/logger.service.d.ts +6 -0
- package/dist/server/middleware/logger/logger.service.js +17 -0
- package/dist/server/middleware/logger/logger.service.js.map +1 -0
- package/dist/server/middleware/logs.middleware.d.ts +7 -0
- package/dist/server/middleware/logs.middleware.js +130 -0
- package/dist/server/middleware/logs.middleware.js.map +1 -0
- package/dist/server/middleware/requireAuthenticated.d.ts +2 -0
- package/dist/server/middleware/requireAuthenticated.js +13 -0
- package/dist/server/middleware/requireAuthenticated.js.map +1 -0
- package/dist/server/middleware/trpcError.middleware.d.ts +4 -0
- package/dist/server/middleware/trpcError.middleware.js +38 -0
- package/dist/server/middleware/trpcError.middleware.js.map +1 -0
- package/dist/server/schemas/user.schema.d.ts +109 -0
- package/dist/server/schemas/user.schema.js +28 -0
- package/dist/server/schemas/user.schema.js.map +1 -0
- package/dist/server/sentry/getSentry.d.ts +6 -0
- package/dist/server/sentry/getSentry.js +45 -0
- package/dist/server/sentry/getSentry.js.map +1 -0
- package/dist/server/sentry/sentry.service.d.ts +34 -0
- package/dist/server/sentry/sentry.service.js +110 -0
- package/dist/server/sentry/sentry.service.js.map +1 -0
- package/dist/server/services/email/email.model.d.ts +84 -0
- package/dist/server/services/email/email.model.js +62 -0
- package/dist/server/services/email/email.model.js.map +1 -0
- package/dist/server/services/email/email.service.d.ts +23 -0
- package/dist/server/services/email/email.service.js +139 -0
- package/dist/server/services/email/email.service.js.map +1 -0
- package/dist/server/services/gcp/getGcpServiceAccountFromBase64.d.ts +15 -0
- package/dist/server/services/gcp/getGcpServiceAccountFromBase64.js +9 -0
- package/dist/server/services/gcp/getGcpServiceAccountFromBase64.js.map +1 -0
- package/dist/server/services/secrets/secret.service.d.ts +31 -0
- package/dist/server/services/secrets/secret.service.js +172 -0
- package/dist/server/services/secrets/secret.service.js.map +1 -0
- package/dist/server/services/sendgrid/sendgrid.model.d.ts +118 -0
- package/dist/server/services/sendgrid/sendgrid.model.js +3 -0
- package/dist/server/services/sendgrid/sendgrid.model.js.map +1 -0
- package/dist/server/services/sendgrid/sendgridApi.service.d.ts +13 -0
- package/dist/server/services/sendgrid/sendgridApi.service.js +79 -0
- package/dist/server/services/sendgrid/sendgridApi.service.js.map +1 -0
- package/dist/server/services/sendgrid/sendgridHooks.model.d.ts +27 -0
- package/dist/server/services/sendgrid/sendgridHooks.model.js +19 -0
- package/dist/server/services/sendgrid/sendgridHooks.model.js.map +1 -0
- package/dist/server/services/translations/template.util.d.ts +7 -0
- package/dist/server/services/translations/template.util.js +11 -0
- package/dist/server/services/translations/template.util.js.map +1 -0
- package/dist/server/services/translations/translation.model.d.ts +4 -0
- package/dist/server/services/translations/translation.model.js +6 -0
- package/dist/server/services/translations/translation.model.js.map +1 -0
- package/dist/server/services/translations/translation.service.d.ts +25 -0
- package/dist/server/services/translations/translation.service.js +97 -0
- package/dist/server/services/translations/translation.service.js.map +1 -0
- package/dist/server/services/util/benchmarker.d.ts +13 -0
- package/dist/server/services/util/benchmarker.js +34 -0
- package/dist/server/services/util/benchmarker.js.map +1 -0
- package/dist/server/services/util/pagination.d.ts +50 -0
- package/dist/server/services/util/pagination.js +57 -0
- package/dist/server/services/util/pagination.js.map +1 -0
- package/dist/server/services/util/url.service.d.ts +75 -0
- package/dist/server/services/util/url.service.js +139 -0
- package/dist/server/services/util/url.service.js.map +1 -0
- package/dist/server/test/express.mock.d.ts +6 -0
- package/dist/server/test/express.mock.js +49 -0
- package/dist/server/test/express.mock.js.map +1 -0
- package/dist/server/test/firebase.mock.d.ts +4 -0
- package/dist/server/test/firebase.mock.js +30 -0
- package/dist/server/test/firebase.mock.js.map +1 -0
- package/dist/server/test/mock.model.d.ts +5 -0
- package/dist/server/test/mock.model.js +3 -0
- package/dist/server/test/mock.model.js.map +1 -0
- package/dist/server/test/trpc.mock.d.ts +6 -0
- package/dist/server/test/trpc.mock.js +14 -0
- package/dist/server/test/trpc.mock.js.map +1 -0
- package/dist/server/trpc.d.ts +364 -0
- package/dist/server/trpc.js +87 -0
- package/dist/server/trpc.js.map +1 -0
- package/dist/server/types/Envinronment.d.ts +1 -0
- package/dist/server/types/Envinronment.js +3 -0
- package/dist/server/types/Envinronment.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +33 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/container/Container.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
/**
|
|
3
|
+
* Distributed Cache Invalidation System
|
|
4
|
+
*
|
|
5
|
+
* Handles cache invalidation across multiple backend instances using:
|
|
6
|
+
* 1. Redis Pub/Sub for real-time invalidation
|
|
7
|
+
* 2. Versioning for graceful degradation
|
|
8
|
+
* 3. Event-driven architecture for decoupling
|
|
9
|
+
*/
|
|
10
|
+
export interface CacheInvalidationMessage {
|
|
11
|
+
type: 'INVALIDATE_TENANT' | 'INVALIDATE_SERVICE' | 'INVALIDATE_ALL';
|
|
12
|
+
tenantId?: string;
|
|
13
|
+
serviceType?: string;
|
|
14
|
+
reason?: string;
|
|
15
|
+
timestamp: number;
|
|
16
|
+
instanceId: string;
|
|
17
|
+
}
|
|
18
|
+
export interface DistributedCacheOptions {
|
|
19
|
+
redisUrl?: string;
|
|
20
|
+
channelPrefix?: string;
|
|
21
|
+
instanceId?: string;
|
|
22
|
+
enableFallback?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export declare class DistributedCacheInvalidator extends EventEmitter {
|
|
25
|
+
private readonly redis;
|
|
26
|
+
private readonly subscriber;
|
|
27
|
+
private readonly channelPrefix;
|
|
28
|
+
private readonly instanceId;
|
|
29
|
+
private readonly enableFallback;
|
|
30
|
+
private heartbeatInterval?;
|
|
31
|
+
private readonly INVALIDATION_CHANNEL;
|
|
32
|
+
private readonly HEARTBEAT_CHANNEL;
|
|
33
|
+
private readonly HEARTBEAT_INTERVAL;
|
|
34
|
+
constructor(options?: DistributedCacheOptions);
|
|
35
|
+
/**
|
|
36
|
+
* Generate unique instance ID for this backend instance
|
|
37
|
+
*/
|
|
38
|
+
private generateInstanceId;
|
|
39
|
+
/**
|
|
40
|
+
* Setup Redis pub/sub subscriptions
|
|
41
|
+
*/
|
|
42
|
+
private setupSubscriptions;
|
|
43
|
+
/**
|
|
44
|
+
* Setup heartbeat to monitor Redis connectivity
|
|
45
|
+
*/
|
|
46
|
+
private setupHeartbeat;
|
|
47
|
+
/**
|
|
48
|
+
* Send heartbeat to other instances
|
|
49
|
+
*/
|
|
50
|
+
private sendHeartbeat;
|
|
51
|
+
/**
|
|
52
|
+
* Handle incoming invalidation messages
|
|
53
|
+
*/
|
|
54
|
+
private handleInvalidationMessage;
|
|
55
|
+
/**
|
|
56
|
+
* Handle heartbeat messages (for monitoring)
|
|
57
|
+
*/
|
|
58
|
+
private handleHeartbeatMessage;
|
|
59
|
+
/**
|
|
60
|
+
* Invalidate all cached data for a specific tenant across all instances
|
|
61
|
+
*/
|
|
62
|
+
invalidateTenant(tenantId: string, reason?: string): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Invalidate all cached data for a specific service type across all instances
|
|
65
|
+
*/
|
|
66
|
+
invalidateService(serviceType: string, reason?: string): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Invalidate all cached data across all instances
|
|
69
|
+
*/
|
|
70
|
+
invalidateAll(reason?: string): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Publish invalidation message to Redis
|
|
73
|
+
*/
|
|
74
|
+
private publishInvalidation;
|
|
75
|
+
/**
|
|
76
|
+
* Get list of active instances (based on recent heartbeats)
|
|
77
|
+
*/
|
|
78
|
+
getActiveInstances(_maxAge?: number): Promise<string[]>;
|
|
79
|
+
/**
|
|
80
|
+
* Cleanup Redis connections
|
|
81
|
+
*/
|
|
82
|
+
shutdown(): Promise<void>;
|
|
83
|
+
}
|
|
84
|
+
export declare function getDistributedCacheInvalidator(options?: DistributedCacheOptions): DistributedCacheInvalidator;
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DistributedCacheInvalidator = void 0;
|
|
4
|
+
exports.getDistributedCacheInvalidator = getDistributedCacheInvalidator;
|
|
5
|
+
const events_1 = require("events");
|
|
6
|
+
const ioredis_1 = require("ioredis");
|
|
7
|
+
class DistributedCacheInvalidator extends events_1.EventEmitter {
|
|
8
|
+
redis;
|
|
9
|
+
subscriber;
|
|
10
|
+
channelPrefix;
|
|
11
|
+
instanceId;
|
|
12
|
+
enableFallback;
|
|
13
|
+
heartbeatInterval;
|
|
14
|
+
INVALIDATION_CHANNEL = 'cache:invalidation';
|
|
15
|
+
HEARTBEAT_CHANNEL = 'cache:heartbeat';
|
|
16
|
+
HEARTBEAT_INTERVAL = 30000; // 30 seconds
|
|
17
|
+
constructor(options = {}) {
|
|
18
|
+
super();
|
|
19
|
+
this.channelPrefix = options.channelPrefix || 'sodium';
|
|
20
|
+
this.instanceId = options.instanceId || this.generateInstanceId();
|
|
21
|
+
this.enableFallback = options.enableFallback ?? true;
|
|
22
|
+
// Create Redis connections
|
|
23
|
+
const redisConfig = options.redisUrl || process.env.REDIS_URL || 'redis://localhost:6379';
|
|
24
|
+
this.redis = new ioredis_1.default(redisConfig);
|
|
25
|
+
this.subscriber = new ioredis_1.default(redisConfig);
|
|
26
|
+
this.setupSubscriptions();
|
|
27
|
+
this.setupHeartbeat();
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Generate unique instance ID for this backend instance
|
|
31
|
+
*/
|
|
32
|
+
generateInstanceId() {
|
|
33
|
+
const hostname = process.env.HOSTNAME || 'unknown';
|
|
34
|
+
const pid = process.pid;
|
|
35
|
+
const timestamp = Date.now();
|
|
36
|
+
return `${hostname}-${pid}-${timestamp}`;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Setup Redis pub/sub subscriptions
|
|
40
|
+
*/
|
|
41
|
+
setupSubscriptions() {
|
|
42
|
+
const invalidationChannel = `${this.channelPrefix}:${this.INVALIDATION_CHANNEL}`;
|
|
43
|
+
const heartbeatChannel = `${this.channelPrefix}:${this.HEARTBEAT_CHANNEL}`;
|
|
44
|
+
// Subscribe to channels (fire-and-forget, will handle errors via event listeners)
|
|
45
|
+
this.subscriber
|
|
46
|
+
.subscribe(invalidationChannel, heartbeatChannel)
|
|
47
|
+
.catch((err) => {
|
|
48
|
+
console.error('Failed to subscribe to Redis channels:', err);
|
|
49
|
+
if (this.enableFallback) {
|
|
50
|
+
this.emit('redis-error', err);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
this.subscriber.on('message', (channel, message) => {
|
|
54
|
+
try {
|
|
55
|
+
if (channel === invalidationChannel) {
|
|
56
|
+
this.handleInvalidationMessage(JSON.parse(message));
|
|
57
|
+
}
|
|
58
|
+
else if (channel === heartbeatChannel) {
|
|
59
|
+
this.handleHeartbeatMessage(JSON.parse(message));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
console.error('Failed to process invalidation message:', err);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
this.subscriber.on('error', (error) => {
|
|
67
|
+
console.error('Redis subscriber error:', error);
|
|
68
|
+
if (this.enableFallback) {
|
|
69
|
+
this.emit('redis-error', error);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Setup heartbeat to monitor Redis connectivity
|
|
75
|
+
*/
|
|
76
|
+
setupHeartbeat() {
|
|
77
|
+
this.heartbeatInterval = setInterval(() => {
|
|
78
|
+
this.sendHeartbeat().catch(console.error);
|
|
79
|
+
}, this.HEARTBEAT_INTERVAL);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Send heartbeat to other instances
|
|
83
|
+
*/
|
|
84
|
+
async sendHeartbeat() {
|
|
85
|
+
const heartbeatChannel = `${this.channelPrefix}:${this.HEARTBEAT_CHANNEL}`;
|
|
86
|
+
const message = {
|
|
87
|
+
instanceId: this.instanceId,
|
|
88
|
+
timestamp: Date.now(),
|
|
89
|
+
status: 'alive',
|
|
90
|
+
};
|
|
91
|
+
await this.redis.publish(heartbeatChannel, JSON.stringify(message));
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Handle incoming invalidation messages
|
|
95
|
+
*/
|
|
96
|
+
handleInvalidationMessage(message) {
|
|
97
|
+
// Ignore messages from this instance
|
|
98
|
+
if (message.instanceId === this.instanceId) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
console.log(`Received cache invalidation from ${message.instanceId}:`, message);
|
|
102
|
+
// Emit events for container to handle
|
|
103
|
+
switch (message.type) {
|
|
104
|
+
case 'INVALIDATE_TENANT':
|
|
105
|
+
if (message.tenantId) {
|
|
106
|
+
this.emit('invalidate-tenant', message.tenantId, message.reason);
|
|
107
|
+
}
|
|
108
|
+
break;
|
|
109
|
+
case 'INVALIDATE_SERVICE':
|
|
110
|
+
if (message.serviceType) {
|
|
111
|
+
this.emit('invalidate-service', message.serviceType, message.reason);
|
|
112
|
+
}
|
|
113
|
+
break;
|
|
114
|
+
case 'INVALIDATE_ALL':
|
|
115
|
+
this.emit('invalidate-all', message.reason);
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Handle heartbeat messages (for monitoring)
|
|
121
|
+
*/
|
|
122
|
+
handleHeartbeatMessage(message) {
|
|
123
|
+
if (message.instanceId !== this.instanceId) {
|
|
124
|
+
this.emit('instance-heartbeat', message);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Invalidate all cached data for a specific tenant across all instances
|
|
129
|
+
*/
|
|
130
|
+
async invalidateTenant(tenantId, reason) {
|
|
131
|
+
const message = {
|
|
132
|
+
type: 'INVALIDATE_TENANT',
|
|
133
|
+
tenantId,
|
|
134
|
+
reason: reason || 'Tenant credentials changed',
|
|
135
|
+
timestamp: Date.now(),
|
|
136
|
+
instanceId: this.instanceId,
|
|
137
|
+
};
|
|
138
|
+
await this.publishInvalidation(message);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Invalidate all cached data for a specific service type across all instances
|
|
142
|
+
*/
|
|
143
|
+
async invalidateService(serviceType, reason) {
|
|
144
|
+
const message = {
|
|
145
|
+
type: 'INVALIDATE_SERVICE',
|
|
146
|
+
serviceType,
|
|
147
|
+
reason: reason || 'Service configuration changed',
|
|
148
|
+
timestamp: Date.now(),
|
|
149
|
+
instanceId: this.instanceId,
|
|
150
|
+
};
|
|
151
|
+
await this.publishInvalidation(message);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Invalidate all cached data across all instances
|
|
155
|
+
*/
|
|
156
|
+
async invalidateAll(reason) {
|
|
157
|
+
const message = {
|
|
158
|
+
type: 'INVALIDATE_ALL',
|
|
159
|
+
reason: reason || 'Global cache refresh',
|
|
160
|
+
timestamp: Date.now(),
|
|
161
|
+
instanceId: this.instanceId,
|
|
162
|
+
};
|
|
163
|
+
await this.publishInvalidation(message);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Publish invalidation message to Redis
|
|
167
|
+
*/
|
|
168
|
+
async publishInvalidation(message) {
|
|
169
|
+
const channel = `${this.channelPrefix}:${this.INVALIDATION_CHANNEL}`;
|
|
170
|
+
try {
|
|
171
|
+
await this.redis.publish(channel, JSON.stringify(message));
|
|
172
|
+
console.log(`Published invalidation message:`, message);
|
|
173
|
+
}
|
|
174
|
+
catch (err) {
|
|
175
|
+
console.error('Failed to publish invalidation message:', err);
|
|
176
|
+
if (this.enableFallback) {
|
|
177
|
+
// Emit local invalidation as fallback
|
|
178
|
+
this.emit('redis-publish-failed', err, message);
|
|
179
|
+
}
|
|
180
|
+
throw err;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Get list of active instances (based on recent heartbeats)
|
|
185
|
+
*/
|
|
186
|
+
async getActiveInstances(_maxAge = 60000) {
|
|
187
|
+
// This would require storing heartbeat data in Redis
|
|
188
|
+
// For now, return empty array as this is a monitoring feature
|
|
189
|
+
return [];
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Cleanup Redis connections
|
|
193
|
+
*/
|
|
194
|
+
async shutdown() {
|
|
195
|
+
if (this.heartbeatInterval) {
|
|
196
|
+
clearInterval(this.heartbeatInterval);
|
|
197
|
+
}
|
|
198
|
+
this.subscriber.disconnect();
|
|
199
|
+
this.redis.disconnect();
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
exports.DistributedCacheInvalidator = DistributedCacheInvalidator;
|
|
203
|
+
/**
|
|
204
|
+
* Singleton instance for global use
|
|
205
|
+
*/
|
|
206
|
+
let globalInvalidator = null;
|
|
207
|
+
function getDistributedCacheInvalidator(options) {
|
|
208
|
+
if (!globalInvalidator) {
|
|
209
|
+
globalInvalidator = new DistributedCacheInvalidator(options);
|
|
210
|
+
}
|
|
211
|
+
return globalInvalidator;
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=DistributedCacheInvalidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DistributedCacheInvalidator.js","sourceRoot":"","sources":["../../src/container/DistributedCacheInvalidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { MapInterface } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Creates an LRU cache for service instances
|
|
4
|
+
*
|
|
5
|
+
* @param max Maximum number of entries before LRU eviction (default: 100)
|
|
6
|
+
* @returns LRU cache instance optimized for service caching
|
|
7
|
+
*
|
|
8
|
+
* Note: tiny-lru is optimal for this use case because:
|
|
9
|
+
* - Lightweight (~2KB)
|
|
10
|
+
* - Fast O(1) operations
|
|
11
|
+
* - Simple LRU eviction
|
|
12
|
+
* - No unnecessary features (TTL, async, etc.)
|
|
13
|
+
*/
|
|
14
|
+
export declare function createServiceCache<T>(max?: number): MapInterface<T>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createServiceCache = createServiceCache;
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
5
|
+
const tinyLRU = require('tiny-lru');
|
|
6
|
+
// Default cache size - can be overridden per container
|
|
7
|
+
const DEFAULT_CACHE_SIZE = 100;
|
|
8
|
+
/**
|
|
9
|
+
* Creates an LRU cache for service instances
|
|
10
|
+
*
|
|
11
|
+
* @param max Maximum number of entries before LRU eviction (default: 100)
|
|
12
|
+
* @returns LRU cache instance optimized for service caching
|
|
13
|
+
*
|
|
14
|
+
* Note: tiny-lru is optimal for this use case because:
|
|
15
|
+
* - Lightweight (~2KB)
|
|
16
|
+
* - Fast O(1) operations
|
|
17
|
+
* - Simple LRU eviction
|
|
18
|
+
* - No unnecessary features (TTL, async, etc.)
|
|
19
|
+
*/
|
|
20
|
+
function createServiceCache(max) {
|
|
21
|
+
return new tinyLRU.LRU(max || DEFAULT_CACHE_SIZE);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=LruCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LruCache.js","sourceRoot":"","sources":["../../src/container/LruCache.ts"],"names":[],"mappings":";;AAoBA,gDAEC;AApBD,iEAAiE;AACjE,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;AAEnC,uDAAuD;AACvD,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAE9B;;;;;;;;;;;GAWG;AACH,SAAgB,kBAAkB,CAAI,GAAY;IAChD,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,kBAAkB,CAAoB,CAAA;AACtE,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import type { Container } from './Container';
|
|
2
|
+
import { DistributedCacheInvalidator } from './DistributedCacheInvalidator';
|
|
3
|
+
export interface MapInterface<T> {
|
|
4
|
+
clear(): void;
|
|
5
|
+
delete(key: string): boolean;
|
|
6
|
+
get(key: string): T | undefined;
|
|
7
|
+
set(key: string, value: T, ttl?: number): 1 | 0;
|
|
8
|
+
size?: number | (() => number);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* A Factory can be either a class constructor or a factory function
|
|
12
|
+
* that creates service instances. Supports parameters for dependency injection.
|
|
13
|
+
*
|
|
14
|
+
* @template T - The type of service instance this factory creates
|
|
15
|
+
* @template P - Tuple type representing the constructor/function parameters
|
|
16
|
+
*
|
|
17
|
+
* Examples:
|
|
18
|
+
* - Class constructor: `class UserService { constructor(db: Database) {} }`
|
|
19
|
+
* - Factory function: `(db: Database) => new UserService(db)`
|
|
20
|
+
*/
|
|
21
|
+
export type Factory<T, P extends readonly unknown[] = []> = ((...params: P) => T) | (new (...params: P) => T);
|
|
22
|
+
/**
|
|
23
|
+
* PreloadStructure represents the "blueprint" phase of the container.
|
|
24
|
+
* Each factory becomes a function that takes (id, ...params) and returns an instance.
|
|
25
|
+
* This allows for parametric service creation during the initialization phase.
|
|
26
|
+
*
|
|
27
|
+
* Example transformation:
|
|
28
|
+
* ```
|
|
29
|
+
* factories: { userService: UserService }
|
|
30
|
+
* preload: { userService: (id: string, db: Database) => UserService }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export type PreloadStructure<D> = {
|
|
34
|
+
[K in keyof D]: D[K] extends Factory<infer T, infer P> ? (id: string, ...params: P) => T : D[K] extends Record<string, unknown> ? PreloadStructure<D[K]> : never;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* InstancesStructure represents the final resolved services available at runtime.
|
|
38
|
+
* All factories have been instantiated and are ready for use.
|
|
39
|
+
*
|
|
40
|
+
* Example transformation:
|
|
41
|
+
* ```
|
|
42
|
+
* factories: { userService: UserService }
|
|
43
|
+
* instances: { userService: UserService instance }
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
export type InstancesStructure<D> = {
|
|
47
|
+
[K in keyof D]: D[K] extends Factory<infer T, any> ? T : D[K] extends Record<string, unknown> ? InstancesStructure<D[K]> : never;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Extract the factory definitions from a Container type
|
|
51
|
+
* Useful for TypeScript type manipulation and testing
|
|
52
|
+
*/
|
|
53
|
+
export type ContainerFactories<C> = C extends Container<infer Defs, any> ? Defs : never;
|
|
54
|
+
/**
|
|
55
|
+
* Extract the tenant metadata type from a Container
|
|
56
|
+
* Helps maintain type safety when working with tenant-specific data
|
|
57
|
+
*/
|
|
58
|
+
export type ContainerMetadata<C> = C extends Container<any, infer Meta> ? Meta : never;
|
|
59
|
+
/**
|
|
60
|
+
* Extract the runtime context type (available services) from a Container
|
|
61
|
+
* This is what you get when calling `container.context`
|
|
62
|
+
*/
|
|
63
|
+
export type ContainerContext<C> = C extends Container<infer Defs, any> ? InstancesStructure<Defs> : never;
|
|
64
|
+
/**
|
|
65
|
+
* Extract the preload structure type from a Container
|
|
66
|
+
* Useful for initializer function type checking
|
|
67
|
+
*/
|
|
68
|
+
export type ContainerPreload<C> = C extends Container<infer Defs, any> ? PreloadStructure<Defs> : never;
|
|
69
|
+
/**
|
|
70
|
+
* Extract the bootstrap result type from a Container
|
|
71
|
+
* Contains both instances and any result from the bootstrap function
|
|
72
|
+
*/
|
|
73
|
+
export type ContainerBootstrapResult<C> = C extends Container<infer Defs, any> ? {
|
|
74
|
+
instances: InstancesStructure<Defs>;
|
|
75
|
+
result?: any;
|
|
76
|
+
} : never;
|
|
77
|
+
/**
|
|
78
|
+
* Get the type of a specific service by its path (e.g., "database.userRepo")
|
|
79
|
+
* Provides compile-time type safety when accessing nested services
|
|
80
|
+
*/
|
|
81
|
+
export type ServiceType<C, ServicePath extends string> = C extends Container<infer Defs, any> ? GetServiceType<InstancesStructure<Defs>, ServicePath> : never;
|
|
82
|
+
/**
|
|
83
|
+
* Recursive type helper to resolve service types by dot-notation path
|
|
84
|
+
* Supports deep nesting like "api.services.user.repository"
|
|
85
|
+
*/
|
|
86
|
+
type GetServiceType<T, Path extends string> = Path extends `${infer K}.${infer Rest}` ? K extends keyof T ? GetServiceType<T[K], Rest> : never : Path extends keyof T ? T[Path] : never;
|
|
87
|
+
/**
|
|
88
|
+
* Get all possible service paths as string literal union types
|
|
89
|
+
* Enables IDE autocomplete for service paths
|
|
90
|
+
*/
|
|
91
|
+
export type ServicePaths<C> = C extends Container<infer Defs, any> ? GetAllPaths<InstancesStructure<Defs>> : never;
|
|
92
|
+
/**
|
|
93
|
+
* Recursively build all possible dot-notation paths through the service tree
|
|
94
|
+
* Creates union types like "user" | "user.repository" | "api.services.auth"
|
|
95
|
+
*/
|
|
96
|
+
type GetAllPaths<T, Prefix extends string = ''> = {
|
|
97
|
+
[K in keyof T]: T[K] extends Record<string, unknown> ? T[K] extends (...args: any[]) => any ? Prefix extends '' ? K : `${Prefix}.${K & string}` : GetAllPaths<T[K], Prefix extends '' ? K & string : `${Prefix}.${K & string}`> : Prefix extends '' ? K : `${Prefix}.${K & string}`;
|
|
98
|
+
}[keyof T];
|
|
99
|
+
/**
|
|
100
|
+
* Type-level check if a service exists at the given path
|
|
101
|
+
* Returns true/false at compile time
|
|
102
|
+
*/
|
|
103
|
+
export type HasService<C, ServicePath extends string> = ServiceType<C, ServicePath> extends never ? false : true;
|
|
104
|
+
/**
|
|
105
|
+
* Extract factory parameter types for a service at the given path
|
|
106
|
+
* Useful for understanding what parameters a service factory expects
|
|
107
|
+
*/
|
|
108
|
+
export type ServiceFactoryParams<C, ServicePath extends string> = C extends Container<infer Defs, any> ? GetFactoryParams<Defs, ServicePath> : never;
|
|
109
|
+
/**
|
|
110
|
+
* Recursive helper to extract factory parameters by path
|
|
111
|
+
*/
|
|
112
|
+
type GetFactoryParams<T, Path extends string> = Path extends `${infer K}.${infer Rest}` ? K extends keyof T ? GetFactoryParams<T[K], Rest> : never : Path extends keyof T ? T[Path] extends Factory<any, infer P> ? P : never : never;
|
|
113
|
+
/**
|
|
114
|
+
* Container configuration options for performance tuning and debugging
|
|
115
|
+
*/
|
|
116
|
+
export interface ContainerOptions {
|
|
117
|
+
/** Maximum number of instances to cache per service (default: 100) */
|
|
118
|
+
cacheSize?: number;
|
|
119
|
+
/** Enable performance metrics collection (default: false) */
|
|
120
|
+
enableMetrics?: boolean;
|
|
121
|
+
/** Enable detailed error logging and diagnostics (default: false) */
|
|
122
|
+
enableDiagnostics?: boolean;
|
|
123
|
+
/** Enable distributed cache invalidation (default: false) */
|
|
124
|
+
enableDistributedInvalidation?: boolean;
|
|
125
|
+
/** Distributed cache invalidator instance */
|
|
126
|
+
distributedInvalidator?: DistributedCacheInvalidator;
|
|
127
|
+
}
|
|
128
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
3
|
+
// 🏭 FACTORY TYPES
|
|
4
|
+
// ═══════════════════════════════════════════════════════════════════════════════
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/container/types.ts"],"names":[],"mappings":";AAAA,kFAAkF;AAClF,mBAAmB;AACnB,kFAAkF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,3 +2,34 @@ import { Cache } from './Cache';
|
|
|
2
2
|
import type { Options } from 'keyv';
|
|
3
3
|
export { Cache };
|
|
4
4
|
export type { Options };
|
|
5
|
+
export { getExpressTrpcApp } from './server/bootstraps/getExpressTrpcApp';
|
|
6
|
+
export { SentryService } from './server/sentry/sentry.service';
|
|
7
|
+
export { getSentry } from './server/sentry/getSentry';
|
|
8
|
+
export { getLogger } from './server/middleware/logger/logger.service';
|
|
9
|
+
export { handleRequest } from './server/middleware/handleRequest.middleware';
|
|
10
|
+
export { useCloudTaskDecryptMiddleware } from './server/middleware/cloudTaskDecrypt.middleware';
|
|
11
|
+
export { getTrpc } from './server/trpc';
|
|
12
|
+
export { requestContext } from './server/context/request.context';
|
|
13
|
+
export { mockedAuthenticatedTrpcRouter } from './server/test/trpc.mock';
|
|
14
|
+
export type * from '@trpc/server/unstable-core-do-not-import';
|
|
15
|
+
export type * from '@trpc/server';
|
|
16
|
+
export type { LocationOutput } from './server/context/context.model';
|
|
17
|
+
export type { PackageInfo } from './server/consts';
|
|
18
|
+
export { config } from './server/consts';
|
|
19
|
+
export { EmailService } from './server/services/email/email.service';
|
|
20
|
+
export { Layout, Content, EmailCategory } from './server/services/email/email.model';
|
|
21
|
+
export type { EmailTemplates, Theme, EmailAttachment } from './server/services/email/email.model';
|
|
22
|
+
export { SendgridService } from './server/services/sendgrid/sendgridApi.service';
|
|
23
|
+
export { getGcpServiceAccountFromBase64 } from './server/services/gcp/getGcpServiceAccountFromBase64';
|
|
24
|
+
export type { SecretProvider } from './server/services/secrets/secret.service';
|
|
25
|
+
export { SecretService } from './server/services/secrets/secret.service';
|
|
26
|
+
export { UrlService } from './server/services/util/url.service';
|
|
27
|
+
export { paginationUtility } from './server/services/util/pagination';
|
|
28
|
+
export type { SendGridEmailResponse } from './server/services/sendgrid/sendgrid.model';
|
|
29
|
+
export { TRPCError } from '@trpc/server';
|
|
30
|
+
export { translationService, tr } from './server/services/translations/translation.service';
|
|
31
|
+
export type { Environment } from './server/types/Envinronment';
|
|
32
|
+
export { Container } from './container/Container';
|
|
33
|
+
export type { Factory, ContainerOptions, PreloadStructure, ContainerFactories, ContainerMetadata, ContainerContext, MapInterface, ContainerBootstrapResult } from './container/types';
|
|
34
|
+
export { createServiceCache } from './container/LruCache';
|
|
35
|
+
export { DistributedCacheInvalidator, getDistributedCacheInvalidator } from './container/DistributedCacheInvalidator';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,58 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Cache = void 0;
|
|
3
|
+
exports.getDistributedCacheInvalidator = exports.DistributedCacheInvalidator = exports.createServiceCache = exports.Container = exports.tr = exports.translationService = exports.TRPCError = exports.paginationUtility = exports.UrlService = exports.SecretService = exports.getGcpServiceAccountFromBase64 = exports.SendgridService = exports.EmailCategory = exports.Content = exports.Layout = exports.EmailService = exports.config = exports.mockedAuthenticatedTrpcRouter = exports.requestContext = exports.getTrpc = exports.useCloudTaskDecryptMiddleware = exports.handleRequest = exports.getLogger = exports.getSentry = exports.SentryService = exports.getExpressTrpcApp = exports.Cache = void 0;
|
|
4
4
|
const Cache_1 = require("./Cache");
|
|
5
5
|
Object.defineProperty(exports, "Cache", { enumerable: true, get: function () { return Cache_1.Cache; } });
|
|
6
|
+
// New backend package
|
|
7
|
+
var getExpressTrpcApp_1 = require("./server/bootstraps/getExpressTrpcApp");
|
|
8
|
+
Object.defineProperty(exports, "getExpressTrpcApp", { enumerable: true, get: function () { return getExpressTrpcApp_1.getExpressTrpcApp; } });
|
|
9
|
+
var sentry_service_1 = require("./server/sentry/sentry.service");
|
|
10
|
+
Object.defineProperty(exports, "SentryService", { enumerable: true, get: function () { return sentry_service_1.SentryService; } });
|
|
11
|
+
var getSentry_1 = require("./server/sentry/getSentry");
|
|
12
|
+
Object.defineProperty(exports, "getSentry", { enumerable: true, get: function () { return getSentry_1.getSentry; } });
|
|
13
|
+
var logger_service_1 = require("./server/middleware/logger/logger.service");
|
|
14
|
+
Object.defineProperty(exports, "getLogger", { enumerable: true, get: function () { return logger_service_1.getLogger; } });
|
|
15
|
+
var handleRequest_middleware_1 = require("./server/middleware/handleRequest.middleware");
|
|
16
|
+
Object.defineProperty(exports, "handleRequest", { enumerable: true, get: function () { return handleRequest_middleware_1.handleRequest; } });
|
|
17
|
+
var cloudTaskDecrypt_middleware_1 = require("./server/middleware/cloudTaskDecrypt.middleware");
|
|
18
|
+
Object.defineProperty(exports, "useCloudTaskDecryptMiddleware", { enumerable: true, get: function () { return cloudTaskDecrypt_middleware_1.useCloudTaskDecryptMiddleware; } });
|
|
19
|
+
var trpc_1 = require("./server/trpc");
|
|
20
|
+
Object.defineProperty(exports, "getTrpc", { enumerable: true, get: function () { return trpc_1.getTrpc; } });
|
|
21
|
+
var request_context_1 = require("./server/context/request.context");
|
|
22
|
+
Object.defineProperty(exports, "requestContext", { enumerable: true, get: function () { return request_context_1.requestContext; } });
|
|
23
|
+
var trpc_mock_1 = require("./server/test/trpc.mock");
|
|
24
|
+
Object.defineProperty(exports, "mockedAuthenticatedTrpcRouter", { enumerable: true, get: function () { return trpc_mock_1.mockedAuthenticatedTrpcRouter; } });
|
|
25
|
+
var consts_1 = require("./server/consts");
|
|
26
|
+
Object.defineProperty(exports, "config", { enumerable: true, get: function () { return consts_1.config; } });
|
|
27
|
+
var email_service_1 = require("./server/services/email/email.service");
|
|
28
|
+
Object.defineProperty(exports, "EmailService", { enumerable: true, get: function () { return email_service_1.EmailService; } });
|
|
29
|
+
var email_model_1 = require("./server/services/email/email.model");
|
|
30
|
+
Object.defineProperty(exports, "Layout", { enumerable: true, get: function () { return email_model_1.Layout; } });
|
|
31
|
+
Object.defineProperty(exports, "Content", { enumerable: true, get: function () { return email_model_1.Content; } });
|
|
32
|
+
Object.defineProperty(exports, "EmailCategory", { enumerable: true, get: function () { return email_model_1.EmailCategory; } });
|
|
33
|
+
var sendgridApi_service_1 = require("./server/services/sendgrid/sendgridApi.service");
|
|
34
|
+
Object.defineProperty(exports, "SendgridService", { enumerable: true, get: function () { return sendgridApi_service_1.SendgridService; } });
|
|
35
|
+
var getGcpServiceAccountFromBase64_1 = require("./server/services/gcp/getGcpServiceAccountFromBase64");
|
|
36
|
+
Object.defineProperty(exports, "getGcpServiceAccountFromBase64", { enumerable: true, get: function () { return getGcpServiceAccountFromBase64_1.getGcpServiceAccountFromBase64; } });
|
|
37
|
+
var secret_service_1 = require("./server/services/secrets/secret.service");
|
|
38
|
+
Object.defineProperty(exports, "SecretService", { enumerable: true, get: function () { return secret_service_1.SecretService; } });
|
|
39
|
+
var url_service_1 = require("./server/services/util/url.service");
|
|
40
|
+
Object.defineProperty(exports, "UrlService", { enumerable: true, get: function () { return url_service_1.UrlService; } });
|
|
41
|
+
var pagination_1 = require("./server/services/util/pagination");
|
|
42
|
+
Object.defineProperty(exports, "paginationUtility", { enumerable: true, get: function () { return pagination_1.paginationUtility; } });
|
|
43
|
+
var server_1 = require("@trpc/server");
|
|
44
|
+
Object.defineProperty(exports, "TRPCError", { enumerable: true, get: function () { return server_1.TRPCError; } });
|
|
45
|
+
var translation_service_1 = require("./server/services/translations/translation.service");
|
|
46
|
+
Object.defineProperty(exports, "translationService", { enumerable: true, get: function () { return translation_service_1.translationService; } });
|
|
47
|
+
Object.defineProperty(exports, "tr", { enumerable: true, get: function () { return translation_service_1.tr; } });
|
|
48
|
+
////////////////////////
|
|
49
|
+
// Container System
|
|
50
|
+
////////////////////////
|
|
51
|
+
var Container_1 = require("./container/Container");
|
|
52
|
+
Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return Container_1.Container; } });
|
|
53
|
+
var LruCache_1 = require("./container/LruCache");
|
|
54
|
+
Object.defineProperty(exports, "createServiceCache", { enumerable: true, get: function () { return LruCache_1.createServiceCache; } });
|
|
55
|
+
var DistributedCacheInvalidator_1 = require("./container/DistributedCacheInvalidator");
|
|
56
|
+
Object.defineProperty(exports, "DistributedCacheInvalidator", { enumerable: true, get: function () { return DistributedCacheInvalidator_1.DistributedCacheInvalidator; } });
|
|
57
|
+
Object.defineProperty(exports, "getDistributedCacheInvalidator", { enumerable: true, get: function () { return DistributedCacheInvalidator_1.getDistributedCacheInvalidator; } });
|
|
6
58
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAGtB,sFAHA,aAAK,OAGA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAGtB,sFAHA,aAAK,OAGA;AAGd,sBAAsB;AACtB,2EAAyE;AAAhE,sHAAA,iBAAiB,OAAA;AAC1B,iEAA8D;AAArD,+GAAA,aAAa,OAAA;AACtB,uDAAqD;AAA5C,sGAAA,SAAS,OAAA;AAClB,4EAAqE;AAA5D,2GAAA,SAAS,OAAA;AAClB,yFAA4E;AAAnE,yHAAA,aAAa,OAAA;AACtB,+FAA+F;AAAtF,4IAAA,6BAA6B,OAAA;AACtC,sCAAuC;AAA9B,+FAAA,OAAO,OAAA;AAChB,oEAAiE;AAAxD,iHAAA,cAAc,OAAA;AAEvB,qDAAuE;AAA9D,0HAAA,6BAA6B,OAAA;AAMtC,0CAAwC;AAA/B,gGAAA,MAAM,OAAA;AACf,uEAAoE;AAA3D,6GAAA,YAAY,OAAA;AACrB,mEAI4C;AAH1C,qGAAA,MAAM,OAAA;AACN,sGAAA,OAAO,OAAA;AACP,4GAAA,aAAa,OAAA;AAOf,sFAAgF;AAAvE,sHAAA,eAAe,OAAA;AACxB,uGAAqG;AAA5F,gJAAA,8BAA8B,OAAA;AAGvC,2EAAwE;AAA/D,+GAAA,aAAa,OAAA;AACtB,kEAA+D;AAAtD,yGAAA,UAAU,OAAA;AACnB,gEAAqE;AAA5D,+GAAA,iBAAiB,OAAA;AAE1B,uCAAwC;AAA/B,mGAAA,SAAS,OAAA;AAClB,0FAG2D;AAFzD,yHAAA,kBAAkB,OAAA;AAClB,yGAAA,EAAE,OAAA;AAKJ,wBAAwB;AACxB,mBAAmB;AACnB,wBAAwB;AACxB,mDAAiD;AAAxC,sGAAA,SAAS,OAAA;AAYlB,iDAAyD;AAAhD,8GAAA,kBAAkB,OAAA;AAC3B,uFAGgD;AAF9C,0IAAA,2BAA2B,OAAA;AAC3B,6IAAA,8BAA8B,OAAA"}
|