@digitaldefiance/i18n-lib 4.6.1 → 4.6.3
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 +76 -5
- package/package.json +5 -1
- package/src/branded-constants-schema.d.ts +29 -0
- package/src/branded-constants-schema.d.ts.map +1 -0
- package/src/branded-constants-schema.js +34 -0
- package/src/branded-constants-schema.js.map +1 -0
- package/src/branded-translation-options.d.ts +38 -0
- package/src/branded-translation-options.d.ts.map +1 -0
- package/src/branded-translation-options.js +54 -0
- package/src/branded-translation-options.js.map +1 -0
- package/src/branded-validation-error-formatter.d.ts +71 -0
- package/src/branded-validation-error-formatter.d.ts.map +1 -0
- package/src/branded-validation-error-formatter.js +107 -0
- package/src/branded-validation-error-formatter.js.map +1 -0
- package/src/builders/i18n-builder.d.ts +2 -2
- package/src/builders/i18n-builder.d.ts.map +1 -1
- package/src/builders/i18n-builder.js +0 -1
- package/src/builders/i18n-builder.js.map +1 -1
- package/src/component-registry.d.ts +2 -1
- package/src/component-registry.d.ts.map +1 -1
- package/src/component-registry.js.map +1 -1
- package/src/core/component-store.d.ts +3 -2
- package/src/core/component-store.d.ts.map +1 -1
- package/src/core/component-store.js +0 -1
- package/src/core/component-store.js.map +1 -1
- package/src/core/constants-registry.d.ts +33 -6
- package/src/core/constants-registry.d.ts.map +1 -1
- package/src/core/constants-registry.js +58 -2
- package/src/core/constants-registry.js.map +1 -1
- package/src/core/i18n-engine.d.ts +15 -6
- package/src/core/i18n-engine.d.ts.map +1 -1
- package/src/core/i18n-engine.js +12 -2
- package/src/core/i18n-engine.js.map +1 -1
- package/src/create-i18n-setup.d.ts.map +1 -1
- package/src/create-i18n-setup.js +5 -1
- package/src/create-i18n-setup.js.map +1 -1
- package/src/errors/i18n-error.d.ts +13 -0
- package/src/errors/i18n-error.d.ts.map +1 -1
- package/src/errors/i18n-error.js +17 -0
- package/src/errors/i18n-error.js.map +1 -1
- package/src/index.d.ts +4 -0
- package/src/index.d.ts.map +1 -1
- package/src/index.js +14 -1
- package/src/index.js.map +1 -1
- package/src/interfaces/engine-config.interface.d.ts +2 -1
- package/src/interfaces/engine-config.interface.d.ts.map +1 -1
- package/src/interfaces/i18n-component-package.interface.d.ts +5 -1
- package/src/interfaces/i18n-component-package.interface.d.ts.map +1 -1
- package/src/interfaces/i18n-constants.interface.d.ts +65 -0
- package/src/interfaces/i18n-constants.interface.d.ts.map +1 -0
- package/src/interfaces/i18n-constants.interface.js +3 -0
- package/src/interfaces/i18n-constants.interface.js.map +1 -0
- package/src/interfaces/i18n-engine.interface.d.ts +13 -4
- package/src/interfaces/i18n-engine.interface.d.ts.map +1 -1
- package/src/interfaces/i18n-setup-config.interface.d.ts +2 -1
- package/src/interfaces/i18n-setup-config.interface.d.ts.map +1 -1
- package/src/interfaces/i18n-setup-result.interface.d.ts +3 -2
- package/src/interfaces/i18n-setup-result.interface.d.ts.map +1 -1
- package/src/interfaces/index.d.ts +1 -0
- package/src/interfaces/index.d.ts.map +1 -1
- package/src/registry-config.d.ts +2 -1
- package/src/registry-config.d.ts.map +1 -1
- package/src/utils/constants-validation.d.ts +51 -0
- package/src/utils/constants-validation.d.ts.map +1 -0
- package/src/utils/constants-validation.js +74 -0
- package/src/utils/constants-validation.js.map +1 -0
- package/src/utils/index.d.ts +1 -0
- package/src/utils/index.d.ts.map +1 -1
- package/src/utils/index.js +1 -0
- package/src/utils/index.js.map +1 -1
- package/src/utils/string-utils.d.ts +2 -1
- package/src/utils/string-utils.d.ts.map +1 -1
- package/src/utils/string-utils.js.map +1 -1
- package/src/utils.d.ts +2 -1
- package/src/utils.d.ts.map +1 -1
- package/src/utils.js.map +1 -1
package/README.md
CHANGED
|
@@ -591,6 +591,45 @@ engine.t('Price in {currency}', { currency: 'USD' }); // "Price in USD"
|
|
|
591
591
|
|
|
592
592
|
Constants are application-wide values available as template variables in all translations (e.g., `{Site}` in a translation string resolves to the registered value). The `ConstantsRegistry` provides structured, per-component registration with conflict detection and ownership tracking.
|
|
593
593
|
|
|
594
|
+
#### Type-Safe Constants with `II18nConstants`
|
|
595
|
+
|
|
596
|
+
All constants passed to the i18n system must satisfy the `II18nConstants` base interface. Library authors define component-specific interfaces extending it for compile-time safety:
|
|
597
|
+
|
|
598
|
+
```typescript
|
|
599
|
+
import type { II18nConstants } from '@digitaldefiance/i18n-lib';
|
|
600
|
+
|
|
601
|
+
// Define a typed constants interface for your component
|
|
602
|
+
export interface IMyAppI18nConstants extends II18nConstants {
|
|
603
|
+
Site: string;
|
|
604
|
+
SiteTagline: string;
|
|
605
|
+
ApiVersion: number;
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
// TypeScript enforces the shape at compile time
|
|
609
|
+
const constants: IMyAppI18nConstants = {
|
|
610
|
+
Site: 'Acme Corp',
|
|
611
|
+
SiteTagline: 'Building the future',
|
|
612
|
+
ApiVersion: 2,
|
|
613
|
+
};
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
The library ships two helper types for working with typed constants:
|
|
617
|
+
|
|
618
|
+
- `ConstantKeys<T>` — Extracts the string keys from a constants type
|
|
619
|
+
- `ConstantVariables<T>` — Builds a `Partial<Record<key, string | number>>` for translation variable overrides
|
|
620
|
+
|
|
621
|
+
```typescript
|
|
622
|
+
import type { ConstantKeys, ConstantVariables } from '@digitaldefiance/i18n-lib';
|
|
623
|
+
|
|
624
|
+
type Keys = ConstantKeys<IMyAppI18nConstants>;
|
|
625
|
+
// 'Site' | 'SiteTagline' | 'ApiVersion'
|
|
626
|
+
|
|
627
|
+
type Vars = ConstantVariables<IMyAppI18nConstants>;
|
|
628
|
+
// { Site?: string | number; SiteTagline?: string | number; ApiVersion?: string | number }
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
Suite Core ships `ISuiteCoreI18nConstants` (from `@digitaldefiance/suite-core-lib`) with the standard template variable keys used in its translation strings.
|
|
632
|
+
|
|
594
633
|
#### Registration Flow (via `createI18nSetup`)
|
|
595
634
|
|
|
596
635
|
Library packages declare default constants in their `I18nComponentPackage`. The app overrides them at runtime. The factory handles the ordering automatically:
|
|
@@ -643,16 +682,22 @@ engine.resolveConstantOwner('Site'); // 'my-app' (last updater wins)
|
|
|
643
682
|
Library authors can bundle default constants with their component package:
|
|
644
683
|
|
|
645
684
|
```typescript
|
|
646
|
-
import type { I18nComponentPackage } from '@digitaldefiance/i18n-lib';
|
|
685
|
+
import type { I18nComponentPackage, II18nConstants } from '@digitaldefiance/i18n-lib';
|
|
686
|
+
|
|
687
|
+
export interface IMyLibI18nConstants extends II18nConstants {
|
|
688
|
+
LibName: string;
|
|
689
|
+
LibVersion: string;
|
|
690
|
+
}
|
|
647
691
|
|
|
648
692
|
export function createMyLibComponentPackage(): I18nComponentPackage {
|
|
693
|
+
const constants: IMyLibI18nConstants = {
|
|
694
|
+
LibName: 'My Library',
|
|
695
|
+
LibVersion: '1.0.0',
|
|
696
|
+
};
|
|
649
697
|
return {
|
|
650
698
|
config: createMyLibComponentConfig(),
|
|
651
699
|
stringKeyEnum: MyLibStringKey,
|
|
652
|
-
constants
|
|
653
|
-
LibName: 'My Library',
|
|
654
|
-
LibVersion: '1.0.0',
|
|
655
|
-
},
|
|
700
|
+
constants,
|
|
656
701
|
};
|
|
657
702
|
}
|
|
658
703
|
```
|
|
@@ -685,6 +730,32 @@ engine.registerConstants('lib-b', { Site: 'Beta' });
|
|
|
685
730
|
|
|
686
731
|
Use `updateConstants` instead of `registerConstants` when you intentionally want to override.
|
|
687
732
|
|
|
733
|
+
#### Runtime Validation with `validateConstantsCoverage()`
|
|
734
|
+
|
|
735
|
+
Use `validateConstantsCoverage()` in tests to verify that all `{variable}` references in your translation templates have corresponding constant keys. This catches drift between templates and constants at test time:
|
|
736
|
+
|
|
737
|
+
```typescript
|
|
738
|
+
import { validateConstantsCoverage } from '@digitaldefiance/i18n-lib';
|
|
739
|
+
import { SuiteCoreComponentStrings } from '@digitaldefiance/suite-core-lib';
|
|
740
|
+
|
|
741
|
+
const constants = { Site: 'Test', SiteTagline: 'Tagline', SiteDescription: 'Desc' };
|
|
742
|
+
|
|
743
|
+
const result = validateConstantsCoverage(SuiteCoreComponentStrings, constants, {
|
|
744
|
+
ignoreVariables: ['count', 'name'], // runtime-only variables, not constants
|
|
745
|
+
});
|
|
746
|
+
|
|
747
|
+
expect(result.isValid).toBe(true);
|
|
748
|
+
expect(result.missingConstants).toEqual([]); // no template vars without constants
|
|
749
|
+
expect(result.unusedConstants).toEqual([]); // no constants without template refs
|
|
750
|
+
expect(result.referencedVariables).toContain('Site');
|
|
751
|
+
```
|
|
752
|
+
|
|
753
|
+
The result object contains:
|
|
754
|
+
- `isValid` — `true` if all template variables have matching constants
|
|
755
|
+
- `missingConstants` — variable names referenced in templates but missing from constants
|
|
756
|
+
- `unusedConstants` — constant keys registered but never referenced in any template
|
|
757
|
+
- `referencedVariables` — all variable names found in templates
|
|
758
|
+
|
|
688
759
|
**When to use:**
|
|
689
760
|
- **Constants**: Application-wide values that rarely change (Site, Version, SiteTagline)
|
|
690
761
|
- **Variables**: Request-specific or dynamic values passed to translate()
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digitaldefiance/i18n-lib",
|
|
3
|
-
"version": "4.6.
|
|
3
|
+
"version": "4.6.3",
|
|
4
4
|
"description": "i18n library with enum translation support",
|
|
5
5
|
"homepage": "https://github.com/Digital-Defiance/i18n-lib",
|
|
6
6
|
"repository": {
|
|
@@ -49,7 +49,11 @@
|
|
|
49
49
|
"moment-timezone": "^0.6.0",
|
|
50
50
|
"tslib": "^2.3.0"
|
|
51
51
|
},
|
|
52
|
+
"peerDependencies": {
|
|
53
|
+
"@digitaldefiance/branded-interface": "^0.0.4"
|
|
54
|
+
},
|
|
52
55
|
"devDependencies": {
|
|
56
|
+
"@digitaldefiance/branded-interface": "^0.0.4",
|
|
53
57
|
"@typescript-eslint/eslint-plugin": "^8.53.1",
|
|
54
58
|
"@typescript-eslint/parser": "^8.53.1",
|
|
55
59
|
"eslint-plugin-import": "^2.32.0",
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper for creating branded interface definitions for i18n constants schemas.
|
|
3
|
+
*
|
|
4
|
+
* Wraps `createBrandedInterface` from `@digitaldefiance/branded-interface`
|
|
5
|
+
* with a simpler API tailored for constants schema creation.
|
|
6
|
+
*
|
|
7
|
+
* @module branded-constants-schema
|
|
8
|
+
*/
|
|
9
|
+
import type { BrandedInterfaceDefinition, FieldDescriptor } from '@digitaldefiance/branded-interface';
|
|
10
|
+
/**
|
|
11
|
+
* Creates a branded interface definition for validating i18n constants.
|
|
12
|
+
*
|
|
13
|
+
* This is a convenience wrapper around `createBrandedInterface` that provides
|
|
14
|
+
* a simpler API for defining constants schemas with field descriptors.
|
|
15
|
+
*
|
|
16
|
+
* @param id - Unique identifier for the constants schema
|
|
17
|
+
* @param fields - Record mapping field names to their descriptors
|
|
18
|
+
* @returns A `BrandedInterfaceDefinition` that can be used for validation
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const MyConstantsSchema = createConstantsSchema<MyConstants>('MyConstants', {
|
|
23
|
+
* siteName: { type: 'string' },
|
|
24
|
+
* maxRetries: { type: 'number', validate: (v) => typeof v === 'number' && v > 0 },
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export declare function createConstantsSchema<T extends Record<string, unknown>>(id: string, fields: Record<keyof T & string, FieldDescriptor>): BrandedInterfaceDefinition<T>;
|
|
29
|
+
//# sourceMappingURL=branded-constants-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branded-constants-schema.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/branded-constants-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EACV,0BAA0B,EAC1B,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAE5C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrE,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,eAAe,CAAC,GAChD,0BAA0B,CAAC,CAAC,CAAC,CAE/B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Helper for creating branded interface definitions for i18n constants schemas.
|
|
4
|
+
*
|
|
5
|
+
* Wraps `createBrandedInterface` from `@digitaldefiance/branded-interface`
|
|
6
|
+
* with a simpler API tailored for constants schema creation.
|
|
7
|
+
*
|
|
8
|
+
* @module branded-constants-schema
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.createConstantsSchema = createConstantsSchema;
|
|
12
|
+
const branded_interface_1 = require("@digitaldefiance/branded-interface");
|
|
13
|
+
/**
|
|
14
|
+
* Creates a branded interface definition for validating i18n constants.
|
|
15
|
+
*
|
|
16
|
+
* This is a convenience wrapper around `createBrandedInterface` that provides
|
|
17
|
+
* a simpler API for defining constants schemas with field descriptors.
|
|
18
|
+
*
|
|
19
|
+
* @param id - Unique identifier for the constants schema
|
|
20
|
+
* @param fields - Record mapping field names to their descriptors
|
|
21
|
+
* @returns A `BrandedInterfaceDefinition` that can be used for validation
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* const MyConstantsSchema = createConstantsSchema<MyConstants>('MyConstants', {
|
|
26
|
+
* siteName: { type: 'string' },
|
|
27
|
+
* maxRetries: { type: 'number', validate: (v) => typeof v === 'number' && v > 0 },
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
function createConstantsSchema(id, fields) {
|
|
32
|
+
return (0, branded_interface_1.createBrandedInterface)(id, fields);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=branded-constants-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branded-constants-schema.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/branded-constants-schema.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AA0BH,sDAKC;AA7BD,0EAA4E;AAM5E;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,qBAAqB,CACnC,EAAU,EACV,MAAiD;IAEjD,OAAO,IAAA,0CAAsB,EAAI,EAAE,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Branded interface definition for TranslationOptions.
|
|
3
|
+
*
|
|
4
|
+
* Provides runtime validation for translation option objects, catching
|
|
5
|
+
* invalid variable types or malformed language codes before they reach
|
|
6
|
+
* the translation pipeline.
|
|
7
|
+
*
|
|
8
|
+
* @module branded-translation-options
|
|
9
|
+
*/
|
|
10
|
+
import type { BrandedInstance, InterfaceSafeParseResult } from '@digitaldefiance/branded-interface';
|
|
11
|
+
/**
|
|
12
|
+
* Branded interface definition for TranslationOptions with field-level validation.
|
|
13
|
+
*
|
|
14
|
+
* - `variables`: optional plain object with string keys and string/number values
|
|
15
|
+
* - `language`: optional non-empty string
|
|
16
|
+
* - `fallback`: optional string
|
|
17
|
+
*/
|
|
18
|
+
export declare const BrandedTranslationOptions: import("@digitaldefiance/branded-interface", { with: { "resolution-mode": "import" } }).BrandedInterfaceDefinition<{
|
|
19
|
+
variables?: Record<string, string | number>;
|
|
20
|
+
language?: string;
|
|
21
|
+
fallback?: string;
|
|
22
|
+
}>;
|
|
23
|
+
/**
|
|
24
|
+
* Safely parses a plain object against the BrandedTranslationOptions definition.
|
|
25
|
+
*
|
|
26
|
+
* Returns a discriminated union result:
|
|
27
|
+
* - `{ success: true, value: BrandedInstance<TranslationOptions> }` on success
|
|
28
|
+
* - `{ success: false, error: { message, code, ... } }` on failure
|
|
29
|
+
*
|
|
30
|
+
* @param value - The value to validate
|
|
31
|
+
* @returns A safe parse result
|
|
32
|
+
*/
|
|
33
|
+
export declare function safeParseTranslationOptions(value: unknown): InterfaceSafeParseResult<BrandedInstance<{
|
|
34
|
+
variables?: Record<string, string | number>;
|
|
35
|
+
language?: string;
|
|
36
|
+
fallback?: string;
|
|
37
|
+
}>>;
|
|
38
|
+
//# sourceMappingURL=branded-translation-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branded-translation-options.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/branded-translation-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EACV,eAAe,EACf,wBAAwB,EACzB,MAAM,oCAAoC,CAAC;AAE5C;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB;gBACxB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;eAChC,MAAM;eACN,MAAM;EAuBjB,CAAC;AAEH;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,OAAO,GACb,wBAAwB,CACzB,eAAe,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC,CACH,CAEA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Branded interface definition for TranslationOptions.
|
|
4
|
+
*
|
|
5
|
+
* Provides runtime validation for translation option objects, catching
|
|
6
|
+
* invalid variable types or malformed language codes before they reach
|
|
7
|
+
* the translation pipeline.
|
|
8
|
+
*
|
|
9
|
+
* @module branded-translation-options
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.BrandedTranslationOptions = void 0;
|
|
13
|
+
exports.safeParseTranslationOptions = safeParseTranslationOptions;
|
|
14
|
+
const branded_interface_1 = require("@digitaldefiance/branded-interface");
|
|
15
|
+
/**
|
|
16
|
+
* Branded interface definition for TranslationOptions with field-level validation.
|
|
17
|
+
*
|
|
18
|
+
* - `variables`: optional plain object with string keys and string/number values
|
|
19
|
+
* - `language`: optional non-empty string
|
|
20
|
+
* - `fallback`: optional string
|
|
21
|
+
*/
|
|
22
|
+
exports.BrandedTranslationOptions = (0, branded_interface_1.createBrandedInterface)('I18nTranslationOptions', {
|
|
23
|
+
variables: {
|
|
24
|
+
type: 'object',
|
|
25
|
+
optional: true,
|
|
26
|
+
validate: (v) => typeof v === 'object' &&
|
|
27
|
+
v !== null &&
|
|
28
|
+
!Array.isArray(v) &&
|
|
29
|
+
Object.values(v).every((val) => typeof val === 'string' || typeof val === 'number'),
|
|
30
|
+
},
|
|
31
|
+
language: {
|
|
32
|
+
type: 'string',
|
|
33
|
+
optional: true,
|
|
34
|
+
validate: (v) => typeof v === 'string' && v.trim().length > 0,
|
|
35
|
+
},
|
|
36
|
+
fallback: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
optional: true,
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
/**
|
|
42
|
+
* Safely parses a plain object against the BrandedTranslationOptions definition.
|
|
43
|
+
*
|
|
44
|
+
* Returns a discriminated union result:
|
|
45
|
+
* - `{ success: true, value: BrandedInstance<TranslationOptions> }` on success
|
|
46
|
+
* - `{ success: false, error: { message, code, ... } }` on failure
|
|
47
|
+
*
|
|
48
|
+
* @param value - The value to validate
|
|
49
|
+
* @returns A safe parse result
|
|
50
|
+
*/
|
|
51
|
+
function safeParseTranslationOptions(value) {
|
|
52
|
+
return (0, branded_interface_1.safeParseInterface)(value, exports.BrandedTranslationOptions);
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=branded-translation-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branded-translation-options.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/branded-translation-options.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAwDH,kEAUC;AAhED,0EAG4C;AAM5C;;;;;;GAMG;AACU,QAAA,yBAAyB,GAAG,IAAA,0CAAsB,EAI5D,wBAAwB,EAAE;IAC3B,SAAS,EAAE;QACT,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,CAAC,CAAU,EAAW,EAAE,CAChC,OAAO,CAAC,KAAK,QAAQ;YACrB,CAAC,KAAK,IAAI;YACV,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACjB,MAAM,CAAC,MAAM,CAAC,CAA4B,CAAC,CAAC,KAAK,CAC/C,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,CAC5D;KACJ;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,CAAC,CAAU,EAAW,EAAE,CAChC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;KAC/C;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;KACf;CACF,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,SAAgB,2BAA2B,CACzC,KAAc;IAQd,OAAO,IAAA,sCAAkB,EAAC,KAAK,EAAE,iCAAyB,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Branded Validation Error Formatter
|
|
3
|
+
*
|
|
4
|
+
* Bridges branded-interface validation failures to translated error messages
|
|
5
|
+
* via the i18n translation engine. Supports configurable key patterns and
|
|
6
|
+
* a fallback language chain.
|
|
7
|
+
*
|
|
8
|
+
* @module branded-validation-error-formatter
|
|
9
|
+
*/
|
|
10
|
+
import type { InterfaceSafeParseFailure } from '@digitaldefiance/branded-interface';
|
|
11
|
+
import type { II18nEngine } from './interfaces/i18n-engine.interface';
|
|
12
|
+
/**
|
|
13
|
+
* A single formatted validation error with a translated (or raw) message.
|
|
14
|
+
*/
|
|
15
|
+
export interface FormattedValidationError {
|
|
16
|
+
readonly field?: string;
|
|
17
|
+
readonly message: string;
|
|
18
|
+
readonly code: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Options for configuring the BrandedValidationErrorFormatter.
|
|
22
|
+
*/
|
|
23
|
+
export interface BrandedValidationErrorFormatterOptions {
|
|
24
|
+
/**
|
|
25
|
+
* Translation key pattern. Supports `{code}`, `{field}`, and `{interfaceId}` tokens.
|
|
26
|
+
* @default 'validation.{code}.{field}'
|
|
27
|
+
*/
|
|
28
|
+
readonly keyPattern?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Fallback language to try when the active language has no translation.
|
|
31
|
+
* @default 'en-US'
|
|
32
|
+
*/
|
|
33
|
+
readonly fallbackLanguage?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Formats branded-interface Safe_Parse failures into translated error messages.
|
|
37
|
+
*
|
|
38
|
+
* Fallback chain per error entry:
|
|
39
|
+
* 1. Translate using the engine's active language
|
|
40
|
+
* 2. Translate using the configured fallback language
|
|
41
|
+
* 3. Return the raw error message from the Safe_Parse result
|
|
42
|
+
*
|
|
43
|
+
* This class never throws — it always returns results gracefully.
|
|
44
|
+
*/
|
|
45
|
+
export declare class BrandedValidationErrorFormatter {
|
|
46
|
+
private readonly engine;
|
|
47
|
+
private readonly keyPattern;
|
|
48
|
+
private readonly fallbackLanguage;
|
|
49
|
+
constructor(engine: II18nEngine, options?: BrandedValidationErrorFormatterOptions);
|
|
50
|
+
/**
|
|
51
|
+
* Formats a Safe_Parse failure into an array of translated validation errors.
|
|
52
|
+
*
|
|
53
|
+
* - When the failure has N field errors (N > 0), produces N entries.
|
|
54
|
+
* - When the failure has 0 field errors, produces 1 entry using the error code.
|
|
55
|
+
*/
|
|
56
|
+
format(failure: InterfaceSafeParseFailure): FormattedValidationError[];
|
|
57
|
+
/**
|
|
58
|
+
* Resolves a translated message through the fallback chain.
|
|
59
|
+
*/
|
|
60
|
+
private resolveMessage;
|
|
61
|
+
/**
|
|
62
|
+
* Attempts to translate a key. Returns null if translation fails or returns
|
|
63
|
+
* a placeholder/key-echo (indicating no translation exists).
|
|
64
|
+
*/
|
|
65
|
+
private tryTranslate;
|
|
66
|
+
/**
|
|
67
|
+
* Interpolates the key pattern with the given tokens.
|
|
68
|
+
*/
|
|
69
|
+
private interpolateKey;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=branded-validation-error-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branded-validation-error-formatter.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/branded-validation-error-formatter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,sCAAsC;IACrD;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAKD;;;;;;;;;GASG;AACH,qBAAa,+BAA+B;IAKxC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;gBAGvB,MAAM,EAAE,WAAW,EACpC,OAAO,CAAC,EAAE,sCAAsC;IAOlD;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,yBAAyB,GAAG,wBAAwB,EAAE;IA+BtE;;OAEG;IACH,OAAO,CAAC,cAAc;IA6BtB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAuBpB;;OAEG;IACH,OAAO,CAAC,cAAc;CAUvB"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Branded Validation Error Formatter
|
|
4
|
+
*
|
|
5
|
+
* Bridges branded-interface validation failures to translated error messages
|
|
6
|
+
* via the i18n translation engine. Supports configurable key patterns and
|
|
7
|
+
* a fallback language chain.
|
|
8
|
+
*
|
|
9
|
+
* @module branded-validation-error-formatter
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.BrandedValidationErrorFormatter = void 0;
|
|
13
|
+
const DEFAULT_KEY_PATTERN = 'validation.{code}.{field}';
|
|
14
|
+
const DEFAULT_FALLBACK_LANGUAGE = 'en-US';
|
|
15
|
+
/**
|
|
16
|
+
* Formats branded-interface Safe_Parse failures into translated error messages.
|
|
17
|
+
*
|
|
18
|
+
* Fallback chain per error entry:
|
|
19
|
+
* 1. Translate using the engine's active language
|
|
20
|
+
* 2. Translate using the configured fallback language
|
|
21
|
+
* 3. Return the raw error message from the Safe_Parse result
|
|
22
|
+
*
|
|
23
|
+
* This class never throws — it always returns results gracefully.
|
|
24
|
+
*/
|
|
25
|
+
class BrandedValidationErrorFormatter {
|
|
26
|
+
engine;
|
|
27
|
+
keyPattern;
|
|
28
|
+
fallbackLanguage;
|
|
29
|
+
constructor(engine, options) {
|
|
30
|
+
this.engine = engine;
|
|
31
|
+
this.keyPattern = options?.keyPattern ?? DEFAULT_KEY_PATTERN;
|
|
32
|
+
this.fallbackLanguage =
|
|
33
|
+
options?.fallbackLanguage ?? DEFAULT_FALLBACK_LANGUAGE;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Formats a Safe_Parse failure into an array of translated validation errors.
|
|
37
|
+
*
|
|
38
|
+
* - When the failure has N field errors (N > 0), produces N entries.
|
|
39
|
+
* - When the failure has 0 field errors, produces 1 entry using the error code.
|
|
40
|
+
*/
|
|
41
|
+
format(failure) {
|
|
42
|
+
const { error } = failure;
|
|
43
|
+
const fieldErrors = error.fieldErrors;
|
|
44
|
+
if (fieldErrors && fieldErrors.length > 0) {
|
|
45
|
+
return fieldErrors.map((fe) => ({
|
|
46
|
+
field: fe.field,
|
|
47
|
+
message: this.resolveMessage(fe.field, error.code, error.interfaceId, fe.message),
|
|
48
|
+
code: error.code,
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
// No field errors — produce a single entry using the error code as key
|
|
52
|
+
return [
|
|
53
|
+
{
|
|
54
|
+
message: this.resolveMessage(undefined, error.code, error.interfaceId, error.message),
|
|
55
|
+
code: error.code,
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Resolves a translated message through the fallback chain.
|
|
61
|
+
*/
|
|
62
|
+
resolveMessage(field, code, interfaceId, rawMessage) {
|
|
63
|
+
const key = this.interpolateKey(field, code, interfaceId);
|
|
64
|
+
const componentId = interfaceId ?? 'validation';
|
|
65
|
+
// 1. Try active language
|
|
66
|
+
const activeResult = this.tryTranslate(componentId, key);
|
|
67
|
+
if (activeResult !== null) {
|
|
68
|
+
return activeResult;
|
|
69
|
+
}
|
|
70
|
+
// 2. Try fallback language
|
|
71
|
+
const fallbackResult = this.tryTranslate(componentId, key, this.fallbackLanguage);
|
|
72
|
+
if (fallbackResult !== null) {
|
|
73
|
+
return fallbackResult;
|
|
74
|
+
}
|
|
75
|
+
// 3. Return raw error message
|
|
76
|
+
return rawMessage;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Attempts to translate a key. Returns null if translation fails or returns
|
|
80
|
+
* a placeholder/key-echo (indicating no translation exists).
|
|
81
|
+
*/
|
|
82
|
+
tryTranslate(componentId, key, language) {
|
|
83
|
+
try {
|
|
84
|
+
const result = this.engine.translate(componentId, key, undefined, language);
|
|
85
|
+
// If the engine returns the key itself or a bracketed placeholder,
|
|
86
|
+
// treat it as "no translation found"
|
|
87
|
+
if (result === key || result === `[${key}]` || result === `{${key}}`) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Interpolates the key pattern with the given tokens.
|
|
98
|
+
*/
|
|
99
|
+
interpolateKey(field, code, interfaceId) {
|
|
100
|
+
return this.keyPattern
|
|
101
|
+
.replace(/\{code\}/g, code)
|
|
102
|
+
.replace(/\{field\}/g, field ?? '')
|
|
103
|
+
.replace(/\{interfaceId\}/g, interfaceId ?? '');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.BrandedValidationErrorFormatter = BrandedValidationErrorFormatter;
|
|
107
|
+
//# sourceMappingURL=branded-validation-error-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branded-validation-error-formatter.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/branded-validation-error-formatter.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA8BH,MAAM,mBAAmB,GAAG,2BAA2B,CAAC;AACxD,MAAM,yBAAyB,GAAG,OAAO,CAAC;AAE1C;;;;;;;;;GASG;AACH,MAAa,+BAA+B;IAKvB;IAJF,UAAU,CAAS;IACnB,gBAAgB,CAAS;IAE1C,YACmB,MAAmB,EACpC,OAAgD;QAD/B,WAAM,GAAN,MAAM,CAAa;QAGpC,IAAI,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,mBAAmB,CAAC;QAC7D,IAAI,CAAC,gBAAgB;YACnB,OAAO,EAAE,gBAAgB,IAAI,yBAAyB,CAAC;IAC3D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,OAAkC;QACvC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;QAC1B,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAEtC,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC9B,KAAK,EAAE,EAAE,CAAC,KAAK;gBACf,OAAO,EAAE,IAAI,CAAC,cAAc,CAC1B,EAAE,CAAC,KAAK,EACR,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,WAAW,EACjB,EAAE,CAAC,OAAO,CACX;gBACD,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC,CAAC,CAAC;QACN,CAAC;QAED,uEAAuE;QACvE,OAAO;YACL;gBACE,OAAO,EAAE,IAAI,CAAC,cAAc,CAC1B,SAAS,EACT,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,OAAO,CACd;gBACD,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,cAAc,CACpB,KAAyB,EACzB,IAAY,EACZ,WAA+B,EAC/B,UAAkB;QAElB,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,WAAW,IAAI,YAAY,CAAC;QAEhD,yBAAyB;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACzD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,2BAA2B;QAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CACtC,WAAW,EACX,GAAG,EACH,IAAI,CAAC,gBAAgB,CACtB,CAAC;QACF,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,8BAA8B;QAC9B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;OAGG;IACK,YAAY,CAClB,WAAmB,EACnB,GAAW,EACX,QAAiB;QAEjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAClC,WAAW,EACX,GAAG,EACH,SAAS,EACT,QAAQ,CACT,CAAC;YACF,mEAAmE;YACnE,qCAAqC;YACrC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,IAAI,GAAG,GAAG,IAAI,MAAM,KAAK,IAAI,GAAG,GAAG,EAAE,CAAC;gBACrE,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CACpB,KAAyB,EACzB,IAAY,EACZ,WAA+B;QAE/B,OAAO,IAAI,CAAC,UAAU;aACnB,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC;aAC1B,OAAO,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;aAClC,OAAO,CAAC,kBAAkB,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;CACF;AA1HD,0EA0HC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { AnyBrandedEnum } from '@digitaldefiance/branded-enum';
|
|
5
5
|
import { I18nEngine } from '../core/i18n-engine';
|
|
6
|
-
import { EngineConfig, LanguageDefinition } from '../interfaces';
|
|
6
|
+
import { EngineConfig, II18nConstants, LanguageDefinition } from '../interfaces';
|
|
7
7
|
export declare class I18nBuilder {
|
|
8
8
|
private languages;
|
|
9
9
|
private config;
|
|
@@ -16,7 +16,7 @@ export declare class I18nBuilder {
|
|
|
16
16
|
withLanguages(languages: readonly LanguageDefinition[]): this;
|
|
17
17
|
withDefaultLanguage(languageId: string): this;
|
|
18
18
|
withFallbackLanguage(languageId: string): this;
|
|
19
|
-
withConstants(constants:
|
|
19
|
+
withConstants<T extends II18nConstants>(constants: T): this;
|
|
20
20
|
withValidation(validation: EngineConfig['validation']): this;
|
|
21
21
|
withInstanceKey(key: string): this;
|
|
22
22
|
withRegisterInstance(register: boolean): this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-builder.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/builders/i18n-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"i18n-builder.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/builders/i18n-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,kBAAkB,EACnB,MAAM,eAAe,CAAC;AAEvB,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,cAAc,CAAwB;IAE9C,OAAO;IAEP,MAAM,CAAC,MAAM,IAAI,WAAW;IAI5B,aAAa,CAAC,SAAS,EAAE,SAAS,kBAAkB,EAAE,GAAG,IAAI;IAK7D,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAK7C,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAK9C,aAAa,CAAC,CAAC,SAAS,cAAc,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI;IAK3D,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,IAAI;IAK5D,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKlC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAK7C,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAK3C;;;;OAIG;IACH,iBAAiB,CAAC,aAAa,EAAE,cAAc,GAAG,IAAI;IAKtD;;;OAGG;IACH,kBAAkB,CAAC,cAAc,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI;IAKnE,QAAQ,IAAI,IAAI;IAKhB,SAAS,IAAI,IAAI;IAKjB,KAAK,IAAI,UAAU;CAkBpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n-builder.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/builders/i18n-builder.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,uDAAuD;;;AAGvD,qDAAiD;
|
|
1
|
+
{"version":3,"file":"i18n-builder.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/builders/i18n-builder.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,uDAAuD;;;AAGvD,qDAAiD;AAOjD,MAAa,WAAW;IACd,SAAS,GAAyB,EAAE,CAAC;IACrC,MAAM,GAAiB,EAAE,CAAC;IAC1B,WAAW,GAAG,SAAS,CAAC;IACxB,gBAAgB,GAAG,IAAI,CAAC;IACxB,YAAY,GAAG,IAAI,CAAC;IACpB,cAAc,GAAqB,EAAE,CAAC;IAE9C,gBAAuB,CAAC;IAExB,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,WAAW,EAAE,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,SAAwC;QACpD,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,UAAkB;QACpC,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,UAAU,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB,CAAC,UAAkB;QACrC,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,UAAU,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,aAAa,CAA2B,SAAY;QAClD,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,UAAsC;QACnD,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CAAC,GAAW;QACzB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB,CAAC,QAAiB;QACpC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,UAAmB;QAClC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,aAA6B;QAC7C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,cAAyC;QAC1D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS;QACP,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,wBAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE;YACzD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;QAEH,gCAAgC;QAChC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1C,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AArGD,kCAqGC"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import type { AnyBrandedEnum } from '@digitaldefiance/branded-enum';
|
|
5
5
|
import { ComponentDefinition } from './component-definition';
|
|
6
6
|
import { ComponentRegistration } from './component-registration';
|
|
7
|
+
import type { II18nConstants } from './interfaces/i18n-constants.interface';
|
|
7
8
|
import { TranslationRequest } from './translation-request';
|
|
8
9
|
import { TranslationResponse } from './translation-response';
|
|
9
10
|
import { ComponentLanguageStrings, PartialComponentLanguageStrings } from './types';
|
|
@@ -24,7 +25,7 @@ export declare class ComponentRegistry<TLanguages extends string> {
|
|
|
24
25
|
* @param validationConfig - Configuration for validation rules.
|
|
25
26
|
* @param constants - Optional constants for variable replacement in templates.
|
|
26
27
|
*/
|
|
27
|
-
constructor(languages: readonly TLanguages[], validationConfig: ValidationConfig, constants?:
|
|
28
|
+
constructor(languages: readonly TLanguages[], validationConfig: ValidationConfig, constants?: II18nConstants);
|
|
28
29
|
/**
|
|
29
30
|
* Update the set of registered languages (for dynamic language addition).
|
|
30
31
|
* @param languages - Array of language codes to register.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-registry.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/component-registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,mBAAmB,EAEpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"component-registry.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/component-registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,cAAc,EAEf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,mBAAmB,EAEpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAG5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EACL,wBAAwB,EAExB,+BAA+B,EAEhC,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAoB,MAAM,qBAAqB,CAAC;AAEzE;;GAEG;AACH,qBAAa,iBAAiB,CAAC,UAAU,SAAS,MAAM;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAGvB;IACJ,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAG7B;IACJ,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAkB;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAiB;IAE5C;;;;;OAKG;gBAED,SAAS,EAAE,SAAS,UAAU,EAAE,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,CAAC,EAAE,cAAc;IAO5B;;;OAGG;IACI,yBAAyB,CAAC,SAAS,EAAE,SAAS,UAAU,EAAE,GAAG,IAAI;IAKxE;;;;;;OAMG;IACI,iBAAiB,CAAC,YAAY,SAAS,cAAc,EAC1D,YAAY,EAAE,qBAAqB,CAAC,YAAY,EAAE,UAAU,CAAC,GAC5D,gBAAgB;IA8DnB;;;;;;OAMG;IACI,sBAAsB,CAAC,WAAW,SAAS,MAAM,EACtD,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,+BAA+B,CAAC,WAAW,EAAE,UAAU,CAAC,GAChE,gBAAgB;IA8CnB;;;;;OAKG;IACI,cAAc,CAAC,WAAW,SAAS,MAAM,EAC9C,OAAO,EAAE,kBAAkB,CAAC,WAAW,EAAE,UAAU,CAAC,GACnD,mBAAmB;IA4EtB;;;OAGG;IACI,aAAa,IAAI,aAAa,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAI1E;;;;OAIG;IACI,YAAY,CAAC,YAAY,SAAS,cAAc,EACrD,WAAW,EAAE,MAAM,GAClB,mBAAmB,CAAC,YAAY,CAAC,GAAG,SAAS;IAMhD;;;;OAIG;IACI,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIjD;;;;OAIG;IACI,mBAAmB,CAAC,WAAW,SAAS,MAAM,EACnD,WAAW,EAAE,MAAM,GAClB,wBAAwB,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,SAAS;IAMhE;;;;OAIG;IACH,OAAO,CAAC,6BAA6B;IA0DrC;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;IAwCpC;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IA+BpB;;OAEG;IACI,kBAAkB,IAAI,IAAI;IAKjC;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAmC1B;;;;;;OAMG;IACI,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAaxD;;;;;OAKG;IACI,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAuBnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-registry.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/component-registry.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,uDAAuD;;;AAMvD,iEAGgC;
|
|
1
|
+
{"version":3,"file":"component-registry.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/component-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Component storage (no generics)
|
|
3
3
|
*/
|
|
4
4
|
import { ComponentConfig, ValidationResult } from '../interfaces';
|
|
5
|
+
import type { II18nConstants } from '../interfaces/i18n-constants.interface';
|
|
5
6
|
/**
|
|
6
7
|
* Class representing a storage for component configurations and translations.
|
|
7
8
|
*/
|
|
@@ -13,7 +14,7 @@ export declare class ComponentStore {
|
|
|
13
14
|
* Creates a new ComponentStore instance.
|
|
14
15
|
* @param constants - Optional constants to be used in variable replacement.
|
|
15
16
|
*/
|
|
16
|
-
constructor(constants?:
|
|
17
|
+
constructor(constants?: II18nConstants);
|
|
17
18
|
/**
|
|
18
19
|
* Registers a new component configuration.
|
|
19
20
|
* @param config - The component configuration to register.
|
|
@@ -84,7 +85,7 @@ export declare class ComponentStore {
|
|
|
84
85
|
* Sets constants for variable replacement.
|
|
85
86
|
* @param constants - The constants to set.
|
|
86
87
|
*/
|
|
87
|
-
setConstants(constants:
|
|
88
|
+
setConstants(constants: II18nConstants): void;
|
|
88
89
|
/**
|
|
89
90
|
* Clears all registered components and aliases.
|
|
90
91
|
*/
|