@flyingrobots/bijou-i18n 4.4.0 → 5.0.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 CHANGED
@@ -10,9 +10,53 @@ The in-memory localization runtime for Bijou.
10
10
  - generic resource lookup
11
11
  - runtime-safe references
12
12
  - locale-aware formatting seams
13
+ - async locale loader support for runtime-integrated catalog activation
13
14
 
14
15
  This package is intentionally runtime-only. Spreadsheet workflows, stale detection, pseudo-localization, and catalog compilation belong in `@flyingrobots/bijou-i18n-tools`.
15
16
 
17
+ ## Loader Seam
18
+
19
+ Use `createI18nRuntime()` for fully preloaded catalogs, or
20
+ `createI18nRuntimeAsync()` when catalogs need to be loaded lazily:
21
+
22
+ ```ts
23
+ import { createI18nRuntimeAsync, type I18nCatalogLoader } from '@flyingrobots/bijou-i18n';
24
+
25
+ const loader: I18nCatalogLoader = async (locale) => {
26
+ const module = await import(`./catalogs/${locale}.js`);
27
+ return module.catalogs;
28
+ };
29
+
30
+ const runtime = await createI18nRuntimeAsync({
31
+ locale: 'fr',
32
+ direction: 'ltr',
33
+ loader,
34
+ });
35
+ ```
36
+
37
+ The same loader seam also supports file-backed locale bundles through
38
+ `@flyingrobots/bijou-i18n-tools-node`:
39
+
40
+ ```ts
41
+ import { createI18nRuntimeAsync } from '@flyingrobots/bijou-i18n';
42
+ import { createCatalogBundleFileLoader } from '@flyingrobots/bijou-i18n-tools-node';
43
+
44
+ const runtime = await createI18nRuntimeAsync({
45
+ locale: 'fr',
46
+ direction: 'ltr',
47
+ loader: createCatalogBundleFileLoader({
48
+ resolvePath: (locale) => `./i18n/${locale}.json`,
49
+ }),
50
+ });
51
+ ```
52
+
53
+ Once created, the runtime can preload and activate locales explicitly:
54
+
55
+ ```ts
56
+ await runtime.preloadLocale('de');
57
+ await runtime.setLocale('de');
58
+ ```
59
+
16
60
  ## Documentation
17
61
 
