@goatlab/node-backend 0.2.5 → 0.4.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 +146 -14
- package/dist/container/Container.d.ts +113 -25
- package/dist/container/Container.js +391 -168
- package/dist/container/Container.js.map +1 -1
- package/dist/container/examples/batch-operations.example.d.ts +1 -0
- package/dist/container/examples/batch-operations.example.js +165 -0
- package/dist/container/examples/batch-operations.example.js.map +1 -0
- package/dist/container/helpers.d.ts +8 -0
- package/dist/container/helpers.js +22 -0
- package/dist/container/helpers.js.map +1 -1
- package/dist/container/types.d.ts +60 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/server/bootstraps/getExpressTrpcApp.d.ts +5 -1
- package/dist/server/bootstraps/getExpressTrpcApp.js +216 -12
- package/dist/server/bootstraps/getExpressTrpcApp.js.map +1 -1
- package/dist/server/middleware/memoryMonitor.example.d.ts +1 -0
- package/dist/server/middleware/memoryMonitor.example.js +109 -0
- package/dist/server/middleware/memoryMonitor.example.js.map +1 -0
- package/dist/server/middleware/memoryMonitor.middleware.d.ts +42 -0
- package/dist/server/middleware/memoryMonitor.middleware.js +134 -0
- package/dist/server/middleware/memoryMonitor.middleware.js.map +1 -0
- package/dist/server/middleware/productionError.middleware.d.ts +16 -0
- package/dist/server/middleware/productionError.middleware.js +94 -0
- package/dist/server/middleware/productionError.middleware.js.map +1 -0
- package/dist/server/middleware/security.middleware.d.ts +28 -0
- package/dist/server/middleware/security.middleware.js +151 -0
- package/dist/server/middleware/security.middleware.js.map +1 -0
- package/dist/server/services/secrets/examples/container-preload.example.d.ts +1 -0
- package/dist/server/services/secrets/examples/container-preload.example.js +148 -0
- package/dist/server/services/secrets/examples/container-preload.example.js.map +1 -0
- package/dist/server/services/secrets/index.d.ts +1 -0
- package/dist/server/services/secrets/index.js +6 -0
- package/dist/server/services/secrets/index.js.map +1 -0
- package/dist/server/services/secrets/secret.service.d.ts +48 -6
- package/dist/server/services/secrets/secret.service.js +280 -28
- package/dist/server/services/secrets/secret.service.js.map +1 -1
- package/dist/server/services/translations/translation.model.js +2 -1
- package/dist/server/services/translations/translation.model.js.map +1 -1
- package/dist/server/services/translations/translation.service.d.ts +8 -1
- package/dist/server/services/translations/translation.service.js +123 -13
- package/dist/server/services/translations/translation.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -1
|
@@ -2,25 +2,183 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SecretService = void 0;
|
|
4
4
|
const fs = require("fs");
|
|
5
|
+
const fs_1 = require("fs");
|
|
5
6
|
const undici_1 = require("undici");
|
|
6
7
|
const node_utils_1 = require("@goatlab/node-utils");
|
|
7
8
|
const colors_1 = require("kleur/colors");
|
|
9
|
+
// Enhanced cache with TTL support
|
|
8
10
|
const memoryCache = {};
|
|
11
|
+
// Default TTL in milliseconds (5 minutes)
|
|
12
|
+
const DEFAULT_TTL_MS = 5 * 60 * 1000;
|
|
9
13
|
class SecretService {
|
|
10
14
|
provider;
|
|
11
15
|
location;
|
|
12
16
|
encryptionKey;
|
|
13
17
|
vaultConfig;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
cacheTTL;
|
|
19
|
+
preloadedSecrets;
|
|
20
|
+
isPreloaded = false;
|
|
21
|
+
fileWatcher;
|
|
22
|
+
constructor(config) {
|
|
23
|
+
this.provider = config.provider;
|
|
24
|
+
this.location = config.location;
|
|
25
|
+
this.encryptionKey = config.encryptionKey;
|
|
26
|
+
this.vaultConfig = config.vaultConfig;
|
|
27
|
+
this.cacheTTL = config.cacheTTL ?? DEFAULT_TTL_MS;
|
|
19
28
|
}
|
|
20
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Preload secrets asynchronously for synchronous access later
|
|
31
|
+
* This method loads secrets once and stores them in the instance
|
|
32
|
+
*/
|
|
33
|
+
async preload() {
|
|
34
|
+
try {
|
|
35
|
+
const secrets = await this.loadSecretsAsync();
|
|
36
|
+
this.preloadedSecrets = secrets;
|
|
37
|
+
this.isPreloaded = true;
|
|
38
|
+
// Set up file watching for automatic invalidation (FILE provider only)
|
|
39
|
+
if (this.provider === 'FILE' && !this.fileWatcher) {
|
|
40
|
+
this.setupFileWatcher();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
this.isPreloaded = false;
|
|
45
|
+
throw new Error(`Failed to preload secrets: ${error.message}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Invalidate preloaded secrets and stop file watching
|
|
50
|
+
*/
|
|
51
|
+
async invalidate() {
|
|
52
|
+
this.preloadedSecrets = undefined;
|
|
53
|
+
this.isPreloaded = false;
|
|
54
|
+
// Clear cache to force reload
|
|
55
|
+
if (this.provider === 'FILE') {
|
|
56
|
+
delete memoryCache[this.location];
|
|
57
|
+
}
|
|
58
|
+
else if (this.provider === 'ENV') {
|
|
59
|
+
delete memoryCache[`env_${this.location}`];
|
|
60
|
+
}
|
|
61
|
+
else if (this.provider === 'VAULT' && this.vaultConfig) {
|
|
62
|
+
delete memoryCache[`vault_${this.vaultConfig.endpoint}_${this.location}`];
|
|
63
|
+
}
|
|
64
|
+
// Stop file watching
|
|
65
|
+
if (this.fileWatcher) {
|
|
66
|
+
this.fileWatcher.close();
|
|
67
|
+
this.fileWatcher = undefined;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Set up file watching for automatic invalidation
|
|
72
|
+
*/
|
|
73
|
+
setupFileWatcher() {
|
|
74
|
+
if (this.provider !== 'FILE')
|
|
75
|
+
return;
|
|
76
|
+
try {
|
|
77
|
+
this.fileWatcher = fs.watch(this.location, async (eventType) => {
|
|
78
|
+
if (eventType === 'change') {
|
|
79
|
+
console.log(`🔄 Secret file changed: ${(0, colors_1.magenta)(this.location)}`);
|
|
80
|
+
await this.invalidate();
|
|
81
|
+
// Optionally auto-reload
|
|
82
|
+
try {
|
|
83
|
+
await this.preload();
|
|
84
|
+
console.log(`✅ Secrets reloaded successfully`);
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
console.error(`❌ Failed to reload secrets: ${error.message}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
console.warn(`⚠️ Failed to set up file watching: ${error.message}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Load secrets asynchronously with decryption for all providers
|
|
98
|
+
*/
|
|
99
|
+
async loadSecretsAsync() {
|
|
100
|
+
let secrets;
|
|
101
|
+
switch (this.provider) {
|
|
102
|
+
case 'FILE':
|
|
103
|
+
secrets = await this.loadSecretsFromFileAsync();
|
|
104
|
+
break;
|
|
105
|
+
case 'ENV':
|
|
106
|
+
secrets = this.loadSecretsFromEnv();
|
|
107
|
+
break;
|
|
108
|
+
case 'VAULT':
|
|
109
|
+
secrets = await this.loadSecretsFromVault();
|
|
110
|
+
break;
|
|
111
|
+
case 'GCP':
|
|
112
|
+
secrets = this.loadSecretsFromGCP();
|
|
113
|
+
break;
|
|
114
|
+
default:
|
|
115
|
+
throw new Error(`Unknown provider: ${this.provider}`);
|
|
116
|
+
}
|
|
117
|
+
// No need to decrypt here as each provider method already handles decryption
|
|
118
|
+
return secrets;
|
|
119
|
+
}
|
|
120
|
+
// Helper method to check if cache entry is valid
|
|
121
|
+
isCacheValid(entry) {
|
|
122
|
+
if (!entry)
|
|
123
|
+
return false;
|
|
124
|
+
if (!entry.expiresAt)
|
|
125
|
+
return true; // No expiration set
|
|
126
|
+
return Date.now() < entry.expiresAt;
|
|
127
|
+
}
|
|
128
|
+
// Helper method to set cache with TTL
|
|
129
|
+
setCache(key, data, ttl) {
|
|
130
|
+
const expiresAt = ttl ? Date.now() + ttl : undefined;
|
|
131
|
+
memoryCache[key] = { data, expiresAt };
|
|
132
|
+
}
|
|
133
|
+
// Helper method to get from cache
|
|
134
|
+
getCache(key) {
|
|
135
|
+
const entry = memoryCache[key];
|
|
136
|
+
if (this.isCacheValid(entry)) {
|
|
137
|
+
return entry?.data;
|
|
138
|
+
}
|
|
139
|
+
// Clear expired entry
|
|
140
|
+
if (entry) {
|
|
141
|
+
delete memoryCache[key];
|
|
142
|
+
}
|
|
143
|
+
return undefined;
|
|
144
|
+
}
|
|
145
|
+
// Async version of loadSecretsFromFile
|
|
146
|
+
async loadSecretsFromFileAsync() {
|
|
147
|
+
const cached = this.getCache(this.location);
|
|
148
|
+
if (cached) {
|
|
149
|
+
return cached;
|
|
150
|
+
}
|
|
151
|
+
const start = process.hrtime.bigint();
|
|
152
|
+
try {
|
|
153
|
+
// Check if file exists using async stat
|
|
154
|
+
await fs_1.promises.stat(this.location);
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
throw new Error(`Secret file "${this.location}" does not exist`);
|
|
158
|
+
}
|
|
159
|
+
try {
|
|
160
|
+
const fileContents = await fs_1.promises.readFile(this.location, 'utf-8');
|
|
161
|
+
const secretEncryptedObject = JSON.parse(fileContents);
|
|
162
|
+
console.log(`🔐 Secrets loaded: ${(0, colors_1.magenta)(this.location.split('/').slice(-2).join('/'))}`);
|
|
163
|
+
const decrypted = node_utils_1.Security.decryptObject(secretEncryptedObject, this.encryptionKey);
|
|
164
|
+
this.setCache(this.location, decrypted, this.cacheTTL);
|
|
165
|
+
const durationMs = Number(process.hrtime.bigint() - start) / 1_000_000;
|
|
166
|
+
console.log(`⏱️ loadSecrets(${this.location}) took ${durationMs.toFixed(3)}ms`);
|
|
167
|
+
return decrypted;
|
|
168
|
+
}
|
|
169
|
+
catch (err) {
|
|
170
|
+
if (err instanceof SyntaxError) {
|
|
171
|
+
throw new Error(`Invalid JSON in secret file: ${this.location}`);
|
|
172
|
+
}
|
|
173
|
+
console.error(err);
|
|
174
|
+
throw new Error(`loadSecrets failed to decrypt: ${this.location}`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// Synchronous version for backward compatibility
|
|
21
178
|
loadSecretsFromFile() {
|
|
22
|
-
|
|
23
|
-
|
|
179
|
+
const cached = this.getCache(this.location);
|
|
180
|
+
if (cached) {
|
|
181
|
+
return cached;
|
|
24
182
|
}
|
|
25
183
|
if (!fs.existsSync(this.location)) {
|
|
26
184
|
throw new Error(`Secret file "${this.location}" does not exist`);
|
|
@@ -30,11 +188,11 @@ class SecretService {
|
|
|
30
188
|
const secretEncryptedObject = JSON.parse(fileContents);
|
|
31
189
|
console.log(`🔐 Secrets loaded: ${(0, colors_1.magenta)(this.location.split('/').slice(-2).join('/'))}`);
|
|
32
190
|
try {
|
|
33
|
-
const
|
|
34
|
-
|
|
191
|
+
const decrypted = node_utils_1.Security.decryptObject(secretEncryptedObject, this.encryptionKey);
|
|
192
|
+
this.setCache(this.location, decrypted, this.cacheTTL);
|
|
35
193
|
const durationMs = Number(process.hrtime.bigint() - start) / 1_000_000;
|
|
36
194
|
console.log(`⏱️ loadSecrets(${this.location}) took ${durationMs.toFixed(3)}ms`);
|
|
37
|
-
return
|
|
195
|
+
return decrypted;
|
|
38
196
|
}
|
|
39
197
|
catch (err) {
|
|
40
198
|
console.error(err);
|
|
@@ -42,15 +200,27 @@ class SecretService {
|
|
|
42
200
|
}
|
|
43
201
|
}
|
|
44
202
|
loadSecretsFromGCP() {
|
|
45
|
-
|
|
203
|
+
// TODO: Implement GCP Secret Manager integration
|
|
204
|
+
// For now, return empty object but apply decryption if needed
|
|
205
|
+
const secrets = {};
|
|
206
|
+
if (this.encryptionKey) {
|
|
207
|
+
try {
|
|
208
|
+
return node_utils_1.Security.decryptObject(secrets, this.encryptionKey);
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
console.warn(`Failed to decrypt GCP secrets: ${error.message}`);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return secrets;
|
|
46
215
|
}
|
|
47
216
|
loadEncryptionKeyFromGCP() {
|
|
48
217
|
return '';
|
|
49
218
|
}
|
|
50
219
|
loadSecretsFromEnv() {
|
|
51
220
|
const cacheKey = `env_${this.location}`;
|
|
52
|
-
|
|
53
|
-
|
|
221
|
+
const cached = this.getCache(cacheKey);
|
|
222
|
+
if (cached) {
|
|
223
|
+
return cached;
|
|
54
224
|
}
|
|
55
225
|
const start = process.hrtime.bigint();
|
|
56
226
|
try {
|
|
@@ -76,10 +246,21 @@ class SecretService {
|
|
|
76
246
|
if (!this.location) {
|
|
77
247
|
console.warn('ENV provider without location prefix - this will expose all environment variables');
|
|
78
248
|
}
|
|
79
|
-
|
|
249
|
+
// Apply tenant-specific decryption if encryption key is provided
|
|
250
|
+
let decryptedSecrets = secrets;
|
|
251
|
+
if (this.encryptionKey) {
|
|
252
|
+
try {
|
|
253
|
+
decryptedSecrets = node_utils_1.Security.decryptObject(secrets, this.encryptionKey);
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
// If decryption fails, assume secrets are not encrypted
|
|
257
|
+
console.warn(`Failed to decrypt ENV secrets: ${error.message}`);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
this.setCache(cacheKey, decryptedSecrets, this.cacheTTL);
|
|
80
261
|
const durationMs = Number(process.hrtime.bigint() - start) / 1_000_000;
|
|
81
262
|
console.log(`🔐 Secrets loaded from ENV: ${(0, colors_1.magenta)(this.location || 'all')} (${durationMs.toFixed(3)}ms)`);
|
|
82
|
-
return
|
|
263
|
+
return decryptedSecrets;
|
|
83
264
|
}
|
|
84
265
|
catch (error) {
|
|
85
266
|
console.error('Failed to load secrets from ENV:', error.message);
|
|
@@ -91,8 +272,9 @@ class SecretService {
|
|
|
91
272
|
throw new Error('Vault configuration is required for VAULT provider');
|
|
92
273
|
}
|
|
93
274
|
const cacheKey = `vault_${this.vaultConfig.endpoint}_${this.location}`;
|
|
94
|
-
|
|
95
|
-
|
|
275
|
+
const cached = this.getCache(cacheKey);
|
|
276
|
+
if (cached) {
|
|
277
|
+
return cached;
|
|
96
278
|
}
|
|
97
279
|
const start = process.hrtime.bigint();
|
|
98
280
|
try {
|
|
@@ -117,8 +299,18 @@ class SecretService {
|
|
|
117
299
|
}
|
|
118
300
|
const data = (await response.json());
|
|
119
301
|
// Vault KV v2 stores data in data.data
|
|
120
|
-
|
|
121
|
-
|
|
302
|
+
let secrets = data.data?.data || data.data || {};
|
|
303
|
+
// Apply tenant-specific decryption if encryption key is provided
|
|
304
|
+
if (this.encryptionKey) {
|
|
305
|
+
try {
|
|
306
|
+
secrets = node_utils_1.Security.decryptObject(secrets, this.encryptionKey);
|
|
307
|
+
}
|
|
308
|
+
catch (error) {
|
|
309
|
+
// If decryption fails, assume secrets are not encrypted
|
|
310
|
+
console.warn(`Failed to decrypt Vault secrets: ${error.message}`);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
this.setCache(cacheKey, secrets, this.cacheTTL);
|
|
122
314
|
const durationMs = Number(process.hrtime.bigint() - start) / 1_000_000;
|
|
123
315
|
console.log(`🔐 Secrets loaded from Vault: ${(0, colors_1.magenta)(this.location)} (${durationMs.toFixed(3)}ms)`);
|
|
124
316
|
return secrets;
|
|
@@ -177,12 +369,14 @@ class SecretService {
|
|
|
177
369
|
if (this.provider === 'ENV') {
|
|
178
370
|
return this.loadSecretsFromEnv();
|
|
179
371
|
}
|
|
180
|
-
return
|
|
372
|
+
// For FILE provider, return async version by default
|
|
373
|
+
// The synchronous loadSecretsFromFile is still available for backward compatibility
|
|
374
|
+
return this.loadSecretsFromFileAsync();
|
|
181
375
|
}
|
|
182
376
|
loadEncryptionKey() {
|
|
183
377
|
return this.encryptionKey;
|
|
184
378
|
}
|
|
185
|
-
async
|
|
379
|
+
async getSecretAsync(secretName) {
|
|
186
380
|
const secrets = await this.loadSecrets();
|
|
187
381
|
const secret = secrets[secretName];
|
|
188
382
|
if (!secret) {
|
|
@@ -190,24 +384,62 @@ class SecretService {
|
|
|
190
384
|
}
|
|
191
385
|
return secret;
|
|
192
386
|
}
|
|
193
|
-
async
|
|
194
|
-
const secretValue = await this.
|
|
387
|
+
async getSecretJsonAsync(secretName) {
|
|
388
|
+
const secretValue = await this.getSecretAsync(secretName);
|
|
195
389
|
return JSON.parse(secretValue);
|
|
196
390
|
}
|
|
197
|
-
//
|
|
391
|
+
// Keep async versions for backward compatibility
|
|
392
|
+
async getSecret(secretName) {
|
|
393
|
+
return this.getSecretAsync(secretName);
|
|
394
|
+
}
|
|
395
|
+
async getSecretJson(secretName) {
|
|
396
|
+
return this.getSecretJsonAsync(secretName);
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Get a secret synchronously (requires preload() to be called first)
|
|
400
|
+
*/
|
|
198
401
|
getSecretSync(secretName) {
|
|
402
|
+
if (!this.isPreloaded || !this.preloadedSecrets) {
|
|
403
|
+
throw new Error('Secrets not preloaded. Call preload() before using synchronous methods.');
|
|
404
|
+
}
|
|
405
|
+
const secret = this.preloadedSecrets[secretName];
|
|
406
|
+
if (!secret) {
|
|
407
|
+
throw new Error(`Secret ${secretName.toString()} does not exist in ${this.location} env`);
|
|
408
|
+
}
|
|
409
|
+
return secret;
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Get a JSON secret synchronously (requires preload() to be called first)
|
|
413
|
+
*/
|
|
414
|
+
getSecretJsonSync(secretName) {
|
|
415
|
+
const secretValue = this.getSecretSync(secretName);
|
|
416
|
+
return JSON.parse(secretValue);
|
|
417
|
+
}
|
|
418
|
+
// Legacy sync method that doesn't require preload (backward compatibility)
|
|
419
|
+
getSecretSyncLegacy(secretName) {
|
|
420
|
+
// Fallback to old behavior for backward compatibility
|
|
199
421
|
if (this.provider === 'VAULT') {
|
|
200
422
|
throw new Error('Use async getSecret() method for Vault provider');
|
|
201
423
|
}
|
|
202
|
-
|
|
424
|
+
// Use synchronous loaders for sync methods
|
|
425
|
+
let secrets;
|
|
426
|
+
if (this.provider === 'FILE') {
|
|
427
|
+
secrets = this.loadSecretsFromFile();
|
|
428
|
+
}
|
|
429
|
+
else if (this.provider === 'ENV') {
|
|
430
|
+
secrets = this.loadSecretsFromEnv();
|
|
431
|
+
}
|
|
432
|
+
else {
|
|
433
|
+
secrets = this.loadSecretsFromGCP();
|
|
434
|
+
}
|
|
203
435
|
const secret = secrets[secretName];
|
|
204
436
|
if (!secret) {
|
|
205
437
|
throw new Error(`Secret ${secretName.toString()} does not exist in ${this.location} env`);
|
|
206
438
|
}
|
|
207
439
|
return secret;
|
|
208
440
|
}
|
|
209
|
-
|
|
210
|
-
return JSON.parse(this.
|
|
441
|
+
getSecretJsonSyncLegacy(secretName) {
|
|
442
|
+
return JSON.parse(this.getSecretSyncLegacy(secretName));
|
|
211
443
|
}
|
|
212
444
|
// Utility method to clear cache for testing
|
|
213
445
|
static clearCache() {
|
|
@@ -215,6 +447,26 @@ class SecretService {
|
|
|
215
447
|
delete memoryCache[key];
|
|
216
448
|
});
|
|
217
449
|
}
|
|
450
|
+
// Utility method to clear expired cache entries
|
|
451
|
+
static cleanupExpiredCache() {
|
|
452
|
+
const now = Date.now();
|
|
453
|
+
Object.entries(memoryCache).forEach(([key, entry]) => {
|
|
454
|
+
if (entry?.expiresAt && entry.expiresAt < now) {
|
|
455
|
+
delete memoryCache[key];
|
|
456
|
+
}
|
|
457
|
+
});
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Clean up resources (file watchers, etc.) when service is no longer needed
|
|
461
|
+
*/
|
|
462
|
+
dispose() {
|
|
463
|
+
if (this.fileWatcher) {
|
|
464
|
+
this.fileWatcher.close();
|
|
465
|
+
this.fileWatcher = undefined;
|
|
466
|
+
}
|
|
467
|
+
this.preloadedSecrets = undefined;
|
|
468
|
+
this.isPreloaded = false;
|
|
469
|
+
}
|
|
218
470
|
}
|
|
219
471
|
exports.SecretService = SecretService;
|
|
220
472
|
//# sourceMappingURL=secret.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret.service.js","sourceRoot":"","sources":["../../../../src/server/services/secrets/secret.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"secret.service.js","sourceRoot":"","sources":["../../../../src/server/services/secrets/secret.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.missingTranslationExcludeList = exports.LANG_DEFAULT = void 0;
|
|
3
|
+
exports.missingTranslationExcludeList = exports.LANG_DEFAULT = exports.SUPPORTED_LANGUAGES = void 0;
|
|
4
|
+
exports.SUPPORTED_LANGUAGES = ['en_us', 'en_gb', 'es_us', 'es_cl', 'es_mx'];
|
|
4
5
|
exports.LANG_DEFAULT = 'en_us';
|
|
5
6
|
exports.missingTranslationExcludeList = new Set([]);
|
|
6
7
|
//# sourceMappingURL=translation.model.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translation.model.js","sourceRoot":"","sources":["../../../../src/server/services/translations/translation.model.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"translation.model.js","sourceRoot":"","sources":["../../../../src/server/services/translations/translation.model.ts"],"names":[],"mappings":";;;AAEa,QAAA,mBAAmB,GAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAC3E,QAAA,YAAY,GAAG,OAAO,CAAA;AAEtB,QAAA,6BAA6B,GAAG,IAAI,GAAG,CAAS,EAAE,CAAC,CAAA"}
|
|
@@ -4,6 +4,9 @@ export interface UserLanguageOptions {
|
|
|
4
4
|
language: LANG | null;
|
|
5
5
|
}
|
|
6
6
|
declare class TranslationService {
|
|
7
|
+
private initialized;
|
|
8
|
+
private initialize;
|
|
9
|
+
private loadLocaleSync;
|
|
7
10
|
getLocale(lang: LANG | null): StringMap;
|
|
8
11
|
getLocaleMap(): Record<LANG, StringMap>;
|
|
9
12
|
missingKey(key: string): string;
|
|
@@ -13,11 +16,15 @@ declare class TranslationService {
|
|
|
13
16
|
*/
|
|
14
17
|
translateIfExists(key: string, user: UserLanguageOptions, args?: {}): string | undefined;
|
|
15
18
|
formatResult(key: string, text: string, args?: {}): string;
|
|
16
|
-
reportMissing(
|
|
19
|
+
reportMissing(_key: string, opt: UserLanguageOptions): void;
|
|
17
20
|
/**
|
|
18
21
|
* Based on: https://nodejs.org/api/intl.html#intl_detecting_internationalization_support
|
|
19
22
|
*/
|
|
20
23
|
hasFullICU(): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Clear cache and reinitialize - useful for testing
|
|
26
|
+
*/
|
|
27
|
+
clearCacheAndReinitialize(): void;
|
|
21
28
|
}
|
|
22
29
|
export declare const translationService: TranslationService;
|
|
23
30
|
export declare function tr(key: string, user: UserLanguageOptions, args?: {}): string;
|