@lionrapid/core 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 +106 -0
- package/dist/base/event-emitter.d.ts +91 -0
- package/dist/base/event-emitter.d.ts.map +1 -0
- package/dist/base/event-emitter.js +330 -0
- package/dist/base/event-emitter.js.map +1 -0
- package/dist/base/index.d.ts +5 -0
- package/dist/base/index.d.ts.map +1 -0
- package/dist/base/index.js +5 -0
- package/dist/base/index.js.map +1 -0
- package/dist/browser/auto-init.d.ts +57 -0
- package/dist/browser/auto-init.d.ts.map +1 -0
- package/dist/browser/auto-init.js +304 -0
- package/dist/browser/auto-init.js.map +1 -0
- package/dist/browser/auto-translator.d.ts +98 -0
- package/dist/browser/auto-translator.d.ts.map +1 -0
- package/dist/browser/auto-translator.js +218 -0
- package/dist/browser/auto-translator.js.map +1 -0
- package/dist/browser/block-extractor.d.ts +26 -0
- package/dist/browser/block-extractor.d.ts.map +1 -0
- package/dist/browser/block-extractor.js +143 -0
- package/dist/browser/block-extractor.js.map +1 -0
- package/dist/browser/dom-observer.d.ts +42 -0
- package/dist/browser/dom-observer.d.ts.map +1 -0
- package/dist/browser/dom-observer.js +109 -0
- package/dist/browser/dom-observer.js.map +1 -0
- package/dist/browser/editor/editor-api.d.ts +67 -0
- package/dist/browser/editor/editor-api.d.ts.map +1 -0
- package/dist/browser/editor/editor-api.js +233 -0
- package/dist/browser/editor/editor-api.js.map +1 -0
- package/dist/browser/editor/editor-init.d.ts +11 -0
- package/dist/browser/editor/editor-init.d.ts.map +1 -0
- package/dist/browser/editor/editor-init.js +181 -0
- package/dist/browser/editor/editor-init.js.map +1 -0
- package/dist/browser/editor/editor-styles.d.ts +6 -0
- package/dist/browser/editor/editor-styles.d.ts.map +1 -0
- package/dist/browser/editor/editor-styles.js +419 -0
- package/dist/browser/editor/editor-styles.js.map +1 -0
- package/dist/browser/editor/inspector.d.ts +22 -0
- package/dist/browser/editor/inspector.d.ts.map +1 -0
- package/dist/browser/editor/inspector.js +125 -0
- package/dist/browser/editor/inspector.js.map +1 -0
- package/dist/browser/editor/key-resolver.d.ts +19 -0
- package/dist/browser/editor/key-resolver.d.ts.map +1 -0
- package/dist/browser/editor/key-resolver.js +49 -0
- package/dist/browser/editor/key-resolver.js.map +1 -0
- package/dist/browser/editor/live-preview.d.ts +10 -0
- package/dist/browser/editor/live-preview.d.ts.map +1 -0
- package/dist/browser/editor/live-preview.js +57 -0
- package/dist/browser/editor/live-preview.js.map +1 -0
- package/dist/browser/editor/sidebar.d.ts +50 -0
- package/dist/browser/editor/sidebar.d.ts.map +1 -0
- package/dist/browser/editor/sidebar.js +353 -0
- package/dist/browser/editor/sidebar.js.map +1 -0
- package/dist/browser/editor/toolbar.d.ts +29 -0
- package/dist/browser/editor/toolbar.d.ts.map +1 -0
- package/dist/browser/editor/toolbar.js +131 -0
- package/dist/browser/editor/toolbar.js.map +1 -0
- package/dist/browser/exclude-filter.d.ts +21 -0
- package/dist/browser/exclude-filter.d.ts.map +1 -0
- package/dist/browser/exclude-filter.js +51 -0
- package/dist/browser/exclude-filter.js.map +1 -0
- package/dist/browser/index.d.ts +32 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +28 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/language-switcher.d.ts +70 -0
- package/dist/browser/language-switcher.d.ts.map +1 -0
- package/dist/browser/language-switcher.js +339 -0
- package/dist/browser/language-switcher.js.map +1 -0
- package/dist/browser/lionrapid.auto.dev.js +5757 -0
- package/dist/browser/lionrapid.auto.dev.js.map +7 -0
- package/dist/browser/lionrapid.auto.js +5757 -0
- package/dist/browser/lionrapid.auto.js.map +7 -0
- package/dist/browser/lionrapid.auto.min.js +80 -0
- package/dist/browser/lionrapid.auto.min.js.map +7 -0
- package/dist/browser/lionrapid.editor.js +1869 -0
- package/dist/browser/lionrapid.editor.js.map +7 -0
- package/dist/browser/lionrapid.editor.min.js +415 -0
- package/dist/browser/lionrapid.editor.min.js.map +7 -0
- package/dist/browser/lionrapid.esm.js +4786 -0
- package/dist/browser/lionrapid.esm.js.map +7 -0
- package/dist/browser/lionrapid.esm.min.js +3 -0
- package/dist/browser/lionrapid.esm.min.js.map +7 -0
- package/dist/browser/lionrapid.iife.dev.js +4809 -0
- package/dist/browser/lionrapid.iife.dev.js.map +7 -0
- package/dist/browser/lionrapid.iife.js +4809 -0
- package/dist/browser/lionrapid.iife.js.map +7 -0
- package/dist/browser/lionrapid.iife.min.js +3 -0
- package/dist/browser/lionrapid.iife.min.js.map +7 -0
- package/dist/browser/lionrapid.umd.js +4822 -0
- package/dist/browser/lionrapid.umd.js.map +7 -0
- package/dist/browser/lionrapid.umd.min.js +18 -0
- package/dist/browser/lionrapid.umd.min.js.map +7 -0
- package/dist/browser/markup-parser.d.ts +13 -0
- package/dist/browser/markup-parser.d.ts.map +1 -0
- package/dist/browser/markup-parser.js +56 -0
- package/dist/browser/markup-parser.js.map +1 -0
- package/dist/browser/md5.d.ts +16 -0
- package/dist/browser/md5.d.ts.map +1 -0
- package/dist/browser/md5.js +145 -0
- package/dist/browser/md5.js.map +1 -0
- package/dist/browser/storage/cache-storage-repository.d.ts +44 -0
- package/dist/browser/storage/cache-storage-repository.d.ts.map +1 -0
- package/dist/browser/storage/cache-storage-repository.js +186 -0
- package/dist/browser/storage/cache-storage-repository.js.map +1 -0
- package/dist/browser/storage/localstorage-repository.d.ts +51 -0
- package/dist/browser/storage/localstorage-repository.d.ts.map +1 -0
- package/dist/browser/storage/localstorage-repository.js +270 -0
- package/dist/browser/storage/localstorage-repository.js.map +1 -0
- package/dist/builder.d.ts +24 -0
- package/dist/builder.d.ts.map +1 -0
- package/dist/builder.js +169 -0
- package/dist/builder.js.map +1 -0
- package/dist/cache/CacheManager.d.ts +132 -0
- package/dist/cache/CacheManager.d.ts.map +1 -0
- package/dist/cache/CacheManager.js +277 -0
- package/dist/cache/CacheManager.js.map +1 -0
- package/dist/cache/index.d.ts +6 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +5 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +6 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/lionrapid.config.d.ts +12 -0
- package/dist/config/lionrapid.config.d.ts.map +1 -0
- package/dist/config/lionrapid.config.js +2 -0
- package/dist/config/lionrapid.config.js.map +1 -0
- package/dist/config/logger.config.d.ts +19 -0
- package/dist/config/logger.config.d.ts.map +1 -0
- package/dist/config/logger.config.js +9 -0
- package/dist/config/logger.config.js.map +1 -0
- package/dist/config/repository.config.d.ts +87 -0
- package/dist/config/repository.config.d.ts.map +1 -0
- package/dist/config/repository.config.js +5 -0
- package/dist/config/repository.config.js.map +1 -0
- package/dist/content/index.d.ts +20 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +13 -0
- package/dist/content/index.js.map +1 -0
- package/dist/content/parser/IParser.d.ts +33 -0
- package/dist/content/parser/IParser.d.ts.map +1 -0
- package/dist/content/parser/IParser.js +6 -0
- package/dist/content/parser/IParser.js.map +1 -0
- package/dist/content/parser/MarkupParser.d.ts +67 -0
- package/dist/content/parser/MarkupParser.d.ts.map +1 -0
- package/dist/content/parser/MarkupParser.js +231 -0
- package/dist/content/parser/MarkupParser.js.map +1 -0
- package/dist/content/serializer/HTMLSerializer.d.ts +61 -0
- package/dist/content/serializer/HTMLSerializer.d.ts.map +1 -0
- package/dist/content/serializer/HTMLSerializer.js +100 -0
- package/dist/content/serializer/HTMLSerializer.js.map +1 -0
- package/dist/content/serializer/ISerializer.d.ts +33 -0
- package/dist/content/serializer/ISerializer.d.ts.map +1 -0
- package/dist/content/serializer/ISerializer.js +6 -0
- package/dist/content/serializer/ISerializer.js.map +1 -0
- package/dist/content/style-mapper/DefaultStyleMapper.d.ts +59 -0
- package/dist/content/style-mapper/DefaultStyleMapper.d.ts.map +1 -0
- package/dist/content/style-mapper/DefaultStyleMapper.js +128 -0
- package/dist/content/style-mapper/DefaultStyleMapper.js.map +1 -0
- package/dist/content/style-mapper/IStyleMapper.d.ts +50 -0
- package/dist/content/style-mapper/IStyleMapper.d.ts.map +1 -0
- package/dist/content/style-mapper/IStyleMapper.js +6 -0
- package/dist/content/style-mapper/IStyleMapper.js.map +1 -0
- package/dist/content/types.d.ts +39 -0
- package/dist/content/types.d.ts.map +1 -0
- package/dist/content/types.js +6 -0
- package/dist/content/types.js.map +1 -0
- package/dist/content/validator/ContentValidator.d.ts +57 -0
- package/dist/content/validator/ContentValidator.d.ts.map +1 -0
- package/dist/content/validator/ContentValidator.js +215 -0
- package/dist/content/validator/ContentValidator.js.map +1 -0
- package/dist/content/validator/IValidator.d.ts +82 -0
- package/dist/content/validator/IValidator.d.ts.map +1 -0
- package/dist/content/validator/IValidator.js +6 -0
- package/dist/content/validator/IValidator.js.map +1 -0
- package/dist/errors/translation-errors.d.ts +55 -0
- package/dist/errors/translation-errors.d.ts.map +1 -0
- package/dist/errors/translation-errors.js +85 -0
- package/dist/errors/translation-errors.js.map +1 -0
- package/dist/handlers/async-storage-handler.d.ts +77 -0
- package/dist/handlers/async-storage-handler.d.ts.map +1 -0
- package/dist/handlers/async-storage-handler.js +239 -0
- package/dist/handlers/async-storage-handler.js.map +1 -0
- package/dist/handlers/handler-chain.d.ts +79 -0
- package/dist/handlers/handler-chain.d.ts.map +1 -0
- package/dist/handlers/handler-chain.js +366 -0
- package/dist/handlers/handler-chain.js.map +1 -0
- package/dist/handlers/index.d.ts +7 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +7 -0
- package/dist/handlers/index.js.map +1 -0
- package/dist/handlers/network-handler.d.ts +90 -0
- package/dist/handlers/network-handler.d.ts.map +1 -0
- package/dist/handlers/network-handler.js +283 -0
- package/dist/handlers/network-handler.js.map +1 -0
- package/dist/handlers/sync-storage-handler.d.ts +88 -0
- package/dist/handlers/sync-storage-handler.d.ts.map +1 -0
- package/dist/handlers/sync-storage-handler.js +270 -0
- package/dist/handlers/sync-storage-handler.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/emitter.interface.d.ts +33 -0
- package/dist/interfaces/emitter.interface.d.ts.map +1 -0
- package/dist/interfaces/emitter.interface.js +2 -0
- package/dist/interfaces/emitter.interface.js.map +1 -0
- package/dist/interfaces/handler.interface.d.ts +50 -0
- package/dist/interfaces/handler.interface.d.ts.map +1 -0
- package/dist/interfaces/handler.interface.js +5 -0
- package/dist/interfaces/handler.interface.js.map +1 -0
- package/dist/interfaces/index.d.ts +8 -0
- package/dist/interfaces/index.d.ts.map +1 -0
- package/dist/interfaces/index.js +8 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/plugin.interface.d.ts +49 -0
- package/dist/interfaces/plugin.interface.d.ts.map +1 -0
- package/dist/interfaces/plugin.interface.js +6 -0
- package/dist/interfaces/plugin.interface.js.map +1 -0
- package/dist/interfaces/repository.interface.d.ts +56 -0
- package/dist/interfaces/repository.interface.d.ts.map +1 -0
- package/dist/interfaces/repository.interface.js +2 -0
- package/dist/interfaces/repository.interface.js.map +1 -0
- package/dist/lionRapid.d.ts +225 -0
- package/dist/lionRapid.d.ts.map +1 -0
- package/dist/lionRapid.js +596 -0
- package/dist/lionRapid.js.map +1 -0
- package/dist/repositories/index.d.ts +3 -0
- package/dist/repositories/index.d.ts.map +1 -0
- package/dist/repositories/index.js +3 -0
- package/dist/repositories/index.js.map +1 -0
- package/dist/repositories/memory-repository.d.ts +30 -0
- package/dist/repositories/memory-repository.d.ts.map +1 -0
- package/dist/repositories/memory-repository.js +100 -0
- package/dist/repositories/memory-repository.js.map +1 -0
- package/dist/repositories/network-repository.d.ts +138 -0
- package/dist/repositories/network-repository.d.ts.map +1 -0
- package/dist/repositories/network-repository.js +516 -0
- package/dist/repositories/network-repository.js.map +1 -0
- package/dist/sync/missing-translation-queue.d.ts +64 -0
- package/dist/sync/missing-translation-queue.d.ts.map +1 -0
- package/dist/sync/missing-translation-queue.js +184 -0
- package/dist/sync/missing-translation-queue.js.map +1 -0
- package/dist/types/cache.types.d.ts +62 -0
- package/dist/types/cache.types.d.ts.map +1 -0
- package/dist/types/cache.types.js +6 -0
- package/dist/types/cache.types.js.map +1 -0
- package/dist/types/event-payloads.types.d.ts +46 -0
- package/dist/types/event-payloads.types.d.ts.map +1 -0
- package/dist/types/event-payloads.types.js +6 -0
- package/dist/types/event-payloads.types.js.map +1 -0
- package/dist/types/generated.types.d.ts +31 -0
- package/dist/types/generated.types.d.ts.map +1 -0
- package/dist/types/generated.types.js +6 -0
- package/dist/types/generated.types.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/lionRapid.types.d.ts +169 -0
- package/dist/types/lionRapid.types.d.ts.map +1 -0
- package/dist/types/lionRapid.types.js +8 -0
- package/dist/types/lionRapid.types.js.map +1 -0
- package/dist/types/parameters.types.d.ts +36 -0
- package/dist/types/parameters.types.d.ts.map +1 -0
- package/dist/types/parameters.types.js +6 -0
- package/dist/types/parameters.types.js.map +1 -0
- package/dist/types/translation-data.types.d.ts +54 -0
- package/dist/types/translation-data.types.d.ts.map +1 -0
- package/dist/types/translation-data.types.js +6 -0
- package/dist/types/translation-data.types.js.map +1 -0
- package/dist/types/translation.types.d.ts +94 -0
- package/dist/types/translation.types.d.ts.map +1 -0
- package/dist/types/translation.types.js +5 -0
- package/dist/types/translation.types.js.map +1 -0
- package/dist/utils/context-utils.d.ts +23 -0
- package/dist/utils/context-utils.d.ts.map +1 -0
- package/dist/utils/context-utils.js +36 -0
- package/dist/utils/context-utils.js.map +1 -0
- package/dist/utils/index.d.ts +10 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +19 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +229 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +345 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/namespace-utils.d.ts +30 -0
- package/dist/utils/namespace-utils.d.ts.map +1 -0
- package/dist/utils/namespace-utils.js +56 -0
- package/dist/utils/namespace-utils.js.map +1 -0
- package/dist/utils/translation-flow.d.ts +18 -0
- package/dist/utils/translation-flow.d.ts.map +1 -0
- package/dist/utils/translation-flow.js +74 -0
- package/dist/utils/translation-flow.js.map +1 -0
- package/dist/utils/translation-value-utils.d.ts +57 -0
- package/dist/utils/translation-value-utils.d.ts.map +1 -0
- package/dist/utils/translation-value-utils.js +194 -0
- package/dist/utils/translation-value-utils.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Queue for batching and syncing missing translations to the backend
|
|
3
|
+
* Uses debouncing (500ms default) and batching (50 items default)
|
|
4
|
+
*/
|
|
5
|
+
import { logger } from '../utils/logger.js';
|
|
6
|
+
const COOLDOWN_MS = 60_000; // 60s cooldown before re-syncing same key
|
|
7
|
+
export class MissingTranslationQueue {
|
|
8
|
+
queue = new Map();
|
|
9
|
+
debounceTimer = null;
|
|
10
|
+
repository;
|
|
11
|
+
config;
|
|
12
|
+
eventEmitter;
|
|
13
|
+
recentlySynced = new Map();
|
|
14
|
+
constructor(repository, config, eventEmitter) {
|
|
15
|
+
this.repository = repository;
|
|
16
|
+
this.config = config;
|
|
17
|
+
this.eventEmitter = eventEmitter ?? null;
|
|
18
|
+
if (!config.enabled) {
|
|
19
|
+
logger.debug('MissingTranslationQueue is disabled');
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
logger.debug(`MissingTranslationQueue: debounce=${config.debounceMs}ms, batchSize=${config.batchSize}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Add a missing translation to the queue
|
|
27
|
+
* Triggers debounce timer or immediate flush if batch size reached
|
|
28
|
+
*/
|
|
29
|
+
add(item) {
|
|
30
|
+
if (!this.config.enabled)
|
|
31
|
+
return;
|
|
32
|
+
// Use individual cache key format: locale:namespace:key
|
|
33
|
+
const cacheKey = `${item.locale}:${item.namespace}:${item.key}`;
|
|
34
|
+
// Skip keys synced within cooldown period (prevents re-sync loops)
|
|
35
|
+
const syncedAt = this.recentlySynced.get(cacheKey);
|
|
36
|
+
if (syncedAt && Date.now() - syncedAt < COOLDOWN_MS) {
|
|
37
|
+
logger.debug(`Skipping recently synced key: ${cacheKey}`);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
// Add to queue (overwrites if already exists)
|
|
41
|
+
this.queue.set(cacheKey, item);
|
|
42
|
+
logger.debug(`Missing translation queued: ${cacheKey} (queue size: ${this.queue.size})`);
|
|
43
|
+
// Clear existing timer
|
|
44
|
+
if (this.debounceTimer) {
|
|
45
|
+
clearTimeout(this.debounceTimer);
|
|
46
|
+
this.debounceTimer = null;
|
|
47
|
+
}
|
|
48
|
+
// Check if batch size limit reached
|
|
49
|
+
if (this.queue.size >= this.config.batchSize) {
|
|
50
|
+
logger.debug(`Batch size reached (${this.config.batchSize}), flushing`);
|
|
51
|
+
this.flush();
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
// Start new debounce timer
|
|
55
|
+
this.debounceTimer = setTimeout(() => {
|
|
56
|
+
this.flush();
|
|
57
|
+
}, this.config.debounceMs);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Flush the queue - send all queued items to the backend
|
|
61
|
+
* Fire-and-forget pattern (async but not awaited)
|
|
62
|
+
*/
|
|
63
|
+
flush() {
|
|
64
|
+
if (this.queue.size === 0)
|
|
65
|
+
return;
|
|
66
|
+
// Clean up expired cooldown entries
|
|
67
|
+
const now = Date.now();
|
|
68
|
+
for (const [key, ts] of this.recentlySynced) {
|
|
69
|
+
if (now - ts >= COOLDOWN_MS)
|
|
70
|
+
this.recentlySynced.delete(key);
|
|
71
|
+
}
|
|
72
|
+
// Convert queue to array, preserving styles
|
|
73
|
+
const batch = Array.from(this.queue.entries()).map(([cacheKey, item]) => ({
|
|
74
|
+
key: cacheKey,
|
|
75
|
+
value: item.fallbackValue,
|
|
76
|
+
styles: item.styles,
|
|
77
|
+
}));
|
|
78
|
+
const batchSize = batch.length;
|
|
79
|
+
// Clear queue
|
|
80
|
+
this.queue.clear();
|
|
81
|
+
// Clear timer
|
|
82
|
+
if (this.debounceTimer) {
|
|
83
|
+
clearTimeout(this.debounceTimer);
|
|
84
|
+
this.debounceTimer = null;
|
|
85
|
+
}
|
|
86
|
+
logger.debug(`Flushing ${batchSize} missing translations`);
|
|
87
|
+
// Fire-and-forget sync (no await)
|
|
88
|
+
this.syncBatch(batch).catch(error => {
|
|
89
|
+
logger.warn(`Failed to sync ${batchSize} missing translations:`, error);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Send batch to backend via repository
|
|
94
|
+
* Uses repository's retry logic from makeRequest()
|
|
95
|
+
*/
|
|
96
|
+
async syncBatch(batch) {
|
|
97
|
+
try {
|
|
98
|
+
// Use setBatchContentUnits when any item has styles
|
|
99
|
+
const hasStyles = batch.some(item => item.styles && Object.keys(item.styles).length > 0);
|
|
100
|
+
if (hasStyles && 'setBatchContentUnits' in this.repository) {
|
|
101
|
+
const contentUnitBatch = batch.map(item => ({
|
|
102
|
+
key: item.key,
|
|
103
|
+
value: { text: item.value, styles: item.styles ?? {} },
|
|
104
|
+
}));
|
|
105
|
+
await this.repository.setBatchContentUnits(contentUnitBatch);
|
|
106
|
+
logger.debug(`Synced ${batch.length} missing translations (ContentUnit)`);
|
|
107
|
+
}
|
|
108
|
+
else if ('setBatch' in this.repository) {
|
|
109
|
+
// Plain string batch (no styles)
|
|
110
|
+
const plainBatch = batch.map(item => ({ key: item.key, value: item.value }));
|
|
111
|
+
await this.repository.setBatch(plainBatch);
|
|
112
|
+
logger.debug(`Synced ${batch.length} missing translations`);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
// Fallback: sync individually (parallel)
|
|
116
|
+
logger.warn('Repository does not support setBatch, syncing individually');
|
|
117
|
+
await this.syncIndividually(batch);
|
|
118
|
+
}
|
|
119
|
+
// Record synced keys for cooldown
|
|
120
|
+
const now = Date.now();
|
|
121
|
+
const syncedKeys = [];
|
|
122
|
+
for (const item of batch) {
|
|
123
|
+
this.recentlySynced.set(item.key, now);
|
|
124
|
+
syncedKeys.push(item.key);
|
|
125
|
+
}
|
|
126
|
+
// Emit sync:batch:complete event
|
|
127
|
+
if (this.eventEmitter) {
|
|
128
|
+
this.eventEmitter.emit('sync:batch:complete', {
|
|
129
|
+
payload: { count: batch.length, keys: syncedKeys },
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
logger.error('Batch sync failed:', error);
|
|
135
|
+
throw error;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Fallback: sync items individually in parallel
|
|
140
|
+
*/
|
|
141
|
+
async syncIndividually(batch) {
|
|
142
|
+
const syncPromises = batch.map(async (item) => {
|
|
143
|
+
try {
|
|
144
|
+
await this.repository.set(item.key, item.value);
|
|
145
|
+
logger.debug(`Synced: ${item.key}`);
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
logger.warn(`Failed to sync ${item.key}:`, error);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
await Promise.allSettled(syncPromises);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Get current queue size (for debugging)
|
|
155
|
+
*/
|
|
156
|
+
getQueueSize() {
|
|
157
|
+
return this.queue.size;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Get queue stats (for debugging)
|
|
161
|
+
*/
|
|
162
|
+
getStats() {
|
|
163
|
+
return {
|
|
164
|
+
queueSize: this.queue.size,
|
|
165
|
+
enabled: this.config.enabled,
|
|
166
|
+
debounceMs: this.config.debounceMs,
|
|
167
|
+
batchSize: this.config.batchSize,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Cleanup - clear timer and queue
|
|
172
|
+
*/
|
|
173
|
+
destroy() {
|
|
174
|
+
if (this.debounceTimer) {
|
|
175
|
+
clearTimeout(this.debounceTimer);
|
|
176
|
+
this.debounceTimer = null;
|
|
177
|
+
}
|
|
178
|
+
// Discard to avoid blocking during shutdown
|
|
179
|
+
this.queue.clear();
|
|
180
|
+
this.recentlySynced.clear();
|
|
181
|
+
logger.debug('MissingTranslationQueue destroyed');
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=missing-translation-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"missing-translation-queue.js","sourceRoot":"","sources":["../../src/sync/missing-translation-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache and statistics type definitions
|
|
3
|
+
* filepath: /home/janrau/tm-integration/packages/core/src/types/cache.types.ts
|
|
4
|
+
*/
|
|
5
|
+
import type { TranslationData } from './translation-data.types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Interface for cache statistics
|
|
8
|
+
* Used by cache debugging and monitoring methods
|
|
9
|
+
*/
|
|
10
|
+
export interface CacheStats {
|
|
11
|
+
totalEntries: number;
|
|
12
|
+
hitRate: number;
|
|
13
|
+
missRate: number;
|
|
14
|
+
lastAccessed?: Date;
|
|
15
|
+
memoryUsage?: number;
|
|
16
|
+
averageAccessTime?: number;
|
|
17
|
+
oldestEntry?: Date;
|
|
18
|
+
newestEntry?: Date;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Interface for individual cache entries
|
|
22
|
+
* Contains the cached data plus metadata
|
|
23
|
+
*/
|
|
24
|
+
export interface CacheEntry {
|
|
25
|
+
value: TranslationData;
|
|
26
|
+
timestamp: number;
|
|
27
|
+
accessCount: number;
|
|
28
|
+
ttl?: number;
|
|
29
|
+
size?: number;
|
|
30
|
+
locale: string;
|
|
31
|
+
namespace: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Type for complete cache entries collection
|
|
35
|
+
* Maps cache keys to their entries
|
|
36
|
+
*/
|
|
37
|
+
export type CacheEntries = Record<string, CacheEntry>;
|
|
38
|
+
/**
|
|
39
|
+
* Interface for handler chain information
|
|
40
|
+
* Used for debugging and monitoring the handler chain
|
|
41
|
+
*/
|
|
42
|
+
export interface HandlerChainInfo {
|
|
43
|
+
handlers: HandlerInfo[];
|
|
44
|
+
totalHandlers: number;
|
|
45
|
+
activeHandlers: number;
|
|
46
|
+
lastExecution?: Date;
|
|
47
|
+
averageExecutionTime?: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Interface for individual handler information
|
|
51
|
+
* Contains metadata about a specific handler
|
|
52
|
+
*/
|
|
53
|
+
export interface HandlerInfo {
|
|
54
|
+
name: string;
|
|
55
|
+
type: 'sync' | 'async' | 'network';
|
|
56
|
+
enabled: boolean;
|
|
57
|
+
executionCount: number;
|
|
58
|
+
averageExecutionTime?: number;
|
|
59
|
+
lastExecution?: Date;
|
|
60
|
+
errorCount?: number;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=cache.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.types.d.ts","sourceRoot":"","sources":["../../src/types/cache.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.types.js","sourceRoot":"","sources":["../../src/types/cache.types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event payload type definitions
|
|
3
|
+
* filepath: /home/janrau/tm-integration/packages/core/src/types/event-payloads.types.ts
|
|
4
|
+
*/
|
|
5
|
+
import type { TranslationData } from './translation-data.types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Base interface for handler event data
|
|
8
|
+
* Contains common fields present in all handler events
|
|
9
|
+
*/
|
|
10
|
+
export interface HandlerEventData {
|
|
11
|
+
handlerName: string;
|
|
12
|
+
locale?: string;
|
|
13
|
+
namespace?: string;
|
|
14
|
+
key?: string;
|
|
15
|
+
timestamp: number;
|
|
16
|
+
requestId?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Payload for handler:before events
|
|
20
|
+
* Fired before a handler processes a request
|
|
21
|
+
*/
|
|
22
|
+
export interface HandlerBeforePayload extends HandlerEventData {
|
|
23
|
+
data: TranslationData | null;
|
|
24
|
+
operation: 'get' | 'set' | 'preload';
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Payload for handler:after events
|
|
28
|
+
* Fired after a handler completes processing
|
|
29
|
+
*/
|
|
30
|
+
export interface HandlerAfterPayload extends HandlerEventData {
|
|
31
|
+
result: TranslationData | null;
|
|
32
|
+
success: boolean;
|
|
33
|
+
errorMessage?: string;
|
|
34
|
+
duration?: number;
|
|
35
|
+
operation: 'get' | 'set' | 'preload';
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Payload for language change events
|
|
39
|
+
* Used by plugins to track locale transitions
|
|
40
|
+
*/
|
|
41
|
+
/**
|
|
42
|
+
* Generic event payload type
|
|
43
|
+
* Can be extended for custom event types
|
|
44
|
+
*/
|
|
45
|
+
export type GenericEventPayload = Record<string, unknown>;
|
|
46
|
+
//# sourceMappingURL=event-payloads.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-payloads.types.d.ts","sourceRoot":"","sources":["../../src/types/event-payloads.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;CACtC;AAED;;;GAGG;AAEH;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-payloads.types.js","sourceRoot":"","sources":["../../src/types/event-payloads.types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LionRapid Type System - Clean Implementation
|
|
3
|
+
* Only includes types that are actually used in the current implementation
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Core interface that gets augmented by generated type files
|
|
7
|
+
* When no types are generated, this remains empty and type checking is minimal
|
|
8
|
+
* When types are generated, this interface gets populated via module augmentation
|
|
9
|
+
*
|
|
10
|
+
* Example:
|
|
11
|
+
* declare module '@lionrapid/core' {
|
|
12
|
+
* interface TranslationKeys {
|
|
13
|
+
* 'app.title': Record<string, never>; // Zero-parameter key
|
|
14
|
+
* 'welcome': { name: string }; // Required-parameter key
|
|
15
|
+
* 'items.count': { count: number }; // ICU number type
|
|
16
|
+
* }
|
|
17
|
+
* }
|
|
18
|
+
*/
|
|
19
|
+
export interface TranslationKeys {
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Union Type Helpers for Strict Type Safety
|
|
23
|
+
* These types split TranslationKeys into two categories for the ts() method
|
|
24
|
+
*/
|
|
25
|
+
export type ZeroParamKeys<T = TranslationKeys> = {
|
|
26
|
+
[K in keyof T]: T[K] extends Record<string, never> ? K : never;
|
|
27
|
+
}[keyof T];
|
|
28
|
+
export type RequiredParamKeys<T = TranslationKeys> = {
|
|
29
|
+
[K in keyof T]: T[K] extends Record<string, never> ? never : K;
|
|
30
|
+
}[keyof T];
|
|
31
|
+
//# sourceMappingURL=generated.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated.types.d.ts","sourceRoot":"","sources":["../../src/types/generated.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,eAAe;CAE/B;AAED;;;GAGG;AAGH,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,eAAe,IAAI;KAC9C,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK;CAC/D,CAAC,MAAM,CAAC,CAAC,CAAC;AAGX,MAAM,MAAM,iBAAiB,CAAC,CAAC,GAAG,eAAe,IAAI;KAClD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC;CAC/D,CAAC,MAAM,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generated.types.js","sourceRoot":"","sources":["../../src/types/generated.types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Use domain:action[:phase].
|
|
3
|
+
Phases: start, success, miss, error, end.
|
|
4
|
+
Always include a traceId and timestamp in payloads so plugins can correlate events.
|
|
5
|
+
Always include context: lng, ns, key when relevant, and handler when the event is handler-specific.
|
|
6
|
+
*/
|
|
7
|
+
import type { InvalidateOptions } from '../cache/CacheManager.js';
|
|
8
|
+
import type { TranslationData } from './translation-data.types.js';
|
|
9
|
+
import type { TranslationRequest } from './translation.types.js';
|
|
10
|
+
export interface LionRapidContext {
|
|
11
|
+
requestId: string;
|
|
12
|
+
timestamp: number;
|
|
13
|
+
trace: string[];
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
}
|
|
16
|
+
interface CoreEventPayloads {
|
|
17
|
+
'builder:use': {
|
|
18
|
+
type: 'plugin' | 'sync' | 'async' | 'network';
|
|
19
|
+
};
|
|
20
|
+
'builder:build:start': {
|
|
21
|
+
locale: string;
|
|
22
|
+
namespace: string;
|
|
23
|
+
};
|
|
24
|
+
'builder:build:done': {
|
|
25
|
+
repositories: string[];
|
|
26
|
+
plugins: string[];
|
|
27
|
+
};
|
|
28
|
+
'cache:invalidate': {
|
|
29
|
+
filter: InvalidateOptions;
|
|
30
|
+
keysCleared: number;
|
|
31
|
+
refetch: boolean;
|
|
32
|
+
};
|
|
33
|
+
'cache:set': {
|
|
34
|
+
key: string;
|
|
35
|
+
value: string;
|
|
36
|
+
styles?: Record<string, string[]>;
|
|
37
|
+
optimistic: boolean;
|
|
38
|
+
};
|
|
39
|
+
'cache:rollback': {
|
|
40
|
+
key: string;
|
|
41
|
+
reason: string;
|
|
42
|
+
};
|
|
43
|
+
'translation:request': {
|
|
44
|
+
key: string;
|
|
45
|
+
request?: TranslationRequest;
|
|
46
|
+
};
|
|
47
|
+
'translation:success': {
|
|
48
|
+
key: string;
|
|
49
|
+
value: string;
|
|
50
|
+
};
|
|
51
|
+
'translation:fallback': {
|
|
52
|
+
key: string;
|
|
53
|
+
value: string;
|
|
54
|
+
};
|
|
55
|
+
'translation:missing': {
|
|
56
|
+
key: string;
|
|
57
|
+
fallbackValue: string;
|
|
58
|
+
locale: string;
|
|
59
|
+
namespace: string;
|
|
60
|
+
};
|
|
61
|
+
'translation:not-found': {
|
|
62
|
+
key: string;
|
|
63
|
+
fallbackValue: string;
|
|
64
|
+
locale: string;
|
|
65
|
+
namespace: string;
|
|
66
|
+
status: 404;
|
|
67
|
+
styles?: Record<string, string[]>;
|
|
68
|
+
};
|
|
69
|
+
'translation:locked': {
|
|
70
|
+
key: string;
|
|
71
|
+
fallbackValue: string;
|
|
72
|
+
locale: string;
|
|
73
|
+
namespace: string;
|
|
74
|
+
status: 423;
|
|
75
|
+
};
|
|
76
|
+
'repo:get:start': {
|
|
77
|
+
key: string;
|
|
78
|
+
source: string;
|
|
79
|
+
};
|
|
80
|
+
'repo:get:success': {
|
|
81
|
+
key: string;
|
|
82
|
+
value: string;
|
|
83
|
+
source: string;
|
|
84
|
+
};
|
|
85
|
+
'repo:get:miss': {
|
|
86
|
+
key: string;
|
|
87
|
+
source: string;
|
|
88
|
+
};
|
|
89
|
+
'repo:set:start': {
|
|
90
|
+
key: string;
|
|
91
|
+
value: string;
|
|
92
|
+
source: string;
|
|
93
|
+
};
|
|
94
|
+
'repo:set:success': {
|
|
95
|
+
key: string;
|
|
96
|
+
value: string;
|
|
97
|
+
source: string;
|
|
98
|
+
};
|
|
99
|
+
'repo:error': {
|
|
100
|
+
key: string;
|
|
101
|
+
source: string;
|
|
102
|
+
error: Error;
|
|
103
|
+
};
|
|
104
|
+
'network:request:start': {
|
|
105
|
+
key: string;
|
|
106
|
+
};
|
|
107
|
+
'network:request:success': {
|
|
108
|
+
key: string;
|
|
109
|
+
value: string;
|
|
110
|
+
method: string;
|
|
111
|
+
};
|
|
112
|
+
'network:request:error': {
|
|
113
|
+
key: string;
|
|
114
|
+
method: string;
|
|
115
|
+
error: unknown;
|
|
116
|
+
status?: number;
|
|
117
|
+
};
|
|
118
|
+
'network:retry': {
|
|
119
|
+
key: string;
|
|
120
|
+
attempt: number;
|
|
121
|
+
delayMs: number;
|
|
122
|
+
reason?: string;
|
|
123
|
+
};
|
|
124
|
+
'language:change:start': {
|
|
125
|
+
oldLocale: string;
|
|
126
|
+
newLocale: string;
|
|
127
|
+
};
|
|
128
|
+
'language:change:success': {
|
|
129
|
+
oldLocale: string;
|
|
130
|
+
newLocale: string;
|
|
131
|
+
};
|
|
132
|
+
'language:change:error': {
|
|
133
|
+
oldLocale: string;
|
|
134
|
+
newLocale: string;
|
|
135
|
+
error: Error;
|
|
136
|
+
};
|
|
137
|
+
'handler:before': {
|
|
138
|
+
handlerName: string;
|
|
139
|
+
data: TranslationData | null;
|
|
140
|
+
};
|
|
141
|
+
'handler:after': {
|
|
142
|
+
handlerName: string;
|
|
143
|
+
result: TranslationData | null;
|
|
144
|
+
success: boolean;
|
|
145
|
+
};
|
|
146
|
+
'sync:batch:complete': {
|
|
147
|
+
count: number;
|
|
148
|
+
keys: string[];
|
|
149
|
+
};
|
|
150
|
+
'system:init': {
|
|
151
|
+
version: string;
|
|
152
|
+
};
|
|
153
|
+
'system:shutdown': {
|
|
154
|
+
reason?: string;
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
export type LionRapidEventPayloads = CoreEventPayloads & Record<string, unknown>;
|
|
158
|
+
export interface LionRapidEventEnvelope<T extends Record<string, unknown> = LionRapidEventPayloads, E extends keyof T = keyof T> {
|
|
159
|
+
context?: LionRapidContext;
|
|
160
|
+
payload: T[E];
|
|
161
|
+
}
|
|
162
|
+
export interface LanguageChangePayload {
|
|
163
|
+
oldLocale: string;
|
|
164
|
+
newLocale: string;
|
|
165
|
+
timestamp: number;
|
|
166
|
+
reason?: 'user' | 'auto' | 'fallback';
|
|
167
|
+
}
|
|
168
|
+
export {};
|
|
169
|
+
//# sourceMappingURL=lionRapid.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lionRapid.types.d.ts","sourceRoot":"","sources":["../../src/types/lionRapid.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Use domain:action[:phase].
|
|
3
|
+
Phases: start, success, miss, error, end.
|
|
4
|
+
Always include a traceId and timestamp in payloads so plugins can correlate events.
|
|
5
|
+
Always include context: lng, ns, key when relevant, and handler when the event is handler-specific.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=lionRapid.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lionRapid.types.js","sourceRoot":"","sources":["../../src/types/lionRapid.types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parameter type definitions for formatters and processors
|
|
3
|
+
* filepath: /home/janrau/tm-integration/packages/core/src/types/parameters.types.ts
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Type-safe parameter union for formatter functions
|
|
7
|
+
* Covers all known parameter patterns used by formatters
|
|
8
|
+
*/
|
|
9
|
+
export type FormatterParams = {
|
|
10
|
+
count?: number;
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
} | {
|
|
13
|
+
context?: string;
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
} | {
|
|
16
|
+
currency?: string;
|
|
17
|
+
style?: string;
|
|
18
|
+
[key: string]: unknown;
|
|
19
|
+
} | {
|
|
20
|
+
style?: string;
|
|
21
|
+
[key: string]: unknown;
|
|
22
|
+
} | {
|
|
23
|
+
type?: 'and' | 'or';
|
|
24
|
+
[key: string]: unknown;
|
|
25
|
+
} | Record<string, unknown>;
|
|
26
|
+
/**
|
|
27
|
+
* Type-safe parameter type for value processors
|
|
28
|
+
* Processors typically work with generic key-value pairs
|
|
29
|
+
*/
|
|
30
|
+
export type ProcessorParams = Record<string, unknown>;
|
|
31
|
+
/**
|
|
32
|
+
* Generic parameter type for translation functions
|
|
33
|
+
* Used in the main t() function signature
|
|
34
|
+
*/
|
|
35
|
+
export type TranslationParams = Record<string, unknown>;
|
|
36
|
+
//# sourceMappingURL=parameters.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameters.types.d.ts","sourceRoot":"","sources":["../../src/types/parameters.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAC1C;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAC5C;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAC7D;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAC1C;IAAE,IAAI,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAC/C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameters.types.js","sourceRoot":"","sources":["../../src/types/parameters.types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|