18
62
  See the [Bijou repo](https://github.com/flyingrobots/bijou) for the full documentation map, architecture guide, and design system.
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { createI18nRuntime, ref, type I18nCatalog, type I18nCatalogEntry, type I18nCatalogKey, type I18nDirection, type I18nEntryKind, type I18nFormatterPort, type I18nReference, type I18nRuntime, type I18nRuntimeOptions, } from './runtime.js';
1
+ export { createI18nRuntimeAsync, createI18nRuntime, ref, type I18nCatalogLoader, type I18nCatalog, type I18nCatalogEntry, type I18nCatalogKey, type I18nDirection, type I18nEntryKind, type I18nFormatterPort, type I18nReference, type I18nRuntime, type I18nRuntimeOptions, } from './runtime.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,GAAG,EACH,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,GAAG,EACH,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { createI18nRuntime, ref, } from './runtime.js';
1
+ export { createI18nRuntimeAsync, createI18nRuntime, ref, } from './runtime.js';
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,GAAG,GAUJ,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,GAAG,GAWJ,MAAM,cAAc,CAAC"}
package/dist/runtime.d.ts CHANGED
@@ -24,20 +24,27 @@ export interface I18nFormatterPort {
24
24
  formatTime(value: Date, locale: string): string;
25
25
  formatList(values: readonly string[], locale: string): string;
26
26
  }
27
+ export type I18nCatalogLoader = (locale: string) => Promise<readonly I18nCatalog[]>;
27
28
  export interface I18nRuntimeOptions {
28
29
  readonly locale: string;
29
30
  readonly direction: I18nDirection;
30
31
  readonly fallbackLocale?: string;
31
32
  readonly formatter?: Partial<I18nFormatterPort>;
33
+ readonly catalogs?: readonly I18nCatalog[];
34
+ readonly loader?: I18nCatalogLoader;
32
35
  }
33
36
  export interface I18nRuntime extends I18nFormatterPort {
34
37
  readonly locale: string;
35
38
  readonly direction: I18nDirection;
36
39
  loadCatalog(catalog: I18nCatalog): void;
40
+ loadCatalogs(catalogs: readonly I18nCatalog[]): void;
37
41
  unloadCatalog(namespace: string): void;
42
+ preloadLocale(locale: string): Promise<void>;
43
+ setLocale(locale: string, direction?: I18nDirection): Promise<void>;
38
44
  t(key: I18nCatalogKey, values?: Readonly<Record<string, unknown>>): string;
39
45
  resource<T = unknown>(key: I18nCatalogKey): T | undefined;
40
46
  }
41
47
  export declare function ref(key: I18nCatalogKey): I18nReference;
42
48
  export declare function createI18nRuntime(options: I18nRuntimeOptions): I18nRuntime;
49
+ export declare function createI18nRuntimeAsync(options: I18nRuntimeOptions): Promise<I18nRuntime>;
43
50
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,OAAO;IAC3C,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;IAC7D,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACpD,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAChD,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAChD,UAAU,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/D;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,WAAY,SAAQ,iBAAiB;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IACxC,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,CAAC,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC;IAC3E,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,CAAC,GAAG,SAAS,CAAC;CAC3D;AAoCD,wBAAgB,GAAG,CAAC,GAAG,EAAE,cAAc,GAAG,aAAa,CAEtD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAyG1E"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/dist/runtime.js CHANGED
@@ -34,8 +34,33 @@ export function ref(key) {
34
34
  export function createI18nRuntime(options) {
35
35
  const entries = new Map();
36
36
  const namespaces = new Map();
37
+ const manualCatalogs = new Map();
38
+ const loaderCatalogs = new Map();
39
+ const loaderCache = new Map();
37
40
  const formatter = { ...DEFAULT_FORMATTER, ...(options.formatter ?? {}) };
38
41
  const fallbackLocale = options.fallbackLocale ?? 'en';
42
+ let currentLocale = options.locale;
43
+ let currentDirection = options.direction;
44
+ function rememberCatalog(target, catalog) {
45
+ target.set(catalog.namespace, catalog);
46
+ }
47
+ function applyCatalogs(source) {
48
+ for (const catalog of source.values()) {
49
+ const scoped = [];
50
+ for (const entry of catalog.entries) {
51
+ const key = keyToString(entry.key);
52
+ entries.set(key, entry);
53
+ scoped.push(key);
54
+ }
55
+ namespaces.set(catalog.namespace, scoped);
56
+ }
57
+ }
58
+ function rebuildCatalogState() {
59
+ entries.clear();
60
+ namespaces.clear();
61
+ applyCatalogs(manualCatalogs);
62
+ applyCatalogs(loaderCatalogs);
63
+ }
39
64
  function getEntry(key) {
40
65
  const entry = entries.get(keyToString(key));
41
66
  if (entry === undefined) {
@@ -45,7 +70,7 @@ export function createI18nRuntime(options) {
45
70
  }
46
71
  function resolveLocalizedValue(entry, seen) {
47
72
  const candidates = [
48
- entry.values[options.locale],
73
+ entry.values[currentLocale],
49
74
  entry.values[entry.sourceLocale],
50
75
  entry.values[fallbackLocale],
51
76
  entry.fallbackValue,
@@ -75,27 +100,58 @@ export function createI18nRuntime(options) {
75
100
  }
76
101
  return undefined;
77
102
  }
103
+ async function preloadLocale(locale) {
104
+ if (options.loader === undefined || loaderCache.has(locale)) {
105
+ return;
106
+ }
107
+ loaderCache.set(locale, await options.loader(locale));
108
+ }
109
+ async function activateLoaderLocale(locale) {
110
+ if (options.loader === undefined) {
111
+ return;
112
+ }
113
+ await preloadLocale(locale);
114
+ loaderCatalogs.clear();
115
+ for (const catalog of loaderCache.get(locale) ?? []) {
116
+ rememberCatalog(loaderCatalogs, catalog);
117
+ }
118
+ rebuildCatalogState();
119
+ }
120
+ if (options.catalogs !== undefined) {
121
+ for (const catalog of options.catalogs) {
122
+ rememberCatalog(manualCatalogs, catalog);
123
+ }
124
+ rebuildCatalogState();
125
+ }
78
126
  return {
79
- locale: options.locale,
80
- direction: options.direction,
127
+ get locale() {
128
+ return currentLocale;
129
+ },
130
+ get direction() {
131
+ return currentDirection;
132
+ },
81
133
  loadCatalog(catalog) {
82
- const scoped = namespaces.get(catalog.namespace) ?? [];
83
- for (const entry of catalog.entries) {
84
- const key = keyToString(entry.key);
85
- entries.set(key, entry);
86
- scoped.push(key);
134
+ rememberCatalog(manualCatalogs, catalog);
135
+ rebuildCatalogState();
136
+ },
137
+ loadCatalogs(catalogs) {
138
+ for (const catalog of catalogs) {
139
+ rememberCatalog(manualCatalogs, catalog);
87
140
  }
88
- namespaces.set(catalog.namespace, scoped);
141
+ rebuildCatalogState();
89
142
  },
90
143
  unloadCatalog(namespace) {
91
- const scoped = namespaces.get(namespace);
92
- if (scoped === undefined) {
93
- return;
94
- }
95
- for (const key of scoped) {
96
- entries.delete(key);
144
+ manualCatalogs.delete(namespace);
145
+ loaderCatalogs.delete(namespace);
146
+ rebuildCatalogState();
147
+ },
148
+ preloadLocale,
149
+ async setLocale(locale, direction) {
150
+ currentLocale = locale;
151
+ if (direction !== undefined) {
152
+ currentDirection = direction;
97
153
  }
98
- namespaces.delete(namespace);
154
+ await activateLoaderLocale(locale);
99
155
  },
100
156
  t(key, values = {}) {
101
157
  const entry = getEntry(key);
@@ -129,4 +185,11 @@ export function createI18nRuntime(options) {
129
185
  },
130
186
  };
131
187
  }
188
+ export async function createI18nRuntimeAsync(options) {
189
+ const runtime = createI18nRuntime(options);
190
+ if (options.loader !== undefined) {
191
+ await runtime.setLocale(options.locale, options.direction);
192
+ }
193
+ return runtime;
194
+ }
132
195
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAiDA,MAAM,iBAAiB,GAAsB;IAC3C,YAAY,CAAC,KAAK,EAAE,MAAM;QACxB,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IACD,UAAU,CAAC,KAAK,EAAE,MAAM;QACtB,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChF,CAAC;IACD,UAAU,CAAC,KAAK,EAAE,MAAM;QACtB,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/E,CAAC;IACD,UAAU,CAAC,MAAM,EAAE,MAAM;QACvB,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5F,CAAC;CACF,CAAC;AAEF,SAAS,WAAW,CAAC,GAAmB;IACtC,OAAO,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,KAAK,KAAK,IAAI;WACd,MAAM,IAAI,KAAK;WACf,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ;WACrD,KAA4B,CAAC,IAAI,KAAK,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,MAAyC;IAC9E,OAAO,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAc,EAAE,EAAE;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,GAAmB;IACrC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC/C,MAAM,SAAS,GAAsB,EAAE,GAAG,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;IAC5F,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;IAEtD,SAAS,QAAQ,CAAC,GAAmB;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,qBAAqB,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,qBAAqB,CAC5B,KAA0B,EAC1B,IAAiB;QAEjB,MAAM,UAAU,GAAG;YACjB,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;YAC5B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;YAChC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;YAC5B,KAAK,CAAC,aAAa;SACpB,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,SAAS;YACX,CAAC;YACD,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;gBACtD,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACjB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC5C,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;oBAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;gBACvD,CAAC;gBACD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;gBAC9D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,OAAO,QAAa,CAAC;gBACvB,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,OAAO,SAAc,CAAC;QACxB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,WAAW,CAAC,OAAO;YACjB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACvD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC5C,CAAC;QACD,aAAa,CAAC,SAAS;YACrB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACzB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QACD,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE;YAChB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,8BAA8B,WAAW,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5F,CAAC;YACD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;YACjE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,wBAAwB,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,QAAQ,CAAc,GAAmB;YACvC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO,qBAAqB,CAAC,KAA4B,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;QAChF,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,MAAM;YACxB,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;QACD,UAAU,CAAC,KAAK,EAAE,MAAM;YACtB,OAAO,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QACD,UAAU,CAAC,KAAK,EAAE,MAAM;YACtB,OAAO,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QACD,UAAU,CAAC,MAAM,EAAE,MAAM;YACvB,OAAO,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAwDA,MAAM,iBAAiB,GAAsB;IAC3C,YAAY,CAAC,KAAK,EAAE,MAAM;QACxB,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IACD,UAAU,CAAC,KAAK,EAAE,MAAM;QACtB,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChF,CAAC;IACD,UAAU,CAAC,KAAK,EAAE,MAAM;QACtB,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/E,CAAC;IACD,UAAU,CAAC,MAAM,EAAE,MAAM;QACvB,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5F,CAAC;CACF,CAAC;AAEF,SAAS,WAAW,CAAC,GAAmB;IACtC,OAAO,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,KAAK,KAAK,IAAI;WACd,MAAM,IAAI,KAAK;WACf,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ;WACrD,KAA4B,CAAC,IAAI,KAAK,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,MAAyC;IAC9E,OAAO,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAc,EAAE,EAAE;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,GAAmB;IACrC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC/C,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;IACtD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;IACtD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC9D,MAAM,SAAS,GAAsB,EAAE,GAAG,iBAAiB,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC;IAC5F,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;IACtD,IAAI,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IACnC,IAAI,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAEzC,SAAS,eAAe,CAAC,MAAgC,EAAE,OAAoB;QAC7E,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,SAAS,aAAa,CAAC,MAAwC;QAC7D,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,SAAS,mBAAmB;QAC1B,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,aAAa,CAAC,cAAc,CAAC,CAAC;QAC9B,aAAa,CAAC,cAAc,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,QAAQ,CAAC,GAAmB;QACnC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,qBAAqB,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,SAAS,qBAAqB,CAC5B,KAA0B,EAC1B,IAAiB;QAEjB,MAAM,UAAU,GAAG;YACjB,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;YAChC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC;YAC5B,KAAK,CAAC,aAAa;SACpB,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,SAAS;YACX,CAAC;YACD,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;gBACtD,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACjB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC5C,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;oBAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;gBACvD,CAAC;gBACD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;gBAC9D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,OAAO,QAAa,CAAC;gBACvB,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,OAAO,SAAc,CAAC;QACxB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,UAAU,aAAa,CAAC,MAAc;QACzC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,OAAO;QACT,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,UAAU,oBAAoB,CAAC,MAAc;QAChD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QACD,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5B,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACpD,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QACD,mBAAmB,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACvC,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QACD,mBAAmB,EAAE,CAAC;IACxB,CAAC;IAED,OAAO;QACL,IAAI,MAAM;YACR,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,IAAI,SAAS;YACX,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QACD,WAAW,CAAC,OAAO;YACjB,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YACzC,mBAAmB,EAAE,CAAC;QACxB,CAAC;QACD,YAAY,CAAC,QAAQ;YACnB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC3C,CAAC;YACD,mBAAmB,EAAE,CAAC;QACxB,CAAC;QACD,aAAa,CAAC,SAAS;YACrB,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACjC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACjC,mBAAmB,EAAE,CAAC;QACxB,CAAC;QACD,aAAa;QACb,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS;YAC/B,aAAa,GAAG,MAAM,CAAC;YACvB,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,gBAAgB,GAAG,SAAS,CAAC;YAC/B,CAAC;YACD,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QACD,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE;YAChB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,8BAA8B,WAAW,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5F,CAAC;YACD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;YACjE,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,wBAAwB,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;QACD,QAAQ,CAAc,GAAmB;YACvC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,OAAO,qBAAqB,CAAC,KAA4B,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC;QAChF,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,MAAM;YACxB,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;QACD,UAAU,CAAC,KAAK,EAAE,MAAM;YACtB,OAAO,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QACD,UAAU,CAAC,KAAK,EAAE,MAAM;YACtB,OAAO,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;QACD,UAAU,CAAC,MAAM,EAAE,MAAM;YACvB,OAAO,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAA2B;IACtE,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flyingrobots/bijou-i18n",
3
- "version": "4.4.0",
3
+ "version": "5.0.0",
4
4
  "description": "In-memory localization runtime for Bijou — catalogs, locale direction, and runtime-safe lookups.",
5
5
  "type": "module",
6
6
  "sideEffects": false,