@digitaldefiance/i18n-lib 3.6.4 → 3.7.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.
Files changed (48) hide show
  1. package/README.md +120 -3
  2. package/package.json +1 -1
  3. package/src/errors/context-error.d.ts +33 -1
  4. package/src/errors/context-error.d.ts.map +1 -1
  5. package/src/errors/context-error.js +46 -3
  6. package/src/errors/context-error.js.map +1 -1
  7. package/src/errors/enhanced-error-base.d.ts +120 -0
  8. package/src/errors/enhanced-error-base.d.ts.map +1 -0
  9. package/src/errors/enhanced-error-base.js +165 -0
  10. package/src/errors/enhanced-error-base.js.map +1 -0
  11. package/src/errors/handleable.d.ts +38 -2
  12. package/src/errors/handleable.d.ts.map +1 -1
  13. package/src/errors/handleable.js +38 -2
  14. package/src/errors/handleable.js.map +1 -1
  15. package/src/errors/i18n-error.d.ts +91 -27
  16. package/src/errors/i18n-error.d.ts.map +1 -1
  17. package/src/errors/i18n-error.js +150 -40
  18. package/src/errors/i18n-error.js.map +1 -1
  19. package/src/errors/index.d.ts +1 -0
  20. package/src/errors/index.d.ts.map +1 -1
  21. package/src/errors/index.js +1 -0
  22. package/src/errors/index.js.map +1 -1
  23. package/src/errors/translatable-generic.d.ts +55 -1
  24. package/src/errors/translatable-generic.d.ts.map +1 -1
  25. package/src/errors/translatable-generic.js +64 -1
  26. package/src/errors/translatable-generic.js.map +1 -1
  27. package/src/errors/translatable-handleable-generic.d.ts +88 -1
  28. package/src/errors/translatable-handleable-generic.d.ts.map +1 -1
  29. package/src/errors/translatable-handleable-generic.js +77 -1
  30. package/src/errors/translatable-handleable-generic.js.map +1 -1
  31. package/src/errors/translatable.d.ts +55 -0
  32. package/src/errors/translatable.d.ts.map +1 -1
  33. package/src/errors/translatable.js +66 -0
  34. package/src/errors/translatable.js.map +1 -1
  35. package/src/errors/typed-handleable.d.ts +48 -0
  36. package/src/errors/typed-handleable.d.ts.map +1 -1
  37. package/src/errors/typed-handleable.js +48 -0
  38. package/src/errors/typed-handleable.js.map +1 -1
  39. package/src/errors/typed.d.ts +120 -4
  40. package/src/errors/typed.d.ts.map +1 -1
  41. package/src/errors/typed.js +120 -4
  42. package/src/errors/typed.js.map +1 -1
  43. package/src/icu/compiler.d.ts.map +1 -1
  44. package/src/icu/compiler.js +8 -2
  45. package/src/icu/compiler.js.map +1 -1
  46. package/src/icu/formatters/number-formatter.d.ts.map +1 -1
  47. package/src/icu/formatters/number-formatter.js +3 -0
  48. package/src/icu/formatters/number-formatter.js.map +1 -1
@@ -5,6 +5,54 @@ const core_i18n_1 = require("../core-i18n");
5
5
  const core_string_key_1 = require("../core-string-key");
6
6
  const handleable_1 = require("./handleable");
7
7
  const core_1 = require("../core");
