@digitaldefiance/i18n-lib 4.7.2 → 4.7.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digitaldefiance/i18n-lib",
3
- "version": "4.7.2",
3
+ "version": "4.7.4",
4
4
  "description": "i18n library with enum translation support",
5
5
  "homepage": "https://github.com/Digital-Defiance/i18n-lib",
6
6
  "repository": {
package/src/index.d.ts CHANGED
@@ -45,6 +45,7 @@ export * from './translation-request';
45
45
  export * from './translation-response';
46
46
  export * from './utc-date-vars';
47
47
  export * from './validation-config';
48
+ export * from './strict-types';
48
49
  export { createCorePluginI18nEngine as createCoreI18n, createCorePluginI18nEngine as createCoreI18nEngine, getCorePluginTranslation as getCoreTranslation, safeCorePluginTranslation as safeCoreTranslation, } from './core-plugin-factory';
49
50
  export * from './core-plugin-factory';
50
51
  export { PluginI18nEngine as PluginI18n } from './plugin-i18n-engine';
@@ -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;AAKrC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,sCAAsC,CAAC;AAErD,cAAc,sBAAsB,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EACL,yBAAyB,EACzB,KAAK,uBAAuB,GAC7B,MAAM,8BAA8B,CAAC;AAEtC,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,iBAAiB,CAAC;AAChC,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;AAKrC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,sCAAsC,CAAC;AAErD,cAAc,sBAAsB,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EACL,yBAAyB,EACzB,KAAK,uBAAuB,GAC7B,MAAM,8BAA8B,CAAC;AAEtC,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,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,gBAAgB,CAAC;AAE/B,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
@@ -86,6 +86,8 @@ tslib_1.__exportStar(require("./translation-request"), exports);
86
86
  tslib_1.__exportStar(require("./translation-response"), exports);
87
87
  tslib_1.__exportStar(require("./utc-date-vars"), exports);
88
88
  tslib_1.__exportStar(require("./validation-config"), exports);
89
+ // Strict (non-partial) type aliases for compile-time translation completeness checks
90
+ tslib_1.__exportStar(require("./strict-types"), exports);
89
91
  // Legacy convenience exports
90
92
  var core_plugin_factory_1 = require("./core-plugin-factory");
91
93
  Object.defineProperty(exports, "createCoreI18n", { enumerable: true, get: function () { return core_plugin_factory_1.createCorePluginI18nEngine; } });
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;AAoED,kDAEC;;AAlGD,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,gFAAgF;AAChF,gCAAgC;AAChC,gFAAgF;AAChF,2DAA2D;AAC3D,qEAA2C;AAC3C,sDAAsD;AACtD,wEAA8C;AAC9C,qCAAqC;AACrC,+EAAqD;AACrD,sDAAsD;AACtD,+DAAqC;AACrC,6CAA6C;AAC7C,yDAAsD;AAA7C,oHAAA,eAAe,OAAA;AACxB,qDAAqD;AACrD,+EAA+E;AAC/E,qEAGsC;AAFpC,iIAAA,yBAAyB,OAAA;AAS3B,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,0DAAgC;AAChC,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/index.ts"],"names":[],"mappings":";;;AA0BA,4BAEC;AAsED,kDAEC;;AApGD,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,gFAAgF;AAChF,gCAAgC;AAChC,gFAAgF;AAChF,2DAA2D;AAC3D,qEAA2C;AAC3C,sDAAsD;AACtD,wEAA8C;AAC9C,qCAAqC;AACrC,+EAAqD;AACrD,sDAAsD;AACtD,+DAAqC;AACrC,6CAA6C;AAC7C,yDAAsD;AAA7C,oHAAA,eAAe,OAAA;AACxB,qDAAqD;AACrD,+EAA+E;AAC/E,qEAGsC;AAFpC,iIAAA,yBAAyB,OAAA;AAS3B,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,0DAAgC;AAChC,8DAAoC;AACpC,qFAAqF;AACrF,yDAA+B;AAC/B,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"}
@@ -1,12 +1,91 @@
1
1
  /**
2
- * Enforces that for each language L, all string keys K are present.
2
+ * @module strict-types
3
+ *
4
+ * Strict (non-partial) type definitions for i18n string collections.
5
+ *
6
+ * Unlike {@link StringsCollection} and {@link MasterStringsCollection} from `./types`,
7
+ * which use `Partial<>` and allow missing keys/languages to pass type-checking silently,
8
+ * the types in this module require **every** key to be present for **every** language.
9
+ *
10
+ * Use these types in language files and master collection definitions to get compile-time
11
+ * errors when translations are missing, instead of discovering them at runtime via
12
+ * "Translation missing" errors.
13
+ *
14
+ * ## Quick Reference
15
+ *
16
+ * | Partial (old) | Strict (new) |
17
+ * |--------------------------------------|-----------------------------------------------|
18
+ * | `StringsCollection<K>` | `CompleteLanguageStrings<K>` |
19
+ * | `BrandedStringsCollection<E>` | `RequiredBrandedStringsCollection<E>` |
20
+ * | `MasterStringsCollection<K, L>` | `CompleteComponentLanguageStrings<K, L>` |
21
+ * | `BrandedMasterStringsCollection<E,L>`| `RequiredBrandedMasterStringsCollection<E,L>` |
22
+ */
23
+ import type { AnyBrandedEnum, BrandedEnumValue } from '@digitaldefiance/branded-enum';
24
+ /**
25
+ * Requires that **all** string keys in `TStringKey` are present with `string` values.
26
+ *
27
+ * Drop-in strict replacement for `StringsCollection<TStringKey>`.
3
28
  */
4
29
  export type CompleteLanguageStrings<TStringKey extends string> = {
5
30
  [K in TStringKey]: string;
6
31
  };
32
+ /**
33
+ * Requires that **all** languages in `TLanguages` are present, each containing
34
+ * **all** string keys in `TStringKey`.
35
+ *
36
+ * Drop-in strict replacement for `MasterStringsCollection<TStringKey, TLanguage>`.
37
+ */
7
38
  export type CompleteComponentLanguageStrings<TStringKey extends string, TLanguages extends string> = {
8
39
  [L in TLanguages]: CompleteLanguageStrings<TStringKey>;
9
40
  };
41
+ /**
42
+ * Strict branded alias: requires **all** keys for a single language.
43
+ *
44
+ * Drop-in strict replacement for `BrandedStringsCollection<E>`.
45
+ *
46
+ * @template E - The branded enum type (use `typeof MyStringKeys`)
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * const MyKeys = createI18nStringKeys('my-component', {
51
+ * Welcome: 'Welcome',
52
+ * Goodbye: 'Goodbye',
53
+ * } as const);
54
+ *
55
+ * // ✅ Compile error if any key is missing
56
+ * const french: RequiredBrandedStringsCollection<typeof MyKeys> = {
57
+ * Welcome: 'Bienvenue',
58
+ * Goodbye: 'Au revoir',
59
+ * };
60
+ * ```
61
+ */
62
+ export type RequiredBrandedStringsCollection<E extends AnyBrandedEnum> = CompleteLanguageStrings<BrandedEnumValue<E>>;
63
+ /**
64
+ * Strict branded alias: requires **all** languages AND **all** keys.
65
+ *
66
+ * Drop-in strict replacement for `BrandedMasterStringsCollection<E, TLanguage>`.
67
+ *
68
+ * @template E - The branded enum type (use `typeof MyStringKeys`)
69
+ * @template TLanguage - The language code union type
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * const MyKeys = createI18nStringKeys('my-component', {
74
+ * Welcome: 'Welcome',
75
+ * Goodbye: 'Goodbye',
76
+ * } as const);
77
+ *
78
+ * type Langs = 'en-US' | 'fr' | 'de';
79
+ *
80
+ * // ✅ Compile error if any language or key is missing
81
+ * const all: RequiredBrandedMasterStringsCollection<typeof MyKeys, Langs> = {
82
+ * 'en-US': { Welcome: 'Welcome', Goodbye: 'Goodbye' },
83
+ * 'fr': { Welcome: 'Bienvenue', Goodbye: 'Au revoir' },
84
+ * 'de': { Welcome: 'Willkommen', Goodbye: 'Auf Wiedersehen' },
85
+ * };
86
+ * ```
87
+ */
88
+ export type RequiredBrandedMasterStringsCollection<E extends AnyBrandedEnum, TLanguage extends string> = CompleteComponentLanguageStrings<BrandedEnumValue<E>, TLanguage>;
10
89
  /**
11
90
  * Helper to assert at compile-time that an object is a complete component language map.
12
91
  * Returns the object unchanged at runtime.
@@ -1 +1 @@
1
- {"version":3,"file":"strict-types.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/strict-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,uBAAuB,CAAC,UAAU,SAAS,MAAM,IAAI;KAC9D,CAAC,IAAI,UAAU,GAAG,MAAM;CAC1B,CAAC;AAEF,MAAM,MAAM,gCAAgC,CAC1C,UAAU,SAAS,MAAM,EACzB,UAAU,SAAS,MAAM,IACvB;KACD,CAAC,IAAI,UAAU,GAAG,uBAAuB,CAAC,UAAU,CAAC;CACvD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,SAAS,MAAM,EACzB,UAAU,SAAS,MAAM,EAEzB,GAAG,EAAE,gCAAgC,CAAC,UAAU,EAAE,UAAU,CAAC,GAC5D,gCAAgC,CAAC,UAAU,EAAE,UAAU,CAAC,CAE1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,SAAS,MAAM,EAC7D,OAAO,EAAE,uBAAuB,CAAC,UAAU,CAAC,GAC3C,uBAAuB,CAAC,UAAU,CAAC,CAErC"}
1
+ {"version":3,"file":"strict-types.d.ts","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/strict-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AAEvC;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,CAAC,UAAU,SAAS,MAAM,IAAI;KAC9D,CAAC,IAAI,UAAU,GAAG,MAAM;CAC1B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,gCAAgC,CAC1C,UAAU,SAAS,MAAM,EACzB,UAAU,SAAS,MAAM,IACvB;KACD,CAAC,IAAI,UAAU,GAAG,uBAAuB,CAAC,UAAU,CAAC;CACvD,CAAC;AAMF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,gCAAgC,CAAC,CAAC,SAAS,cAAc,IACnE,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,sCAAsC,CAChD,CAAC,SAAS,cAAc,EACxB,SAAS,SAAS,MAAM,IACtB,gCAAgC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAMrE;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,SAAS,MAAM,EACzB,UAAU,SAAS,MAAM,EAEzB,GAAG,EAAE,gCAAgC,CAAC,UAAU,EAAE,UAAU,CAAC,GAC5D,gCAAgC,CAAC,UAAU,EAAE,UAAU,CAAC,CAE1D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,SAAS,MAAM,EAC7D,OAAO,EAAE,uBAAuB,CAAC,UAAU,CAAC,GAC3C,uBAAuB,CAAC,UAAU,CAAC,CAErC"}
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createCompleteComponentStrings = createCompleteComponentStrings;
4
4
  exports.defineLanguageStrings = defineLanguageStrings;
5
+ // =============================================================================
6
+ // Helper Functions
7
+ // =============================================================================
5
8
  /**
6
9
  * Helper to assert at compile-time that an object is a complete component language map.
7
10
  * Returns the object unchanged at runtime.
@@ -1 +1 @@
1
- {"version":3,"file":"strict-types.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/strict-types.ts"],"names":[],"mappings":";;AAkBA,wEAOC;AAKD,sDAIC;AApBD;;;GAGG;AACH,SAAgB,8BAA8B,CAI5C,GAA6D;IAE7D,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,OAA4C;IAE5C,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"strict-types.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/strict-types.ts"],"names":[],"mappings":";;AAmHA,wEAOC;AAKD,sDAIC;AAxBD,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;GAGG;AACH,SAAgB,8BAA8B,CAI5C,GAA6D;IAE7D,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,OAA4C;IAE5C,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/src/utils.js CHANGED
@@ -32,7 +32,7 @@ function replaceVariables(str, vars, constants) {
32
32
  let result = str;
33
33
  for (const variable of variables) {
34
34
  const varName = variable.slice(1, -1);
35
- let replacement = '';
35
+ let replacement = null;
36
36
  if (vars && varName in vars) {
37
37
  replacement = String(vars[varName]);
38
38
  }
@@ -42,7 +42,7 @@ function replaceVariables(str, vars, constants) {
42
42
  else if (varName in dateVars) {
43
43
  replacement = String(dateVars[varName]);
44
44
  }
45
- if (replacement) {
45
+ if (replacement !== null) {
46
46
  result = result.replace(variable, replacement);
47
47
  }
48
48
  }
package/src/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../packages/digitaldefiance-i18n-lib/src/utils.ts"],"names":[],"mappings":";AAAA,gGAAgG;;AAahG,4CAkCC;AAOD,gCAEC;AAOD,0CAEC;AAOD,kCAIC;AAQD,kDAMC;AA4CD,wCAmBC;AAKD,wDAuBC;AAKD,8CAYC;AAKD,0DAmBC;;AA5ND,8EAAqC;AAErC,mDAAiD;AAEjD;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC9B,GAAW,EACX,IAAsC,EACtC,SAA0B;IAE1B,2BAA2B;IAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC1C,IAAI,CAAC,SAAS;QAAE,OAAO,GAAG,CAAC;IAE3B,MAAM,QAAQ,GAAG,IAAA,8BAAc,GAAE,CAAC;IAElC,IAAI,MAAM,GAAG,GAAG,CAAC;IACjB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,WAAW,GAAkB,IAAI,CAAC;QAEtC,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YAC5B,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACtC,CAAC;aAAM,IAAI,SAAS,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;YAC7C,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,GAAW;IACpC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAAC,QAAgB;IAC9C,OAAO,yBAAM,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;AAC3C,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CACzB,GAAG,KAAe;IAElB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAe,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CACjC,KAAa,EACb,GAAG,KAAe;IAElB,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAe,CAAC;AAC1C,CAAC;AAqCD;;;;;;GAMG;AACH,SAAgB,cAAc,CAI5B,OAAc,EACd,WAAqB,EAAE,EACvB,YAAsC;IAEtC,MAAM,GAAG,GAAG,EAA4C,CAAC;IAEzD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,YAAY,EAAE,GAAG,CAAC,KAA2B,CAAC;YAC7D,CAAC,CAAC,OAAO,GAAG,UAAU;YACtB,CAAC,CAAC,OAAO,CAAC;QACZ,GAAG,CAAC,KAA2B,CAAC,GAAG,QAAsB,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB,CAMpC,OAAc,EACd,QAAmB,EACnB,YAA4B;IAE5B,MAAM,GAAG,GAEL,EAAE,CAAC;IAEP,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvC,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,YAAY,EAAE,GAAG,CAAC,KAA2B,CAAC;YAC7D,CAAC,CAAC,OAAO,GAAG,UAAU;YACtB,CAAC,CAAC,OAAO,CAAC;QACZ,GAAG,CAAC,KAA2B,CAAC,GAAG,QAAe,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,OAAO,GAAqE,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAI/B,OAAc,EACd,SAA0D;IAE1D,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CACjC,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,IAAI,SAAS;QAClB,SAAS,CAAC,KAA2B,CAAC,KAAK,SAAS,CACvD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CAIrC,OAAc,EACd,WAA8B,EAAE,EAChC,YAAsC;IAEtC,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,YAAY,CAG9D,CAAC;IAEF,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}