@digitaldefiance/i18n-lib 4.3.2 → 4.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 +422 -15
- package/package.json +1 -1
- package/src/core/i18n-engine.d.ts +20 -0
- package/src/core/i18n-engine.d.ts.map +1 -1
- package/src/core/i18n-engine.js +59 -5
- package/src/core/i18n-engine.js.map +1 -1
- package/src/create-i18n-setup.d.ts +11 -0
- package/src/create-i18n-setup.d.ts.map +1 -0
- package/src/create-i18n-setup.js +89 -0
- package/src/create-i18n-setup.js.map +1 -0
- package/src/index.d.ts +1 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +4 -1
- package/src/index.js.map +1 -1
- package/src/interfaces/i18n-component-package.interface.d.ts +14 -0
- package/src/interfaces/i18n-component-package.interface.d.ts.map +1 -0
- package/src/interfaces/i18n-component-package.interface.js +3 -0
- package/src/interfaces/i18n-component-package.interface.js.map +1 -0
- package/src/interfaces/i18n-setup-config.interface.d.ts +25 -0
- package/src/interfaces/i18n-setup-config.interface.d.ts.map +1 -0
- package/src/interfaces/i18n-setup-config.interface.js +3 -0
- package/src/interfaces/i18n-setup-config.interface.js.map +1 -0
- package/src/interfaces/i18n-setup-result.interface.d.ts +31 -0
- package/src/interfaces/i18n-setup-result.interface.d.ts.map +1 -0
- package/src/interfaces/i18n-setup-result.interface.js +3 -0
- package/src/interfaces/i18n-setup-result.interface.js.map +1 -0
- package/src/interfaces/index.d.ts +3 -0
- package/src/interfaces/index.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -1315,6 +1315,406 @@ function translateAnyValue<T extends string | number>(
|
|
|
1315
1315
|
}
|
|
1316
1316
|
```
|
|
1317
1317
|
|
|
1318
|
+
## Monorepo i18n-setup Guide
|
|
1319
|
+
|
|
1320
|
+
When building an application that consumes multiple Express Suite packages (e.g., `suite-core-lib`, `ecies-lib`), you need a single `i18n-setup.ts` file that initializes the engine, registers all components and their branded string key enums, sets up the global context, and exports translation helpers.
|
|
1321
|
+
|
|
1322
|
+
### Recommended: Factory Approach (`createI18nSetup`)
|
|
1323
|
+
|
|
1324
|
+
The `createI18nSetup()` factory replaces ~200 lines of manual boilerplate with a single function call. It handles engine creation, core component registration, library component registration, branded enum registration, and context initialization automatically.
|
|
1325
|
+
|
|
1326
|
+
```typescript
|
|
1327
|
+
// i18n-setup.ts — Application-level i18n initialization (factory approach)
|
|
1328
|
+
|
|
1329
|
+
import {
|
|
1330
|
+
createI18nSetup,
|
|
1331
|
+
createI18nStringKeys,
|
|
1332
|
+
LanguageCodes,
|
|
1333
|
+
} from '@digitaldefiance/i18n-lib';
|
|
1334
|
+
import { createSuiteCoreComponentPackage } from '@digitaldefiance/suite-core-lib';
|
|
1335
|
+
import { createEciesComponentPackage } from '@digitaldefiance/ecies-lib';
|
|
1336
|
+
|
|
1337
|
+
// 1. Define your application component
|
|
1338
|
+
export const AppComponentId = 'MyApp';
|
|
1339
|
+
|
|
1340
|
+
export const AppStringKey = createI18nStringKeys(AppComponentId, {
|
|
1341
|
+
SiteTitle: 'siteTitle',
|
|
1342
|
+
SiteDescription: 'siteDescription',
|
|
1343
|
+
WelcomeMessage: 'welcomeMessage',
|
|
1344
|
+
} as const);
|
|
1345
|
+
|
|
1346
|
+
const appStrings = {
|
|
1347
|
+
[LanguageCodes.EN_US]: {
|
|
1348
|
+
siteTitle: 'My Application',
|
|
1349
|
+
siteDescription: 'An Express Suite application',
|
|
1350
|
+
welcomeMessage: 'Welcome, {name}!',
|
|
1351
|
+
},
|
|
1352
|
+
[LanguageCodes.FR]: {
|
|
1353
|
+
siteTitle: 'Mon Application',
|
|
1354
|
+
siteDescription: 'Une application Express Suite',
|
|
1355
|
+
welcomeMessage: 'Bienvenue, {name} !',
|
|
1356
|
+
},
|
|
1357
|
+
};
|
|
1358
|
+
|
|
1359
|
+
// 2. Create the i18n setup — one call does everything
|
|
1360
|
+
const i18n = createI18nSetup({
|
|
1361
|
+
componentId: AppComponentId,
|
|
1362
|
+
stringKeyEnum: AppStringKey,
|
|
1363
|
+
strings: appStrings,
|
|
1364
|
+
aliases: ['AppStringKey'],
|
|
1365
|
+
libraryComponents: [
|
|
1366
|
+
createSuiteCoreComponentPackage(),
|
|
1367
|
+
createEciesComponentPackage(),
|
|
1368
|
+
],
|
|
1369
|
+
});
|
|
1370
|
+
|
|
1371
|
+
// 3. Export the public API
|
|
1372
|
+
export const { engine: i18nEngine, translate, safeTranslate } = i18n;
|
|
1373
|
+
export const i18nContext = i18n.context;
|
|
1374
|
+
```
|
|
1375
|
+
|
|
1376
|
+
The factory:
|
|
1377
|
+
- Creates or reuses an `I18nEngine` instance (idempotent via `instanceKey`, defaults to `'default'`)
|
|
1378
|
+
- Registers the Core i18n component automatically
|
|
1379
|
+
- Registers each library component's `ComponentConfig` and branded `stringKeyEnum` from the `I18nComponentPackage`
|
|
1380
|
+
- Registers your application component and its branded enum
|
|
1381
|
+
- Initializes `GlobalActiveContext` with the specified `defaultLanguage` (defaults to `'en-US'`)
|
|
1382
|
+
- Returns an `I18nSetupResult` with `engine`, `translate`, `safeTranslate`, `context`, `setLanguage`, `setAdminLanguage`, `setContext`, `getLanguage`, `getAdminLanguage`, and `reset`
|
|
1383
|
+
|
|
1384
|
+
Calling `createI18nSetup()` multiple times with the same `instanceKey` reuses the existing engine — safe for monorepos where a subset library and a superset API both call the factory.
|
|
1385
|
+
|
|
1386
|
+
### I18nComponentPackage Interface
|
|
1387
|
+
|
|
1388
|
+
Library authors bundle a `ComponentConfig` with its branded string key enum in a single `I18nComponentPackage` object. This lets the factory auto-register both the component and its enum in one step.
|
|
1389
|
+
|
|
1390
|
+
```typescript
|
|
1391
|
+
import type { AnyBrandedEnum } from '@digitaldefiance/branded-enum';
|
|
1392
|
+
import type { ComponentConfig } from '@digitaldefiance/i18n-lib';
|
|
1393
|
+
|
|
1394
|
+
interface I18nComponentPackage {
|
|
1395
|
+
readonly config: ComponentConfig;
|
|
1396
|
+
readonly stringKeyEnum?: AnyBrandedEnum;
|
|
1397
|
+
}
|
|
1398
|
+
```
|
|
1399
|
+
|
|
1400
|
+
Each library exports a `createXxxComponentPackage()` function:
|
|
1401
|
+
|
|
1402
|
+
```typescript
|
|
1403
|
+
// In suite-core-lib
|
|
1404
|
+
import { createSuiteCoreComponentPackage } from '@digitaldefiance/suite-core-lib';
|
|
1405
|
+
const pkg = createSuiteCoreComponentPackage();
|
|
1406
|
+
// pkg.config → SuiteCore ComponentConfig
|
|
1407
|
+
// pkg.stringKeyEnum → SuiteCoreStringKey branded enum
|
|
1408
|
+
|
|
1409
|
+
// In ecies-lib
|
|
1410
|
+
import { createEciesComponentPackage } from '@digitaldefiance/ecies-lib';
|
|
1411
|
+
const pkg = createEciesComponentPackage();
|
|
1412
|
+
|
|
1413
|
+
// In node-ecies-lib
|
|
1414
|
+
import { createNodeEciesComponentPackage } from '@digitaldefiance/node-ecies-lib';
|
|
1415
|
+
const pkg = createNodeEciesComponentPackage();
|
|
1416
|
+
```
|
|
1417
|
+
|
|
1418
|
+
The existing `createSuiteCoreComponentConfig()` and `createEciesComponentConfig()` functions remain available for consumers that prefer the manual approach.
|
|
1419
|
+
|
|
1420
|
+
### Browser-Safe Fallback
|
|
1421
|
+
|
|
1422
|
+
In browser environments, bundlers like Vite and webpack may create separate copies of `@digitaldefiance/branded-enum`, causing `isBrandedEnum()` to fail due to Symbol/WeakSet identity mismatch. This breaks `registerStringKeyEnum()` and `translateStringKey()`.
|
|
1423
|
+
|
|
1424
|
+
The engine now includes a transparent fallback: when the `StringKeyEnumRegistry` fails to resolve a component ID for a known string key value, the engine scans all registered components' string keys to find the matching component. The result is cached in a `ValueComponentLookupCache` for subsequent lookups, and the cache is invalidated whenever a new component is registered.
|
|
1425
|
+
|
|
1426
|
+
This means consumers do not need manual workarounds (like `safeRegisterStringKeyEnum` or `_componentLookup` maps) for bundler Symbol mismatch issues. Both `translateStringKey` and `safeTranslateStringKey` use the fallback automatically.
|
|
1427
|
+
|
|
1428
|
+
### Advanced: Manual Setup
|
|
1429
|
+
|
|
1430
|
+
For advanced use cases where you need full control over engine creation, validation options, or custom registration order, you can use the manual approach:
|
|
1431
|
+
|
|
1432
|
+
<details>
|
|
1433
|
+
<summary>Click to expand manual i18n-setup.ts example</summary>
|
|
1434
|
+
|
|
1435
|
+
```typescript
|
|
1436
|
+
// i18n-setup.ts — Manual approach (advanced)
|
|
1437
|
+
|
|
1438
|
+
import {
|
|
1439
|
+
I18nBuilder,
|
|
1440
|
+
I18nEngine,
|
|
1441
|
+
LanguageCodes,
|
|
1442
|
+
GlobalActiveContext,
|
|
1443
|
+
getCoreLanguageDefinitions,
|
|
1444
|
+
createCoreComponentRegistration,
|
|
1445
|
+
createI18nStringKeys,
|
|
1446
|
+
type CoreLanguageCode,
|
|
1447
|
+
type IActiveContext,
|
|
1448
|
+
type ComponentConfig,
|
|
1449
|
+
type LanguageContextSpace,
|
|
1450
|
+
} from '@digitaldefiance/i18n-lib';
|
|
1451
|
+
import type { BrandedEnumValue } from '@digitaldefiance/branded-enum';
|
|
1452
|
+
import {
|
|
1453
|
+
createSuiteCoreComponentConfig,
|
|
1454
|
+
SuiteCoreStringKey,
|
|
1455
|
+
} from '@digitaldefiance/suite-core-lib';
|
|
1456
|
+
import {
|
|
1457
|
+
createEciesComponentConfig,
|
|
1458
|
+
EciesStringKey,
|
|
1459
|
+
} from '@digitaldefiance/ecies-lib';
|
|
1460
|
+
|
|
1461
|
+
export const AppComponentId = 'MyApp';
|
|
1462
|
+
|
|
1463
|
+
export const AppStringKey = createI18nStringKeys(AppComponentId, {
|
|
1464
|
+
SiteTitle: 'siteTitle',
|
|
1465
|
+
SiteDescription: 'siteDescription',
|
|
1466
|
+
WelcomeMessage: 'welcomeMessage',
|
|
1467
|
+
} as const);
|
|
1468
|
+
|
|
1469
|
+
export type AppStringKeyValue = BrandedEnumValue<typeof AppStringKey>;
|
|
1470
|
+
|
|
1471
|
+
const appStrings: Record<string, Record<string, string>> = {
|
|
1472
|
+
[LanguageCodes.EN_US]: {
|
|
1473
|
+
siteTitle: 'My Application',
|
|
1474
|
+
siteDescription: 'An Express Suite application',
|
|
1475
|
+
welcomeMessage: 'Welcome, {name}!',
|
|
1476
|
+
},
|
|
1477
|
+
[LanguageCodes.FR]: {
|
|
1478
|
+
siteTitle: 'Mon Application',
|
|
1479
|
+
siteDescription: 'Une application Express Suite',
|
|
1480
|
+
welcomeMessage: 'Bienvenue, {name} !',
|
|
1481
|
+
},
|
|
1482
|
+
};
|
|
1483
|
+
|
|
1484
|
+
function createAppComponentConfig(): ComponentConfig {
|
|
1485
|
+
return { id: AppComponentId, strings: appStrings, aliases: ['AppStringKey'] };
|
|
1486
|
+
}
|
|
1487
|
+
|
|
1488
|
+
// Create or reuse engine
|
|
1489
|
+
let i18nEngine: I18nEngine;
|
|
1490
|
+
if (I18nEngine.hasInstance('default')) {
|
|
1491
|
+
i18nEngine = I18nEngine.getInstance('default');
|
|
1492
|
+
} else {
|
|
1493
|
+
i18nEngine = I18nBuilder.create()
|
|
1494
|
+
.withLanguages(getCoreLanguageDefinitions())
|
|
1495
|
+
.withDefaultLanguage(LanguageCodes.EN_US)
|
|
1496
|
+
.withFallbackLanguage(LanguageCodes.EN_US)
|
|
1497
|
+
.withInstanceKey('default')
|
|
1498
|
+
.build();
|
|
1499
|
+
}
|
|
1500
|
+
|
|
1501
|
+
// Register components
|
|
1502
|
+
const coreReg = createCoreComponentRegistration();
|
|
1503
|
+
i18nEngine.registerIfNotExists({
|
|
1504
|
+
id: coreReg.component.id,
|
|
1505
|
+
strings: coreReg.strings as Record<string, Record<string, string>>,
|
|
1506
|
+
});
|
|
1507
|
+
i18nEngine.registerIfNotExists(createSuiteCoreComponentConfig());
|
|
1508
|
+
i18nEngine.registerIfNotExists(createEciesComponentConfig());
|
|
1509
|
+
i18nEngine.registerIfNotExists(createAppComponentConfig());
|
|
1510
|
+
|
|
1511
|
+
// Register branded enums
|
|
1512
|
+
if (!i18nEngine.hasStringKeyEnum(SuiteCoreStringKey)) {
|
|
1513
|
+
i18nEngine.registerStringKeyEnum(SuiteCoreStringKey);
|
|
1514
|
+
}
|
|
1515
|
+
if (!i18nEngine.hasStringKeyEnum(EciesStringKey)) {
|
|
1516
|
+
i18nEngine.registerStringKeyEnum(EciesStringKey);
|
|
1517
|
+
}
|
|
1518
|
+
if (!i18nEngine.hasStringKeyEnum(AppStringKey)) {
|
|
1519
|
+
i18nEngine.registerStringKeyEnum(AppStringKey);
|
|
1520
|
+
}
|
|
1521
|
+
|
|
1522
|
+
// Initialize context
|
|
1523
|
+
const globalContext = GlobalActiveContext.getInstance<
|
|
1524
|
+
CoreLanguageCode,
|
|
1525
|
+
IActiveContext<CoreLanguageCode>
|
|
1526
|
+
>();
|
|
1527
|
+
globalContext.createContext(LanguageCodes.EN_US, LanguageCodes.EN_US, AppComponentId);
|
|
1528
|
+
|
|
1529
|
+
// Export helpers
|
|
1530
|
+
export { i18nEngine };
|
|
1531
|
+
|
|
1532
|
+
export const translate = (
|
|
1533
|
+
name: AppStringKeyValue,
|
|
1534
|
+
variables?: Record<string, string | number>,
|
|
1535
|
+
language?: CoreLanguageCode,
|
|
1536
|
+
context?: LanguageContextSpace,
|
|
1537
|
+
): string => {
|
|
1538
|
+
const activeContext =
|
|
1539
|
+
context ?? globalContext.getContext(AppComponentId).currentContext;
|
|
1540
|
+
const lang =
|
|
1541
|
+
language ??
|
|
1542
|
+
(activeContext === 'admin'
|
|
1543
|
+
? globalContext.getContext(AppComponentId).adminLanguage
|
|
1544
|
+
: globalContext.getContext(AppComponentId).language);
|
|
1545
|
+
return i18nEngine.translateStringKey(name, variables, lang);
|
|
1546
|
+
};
|
|
1547
|
+
|
|
1548
|
+
export const safeTranslate = (
|
|
1549
|
+
name: AppStringKeyValue,
|
|
1550
|
+
variables?: Record<string, string | number>,
|
|
1551
|
+
language?: CoreLanguageCode,
|
|
1552
|
+
context?: LanguageContextSpace,
|
|
1553
|
+
): string => {
|
|
1554
|
+
const activeContext =
|
|
1555
|
+
context ?? globalContext.getContext(AppComponentId).currentContext;
|
|
1556
|
+
const lang =
|
|
1557
|
+
language ??
|
|
1558
|
+
(activeContext === 'admin'
|
|
1559
|
+
? globalContext.getContext(AppComponentId).adminLanguage
|
|
1560
|
+
: globalContext.getContext(AppComponentId).language);
|
|
1561
|
+
return i18nEngine.safeTranslateStringKey(name, variables, lang);
|
|
1562
|
+
};
|
|
1563
|
+
```
|
|
1564
|
+
|
|
1565
|
+
</details>
|
|
1566
|
+
|
|
1567
|
+
Key points for the manual approach:
|
|
1568
|
+
|
|
1569
|
+
- **Idempotent engine creation**: `I18nEngine.hasInstance('default')` checks for an existing engine before building a new one.
|
|
1570
|
+
- **Core component first**: Always register the Core component before other components — it provides error message translations used internally.
|
|
1571
|
+
- **`registerIfNotExists`**: All component registrations use the idempotent variant so multiple packages can safely register without conflicts.
|
|
1572
|
+
- **`hasStringKeyEnum` guard**: Prevents duplicate enum registration when multiple setup files run in the same process.
|
|
1573
|
+
- **Context-aware helpers**: The `translate` and `safeTranslate` functions resolve the active language from `GlobalActiveContext`, respecting user vs. admin context.
|
|
1574
|
+
|
|
1575
|
+
### Migration Guide
|
|
1576
|
+
|
|
1577
|
+
Converting an existing manual `i18n-setup.ts` to the factory approach is straightforward. There are no breaking changes — the factory produces the same engine state as the manual approach.
|
|
1578
|
+
|
|
1579
|
+
#### Before (manual)
|
|
1580
|
+
|
|
1581
|
+
```typescript
|
|
1582
|
+
import { I18nBuilder, I18nEngine, LanguageCodes, GlobalActiveContext, ... } from '@digitaldefiance/i18n-lib';
|
|
1583
|
+
import { createSuiteCoreComponentConfig, SuiteCoreStringKey } from '@digitaldefiance/suite-core-lib';
|
|
1584
|
+
import { createEciesComponentConfig, EciesStringKey } from '@digitaldefiance/ecies-lib';
|
|
1585
|
+
|
|
1586
|
+
// ~200 lines: engine creation, core registration, library registration,
|
|
1587
|
+
// enum registration, context initialization, translate helpers...
|
|
1588
|
+
```
|
|
1589
|
+
|
|
1590
|
+
#### After (factory)
|
|
1591
|
+
|
|
1592
|
+
```typescript
|
|
1593
|
+
import { createI18nSetup, createI18nStringKeys, LanguageCodes } from '@digitaldefiance/i18n-lib';
|
|
1594
|
+
import { createSuiteCoreComponentPackage } from '@digitaldefiance/suite-core-lib';
|
|
1595
|
+
import { createEciesComponentPackage } from '@digitaldefiance/ecies-lib';
|
|
1596
|
+
|
|
1597
|
+
const i18n = createI18nSetup({
|
|
1598
|
+
componentId: AppComponentId,
|
|
1599
|
+
stringKeyEnum: AppStringKey,
|
|
1600
|
+
strings: appStrings,
|
|
1601
|
+
libraryComponents: [
|
|
1602
|
+
createSuiteCoreComponentPackage(),
|
|
1603
|
+
createEciesComponentPackage(),
|
|
1604
|
+
],
|
|
1605
|
+
});
|
|
1606
|
+
|
|
1607
|
+
export const { engine: i18nEngine, translate, safeTranslate } = i18n;
|
|
1608
|
+
```
|
|
1609
|
+
|
|
1610
|
+
#### Migration steps
|
|
1611
|
+
|
|
1612
|
+
1. Replace `createXxxComponentConfig` imports with `createXxxComponentPackage` imports
|
|
1613
|
+
2. Replace manual engine creation (`I18nBuilder` / `I18nEngine.registerIfNotExists`) with `createI18nSetup()`
|
|
1614
|
+
3. Move library component registrations into the `libraryComponents` array
|
|
1615
|
+
4. Remove manual `registerStringKeyEnum` calls — the factory handles them
|
|
1616
|
+
5. Remove manual `GlobalActiveContext` initialization — the factory handles it
|
|
1617
|
+
6. Destructure the returned `I18nSetupResult` to get `engine`, `translate`, `safeTranslate`, etc.
|
|
1618
|
+
|
|
1619
|
+
#### Notes
|
|
1620
|
+
|
|
1621
|
+
- Existing `createXxxComponentConfig()` functions remain available for consumers that prefer the manual approach
|
|
1622
|
+
- The factory uses the same `registerIfNotExists` pattern internally, so it is safe to mix factory and manual consumers sharing the same engine instance
|
|
1623
|
+
- There are no breaking changes or behavioral differences between the manual and factory approaches
|
|
1624
|
+
|
|
1625
|
+
### createI18nStringKeys vs createI18nStringKeysFromEnum
|
|
1626
|
+
|
|
1627
|
+
Both functions produce identical `BrandedStringKeys` output. Choose based on your starting point.
|
|
1628
|
+
|
|
1629
|
+
#### createI18nStringKeys — preferred for new code
|
|
1630
|
+
|
|
1631
|
+
Creates a branded enum directly from an `as const` object literal:
|
|
1632
|
+
|
|
1633
|
+
```typescript
|
|
1634
|
+
import { createI18nStringKeys } from '@digitaldefiance/i18n-lib';
|
|
1635
|
+
|
|
1636
|
+
export const AppStringKey = createI18nStringKeys('my-app', {
|
|
1637
|
+
Welcome: 'welcome',
|
|
1638
|
+
Goodbye: 'goodbye',
|
|
1639
|
+
} as const);
|
|
1640
|
+
```
|
|
1641
|
+
|
|
1642
|
+
Use this when writing a new component from scratch. The `as const` assertion preserves literal types so each key is fully type-safe.
|
|
1643
|
+
|
|
1644
|
+
#### createI18nStringKeysFromEnum — useful for migration
|
|
1645
|
+
|
|
1646
|
+
Wraps an existing TypeScript enum into a branded enum:
|
|
1647
|
+
|
|
1648
|
+
```typescript
|
|
1649
|
+
import { createI18nStringKeysFromEnum } from '@digitaldefiance/i18n-lib';
|
|
1650
|
+
|
|
1651
|
+
// Existing traditional enum
|
|
1652
|
+
enum LegacyStringKeys {
|
|
1653
|
+
Welcome = 'welcome',
|
|
1654
|
+
Goodbye = 'goodbye',
|
|
1655
|
+
}
|
|
1656
|
+
|
|
1657
|
+
export const AppStringKey = createI18nStringKeysFromEnum(
|
|
1658
|
+
'my-app',
|
|
1659
|
+
LegacyStringKeys,
|
|
1660
|
+
);
|
|
1661
|
+
```
|
|
1662
|
+
|
|
1663
|
+
Use this when migrating code that already has a traditional `enum`. Internally, `createI18nStringKeysFromEnum` filters out TypeScript's reverse numeric mappings and then delegates to `createI18nStringKeys`.
|
|
1664
|
+
|
|
1665
|
+
#### Comparison
|
|
1666
|
+
|
|
1667
|
+
| Aspect | `createI18nStringKeys` | `createI18nStringKeysFromEnum` |
|
|
1668
|
+
|---|---|---|
|
|
1669
|
+
| Input | Object literal with `as const` | Existing TypeScript enum |
|
|
1670
|
+
| Use case | New code, fresh components | Migrating existing enum-based code |
|
|
1671
|
+
| Output | `BrandedStringKeys<T>` | `BrandedStringKeys<T>` |
|
|
1672
|
+
| Internal behavior | Calls `createBrandedEnum` directly | Filters reverse numeric mappings, then delegates to `createI18nStringKeys` |
|
|
1673
|
+
|
|
1674
|
+
### Troubleshooting: Branded Enum Module Identity in Monorepos
|
|
1675
|
+
|
|
1676
|
+
#### Symptom
|
|
1677
|
+
|
|
1678
|
+
`registerStringKeyEnum()` throws or `hasStringKeyEnum()` returns `false` for a branded enum that was created with `createI18nStringKeys` or `createI18nStringKeysFromEnum`.
|
|
1679
|
+
|
|
1680
|
+
#### Root Cause
|
|
1681
|
+
|
|
1682
|
+
`isBrandedEnum()` returns `false` when the `@digitaldefiance/branded-enum` global registry holds a different module instance. This happens when multiple copies of the package are installed — each copy has its own `WeakSet` / `Symbol` registry, so enums created by one copy are not recognized by another.
|
|
1683
|
+
|
|
1684
|
+
#### Diagnosis
|
|
1685
|
+
|
|
1686
|
+
Check for duplicate installations:
|
|
1687
|
+
|
|
1688
|
+
```bash
|
|
1689
|
+
# npm
|
|
1690
|
+
npm ls @digitaldefiance/branded-enum
|
|
1691
|
+
|
|
1692
|
+
# yarn
|
|
1693
|
+
yarn why @digitaldefiance/branded-enum
|
|
1694
|
+
```
|
|
1695
|
+
|
|
1696
|
+
If you see more than one resolved version (or multiple paths), the registry is split.
|
|
1697
|
+
|
|
1698
|
+
#### Solutions
|
|
1699
|
+
|
|
1700
|
+
1. **Single version via resolutions/overrides** — pin a single version in your root `package.json`:
|
|
1701
|
+
|
|
1702
|
+
```jsonc
|
|
1703
|
+
// npm (package.json)
|
|
1704
|
+
"overrides": {
|
|
1705
|
+
"@digitaldefiance/branded-enum": "<version>"
|
|
1706
|
+
}
|
|
1707
|
+
|
|
1708
|
+
// yarn (package.json)
|
|
1709
|
+
"resolutions": {
|
|
1710
|
+
"@digitaldefiance/branded-enum": "<version>"
|
|
1711
|
+
}
|
|
1712
|
+
```
|
|
1713
|
+
|
|
1714
|
+
2. **Bundler deduplication** — if you use webpack, Rollup, or esbuild, ensure the `@digitaldefiance/branded-enum` module is resolved to a single path. For webpack, the `resolve.alias` or `resolve.dedupe` options can help.
|
|
1715
|
+
|
|
1716
|
+
3. **Consistent package resolution** — in Nx or other monorepo tools, verify that all projects resolve the same physical copy. Running `nx graph` can help visualize dependency relationships.
|
|
1717
|
+
|
|
1318
1718
|
## Browser Support
|
|
1319
1719
|
|
|
1320
1720
|
- Chrome/Edge: Latest 2 versions (minimum: Chrome 90, Edge 90)
|
|
@@ -1500,6 +1900,28 @@ Contributions welcome! Please:
|
|
|
1500
1900
|
|
|
1501
1901
|
## ChangeLog
|
|
1502
1902
|
|
|
1903
|
+
### Version 4.4.0
|
|
1904
|
+
|
|
1905
|
+
**Factory-Based i18n Setup & Browser-Safe Fallback**
|
|
1906
|
+
|
|
1907
|
+
This release introduces `createI18nSetup()`, a factory function that replaces ~200 lines of boilerplate per consumer with a single function call. It also adds a browser-safe fallback for `translateStringKey` when bundler-duplicated packages break Symbol-based identity checks.
|
|
1908
|
+
|
|
1909
|
+
**New Features:**
|
|
1910
|
+
|
|
1911
|
+
- **`createI18nSetup()`**: Factory function that handles engine creation, core/library/app component registration, branded enum registration, and `GlobalActiveContext` initialization in one call
|
|
1912
|
+
- **`I18nComponentPackage`** interface: Bundles a `ComponentConfig` with its branded string key enum so the factory can auto-register both
|
|
1913
|
+
- **`I18nSetupConfig`** / **`I18nSetupResult`** interfaces: Typed config input and result output for the factory
|
|
1914
|
+
- **`createSuiteCoreComponentPackage()`**: New function in `suite-core-lib` returning an `I18nComponentPackage`
|
|
1915
|
+
- **`createEciesComponentPackage()`**: New function in `ecies-lib` returning an `I18nComponentPackage`
|
|
1916
|
+
- **`createNodeEciesComponentPackage()`**: New function in `node-ecies-lib` returning an `I18nComponentPackage`
|
|
1917
|
+
- **Browser-safe fallback**: `translateStringKey` and `safeTranslateStringKey` now fall back to scanning registered components when the `StringKeyEnumRegistry` fails (e.g., due to bundler Symbol mismatch), with a lazily-built `ValueComponentLookupCache` that invalidates on new component registration
|
|
1918
|
+
- **Updated starter template**: `express-suite-starter` scaffolding now uses `createI18nSetup()` for minimal boilerplate
|
|
1919
|
+
|
|
1920
|
+
**Backward Compatibility:**
|
|
1921
|
+
|
|
1922
|
+
- All existing APIs (`createSuiteCoreComponentConfig`, `createEciesComponentConfig`, `I18nBuilder`, manual registration) remain unchanged
|
|
1923
|
+
- The factory uses the same `registerIfNotExists` pattern internally, so factory and manual consumers can safely share the same engine instance
|
|
1924
|
+
|
|
1503
1925
|
### Version 4.3.0
|
|
1504
1926
|
|
|
1505
1927
|
**String Key Enum Registration for Direct Translation**
|
|
@@ -2623,21 +3045,6 @@ const myEngine = PluginI18nEngine.createInstance<MyLanguageCodes>('custom', lang
|
|
|
2623
3045
|
|
|
2624
3046
|
- Wed Sep 24 2025 15:20:07 GMT-0700 (Pacific Daylight Time)
|
|
2625
3047
|
- Initial release of the TypeScript internationalization library with enum translation, template processing, context management, and currency formatting.
|
|
2626
|
-
PluginI18nEngine.resetAll();
|
|
2627
|
-
});
|
|
2628
|
-
|
|
2629
|
-
afterEach(() => {
|
|
2630
|
-
PluginI18nEngine.resetAll();
|
|
2631
|
-
});
|
|
2632
|
-
|
|
2633
|
-
it('should translate', () => {
|
|
2634
|
-
const engine = PluginI18nEngine.createInstance('test', languages);
|
|
2635
|
-
engine.registerComponent(registration);
|
|
2636
|
-
expect(engine.translate('app', 'hello')).toBe('Hello');
|
|
2637
|
-
});
|
|
2638
|
-
});
|
|
2639
|
-
|
|
2640
|
-
```
|
|
2641
3048
|
|
|
2642
3049
|
## TypeScript Support
|
|
2643
3050
|
|
package/package.json
CHANGED
|
@@ -19,6 +19,7 @@ export declare class I18nEngine implements II18nEngine {
|
|
|
19
19
|
private readonly config;
|
|
20
20
|
private readonly aliasToComponent;
|
|
21
21
|
private readonly componentKeyLookup;
|
|
22
|
+
private valueComponentLookupCache;
|
|
22
23
|
/**
|
|
23
24
|
* Constructs an I18nEngine instance, registering languages, setting defaults,
|
|
24
25
|
* and optionally registering and setting this instance as default.
|
|
@@ -53,6 +54,25 @@ export declare class I18nEngine implements II18nEngine {
|
|
|
53
54
|
* @param config - Component configuration object.
|
|
54
55
|
*/
|
|
55
56
|
private registerComponentMetadata;
|
|
57
|
+
/**
|
|
58
|
+
* Invalidates the value-to-component lookup cache.
|
|
59
|
+
* Called after component registration so new keys are discoverable.
|
|
60
|
+
*/
|
|
61
|
+
private invalidateValueComponentLookupCache;
|
|
62
|
+
/**
|
|
63
|
+
* Builds a cache mapping string key values to component IDs
|
|
64
|
+
* by scanning all registered components.
|
|
65
|
+
*/
|
|
66
|
+
private buildValueComponentLookupCache;
|
|
67
|
+
/**
|
|
68
|
+
* Resolves a string key value to its component ID, falling back to
|
|
69
|
+
* scanning registered components when the branded enum registry fails
|
|
70
|
+
* (e.g., due to bundler Symbol mismatch in browser environments).
|
|
71
|
+
* @param stringKeyValue - The string key value to resolve.
|
|
72
|
+
* @returns The component ID that owns this string key.
|
|
73
|
+
* @throws {I18nError} If the key is not found in any registered component.
|
|
74
|
+
*/
|
|
75
|
+
private resolveComponentIdWithFallback;
|
|
56
76
|
/**
|
|
57
77
|
* Internal: Normalizes legacy keys into snake_case lowercased.
|
|
58
78
|
* @param rawKey - The raw key string to normalize.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-engine.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/i18n-engine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,eAAe,EACf,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAkBvB;;;GAGG;AACH,qBAAa,UAAW,YAAW,WAAW;IAC5C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAiC;IACzD,OAAO,CAAC,MAAM,CAAC,UAAU,CAAuB;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAa;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAwB;IAE9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAwB;IAC9D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6B;IAC9D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA0C;
|
|
1
|
+
{"version":3,"file":"i18n-engine.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/i18n-engine.ts"],"names":[],"mappings":"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"}
|
package/src/core/i18n-engine.js
CHANGED
|
@@ -31,6 +31,7 @@ class I18nEngine {
|
|
|
31
31
|
config;
|
|
32
32
|
aliasToComponent = new Map();
|
|
33
33
|
componentKeyLookup = new Map();
|
|
34
|
+
valueComponentLookupCache = null;
|
|
34
35
|
/**
|
|
35
36
|
* Constructs an I18nEngine instance, registering languages, setting defaults,
|
|
36
37
|
* and optionally registering and setting this instance as default.
|
|
@@ -87,7 +88,9 @@ class I18nEngine {
|
|
|
87
88
|
register(config) {
|
|
88
89
|
(0, validation_1.validateComponentId)(config.id);
|
|
89
90
|
this.registerComponentMetadata(config);
|
|
90
|
-
|
|
91
|
+
const result = this.componentStore.register(config);
|
|
92
|
+
this.invalidateValueComponentLookupCache();
|
|
93
|
+
return result;
|
|
91
94
|
}
|
|
92
95
|
/**
|
|
93
96
|
* Registers a component if not already registered.
|
|
@@ -155,6 +158,55 @@ class I18nEngine {
|
|
|
155
158
|
});
|
|
156
159
|
}
|
|
157
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Invalidates the value-to-component lookup cache.
|
|
163
|
+
* Called after component registration so new keys are discoverable.
|
|
164
|
+
*/
|
|
165
|
+
invalidateValueComponentLookupCache() {
|
|
166
|
+
this.valueComponentLookupCache = null;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Builds a cache mapping string key values to component IDs
|
|
170
|
+
* by scanning all registered components.
|
|
171
|
+
*/
|
|
172
|
+
buildValueComponentLookupCache() {
|
|
173
|
+
const cache = new Map();
|
|
174
|
+
for (const component of this.componentStore.getAll()) {
|
|
175
|
+
const firstLang = Object.keys(component.strings)[0];
|
|
176
|
+
if (firstLang) {
|
|
177
|
+
for (const key of Object.keys(component.strings[firstLang])) {
|
|
178
|
+
if (!cache.has(key)) {
|
|
179
|
+
cache.set(key, component.id);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return cache;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Resolves a string key value to its component ID, falling back to
|
|
188
|
+
* scanning registered components when the branded enum registry fails
|
|
189
|
+
* (e.g., due to bundler Symbol mismatch in browser environments).
|
|
190
|
+
* @param stringKeyValue - The string key value to resolve.
|
|
191
|
+
* @returns The component ID that owns this string key.
|
|
192
|
+
* @throws {I18nError} If the key is not found in any registered component.
|
|
193
|
+
*/
|
|
194
|
+
resolveComponentIdWithFallback(stringKeyValue) {
|
|
195
|
+
// Try registry first
|
|
196
|
+
const registryResult = this.stringKeyEnumRegistry.safeResolveComponentId(stringKeyValue);
|
|
197
|
+
if (registryResult !== null) {
|
|
198
|
+
return registryResult;
|
|
199
|
+
}
|
|
200
|
+
// Fallback: scan components via cache
|
|
201
|
+
if (!this.valueComponentLookupCache) {
|
|
202
|
+
this.valueComponentLookupCache = this.buildValueComponentLookupCache();
|
|
203
|
+
}
|
|
204
|
+
const fallbackResult = this.valueComponentLookupCache.get(stringKeyValue);
|
|
205
|
+
if (fallbackResult) {
|
|
206
|
+
return fallbackResult;
|
|
207
|
+
}
|
|
208
|
+
throw i18n_error_1.I18nError.stringKeyNotRegistered(stringKeyValue);
|
|
209
|
+
}
|
|
158
210
|
/**
|
|
159
211
|
* Internal: Normalizes legacy keys into snake_case lowercased.
|
|
160
212
|
* @param rawKey - The raw key string to normalize.
|
|
@@ -688,7 +740,7 @@ class I18nEngine {
|
|
|
688
740
|
* @see {@link safeTranslateStringKey} - Safe version that returns placeholder on failure
|
|
689
741
|
*/
|
|
690
742
|
translateStringKey(stringKeyValue, variables, language) {
|
|
691
|
-
const componentId = this.
|
|
743
|
+
const componentId = this.resolveComponentIdWithFallback(stringKeyValue);
|
|
692
744
|
return this.translate(componentId, stringKeyValue, variables, language);
|
|
693
745
|
}
|
|
694
746
|
/**
|
|
@@ -718,11 +770,13 @@ class I18nEngine {
|
|
|
718
770
|
* @see {@link registerStringKeyEnum} - Register enums for translation
|
|
719
771
|
*/
|
|
720
772
|
safeTranslateStringKey(stringKeyValue, variables, language) {
|
|
721
|
-
|
|
722
|
-
|
|
773
|
+
try {
|
|
774
|
+
const componentId = this.resolveComponentIdWithFallback(stringKeyValue);
|
|
775
|
+
return this.safeTranslate(componentId, stringKeyValue, variables, language);
|
|
776
|
+
}
|
|
777
|
+
catch {
|
|
723
778
|
return `[unknown.${String(stringKeyValue)}]`;
|
|
724
779
|
}
|
|
725
|
-
return this.safeTranslate(componentId, stringKeyValue, variables, language);
|
|
726
780
|
}
|
|
727
781
|
/**
|
|
728
782
|
* Checks if a branded string key enum is registered.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-engine.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/i18n-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"i18n-engine.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/core/i18n-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory function that creates a complete i18n setup from a config object.
|
|
3
|
+
* Replaces ~200 lines of boilerplate per consumer.
|
|
4
|
+
*/
|
|
5
|
+
import type { AnyBrandedEnum } from '@digitaldefiance/branded-enum';
|
|
6
|
+
import type { I18nSetupConfig } from './interfaces/i18n-setup-config.interface';
|
|
7
|
+
import type { I18nSetupResult } from './interfaces/i18n-setup-result.interface';
|
|
8
|
+
export declare function createI18nSetup<TStringKeyEnum extends AnyBrandedEnum>(config: I18nSetupConfig & {
|
|
9
|
+
readonly stringKeyEnum: TStringKeyEnum;
|
|
10
|
+
}): I18nSetupResult<TStringKeyEnum>;
|
|
11
|
+
//# sourceMappingURL=create-i18n-setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-i18n-setup.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/create-i18n-setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,+BAA+B,CAAC;AAQvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAIhF,wBAAgB,eAAe,CAAC,cAAc,SAAS,cAAc,EACnE,MAAM,EAAE,eAAe,GAAG;IAAE,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAA;CAAE,GACnE,eAAe,CAAC,cAAc,CAAC,CA+GjC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Factory function that creates a complete i18n setup from a config object.
|
|
4
|
+
* Replaces ~200 lines of boilerplate per consumer.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.createI18nSetup = createI18nSetup;
|
|
8
|
+
const i18n_engine_1 = require("./core/i18n-engine");
|
|
9
|
+
const core_i18n_1 = require("./core-i18n");
|
|
10
|
+
const global_active_context_1 = require("./global-active-context");
|
|
11
|
+
const language_codes_1 = require("./language-codes");
|
|
12
|
+
function createI18nSetup(config) {
|
|
13
|
+
const instanceKey = config.instanceKey ?? 'default';
|
|
14
|
+
const defaultLanguage = config.defaultLanguage ?? language_codes_1.LanguageCodes.EN_US;
|
|
15
|
+
// 1. Create or reuse engine
|
|
16
|
+
const engine = i18n_engine_1.I18nEngine.registerIfNotExists(instanceKey, (0, core_i18n_1.createDefaultLanguages)(), {
|
|
17
|
+
defaultLanguage,
|
|
18
|
+
...(config.constants ? { constants: config.constants } : {}),
|
|
19
|
+
});
|
|
20
|
+
// 2. Register core component
|
|
21
|
+
const coreReg = (0, core_i18n_1.createCoreComponentRegistration)();
|
|
22
|
+
engine.registerIfNotExists({
|
|
23
|
+
id: coreReg.component.id,
|
|
24
|
+
strings: coreReg.strings,
|
|
25
|
+
});
|
|
26
|
+
// 3. Register library components
|
|
27
|
+
if (config.libraryComponents) {
|
|
28
|
+
for (const pkg of config.libraryComponents) {
|
|
29
|
+
engine.registerIfNotExists(pkg.config);
|
|
30
|
+
if (pkg.stringKeyEnum && !engine.hasStringKeyEnum(pkg.stringKeyEnum)) {
|
|
31
|
+
engine.registerStringKeyEnum(pkg.stringKeyEnum);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// 4. Register app component
|
|
36
|
+
engine.registerIfNotExists({
|
|
37
|
+
id: config.componentId,
|
|
38
|
+
strings: config.strings,
|
|
39
|
+
aliases: config.aliases ? [...config.aliases] : undefined,
|
|
40
|
+
});
|
|
41
|
+
if (!engine.hasStringKeyEnum(config.stringKeyEnum)) {
|
|
42
|
+
engine.registerStringKeyEnum(config.stringKeyEnum);
|
|
43
|
+
}
|
|
44
|
+
// 5. Initialize GlobalActiveContext
|
|
45
|
+
const globalContext = global_active_context_1.GlobalActiveContext.getInstance();
|
|
46
|
+
try {
|
|
47
|
+
globalContext.getContext(config.componentId);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
globalContext.createContext(defaultLanguage, defaultLanguage, config.componentId);
|
|
51
|
+
}
|
|
52
|
+
// 6. Build and return result
|
|
53
|
+
const getActiveContext = () => globalContext.getContext(config.componentId);
|
|
54
|
+
const translate = (key, variables, language, context) => {
|
|
55
|
+
const activeCtx = getActiveContext();
|
|
56
|
+
const activeContext = context ?? activeCtx.currentContext;
|
|
57
|
+
const lang = language ??
|
|
58
|
+
(activeContext === 'admin'
|
|
59
|
+
? activeCtx.adminLanguage
|
|
60
|
+
: activeCtx.language);
|
|
61
|
+
return engine.translateStringKey(key, variables, lang);
|
|
62
|
+
};
|
|
63
|
+
const safeTranslate = (key, variables, language, context) => {
|
|
64
|
+
const activeCtx = getActiveContext();
|
|
65
|
+
const activeContext = context ?? activeCtx.currentContext;
|
|
66
|
+
const lang = language ??
|
|
67
|
+
(activeContext === 'admin'
|
|
68
|
+
? activeCtx.adminLanguage
|
|
69
|
+
: activeCtx.language);
|
|
70
|
+
return engine.safeTranslateStringKey(key, variables, lang);
|
|
71
|
+
};
|
|
72
|
+
return {
|
|
73
|
+
engine,
|
|
74
|
+
translate,
|
|
75
|
+
safeTranslate,
|
|
76
|
+
get context() {
|
|
77
|
+
return getActiveContext();
|
|
78
|
+
},
|
|
79
|
+
setLanguage: (language) => globalContext.setUserLanguage(language, config.componentId),
|
|
80
|
+
setAdminLanguage: (language) => globalContext.setAdminLanguage(language, config.componentId),
|
|
81
|
+
setContext: (ctx) => globalContext.setLanguageContextSpace(ctx, config.componentId),
|
|
82
|
+
getLanguage: () => getActiveContext().language,
|
|
83
|
+
getAdminLanguage: () => getActiveContext().adminLanguage,
|
|
84
|
+
reset: () => {
|
|
85
|
+
i18n_engine_1.I18nEngine.removeInstance(instanceKey);
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=create-i18n-setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-i18n-setup.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/create-i18n-setup.ts"],"names":[],"mappings":"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"}
|
package/src/index.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export { I18nEngine as I18n } from './core/i18n-engine';
|
|
|
16
16
|
export declare function resetAll(): void;
|
|
17
17
|
export * from './branded-string-key';
|
|
18
18
|
export * from './branded-enum-utils';
|
|
19
|
+
export { createI18nSetup } from './create-i18n-setup';
|
|
19
20
|
export type { BrandedEnum, BrandedEnumValue, AnyBrandedEnum, } from '@digitaldefiance/branded-enum';
|
|
20
21
|
export * from './active-context';
|
|
21
22
|
export * from './component-definition';
|
package/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/index.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7D,cAAc,cAAc,CAAC;AAI7B,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAGxD,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAKD,cAAc,sBAAsB,CAAC;AAErC,cAAc,sBAAsB,CAAC;AAErC,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,GACf,MAAM,+BAA+B,CAAC;AAEvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AAExC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAEpC,OAAO,EACL,0BAA0B,IAAI,cAAc,EAC5C,0BAA0B,IAAI,oBAAoB,EAClD,wBAAwB,IAAI,kBAAkB,EAC9C,yBAAyB,IAAI,mBAAmB,GACjD,MAAM,uBAAuB,CAAC;AAE/B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGtE,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/index.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7D,cAAc,cAAc,CAAC;AAI7B,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,UAAU,IAAI,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAGxD,wBAAgB,QAAQ,IAAI,IAAI,CAE/B;AAKD,cAAc,sBAAsB,CAAC;AAErC,cAAc,sBAAsB,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,cAAc,GACf,MAAM,+BAA+B,CAAC;AAEvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AAExC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAEpC,OAAO,EACL,0BAA0B,IAAI,cAAc,EAC5C,0BAA0B,IAAI,oBAAoB,EAClD,wBAAwB,IAAI,kBAAkB,EAC9C,yBAAyB,IAAI,mBAAmB,GACjD,MAAM,uBAAuB,CAAC;AAE/B,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAE,gBAAgB,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGtE,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
|
package/src/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PluginI18n = exports.safeCoreTranslation = exports.getCoreTranslation = exports.createCoreI18nEngine = exports.createCoreI18n = exports.I18n = exports.Builder = exports.Timezone = exports.isValidTimezone = exports.getCurrencyFormat = exports.CurrencyCode = exports.createPluralString = exports.createGenderedString = void 0;
|
|
3
|
+
exports.PluginI18n = exports.safeCoreTranslation = exports.getCoreTranslation = exports.createCoreI18nEngine = exports.createCoreI18n = exports.createI18nSetup = exports.I18n = exports.Builder = exports.Timezone = exports.isValidTimezone = exports.getCurrencyFormat = exports.CurrencyCode = exports.createPluralString = exports.createGenderedString = void 0;
|
|
4
4
|
exports.resetAll = resetAll;
|
|
5
5
|
exports.resetAllI18nEngines = resetAllI18nEngines;
|
|
6
6
|
const tslib_1 = require("tslib");
|
|
@@ -45,6 +45,9 @@ function resetAll() {
|
|
|
45
45
|
tslib_1.__exportStar(require("./branded-string-key"), exports);
|
|
46
46
|
// Branded enum utilities for detection and extraction
|
|
47
47
|
tslib_1.__exportStar(require("./branded-enum-utils"), exports);
|
|
48
|
+
// Factory function for simplified i18n setup
|
|
49
|
+
var create_i18n_setup_1 = require("./create-i18n-setup");
|
|
50
|
+
Object.defineProperty(exports, "createI18nSetup", { enumerable: true, get: function () { return create_i18n_setup_1.createI18nSetup; } });
|
|
48
51
|
// Legacy exports (deprecated - for backwards compatibility)
|
|
49
52
|
tslib_1.__exportStar(require("./active-context"), exports);
|
|
50
53
|
tslib_1.__exportStar(require("./component-definition"), exports);
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/index.ts"],"names":[],"mappings":";;;AA0BA,4BAEC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/index.ts"],"names":[],"mappings":";;;AA0BA,4BAEC;AAoDD,kDAEC;;AAlFD,kCAAkC;AAClC,uBAAuB;AACvB,qDAA2B;AAC3B,iDAAuB;AACvB,mDAAyB;AACzB,mDAAyB;AACzB,uDAA6B;AAC7B,0DAAgC;AAChC,kDAAwB;AACxB,+DAAqC,CAAC,sBAAsB;AAC5D,kDAAwB;AACxB,yDAGgC,CAAC,6EAA6E;AAF5G,sHAAA,oBAAoB,OAAA;AACpB,oHAAA,kBAAkB,OAAA;AAEpB,6CAA6C;AAC7C,6CAAmE;AAA1D,wGAAA,YAAY,OAAA;AAAE,6GAAA,iBAAiB,OAAA;AACxC,6CAA6D;AAApD,2GAAA,eAAe,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAClC,uDAA6B;AAC7B,2DAA2D;AAC3D,+DAA+D;AAC/D,sBAAsB;AACtB,wDAAiE;AAAxD,uGAAA,WAAW,OAAW;AAC/B,kDAAwD;AAA/C,mGAAA,UAAU,OAAQ;AAC3B,gBAAgB;AAChB,oDAAgD;AAChD,SAAgB,QAAQ;IACtB,wBAAU,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AACD,gFAAgF;AAChF,uCAAuC;AACvC,gFAAgF;AAChF,kEAAkE;AAClE,+DAAqC;AACrC,sDAAsD;AACtD,+DAAqC;AACrC,6CAA6C;AAC7C,yDAAsD;AAA7C,oHAAA,eAAe,OAAA;AAOxB,4DAA4D;AAC5D,2DAAiC;AACjC,iEAAuC;AACvC,kEAAwC;AACxC,6FAA6F;AAC7F,mEAAyC;AACzC,+DAAqC;AACrC,+DAAqC;AACrC,sDAA4B;AAC5B,4DAAkC;AAClC,uEAA6C;AAC7C,0DAAgC;AAChC,kEAAwC;AACxC,gFAAsD;AACtD,2DAAiC;AACjC,+DAAqC;AACrC,4DAAkC;AAClC,2DAAiC;AACjC,gEAAsC;AACtC,qDAA2B;AAC3B,+DAAqC;AACrC,gEAAsC;AACtC,iEAAuC;AACvC,8DAAoC;AACpC,6BAA6B;AAC7B,6DAK+B;AAJ7B,qHAAA,0BAA0B,OAAkB;AAC5C,2HAAA,0BAA0B,OAAwB;AAClD,yHAAA,wBAAwB,OAAsB;AAC9C,0HAAA,yBAAyB,OAAuB;AAElD,uCAAuC;AACvC,gEAAsC;AACtC,2DAAsE;AAA7D,gHAAA,gBAAgB,OAAc;AACvC,2BAA2B;AAC3B,6DAAwD;AACxD,SAAgB,mBAAmB;IACjC,qCAAgB,CAAC,QAAQ,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AnyBrandedEnum } from '@digitaldefiance/branded-enum';
|
|
2
|
+
import type { ComponentConfig } from './component-config.interface';
|
|
3
|
+
/**
|
|
4
|
+
* Bundles a ComponentConfig with its optional branded string key enum.
|
|
5
|
+
* Library authors export functions returning this type so the factory
|
|
6
|
+
* can auto-register both the component and its enum in one step.
|
|
7
|
+
*/
|
|
8
|
+
export interface I18nComponentPackage {
|
|
9
|
+
/** The component configuration for registration */
|
|
10
|
+
readonly config: ComponentConfig;
|
|
11
|
+
/** Optional branded string key enum for direct translateStringKey support */
|
|
12
|
+
readonly stringKeyEnum?: AnyBrandedEnum;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=i18n-component-package.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-component-package.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/i18n-component-package.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC;CACzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-component-package.interface.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/i18n-component-package.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { AnyBrandedEnum } from '@digitaldefiance/branded-enum';
|
|
2
|
+
import type { PluralString } from '../types/plural-types';
|
|
3
|
+
import type { I18nComponentPackage } from './i18n-component-package.interface';
|
|
4
|
+
/**
|
|
5
|
+
* Configuration for the createI18nSetup factory function.
|
|
6
|
+
*/
|
|
7
|
+
export interface I18nSetupConfig {
|
|
8
|
+
/** Unique component ID for the application */
|
|
9
|
+
readonly componentId: string;
|
|
10
|
+
/** Branded string key enum for the application component */
|
|
11
|
+
readonly stringKeyEnum: AnyBrandedEnum;
|
|
12
|
+
/** Translation strings organized by language code, then by key */
|
|
13
|
+
readonly strings: Record<string, Record<string, string | PluralString>>;
|
|
14
|
+
/** Optional aliases for the application component */
|
|
15
|
+
readonly aliases?: readonly string[];
|
|
16
|
+
/** Optional constants to merge into the engine */
|
|
17
|
+
readonly constants?: Record<string, unknown>;
|
|
18
|
+
/** Library component packages to register before the app component */
|
|
19
|
+
readonly libraryComponents?: readonly I18nComponentPackage[];
|
|
20
|
+
/** Default language code (defaults to 'en-US') */
|
|
21
|
+
readonly defaultLanguage?: string;
|
|
22
|
+
/** Engine instance key (defaults to 'default') */
|
|
23
|
+
readonly instanceKey?: string;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=i18n-setup-config.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-setup-config.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/i18n-setup-config.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IACvC,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC;IACxE,qDAAqD;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,kDAAkD;IAClD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,sEAAsE;IACtE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC7D,kDAAkD;IAClD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,kDAAkD;IAClD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-setup-config.interface.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/i18n-setup-config.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { AnyBrandedEnum, BrandedEnumValue } from '@digitaldefiance/branded-enum';
|
|
2
|
+
import type { LanguageContextSpace } from '../types';
|
|
3
|
+
import type { IActiveContext } from './active-context.interface';
|
|
4
|
+
import type { II18nEngine } from './i18n-engine.interface';
|
|
5
|
+
/**
|
|
6
|
+
* Return type of createI18nSetup. Contains everything a consumer needs
|
|
7
|
+
* for i18n: the engine, translate helpers, context, and language management.
|
|
8
|
+
*/
|
|
9
|
+
export interface I18nSetupResult<TStringKeyEnum extends AnyBrandedEnum = AnyBrandedEnum> {
|
|
10
|
+
/** The I18nEngine instance */
|
|
11
|
+
readonly engine: II18nEngine;
|
|
12
|
+
/** Translate a branded string key value. Throws on missing translation. */
|
|
13
|
+
readonly translate: (key: BrandedEnumValue<TStringKeyEnum>, variables?: Record<string, string | number>, language?: string, context?: LanguageContextSpace) => string;
|
|
14
|
+
/** Safe translate — returns placeholder on failure, never throws. */
|
|
15
|
+
readonly safeTranslate: (key: BrandedEnumValue<TStringKeyEnum>, variables?: Record<string, string | number>, language?: string, context?: LanguageContextSpace) => string;
|
|
16
|
+
/** The active context for this setup */
|
|
17
|
+
readonly context: IActiveContext<string>;
|
|
18
|
+
/** Set the user-facing language */
|
|
19
|
+
readonly setLanguage: (language: string) => void;
|
|
20
|
+
/** Set the admin language */
|
|
21
|
+
readonly setAdminLanguage: (language: string) => void;
|
|
22
|
+
/** Set the language context space (user vs admin) */
|
|
23
|
+
readonly setContext: (context: LanguageContextSpace) => void;
|
|
24
|
+
/** Get the current user-facing language */
|
|
25
|
+
readonly getLanguage: () => string;
|
|
26
|
+
/** Get the current admin language */
|
|
27
|
+
readonly getAdminLanguage: () => string;
|
|
28
|
+
/** Reset the engine instance and context (useful for testing) */
|
|
29
|
+
readonly reset: () => void;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=i18n-setup-result.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-setup-result.interface.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/i18n-setup-result.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D;;;GAGG;AACH,MAAM,WAAW,eAAe,CAC9B,cAAc,SAAS,cAAc,GAAG,cAAc;IAEtD,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,EAAE,CAClB,GAAG,EAAE,gBAAgB,CAAC,cAAc,CAAC,EACrC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAC3C,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,oBAAoB,KAC3B,MAAM,CAAC;IACZ,qEAAqE;IACrE,QAAQ,CAAC,aAAa,EAAE,CACtB,GAAG,EAAE,gBAAgB,CAAC,cAAc,CAAC,EACrC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAC3C,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,oBAAoB,KAC3B,MAAM,CAAC;IACZ,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACzC,mCAAmC;IACnC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,6BAA6B;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC7D,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,CAAC;IACnC,qCAAqC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,MAAM,CAAC;IACxC,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-setup-result.interface.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/i18n-setup-result.interface.ts"],"names":[],"mappings":""}
|
|
@@ -10,4 +10,7 @@ export type * from './i18n-engine.interface';
|
|
|
10
10
|
export type * from './language-definition.interface';
|
|
11
11
|
export type * from './translation-options.interface';
|
|
12
12
|
export type * from './validation-result.interface';
|
|
13
|
+
export type * from './i18n-component-package.interface';
|
|
14
|
+
export type * from './i18n-setup-config.interface';
|
|
15
|
+
export type * from './i18n-setup-result.interface';
|
|
13
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,mBAAmB,4BAA4B,CAAC;AAChD,mBAAmB,8BAA8B,CAAC;AAClD,mBAAmB,2BAA2B,CAAC;AAC/C,mBAAmB,yBAAyB,CAAC;AAC7C,mBAAmB,yBAAyB,CAAC;AAC7C,mBAAmB,iCAAiC,CAAC;AACrD,mBAAmB,iCAAiC,CAAC;AACrD,mBAAmB,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/interfaces/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,mBAAmB,4BAA4B,CAAC;AAChD,mBAAmB,8BAA8B,CAAC;AAClD,mBAAmB,2BAA2B,CAAC;AAC/C,mBAAmB,yBAAyB,CAAC;AAC7C,mBAAmB,yBAAyB,CAAC;AAC7C,mBAAmB,iCAAiC,CAAC;AACrD,mBAAmB,iCAAiC,CAAC;AACrD,mBAAmB,+BAA+B,CAAC;AACnD,mBAAmB,oCAAoC,CAAC;AACxD,mBAAmB,+BAA+B,CAAC;AACnD,mBAAmB,+BAA+B,CAAC"}
|