8
+ /**
9
+ * TypedHandleableError with full i18n feature support.
10
+ *
11
+ * Combines typed errors with handleable error patterns and full i18n capabilities.
12
+ *
13
+ * **Supported i18n Features** (via translation strings):
14
+ * - ICU MessageFormat: plural, select, selectordinal
15
+ * - Pluralization: 37 languages with CLDR rules
16
+ * - Gender support: male, female, neutral, other
17
+ * - Number formatting: integer, currency, percent
18
+ * - Nested messages: up to 4 levels deep
19
+ *
20
+ * **Translation String Examples:**
21
+ * ```typescript
22
+ * // Define error types
23
+ * enum NetworkError {
24
+ * Timeout = 'timeout',
25
+ * RateLimit = 'rateLimit'
26
+ * }
27
+ *
28
+ * // Register translations with ICU
29
+ * engine.registerComponent({
30
+ * component: { id: 'network', stringKeys: ['timeout', 'rateLimit'] },
31
+ * strings: {
32
+ * 'en-US': {
33
+ * timeout: \"{count, plural, one {# request timed out} other {# requests timed out}} after {seconds, number, integer} seconds\",
34
+ * rateLimit: \"Rate limit exceeded. {remaining, number, integer} requests remaining. Resets in {minutes, number, integer} minutes.\"
35
+ * }
36
+ * }
37
+ * });
38
+ *
39
+ * // Use typed handleable error
40
+ * try {
41
+ * await apiCall();
42
+ * } catch (error) {
43
+ * throw new TypedHandleableError(
44
+ * 'network',
45
+ * NetworkError.Timeout,
46
+ * reasonMap,
47
+ * error,
48
+ * { retryable: true },
49
+ * 'en-US',
50
+ * { count: 1, seconds: 30 }
51
+ * );
52
+ * }
53
+ * // Result: \"1 request timed out after 30 seconds\"
54
+ * ```
55
+ */
8
56
  class TypedHandleableError extends handleable_1.HandleableError {
9
57
  componentId;
10
58
  type;
@@ -1 +1 @@
1
- {"version":3,"file":"typed-handleable.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/errors/typed-handleable.ts"],"names":[],"mappings":";;;AAAA,4CAAmD;AACnD,wDAAmD;AACnD,6CAA+C;AAK/C,kCAAqC;AAErC,MAAa,oBAIX,SAAQ,4BAAe;IAGP,WAAW,CAAS;IACpB,IAAI,CAAqB;IACzB,SAAS,CAAuC;IAChD,QAAQ,CAAU;IAClB,SAAS,CAAmC;IAE5D,YACE,WAAmB,EACnB,IAAwB,EACxB,SAA+C,EAC/C,MAAa,EACb,OAAgC,EAChC,QAAiB,EACjB,SAA2C;QAE3C,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,UAAU,GAAG,iBAAU,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,UAAU,CAAC,SAAS,CAClB,+BAAmB,EACnB,+BAAa,CAAC,mCAAmC,EACjD;gBACE,SAAS,EAAE,GAAa;aACzB,CACF,CACF,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,GAAW,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,GAAiB,CAAC;YACpC,MAAM,MAAM,GAAG,iBAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YACjF,OAAO,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,iDAAiD;QACjD,MAAM,gBAAgB,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;YAClB,gBAAgB,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACxC,CAAC;QAED,2DAA2D;QAC3D,MAAM,YAAY,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC9E,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAEtC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;IAEe,MAAM;QACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO;YACL,GAAG,QAAQ;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;CACF;AAvED,oDAuEC"}
1
+ {"version":3,"file":"typed-handleable.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/errors/typed-handleable.ts"],"names":[],"mappings":";;;AAAA,4CAAmD;AACnD,wDAAmD;AACnD,6CAA+C;AAK/C,kCAAqC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAa,oBAIX,SAAQ,4BAAe;IAGP,WAAW,CAAS;IACpB,IAAI,CAAqB;IACzB,SAAS,CAAuC;IAChD,QAAQ,CAAU;IAClB,SAAS,CAAmC;IAE5D,YACE,WAAmB,EACnB,IAAwB,EACxB,SAA+C,EAC/C,MAAa,EACb,OAAgC,EAChC,QAAiB,EACjB,SAA2C;QAE3C,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,UAAU,GAAG,iBAAU,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,UAAU,CAAC,SAAS,CAClB,+BAAmB,EACnB,+BAAa,CAAC,mCAAmC,EACjD;gBACE,SAAS,EAAE,GAAa;aACzB,CACF,CACF,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,GAAW,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,GAAiB,CAAC;YACpC,MAAM,MAAM,GAAG,iBAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YACjF,OAAO,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,iDAAiD;QACjD,MAAM,gBAAgB,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;YAClB,gBAAgB,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACxC,CAAC;QAED,2DAA2D;QAC3D,MAAM,YAAY,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC9E,KAAK,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAEtC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;IAEe,MAAM;QACpB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO;YACL,GAAG,QAAQ;YACX,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;CACF;AAvED,oDAuEC"}
@@ -6,7 +6,35 @@ export type { TranslationEngine };
6
6
  */
