@digitaldefiance/i18n-lib 4.2.20 → 4.3.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 +222 -0
- package/package.json +1 -1
- package/src/builders/i18n-builder.d.ts +13 -0
- package/src/builders/i18n-builder.d.ts.map +1 -1
- package/src/builders/i18n-builder.js +24 -1
- package/src/builders/i18n-builder.js.map +1 -1
- package/src/core/i18n-engine.d.ts +167 -0
- package/src/core/i18n-engine.d.ts.map +1 -1
- package/src/core/i18n-engine.js +185 -0
- package/src/core/i18n-engine.js.map +1 -1
- package/src/core/index.d.ts +2 -0
- package/src/core/index.d.ts.map +1 -1
- package/src/core/index.js +3 -1
- package/src/core/index.js.map +1 -1
- package/src/core/string-key-enum-registry.d.ts +238 -0
- package/src/core/string-key-enum-registry.d.ts.map +1 -0
- package/src/core/string-key-enum-registry.js +289 -0
- package/src/core/string-key-enum-registry.js.map +1 -0
- package/src/errors/i18n-error.d.ts +15 -0
- package/src/errors/i18n-error.d.ts.map +1 -1
- package/src/errors/i18n-error.js +19 -0
- package/src/errors/i18n-error.js.map +1 -1
- package/src/interfaces/i18n-engine.interface.d.ts +28 -0
- package/src/interfaces/i18n-engine.interface.d.ts.map +1 -1
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* String Key Enum Registry for managing branded string key enum registrations
|
|
4
|
+
*
|
|
5
|
+
* This module provides the `StringKeyEnumRegistry` class for managing registrations
|
|
6
|
+
* of branded string key enums created with `createI18nStringKeys`. It enables
|
|
7
|
+
* automatic resolution of component IDs from string key values, eliminating the
|
|
8
|
+
* need for per-component wrapper functions.
|
|
9
|
+
*
|
|
10
|
+
* ## Overview
|
|
11
|
+
*
|
|
12
|
+
* The `StringKeyEnumRegistry` is an internal registry that:
|
|
13
|
+
* - Stores references to branded string key enums with their component IDs
|
|
14
|
+
* - Resolves string key values to their owning component IDs
|
|
15
|
+
* - Supports idempotent registration (same enum can be registered multiple times)
|
|
16
|
+
*
|
|
17
|
+
* ## Key Features
|
|
18
|
+
*
|
|
19
|
+
* - **Component ID Extraction**: Automatically extracts component IDs from branded enums
|
|
20
|
+
* - **Key Resolution**: Uses branded-enum's `findEnumSources` for efficient key lookup
|
|
21
|
+
* - **Idempotent Registration**: Re-registering the same enum is a no-op
|
|
22
|
+
* - **Safe Resolution**: Provides both throwing and non-throwing resolution methods
|
|
23
|
+
*
|
|
24
|
+
* @example Basic usage
|
|
25
|
+
* ```typescript
|
|
26
|
+
* import { createI18nStringKeys } from '../branded-string-key';
|
|
27
|
+
*
|
|
28
|
+
* const UserKeys = createI18nStringKeys('user', {
|
|
29
|
+
* Welcome: 'user.welcome',
|
|
30
|
+
* Goodbye: 'user.goodbye',
|
|
31
|
+
* } as const);
|
|
32
|
+
*
|
|
33
|
+
* const registry = new StringKeyEnumRegistry();
|
|
34
|
+
* registry.register(UserKeys); // Returns 'user'
|
|
35
|
+
*
|
|
36
|
+
* registry.has(UserKeys); // true
|
|
37
|
+
* registry.resolveComponentId('user.welcome'); // 'user'
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @module core/string-key-enum-registry
|
|
41
|
+
* @see {@link I18nEngine} - Main engine that uses this registry
|
|
42
|
+
* @see {@link createI18nStringKeys} - Factory for creating branded string key enums
|
|
43
|
+
*/
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.StringKeyEnumRegistry = void 0;
|
|
46
|
+
const branded_enum_1 = require("@digitaldefiance/branded-enum");
|
|
47
|
+
const branded_enum_utils_1 = require("../branded-enum-utils");
|
|
48
|
+
const i18n_error_1 = require("../errors/i18n-error");
|
|
49
|
+
/**
|
|
50
|
+
* Registry for managing branded string key enum registrations.
|
|
51
|
+
*
|
|
52
|
+
* Provides centralized management of branded string key enums, enabling
|
|
53
|
+
* automatic component ID resolution from string key values. This eliminates
|
|
54
|
+
* the need for per-component wrapper functions when translating string keys.
|
|
55
|
+
*
|
|
56
|
+
* ## Registration
|
|
57
|
+
*
|
|
58
|
+
* Use {@link register} to add a branded string key enum. The component ID
|
|
59
|
+
* is automatically extracted from the enum's brand metadata.
|
|
60
|
+
*
|
|
61
|
+
* ## Resolution
|
|
62
|
+
*
|
|
63
|
+
* Use {@link resolveComponentId} or {@link safeResolveComponentId} to find
|
|
64
|
+
* which component owns a given string key value.
|
|
65
|
+
*
|
|
66
|
+
* ## Idempotence
|
|
67
|
+
*
|
|
68
|
+
* Registering the same enum multiple times is safe and returns the same
|
|
69
|
+
* component ID. The registry maintains exactly one entry per enum object.
|
|
70
|
+
*
|
|
71
|
+
* @example Complete workflow
|
|
72
|
+
* ```typescript
|
|
73
|
+
* const registry = new StringKeyEnumRegistry();
|
|
74
|
+
*
|
|
75
|
+
* // Register enums
|
|
76
|
+
* const userId = registry.register(UserKeys); // 'user'
|
|
77
|
+
* const adminId = registry.register(AdminKeys); // 'admin'
|
|
78
|
+
*
|
|
79
|
+
* // Check registration
|
|
80
|
+
* registry.has(UserKeys); // true
|
|
81
|
+
* registry.has(OtherEnum); // false
|
|
82
|
+
*
|
|
83
|
+
* // Resolve component IDs
|
|
84
|
+
* registry.resolveComponentId('user.welcome'); // 'user'
|
|
85
|
+
* registry.safeResolveComponentId('unknown.key'); // null
|
|
86
|
+
*
|
|
87
|
+
* // Get all registrations
|
|
88
|
+
* registry.getAll(); // [{ enumObj: UserKeys, componentId: 'user' }, ...]
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
class StringKeyEnumRegistry {
|
|
92
|
+
/**
|
|
93
|
+
* Map of registered branded enums to their component IDs.
|
|
94
|
+
* Uses the enum object reference as the key for object identity comparison.
|
|
95
|
+
*/
|
|
96
|
+
registeredEnums = new Map();
|
|
97
|
+
/**
|
|
98
|
+
* Reverse lookup map from component ID to enum object.
|
|
99
|
+
* Used for efficient component ID-based lookups.
|
|
100
|
+
*/
|
|
101
|
+
componentIdToEnum = new Map();
|
|
102
|
+
/**
|
|
103
|
+
* Registers a branded string key enum.
|
|
104
|
+
*
|
|
105
|
+
* Extracts the component ID from the branded enum's metadata and stores
|
|
106
|
+
* a reference to the enum for later lookup. If the enum is already
|
|
107
|
+
* registered, returns the existing component ID without re-registering.
|
|
108
|
+
*
|
|
109
|
+
* ## Idempotence
|
|
110
|
+
*
|
|
111
|
+
* Registering the same enum multiple times is safe:
|
|
112
|
+
* - Same enum object: Returns existing component ID (no-op)
|
|
113
|
+
* - Different enum with same component ID: Skips re-registration
|
|
114
|
+
*
|
|
115
|
+
* ## Validation
|
|
116
|
+
*
|
|
117
|
+
* The method validates that the provided object is a branded enum
|
|
118
|
+
* created with `createI18nStringKeys` or `createBrandedEnum`.
|
|
119
|
+
*
|
|
120
|
+
* @param enumObj - The branded enum created by createI18nStringKeys
|
|
121
|
+
* @returns The extracted component ID
|
|
122
|
+
* @throws {I18nError} If not a valid branded enum (INVALID_STRING_KEY_ENUM)
|
|
123
|
+
*
|
|
124
|
+
* @example Basic registration
|
|
125
|
+
* ```typescript
|
|
126
|
+
* const UserKeys = createI18nStringKeys('user', { Welcome: 'user.welcome' });
|
|
127
|
+
* const componentId = registry.register(UserKeys);
|
|
128
|
+
* console.log(componentId); // 'user'
|
|
129
|
+
* ```
|
|
130
|
+
*
|
|
131
|
+
* @example Idempotent registration
|
|
132
|
+
* ```typescript
|
|
133
|
+
* registry.register(UserKeys); // 'user'
|
|
134
|
+
* registry.register(UserKeys); // 'user' (same result, no duplicate entry)
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
register(enumObj) {
|
|
138
|
+
// Check if already registered (idempotent)
|
|
139
|
+
const existingId = this.registeredEnums.get(enumObj);
|
|
140
|
+
if (existingId !== undefined) {
|
|
141
|
+
return existingId;
|
|
142
|
+
}
|
|
143
|
+
// Validate that it's a branded enum
|
|
144
|
+
if (!(0, branded_enum_utils_1.isBrandedEnum)(enumObj)) {
|
|
145
|
+
throw i18n_error_1.I18nError.invalidStringKeyEnum();
|
|
146
|
+
}
|
|
147
|
+
// Extract component ID
|
|
148
|
+
const componentId = (0, branded_enum_utils_1.getBrandedEnumComponentId)(enumObj);
|
|
149
|
+
if (componentId === null) {
|
|
150
|
+
throw i18n_error_1.I18nError.invalidStringKeyEnum();
|
|
151
|
+
}
|
|
152
|
+
// Check if another enum with the same component ID is already registered
|
|
153
|
+
// If so, skip re-registration (Requirement 1.5)
|
|
154
|
+
if (this.componentIdToEnum.has(componentId)) {
|
|
155
|
+
return componentId;
|
|
156
|
+
}
|
|
157
|
+
// Store the registration
|
|
158
|
+
this.registeredEnums.set(enumObj, componentId);
|
|
159
|
+
this.componentIdToEnum.set(componentId, enumObj);
|
|
160
|
+
return componentId;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Checks if an enum is registered.
|
|
164
|
+
*
|
|
165
|
+
* Uses object reference equality to check registration status.
|
|
166
|
+
*
|
|
167
|
+
* @param enumObj - The branded enum to check
|
|
168
|
+
* @returns `true` if the enum is registered, `false` otherwise
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```typescript
|
|
172
|
+
* registry.has(UserKeys); // false (not registered yet)
|
|
173
|
+
* registry.register(UserKeys);
|
|
174
|
+
* registry.has(UserKeys); // true
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
has(enumObj) {
|
|
178
|
+
return this.registeredEnums.has(enumObj);
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Gets all registered enums with their component IDs.
|
|
182
|
+
*
|
|
183
|
+
* Returns a readonly array of entries containing the enum reference
|
|
184
|
+
* and its associated component ID.
|
|
185
|
+
*
|
|
186
|
+
* @returns Readonly array of StringKeyEnumEntry objects
|
|
187
|
+
*
|
|
188
|
+
* @example
|
|
189
|
+
* ```typescript
|
|
190
|
+
* registry.register(UserKeys);
|
|
191
|
+
* registry.register(AdminKeys);
|
|
192
|
+
*
|
|
193
|
+
* const entries = registry.getAll();
|
|
194
|
+
* // [
|
|
195
|
+
* // { enumObj: UserKeys, componentId: 'user' },
|
|
196
|
+
* // { enumObj: AdminKeys, componentId: 'admin' }
|
|
197
|
+
* // ]
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
getAll() {
|
|
201
|
+
const entries = [];
|
|
202
|
+
for (const [enumObj, componentId] of this.registeredEnums) {
|
|
203
|
+
entries.push({ enumObj, componentId });
|
|
204
|
+
}
|
|
205
|
+
return entries;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Resolves a string key value to its component ID.
|
|
209
|
+
*
|
|
210
|
+
* Uses branded-enum's `findEnumSources` to locate the owning enum,
|
|
211
|
+
* then looks up the component ID from the registry.
|
|
212
|
+
*
|
|
213
|
+
* ## Resolution Strategy
|
|
214
|
+
*
|
|
215
|
+
* 1. Call `findEnumSources(stringKeyValue)` to get all enum IDs containing the value
|
|
216
|
+
* 2. Filter for i18n-prefixed IDs (created by `createI18nStringKeys`)
|
|
217
|
+
* 3. Strip the `i18n:` prefix to get the component ID
|
|
218
|
+
* 4. Verify the component ID is registered in this registry
|
|
219
|
+
*
|
|
220
|
+
* @param stringKeyValue - The string key value to resolve
|
|
221
|
+
* @returns The component ID that owns this string key
|
|
222
|
+
* @throws {I18nError} If the key doesn't belong to a registered enum (STRING_KEY_NOT_REGISTERED)
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
* ```typescript
|
|
226
|
+
* const UserKeys = createI18nStringKeys('user', { Welcome: 'user.welcome' });
|
|
227
|
+
* registry.register(UserKeys);
|
|
228
|
+
*
|
|
229
|
+
* registry.resolveComponentId('user.welcome'); // 'user'
|
|
230
|
+
* registry.resolveComponentId('unknown.key'); // throws I18nError
|
|
231
|
+
* ```
|
|
232
|
+
*/
|
|
233
|
+
resolveComponentId(stringKeyValue) {
|
|
234
|
+
const componentId = this.safeResolveComponentId(stringKeyValue);
|
|
235
|
+
if (componentId === null) {
|
|
236
|
+
throw i18n_error_1.I18nError.stringKeyNotRegistered(stringKeyValue);
|
|
237
|
+
}
|
|
238
|
+
return componentId;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Safely resolves a string key value to its component ID.
|
|
242
|
+
*
|
|
243
|
+
* Returns `null` if the key doesn't belong to any registered enum,
|
|
244
|
+
* instead of throwing an error.
|
|
245
|
+
*
|
|
246
|
+
* @param stringKeyValue - The string key value to resolve
|
|
247
|
+
* @returns The component ID, or `null` if not found
|
|
248
|
+
*
|
|
249
|
+
* @example
|
|
250
|
+
* ```typescript
|
|
251
|
+
* registry.safeResolveComponentId('user.welcome'); // 'user'
|
|
252
|
+
* registry.safeResolveComponentId('unknown.key'); // null
|
|
253
|
+
* ```
|
|
254
|
+
*/
|
|
255
|
+
safeResolveComponentId(stringKeyValue) {
|
|
256
|
+
// Use findEnumSources to locate which enum(s) contain this value
|
|
257
|
+
const sources = (0, branded_enum_1.findEnumSources)(stringKeyValue);
|
|
258
|
+
// Filter for i18n-prefixed sources and find one that's registered
|
|
259
|
+
for (const source of sources) {
|
|
260
|
+
if (source.startsWith('i18n:')) {
|
|
261
|
+
const componentId = source.slice(5); // Remove 'i18n:' prefix
|
|
262
|
+
if (this.componentIdToEnum.has(componentId)) {
|
|
263
|
+
return componentId;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return null;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Clears all registrations.
|
|
271
|
+
*
|
|
272
|
+
* Primarily intended for testing purposes to reset the registry state.
|
|
273
|
+
*
|
|
274
|
+
* @example
|
|
275
|
+
* ```typescript
|
|
276
|
+
* registry.register(UserKeys);
|
|
277
|
+
* registry.getAll().length; // 1
|
|
278
|
+
*
|
|
279
|
+
* registry.clear();
|
|
280
|
+
* registry.getAll().length; // 0
|
|
281
|
+
* ```
|
|
282
|
+
*/
|
|
283
|
+
clear() {
|
|
284
|
+
this.registeredEnums.clear();
|
|
285
|
+
this.componentIdToEnum.clear();
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
exports.StringKeyEnumRegistry = StringKeyEnumRegistry;
|
|
289
|
+
//# sourceMappingURL=string-key-enum-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-key-enum-registry.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/string-key-enum-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,10 @@ export declare const I18nErrorCode: {
|
|
|
41
41
|
readonly RATE_LIMIT_EXCEEDED: "RATE_LIMIT_EXCEEDED";
|
|
42
42
|
/** Nested validation error with context */
|
|
43
43
|
readonly NESTED_VALIDATION_ERROR: "NESTED_VALIDATION_ERROR";
|
|
44
|
+
/** Invalid string key enum passed to registerStringKeyEnum */
|
|
45
|
+
readonly INVALID_STRING_KEY_ENUM: "INVALID_STRING_KEY_ENUM";
|
|
46
|
+
/** String key value does not belong to any registered enum */
|
|
47
|
+
readonly STRING_KEY_NOT_REGISTERED: "STRING_KEY_NOT_REGISTERED";
|
|
44
48
|
};
|
|
45
49
|
/**
|
|
46
50
|
* Type representing all possible i18n error codes.
|
|
@@ -207,5 +211,16 @@ export declare class I18nError extends Error {
|
|
|
207
211
|
* @returns An I18nError instance
|
|
208
212
|
*/
|
|
209
213
|
static nestedValidationError(componentId: string, fieldPath: string, errorCount: number, errorType: 'type' | 'range' | 'format' | 'required', severity: 'low' | 'medium' | 'high' | 'critical', language?: string): I18nError;
|
|
214
|
+
/**
|
|
215
|
+
* Creates an error for when a non-branded enum is passed to registerStringKeyEnum.
|
|
216
|
+
* @returns An I18nError instance
|
|
217
|
+
*/
|
|
218
|
+
static invalidStringKeyEnum(): I18nError;
|
|
219
|
+
/**
|
|
220
|
+
* Creates an error for when a string key value does not belong to any registered enum.
|
|
221
|
+
* @param key - The string key that was not found in any registered enum
|
|
222
|
+
* @returns An I18nError instance
|
|
223
|
+
*/
|
|
224
|
+
static stringKeyNotRegistered(key: string): I18nError;
|
|
210
225
|
}
|
|
211
226
|
//# sourceMappingURL=i18n-error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-error.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/errors/i18n-error.ts"],"names":[],"mappings":"AACA;;GAEG;AAIH;;GAEG;AACH,eAAO,MAAM,aAAa;IACxB,sCAAsC;;IAEtC,wCAAwC;;IAExC,qCAAqC;;IAErC,yDAAyD;;IAEzD,qCAAqC;;IAErC,8CAA8C;;IAE9C,6CAA6C;;IAE7C,4CAA4C;;IAE5C,8BAA8B;;IAE9B,mCAAmC;;IAEnC,mCAAmC;;IAEnC,sDAAsD;;IAEtD,uCAAuC;;IAEvC,oDAAoD;;IAEpD,oCAAoC;;IAEpC,wCAAwC;;IAExC,0BAA0B;;IAE1B,2CAA2C;;
|
|
1
|
+
{"version":3,"file":"i18n-error.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/errors/i18n-error.ts"],"names":[],"mappings":"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"}
|
package/src/errors/i18n-error.js
CHANGED
|
@@ -46,6 +46,10 @@ exports.I18nErrorCode = {
|
|
|
46
46
|
RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',
|
|
47
47
|
/** Nested validation error with context */
|
|
48
48
|
NESTED_VALIDATION_ERROR: 'NESTED_VALIDATION_ERROR',
|
|
49
|
+
/** Invalid string key enum passed to registerStringKeyEnum */
|
|
50
|
+
INVALID_STRING_KEY_ENUM: 'INVALID_STRING_KEY_ENUM',
|
|
51
|
+
/** String key value does not belong to any registered enum */
|
|
52
|
+
STRING_KEY_NOT_REGISTERED: 'STRING_KEY_NOT_REGISTERED',
|
|
49
53
|
};
|
|
50
54
|
/**
|
|
51
55
|
* Main error class for i18n-related errors.
|
|
@@ -354,6 +358,21 @@ class I18nError extends Error {
|
|
|
354
358
|
severity,
|
|
355
359
|
});
|
|
356
360
|
}
|
|
361
|
+
/**
|
|
362
|
+
* Creates an error for when a non-branded enum is passed to registerStringKeyEnum.
|
|
363
|
+
* @returns An I18nError instance
|
|
364
|
+
*/
|
|
365
|
+
static invalidStringKeyEnum() {
|
|
366
|
+
return new I18nError(exports.I18nErrorCode.INVALID_STRING_KEY_ENUM, 'The provided object is not a branded string key enum', {});
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Creates an error for when a string key value does not belong to any registered enum.
|
|
370
|
+
* @param key - The string key that was not found in any registered enum
|
|
371
|
+
* @returns An I18nError instance
|
|
372
|
+
*/
|
|
373
|
+
static stringKeyNotRegistered(key) {
|
|
374
|
+
return new I18nError(exports.I18nErrorCode.STRING_KEY_NOT_REGISTERED, `String key '${key}' does not belong to any registered enum`, { key });
|
|
375
|
+
}
|
|
357
376
|
}
|
|
358
377
|
exports.I18nError = I18nError;
|
|
359
378
|
//# sourceMappingURL=i18n-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-error.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/errors/i18n-error.ts"],"names":[],"mappings":";AAAA,2PAA2P;AAC3P;;GAEG;;;AAEH,4CAAkD;AAElD;;GAEG;AACU,QAAA,aAAa,GAAG;IAC3B,sCAAsC;IACtC,mBAAmB,EAAE,qBAAqB;IAC1C,wCAAwC;IACxC,oBAAoB,EAAE,sBAAsB;IAC5C,qCAAqC;IACrC,kBAAkB,EAAE,oBAAoB;IACxC,yDAAyD;IACzD,mBAAmB,EAAE,qBAAqB;IAC1C,qCAAqC;IACrC,cAAc,EAAE,gBAAgB;IAChC,8CAA8C;IAC9C,mBAAmB,EAAE,qBAAqB;IAC1C,6CAA6C;IAC7C,kBAAkB,EAAE,oBAAoB;IACxC,4CAA4C;IAC5C,iBAAiB,EAAE,mBAAmB;IACtC,8BAA8B;IAC9B,kBAAkB,EAAE,oBAAoB;IACxC,mCAAmC;IACnC,eAAe,EAAE,iBAAiB;IAClC,mCAAmC;IACnC,eAAe,EAAE,iBAAiB;IAClC,sDAAsD;IACtD,qBAAqB,EAAE,uBAAuB;IAC9C,uCAAuC;IACvC,uBAAuB,EAAE,yBAAyB;IAClD,oDAAoD;IACpD,sBAAsB,EAAE,wBAAwB;IAChD,oCAAoC;IACpC,6BAA6B,EAAE,+BAA+B;IAC9D,wCAAwC;IACxC,qBAAqB,EAAE,uBAAuB;IAC9C,0BAA0B;IAC1B,mBAAmB,EAAE,qBAAqB;IAC1C,2CAA2C;IAC3C,uBAAuB,EAAE,yBAAyB;
|
|
1
|
+
{"version":3,"file":"i18n-error.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/errors/i18n-error.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Core I18n Engine interface
|
|
3
3
|
*/
|
|
4
|
+
import type { AnyBrandedEnum, BrandedEnumValue } from '@digitaldefiance/branded-enum';
|
|
4
5
|
import { ComponentConfig } from './component-config.interface';
|
|
5
6
|
import { LanguageDefinition } from './language-definition.interface';
|
|
6
7
|
import { ValidationResult } from './validation-result.interface';
|
|
@@ -42,5 +43,32 @@ export interface II18nEngine {
|
|
|
42
43
|
getCurrentLanguage(): string;
|
|
43
44
|
/** Validates all registered components */
|
|
44
45
|
validate(): ValidationResult;
|
|
46
|
+
/**
|
|
47
|
+
* Registers a branded string key enum for automatic component ID resolution.
|
|
48
|
+
* @param stringKeyEnum - Branded enum created by createI18nStringKeys
|
|
49
|
+
* @returns The extracted component ID
|
|
50
|
+
*/
|
|
51
|
+
registerStringKeyEnum(stringKeyEnum: AnyBrandedEnum): string;
|
|
52
|
+
/**
|
|
53
|
+
* Translates a branded string key value directly.
|
|
54
|
+
* Automatically resolves the component ID from the branded value.
|
|
55
|
+
*/
|
|
56
|
+
translateStringKey<E extends AnyBrandedEnum>(stringKeyValue: BrandedEnumValue<E>, variables?: Record<string, unknown>, language?: string): string;
|
|
57
|
+
/**
|
|
58
|
+
* Safely translates a branded string key value.
|
|
59
|
+
* Returns a placeholder on failure instead of throwing.
|
|
60
|
+
*/
|
|
61
|
+
safeTranslateStringKey<E extends AnyBrandedEnum>(stringKeyValue: BrandedEnumValue<E>, variables?: Record<string, unknown>, language?: string): string;
|
|
62
|
+
/**
|
|
63
|
+
* Checks if a branded string key enum is registered.
|
|
64
|
+
*/
|
|
65
|
+
hasStringKeyEnum(stringKeyEnum: AnyBrandedEnum): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Gets all registered string key enums with their component IDs.
|
|
68
|
+
*/
|
|
69
|
+
getStringKeyEnums(): readonly {
|
|
70
|
+
enumObj: AnyBrandedEnum;
|
|
71
|
+
componentId: string;
|
|
72
|
+
}[];
|
|
45
73
|
}
|
|
46
74
|
//# sourceMappingURL=i18n-engine.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-engine.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/i18n-engine.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,WAAW;IAE1B,sDAAsD;IACtD,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB,CAAC;IACpD,6DAA6D;IAC7D,mBAAmB,CAAC,MAAM,EAAE,eAAe,GAAG,gBAAgB,CAAC;IAC/D,gDAAgD;IAChD,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC9C,gBAAgB,CAAC;IACpB,0CAA0C;IAC1C,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3C,qCAAqC;IACrC,aAAa,IAAI,SAAS,eAAe,EAAE,CAAC;IAG5C,8CAA8C;IAE9C,SAAS,CACP,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAAC;IACV,oEAAoE;IAEpE,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAAC;IACV,sEAAsE;IAEtE,CAAC,CACC,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAAC;IAGV,+BAA+B;IAC/B,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACrD,4CAA4C;IAC5C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,uCAAuC;IACvC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,oCAAoC;IACpC,YAAY,IAAI,SAAS,kBAAkB,EAAE,CAAC;IAC9C,yCAAyC;IACzC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAGvC,gCAAgC;IAChC,aAAa,IAAI,IAAI,CAAC;IACtB,+BAA+B;IAC/B,YAAY,IAAI,IAAI,CAAC;IACrB,0DAA0D;IAC1D,kBAAkB,IAAI,MAAM,CAAC;IAG7B,0CAA0C;IAC1C,QAAQ,IAAI,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"i18n-engine.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/i18n-engine.interface.ts"],"names":[],"mappings":"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"}
|