7
7
  export type CompleteReasonMap<TEnum extends Record<string, string | number>, TStringKey extends string> = Record<TEnum[keyof TEnum], TStringKey>;
8
8
  /**
9
- * Base typed error class with common patterns
9
+ * Base typed error class with full i18n feature support.
10
+ *
11
+ * **Supported i18n Features** (via translation strings):
12
+ * - ICU MessageFormat: plural, select, selectordinal
13
+ * - Pluralization: 37 languages with CLDR rules
14
+ * - Gender support: male, female, neutral, other
15
+ * - Number formatting: integer, currency, percent
16
+ * - Date/Time formatting: short, medium, long, full
17
+ * - Nested messages: up to 4 levels deep
18
+ *
19
+ * **Translation String Examples:**
20
+ * ```typescript
21
+ * // Register translations with ICU features
22
+ * engine.registerComponent({
23
+ * component: { id: 'errors', name: 'Errors', stringKeys: ['invalidCount'] },
24
+ * strings: {
25
+ * 'en-US': {
26
+ * invalidCount: "{count, plural, one {# item is invalid} other {# items are invalid}}"
27
+ * }
28
+ * }
29
+ * });
30
+ *
31
+ * // Use with typed error
32
+ * throw BaseTypedError.createTranslated(
33
+ * engine, 'errors', ErrorType.InvalidCount, reasonMap,
34
+ * { count: 5 }, 'en-US'
35
+ * );
36
+ * // Result: "5 items are invalid"
37
+ * ```
10
38
  */
11
39
  export declare abstract class BaseTypedError<TEnum extends Record<string, string>> extends Error {
12
40
  readonly type: TEnum[keyof TEnum];
@@ -22,7 +50,38 @@ export declare abstract class BaseTypedError<TEnum extends Record<string, string
22
50
  static createTranslated<TEnum extends Record<string, string>, TStringKey extends string, TError extends BaseTypedError<TEnum>>(this: new (type: TEnum[keyof TEnum], message: string, metadata?: Record<string, any>) => TError, engine: TranslationEngine, componentId: string, type: TEnum[keyof TEnum], reasonMap: CompleteReasonMap<TEnum, TStringKey>, variables?: Record<string, string | number>, language?: string, metadata?: Record<string, any>): TError;
23
51
  }
24
52
  /**
25
- * Legacy TypedError that ensures complete enum coverage (for backward compatibility)
53
+ * TypedError with complete enum coverage and full i18n feature support.
54
+ *
55
+ * **Supported i18n Features** (via translation strings):
56
+ * - ICU MessageFormat: plural, select, selectordinal
57
+ * - Pluralization: 37 languages with CLDR rules
58
+ * - Gender support: male, female, neutral, other
59
+ * - Number formatting: integer, currency, percent
60
+ * - Nested messages: up to 4 levels deep
61
+ *
62
+ * **Translation String Examples:**
63
+ * ```typescript
64
+ * // Define error types
65
+ * enum ValidationError {
66
+ * InvalidCount = 'invalidCount',
67
+ * ThresholdExceeded = 'thresholdExceeded'
68
+ * }
69
+ *
70
+ * // Register translations with ICU
71
+ * engine.registerComponent({
72
+ * component: { id: 'validation', stringKeys: ['invalidCount', 'thresholdExceeded'] },
73
+ * strings: {
74
+ * 'en-US': {
75
+ * invalidCount: "{count, plural, one {# error found} other {# errors found}}",
76
+ * thresholdExceeded: "Value {value, number, integer} exceeds limit"
77
+ * }
78
+ * }
79
+ * });
80
+ *
81
+ * // Use typed error
82
+ * throw new MyTypedError('validation', ValidationError.InvalidCount, reasonMap, 'en-US', { count: 3 });
83
+ * // Result: "3 errors found"
84
+ * ```
26
85
  */
27
86
  export declare abstract class TypedError<TEnum extends Record<string, string>, TStringKey extends string> extends Error {
28
87
  readonly componentId: string;
@@ -45,7 +104,39 @@ export declare abstract class PluginTypedError<TEnum extends Record<string, stri
45
104
  constructor(componentId: string, type: TEnum[keyof TEnum], reasonMap: CompleteReasonMap<TEnum, TStringKey>, language?: string | undefined, otherVars?: Record<string, string | number> | undefined);
46
105
  }
47
106
  /**
48
- * Component-based TypedError that works with the component registration system
107
+ * Component-based TypedError with full i18n feature support.
108
+ *
109
+ * **Supported i18n Features** (via translation strings):
110
+ * - ICU MessageFormat: plural, select, selectordinal
111
+ * - Pluralization: 37 languages with CLDR rules
112
+ * - Gender support: male, female, neutral, other
113
+ * - Number formatting: integer, currency, percent
114
+ * - SelectOrdinal: 1st, 2nd, 3rd formatting
115
+ * - Nested messages: complex multi-level patterns
116
+ *
117
+ * **Translation String Examples:**
118
+ * ```typescript
119
+ * // Define component errors
120
+ * enum UserError {
121
+ * AccountLocked = 'accountLocked',
122
+ * TooManyAttempts = 'tooManyAttempts'
123
+ * }
124
+ *
125
+ * // Register with ICU features
126
+ * engine.registerComponent({
127
+ * component: { id: 'user', stringKeys: ['accountLocked', 'tooManyAttempts'] },
128
+ * strings: {
129
+ * 'en-US': {
130
+ * accountLocked: "{gender, select, male {His account} female {Her account} other {Their account}} is locked",
131
+ * tooManyAttempts: "{count, plural, one {# attempt} other {# attempts}} failed. Try again in {minutes, number, integer} minutes."
132
+ * }
133
+ * }
134
+ * });
135
+ *
136
+ * // Use component error
137
+ * throw new MyComponentError('user', UserError.TooManyAttempts, reasonMap, 'en-US', { count: 5, minutes: 10 });
138
+ * // Result: "5 attempts failed. Try again in 10 minutes."
139
+ * ```
49
140
  */
50
141
  export declare abstract class ComponentTypedError<TEnum extends Record<string, string>, TStringKey extends string> extends Error {
51
142
  readonly componentId: string;
@@ -56,7 +147,32 @@ export declare abstract class ComponentTypedError<TEnum extends Record<string, s
56
147
  constructor(componentId: string, type: TEnum[keyof TEnum], reasonMap: CompleteReasonMap<TEnum, TStringKey>, language?: string | undefined, otherVars?: Record<string, string | number> | undefined);
57
148
  }
58
149
  /**
59
- * Core system TypedError using the core component strings
150
+ * Core system TypedError using core component strings with full i18n support.
151
+ *
152
+ * **Supported i18n Features** (via CoreStringKey translations):
153
+ * - ICU MessageFormat: plural, select, selectordinal
154
+ * - Pluralization: 37 languages with CLDR rules
155
+ * - Gender support: male, female, neutral, other
156
+ * - Number formatting: integer, currency, percent
157
+ * - Nested messages: complex patterns
158
+ *
159
+ * **Usage Example:**
160
+ * ```typescript
161
+ * // Define core error types
162
+ * enum CoreErrorType {
163
+ * InvalidOperation = 'invalidOperation',
164
+ * ResourceNotFound = 'resourceNotFound'
165
+ * }
166
+ *
167
+ * // Core strings already registered with ICU features
168
+ * const reasonMap: CompleteReasonMap<typeof CoreErrorType, CoreStringKey> = {
169
+ * [CoreErrorType.InvalidOperation]: CoreStringKey.Error_InvalidOperation,
170
+ * [CoreErrorType.ResourceNotFound]: CoreStringKey.Error_ResourceNotFound
171
+ * };
172
+ *
173
+ * // Use core typed error
174
+ * throw new MyCoreError(CoreErrorType.ResourceNotFound, reasonMap, 'en-US', { resource: 'user', id: 123 });
175
+ * ```
60
176
  */
61
177
  export declare abstract class CoreTypedError<TEnum extends Record<string, string>> extends Error {
62
178
  readonly type: TEnum[keyof TEnum];
@@ -1 +1 @@
1
- {"version":3,"file":"typed.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/errors/typed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typed.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/errors/typed.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,35 @@ const core_string_key_1 = require("../core-string-key");
11
11
  const core_i18n_1 = require("../core-i18n");
12
12
  const core_1 = require("../core");
13
13
  /**
14
- * Base typed error class with common patterns
14
+ * Base typed error class with full i18n feature support.
15
+ *
16
+ * **Supported i18n Features** (via translation strings):
17
+ * - ICU MessageFormat: plural, select, selectordinal
18
+ * - Pluralization: 37 languages with CLDR rules
19
+ * - Gender support: male, female, neutral, other
20
+ * - Number formatting: integer, currency, percent
21
+ * - Date/Time formatting: short, medium, long, full
22
+ * - Nested messages: up to 4 levels deep
23
+ *
24
+ * **Translation String Examples:**
25
+ * ```typescript
26
+ * // Register translations with ICU features
27
+ * engine.registerComponent({
28
+ * component: { id: 'errors', name: 'Errors', stringKeys: ['invalidCount'] },
29
+ * strings: {
30
+ * 'en-US': {
31
+ * invalidCount: "{count, plural, one {# item is invalid} other {# items are invalid}}"
32
+ * }
33
+ * }
34
+ * });
35
+ *
36
+ * // Use with typed error
37
+ * throw BaseTypedError.createTranslated(
38
+ * engine, 'errors', ErrorType.InvalidCount, reasonMap,
39
+ * { count: 5 }, 'en-US'
40
+ * );
41
+ * // Result: "5 items are invalid"
42
+ * ```
15
43
  */
16
44
  class BaseTypedError extends Error {
17
45
  type;
@@ -47,7 +75,38 @@ class BaseTypedError extends Error {
47
75
  }
48
76
  exports.BaseTypedError = BaseTypedError;
49
77
  /**
50
- * Legacy TypedError that ensures complete enum coverage (for backward compatibility)
78
+ * TypedError with complete enum coverage and full i18n feature support.
79
+ *
80
+ * **Supported i18n Features** (via translation strings):
81
+ * - ICU MessageFormat: plural, select, selectordinal
82
+ * - Pluralization: 37 languages with CLDR rules
83
+ * - Gender support: male, female, neutral, other
84
+ * - Number formatting: integer, currency, percent
85
+ * - Nested messages: up to 4 levels deep
86
+ *
87
+ * **Translation String Examples:**
88
+ * ```typescript
89
+ * // Define error types
90
+ * enum ValidationError {
91
+ * InvalidCount = 'invalidCount',
92
+ * ThresholdExceeded = 'thresholdExceeded'
93
+ * }
94
+ *
95
+ * // Register translations with ICU
96
+ * engine.registerComponent({
97
+ * component: { id: 'validation', stringKeys: ['invalidCount', 'thresholdExceeded'] },
98
+ * strings: {
99
+ * 'en-US': {
100
+ * invalidCount: "{count, plural, one {# error found} other {# errors found}}",
101
+ * thresholdExceeded: "Value {value, number, integer} exceeds limit"
102
+ * }
103
+ * }
104
+ * });
105
+ *
106
+ * // Use typed error
107
+ * throw new MyTypedError('validation', ValidationError.InvalidCount, reasonMap, 'en-US', { count: 3 });
108
+ * // Result: "3 errors found"
109
+ * ```
51
110
  */
52
111
  class TypedError extends Error {
53
112
  componentId;
@@ -113,7 +172,39 @@ class PluginTypedError extends Error {
113
172
  }
114
173
  exports.PluginTypedError = PluginTypedError;
115
174
  /**
116
- * Component-based TypedError that works with the component registration system
175
+ * Component-based TypedError with full i18n feature support.
176
+ *
177
+ * **Supported i18n Features** (via translation strings):
178
+ * - ICU MessageFormat: plural, select, selectordinal
179
+ * - Pluralization: 37 languages with CLDR rules
180
+ * - Gender support: male, female, neutral, other
181
+ * - Number formatting: integer, currency, percent
182
+ * - SelectOrdinal: 1st, 2nd, 3rd formatting
183
+ * - Nested messages: complex multi-level patterns
184
+ *
185
+ * **Translation String Examples:**
186
+ * ```typescript
187
+ * // Define component errors
188
+ * enum UserError {
189
+ * AccountLocked = 'accountLocked',
190
+ * TooManyAttempts = 'tooManyAttempts'
191
+ * }
192
+ *
193
+ * // Register with ICU features
194
+ * engine.registerComponent({
195
+ * component: { id: 'user', stringKeys: ['accountLocked', 'tooManyAttempts'] },
196
+ * strings: {
197
+ * 'en-US': {
198
+ * accountLocked: "{gender, select, male {His account} female {Her account} other {Their account}} is locked",
199
+ * tooManyAttempts: "{count, plural, one {# attempt} other {# attempts}} failed. Try again in {minutes, number, integer} minutes."
200
+ * }
201
+ * }
202
+ * });
203
+ *
204
+ * // Use component error
205
+ * throw new MyComponentError('user', UserError.TooManyAttempts, reasonMap, 'en-US', { count: 5, minutes: 10 });
206
+ * // Result: "5 attempts failed. Try again in 10 minutes."
207
+ * ```
117
208
  */
118
209
  class ComponentTypedError extends Error {
119
210
  componentId;
@@ -145,7 +236,32 @@ class ComponentTypedError extends Error {
145
236
  }
146
237
  exports.ComponentTypedError = ComponentTypedError;
147
238
  /**
148
- * Core system TypedError using the core component strings
239
+ * Core system TypedError using core component strings with full i18n support.
240
+ *
241
+ * **Supported i18n Features** (via CoreStringKey translations):
242
+ * - ICU MessageFormat: plural, select, selectordinal
243
+ * - Pluralization: 37 languages with CLDR rules
244
+ * - Gender support: male, female, neutral, other
245
+ * - Number formatting: integer, currency, percent
246
+ * - Nested messages: complex patterns
247
+ *
248
+ * **Usage Example:**
249
+ * ```typescript
250
+ * // Define core error types
251
+ * enum CoreErrorType {
252
+ * InvalidOperation = 'invalidOperation',
253
+ * ResourceNotFound = 'resourceNotFound'
254
+ * }
255
+ *
256
+ * // Core strings already registered with ICU features
257
+ * const reasonMap: CompleteReasonMap<typeof CoreErrorType, CoreStringKey> = {
258
+ * [CoreErrorType.InvalidOperation]: CoreStringKey.Error_InvalidOperation,
259
+ * [CoreErrorType.ResourceNotFound]: CoreStringKey.Error_ResourceNotFound
260
+ * };
261
+ *
262
+ * // Use core typed error
263
+ * throw new MyCoreError(CoreErrorType.ResourceNotFound, reasonMap, 'en-US', { resource: 'user', id: 123 });
264
+ * ```
149
265
  */
150
266
  class CoreTypedError extends Error {
151
267
  type;
@@ -1 +1 @@
1
- {"version":3,"file":"typed.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/errors/typed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typed.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/errors/typed.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/icu/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkF,MAAM,OAAO,CAAC;AACpH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,KAAK,MAAM,CAAC;AAEjG,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAoB;gBAExB,QAAQ,CAAC,EAAE,iBAAiB;IAIxC,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,eAAe;IAM1C,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,oBAAoB;CAc7B"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/icu/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkF,MAAM,OAAO,CAAC;AACpH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,KAAK,MAAM,CAAC;AAEjG,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAoB;gBAExB,QAAQ,CAAC,EAAE,iBAAiB;IAIxC,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,eAAe;IAM1C,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,oBAAoB;CAiB7B"}
@@ -54,7 +54,10 @@ class Compiler {
54
54
  if (!caseNode)
55
55
  return '';
56
56
  const result = this.compileMessage(caseNode, values, context);
57
- return result.replace(/#/g, String(num));
57
+ // Format number with thousand separators using Intl.NumberFormat
58
+ const locale = context.locale || 'en-US';
59
+ const formattedNum = new Intl.NumberFormat(locale, { maximumFractionDigits: 0 }).format(num);
60
+ return result.replace(/#/g, formattedNum);
58
61
  }
59
62
  compileSelect(node, values, context) {
60
63
  const value = String(values[node.name] || '');
@@ -74,7 +77,10 @@ class Compiler {
74
77
  if (!caseNode)
75
78
  return '';
76
79
  const result = this.compileMessage(caseNode, values, context);
77
- return result.replace(/#/g, String(num));
80
+ // Format number with thousand separators using Intl.NumberFormat
81
+ const locale = context.locale || 'en-US';
82
+ const formattedNum = new Intl.NumberFormat(locale, { maximumFractionDigits: 0 }).format(num);
83
+ return result.replace(/#/g, formattedNum);
78
84
  }
79
85
  }
80
86
  exports.Compiler = Compiler;
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/icu/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-i18n-lib/src/icu/compiler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"number-formatter.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-i18n-lib/src/icu/formatters/number-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,qBAAa,eAAgB,YAAW,SAAS;IAC/C,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM;CAyBvE"}
1
+ {"version":3,"file":"number-formatter.d.ts","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-i18n-lib/src/icu/formatters/number-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,qBAAa,eAAgB,YAAW,SAAS;IAC/C,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,MAAM;CA4BvE"}
@@ -18,6 +18,9 @@ class NumberFormatter {
18
18
  break;
19
19
  case 'percent':
20
20
  options.style = 'percent';
21
+ // Show up to 2 decimal places for percent, but don't force trailing zeros
22
+ options.minimumFractionDigits = 0;
23
+ options.maximumFractionDigits = 2;
21
24
  break;
22
25
  case 'decimal':
23
26
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"number-formatter.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-i18n-lib/src/icu/formatters/number-formatter.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IAC1B,MAAM,CAAC,KAAU,EAAE,KAAc,EAAE,OAA0B;QAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QAErC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC;QAC1C,MAAM,OAAO,GAA6B,EAAE,CAAC;QAE7C,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,SAAS;gBACZ,OAAO,CAAC,qBAAqB,GAAG,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,UAAU;gBACb,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC;gBAC3B,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK,CAAC;gBAC9C,MAAM;YACR,KAAK,SAAS;gBACZ,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;gBAC1B,MAAM;YACR,KAAK,SAAS,CAAC;YACf;gBACE,MAAM;QACV,CAAC;QAED,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;CACF;AA1BD,0CA0BC"}
1
+ {"version":3,"file":"number-formatter.js","sourceRoot":"","sources":["../../../../../../packages/digitaldefiance-i18n-lib/src/icu/formatters/number-formatter.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAe;IAC1B,MAAM,CAAC,KAAU,EAAE,KAAc,EAAE,OAA0B;QAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QAErC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC;QAC1C,MAAM,OAAO,GAA6B,EAAE,CAAC;QAE7C,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,SAAS;gBACZ,OAAO,CAAC,qBAAqB,GAAG,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,UAAU;gBACb,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC;gBAC3B,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,KAAK,CAAC;gBAC9C,MAAM;YACR,KAAK,SAAS;gBACZ,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;gBAC1B,0EAA0E;gBAC1E,OAAO,CAAC,qBAAqB,GAAG,CAAC,CAAC;gBAClC,OAAO,CAAC,qBAAqB,GAAG,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,SAAS,CAAC;YACf;gBACE,MAAM;QACV,CAAC;QAED,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;CACF;AA7BD,0CA6BC"}