@zerolith/i18n 0.0.0-stage → 0.1.0-alpha.10

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * @zerolith/i18n: the locale layer, built on `Intl` with nothing shipped.
3
+ * Negotiation of the request's or the browser's languages against the
4
+ * locales an application supports, the current locale and its direction
5
+ * as signals, the document's `lang` and `dir`, and formatters cached per
6
+ * locale. Message catalogs are compiled ahead of time by
7
+ * `@zerolith/i18n/compile` into plain functions, so no message runtime
8
+ * exists here either.
9
+ */
10
+ import { type ReadableSignal } from "zerolith";
11
+ /** One entry of an `Accept-Language` header or of `navigator.languages`. */
12
+ export interface LanguageRange {
13
+ /** The language tag, or `*` for any language, as written before any `;` parameters. */
14
+ readonly range: string;
15
+ /** The entry's `q` weight between 0 and 1, rounded to three decimals; 1 when the entry gives none. */
16
+ readonly quality: number;
17
+ }
18
+ /** Parses an `Accept-Language` header into ranges ordered by quality, dropping those with quality zero. */
19
+ export declare function parseAcceptLanguage(header: string | null | undefined): LanguageRange[];
20
+ /**
21
+ * Picks the supported locale that best matches what was requested: an
22
+ * `Accept-Language` header, `navigator.languages`, or one tag. Each range
23
+ * is tried in order of quality, first as an exact match, then by dropping
24
+ * subtags from the end as RFC 4647 lookup does, then as the language of a
25
+ * more specific supported locale, preferring one written in the same
26
+ * script, so `zh-HK` finds `zh-TW` before `zh-CN`. `*` and no match at all
27
+ * give `fallback`.
28
+ */
29
+ export declare function negotiateLocale(requested: string | readonly string[] | null | undefined, supported: readonly string[], fallback: string): string;
30
+ /** The writing direction of a locale, from `Intl.Locale` where the engine provides it and otherwise from its script, the likely one when the tag names none, as engines decide. */
31
+ export declare function localeDirection(locale: string): "ltr" | "rtl";
32
+ /** Options for `createLocale`. */
33
+ export interface LocaleOptions {
34
+ /** The locales the application ships, most preferred first. */
35
+ supported: readonly string[];
36
+ /** The locale used when nothing matches, one of `supported`. Defaults to the first supported one. */
37
+ fallback?: string;
38
+ /** What to negotiate from at first: an `Accept-Language` header, `navigator.languages`, or a tag. Defaults to the fallback. */
39
+ initial?: string | readonly string[] | null;
40
+ }
41
+ /** The current locale as state. */
42
+ export interface LocaleState {
43
+ /** The current locale, always one of `supported`. */
44
+ readonly locale: ReadableSignal<string>;
45
+ /** The writing direction of the current locale. */
46
+ readonly direction: ReadableSignal<"ltr" | "rtl">;
47
+ /** A copy of the `supported` option, in the same order; `set` negotiates against it. */
48
+ readonly supported: readonly string[];
49
+ /** Switches locales after negotiating the request against `supported`. */
50
+ set(requested: string | readonly string[]): void;
51
+ }
52
+ /** Creates the locale state for an application. Throws a `TypeError` when `supported` is empty or `fallback` is not one of its locales, since the locale must always be one of them. */
53
+ export declare function createLocale(options: LocaleOptions): LocaleState;
54
+ /** Keeps the document's `lang` and `dir` attributes in step with the locale; returns the effect's disposer. */
55
+ export declare function applyLocale(state: LocaleState, doc?: Document): () => void;
56
+ /** Formatters for the current locale; each reads the locale signal when called, so a computed value or template re-renders on a locale change. */
57
+ export interface Formatters {
58
+ /** Formats a number with `Intl.NumberFormat`. */
59
+ number(value: number, options?: Intl.NumberFormatOptions): string;
60
+ /** Formats a `Date`, or a timestamp in milliseconds since the epoch, with `Intl.DateTimeFormat`. */
61
+ date(value: Date | number, options?: Intl.DateTimeFormatOptions): string;
62
+ /** Formats a time `value` units of `unit` away from now with `Intl.RelativeTimeFormat`, such as `in 2 hours`; a negative value lies in the past. */
63
+ relative(value: number, unit: Intl.RelativeTimeFormatUnit, options?: Intl.RelativeTimeFormatOptions): string;
64
+ /** Joins strings into a list with `Intl.ListFormat`, such as `a, b, and c` in English. */
65
+ list(values: Iterable<string>, options?: Intl.ListFormatOptions): string;
66
+ /** Selects the plural category of a number with `Intl.PluralRules`, such as `one` or `other`, for choosing a message variant. */
67
+ plural(value: number, options?: Intl.PluralRulesOptions): Intl.LDMLPluralRule;
68
+ }
69
+ /** Creates formatters over a locale, given as a signal or as a fixed tag. Instances are cached per locale and options. */
70
+ export declare function formatters(locale: ReadableSignal<string> | string): Formatters;
71
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,KAAK,cAAc,EAAyC,MAAM,UAAU,CAAC;AAEtF,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAE1B,uFAAuF;IACvF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sGAAsG;IACtG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B;AAED,2GAA2G;AAC3G,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,aAAa,EAAE,CA+BtF;AAcD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA4BhJ;AAkBD,mLAAmL;AACnL,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAiB7D;AAED,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAE1B,+DAA+D;IAC/D,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,qGAAqG;IACrG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+HAA+H;IAC/H,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;CAC/C;AAED,mCAAmC;AACnC,MAAM,WAAW,WAAW;IAExB,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;IAClD,wFAAwF;IACxF,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,0EAA0E;IAC1E,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;CACpD;AAED,wLAAwL;AACxL,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,CAsBhE;AAED,+GAA+G;AAC/G,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,GAAE,QAAmB,GAAG,MAAM,IAAI,CAOpF;AAED,kJAAkJ;AAClJ,MAAM,WAAW,UAAU;IAEvB,iDAAiD;IACjD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC;IAClE,oGAAoG;IACpG,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;IACzE,oJAAoJ;IACpJ,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,yBAAyB,GAAG,MAAM,CAAC;IAC7G,0FAA0F;IAC1F,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;IACzE,iIAAiI;IACjI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC;CACjF;AAgBD,0HAA0H;AAC1H,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,UAAU,CAU9E"}
package/dist/index.js ADDED
@@ -0,0 +1,151 @@
1
+ /**
2
+ * @zerolith/i18n: the locale layer, built on `Intl` with nothing shipped.
3
+ * Negotiation of the request's or the browser's languages against the
4
+ * locales an application supports, the current locale and its direction
5
+ * as signals, the document's `lang` and `dir`, and formatters cached per
6
+ * locale. Message catalogs are compiled ahead of time by
7
+ * `@zerolith/i18n/compile` into plain functions, so no message runtime
8
+ * exists here either.
9
+ */
10
+ import { computed, effect, signal } from "zerolith";
11
+ /** Parses an `Accept-Language` header into ranges ordered by quality, dropping those with quality zero. */
12
+ export function parseAcceptLanguage(header) {
13
+ if (header === null || header === undefined || header.trim() === "") {
14
+ return [];
15
+ }
16
+ const ranges = [];
17
+ for (const [index, part] of header.split(",").entries()) {
18
+ const [rawRange = "", ...parameters] = part.split(";");
19
+ const range = rawRange.trim();
20
+ if (range === "") {
21
+ continue;
22
+ }
23
+ let quality = 1;
24
+ for (const parameter of parameters) {
25
+ const [key = "", value = ""] = parameter.split("=");
26
+ if (key.trim().toLowerCase() === "q") {
27
+ const parsed = Number(value.trim());
28
+ quality = Number.isFinite(parsed) ? Math.min(1, Math.max(0, parsed)) : 0;
29
+ }
30
+ }
31
+ if (quality > 0) {
32
+ ranges.push({ range, quality: quality - index * 1e-9 });
33
+ }
34
+ }
35
+ return ranges.toSorted((a, b) => b.quality - a.quality).map(({ range, quality }) => ({ range, quality: Math.round(quality * 1000) / 1000 }));
36
+ }
37
+ function canonical(tag) {
38
+ try {
39
+ return Intl.getCanonicalLocales(tag)[0] ?? tag;
40
+ }
41
+ catch {
42
+ return tag;
43
+ }
44
+ }
45
+ /**
46
+ * Picks the supported locale that best matches what was requested: an
47
+ * `Accept-Language` header, `navigator.languages`, or one tag. Each range
48
+ * is tried in order of quality, first as an exact match, then by dropping
49
+ * subtags from the end as RFC 4647 lookup does, then as the language of a
50
+ * more specific supported locale, preferring one written in the same
51
+ * script, so `zh-HK` finds `zh-TW` before `zh-CN`. `*` and no match at all
52
+ * give `fallback`.
53
+ */
54
+ export function negotiateLocale(requested, supported, fallback) {
55
+ const ranges = typeof requested === "string" ? parseAcceptLanguage(requested).map((entry) => entry.range) : [...(requested ?? [])];
56
+ const candidates = supported.map((tag) => ({ tag, lower: canonical(tag).toLowerCase() }));
57
+ for (const range of ranges) {
58
+ const wanted = canonical(range).toLowerCase();
59
+ if (wanted === "*") {
60
+ return fallback;
61
+ }
62
+ for (let prefix = wanted; prefix !== ""; prefix = prefix.includes("-") ? prefix.slice(0, prefix.lastIndexOf("-")) : "") {
63
+ const exact = candidates.find((candidate) => candidate.lower === prefix);
64
+ if (exact !== undefined) {
65
+ return exact.tag;
66
+ }
67
+ }
68
+ const language = wanted.split("-")[0] ?? wanted;
69
+ const related = candidates.filter((candidate) => candidate.lower.startsWith(`${language}-`));
70
+ if (related.length > 0) {
71
+ const script = scriptOf(range);
72
+ return (related.find((candidate) => scriptOf(candidate.tag) === script) ?? related[0])?.tag ?? fallback;
73
+ }
74
+ }
75
+ return fallback;
76
+ }
77
+ /** The script a locale is written in, with the likely script filled in, as `Hant` for `zh-TW`; undefined for a tag that does not parse. */
78
+ function scriptOf(tag) {
79
+ try {
80
+ return new Intl.Locale(tag).maximize().script;
81
+ }
82
+ catch {
83
+ return undefined;
84
+ }
85
+ }
86
+ /** The scripts written right to left, by their ISO 15924 codes in lowercase. */
87
+ const RTL_SCRIPTS = new Set(["adlm", "arab", "hebr", "mand", "mend", "nkoo", "rohg", "samr", "syrc", "thaa", "yezi"]);
88
+ /** The writing direction of a locale, from `Intl.Locale` where the engine provides it and otherwise from its script, the likely one when the tag names none, as engines decide. */
89
+ export function localeDirection(locale) {
90
+ try {
91
+ const parsed = new Intl.Locale(locale);
92
+ const withInfo = parsed;
93
+ const info = withInfo.getTextInfo?.() ?? withInfo.textInfo;
94
+ if (info !== undefined) {
95
+ return info.direction === "rtl" ? "rtl" : "ltr";
96
+ }
97
+ return RTL_SCRIPTS.has((parsed.maximize().script ?? "").toLowerCase()) ? "rtl" : "ltr";
98
+ }
99
+ catch {
100
+ return "ltr";
101
+ }
102
+ }
103
+ /** Creates the locale state for an application. Throws a `TypeError` when `supported` is empty or `fallback` is not one of its locales, since the locale must always be one of them. */
104
+ export function createLocale(options) {
105
+ const supported = [...options.supported];
106
+ if (supported.length === 0) {
107
+ throw new TypeError("zerolith/i18n: createLocale needs at least one supported locale");
108
+ }
109
+ const fallback = options.fallback === undefined ? (supported[0] ?? "") : supported.find((tag) => canonical(tag).toLowerCase() === canonical(options.fallback ?? "").toLowerCase());
110
+ if (fallback === undefined) {
111
+ throw new TypeError(`zerolith/i18n: the fallback ${options.fallback ?? ""} is not one of the supported locales, ${supported.join(", ")}`);
112
+ }
113
+ const locale = signal(negotiateLocale(options.initial ?? fallback, supported, fallback), { name: "locale" });
114
+ return {
115
+ locale,
116
+ direction: computed(() => localeDirection(locale.get())),
117
+ supported,
118
+ set(requested) {
119
+ locale.set(negotiateLocale(requested, supported, fallback));
120
+ }
121
+ };
122
+ }
123
+ /** Keeps the document's `lang` and `dir` attributes in step with the locale; returns the effect's disposer. */
124
+ export function applyLocale(state, doc = document) {
125
+ return effect(() => {
126
+ doc.documentElement.lang = state.locale.get();
127
+ doc.documentElement.dir = state.direction.get();
128
+ });
129
+ }
130
+ const cache = new Map();
131
+ function cached(kind, locale, options, create) {
132
+ const key = `${kind}\u0000${locale}\u0000${options === undefined ? "" : JSON.stringify(options)}`;
133
+ let instance = cache.get(key);
134
+ if (instance === undefined) {
135
+ instance = create();
136
+ cache.set(key, instance);
137
+ }
138
+ return instance;
139
+ }
140
+ /** Creates formatters over a locale, given as a signal or as a fixed tag. Instances are cached per locale and options. */
141
+ export function formatters(locale) {
142
+ const current = () => (typeof locale === "string" ? locale : locale.get());
143
+ return {
144
+ number: (value, options) => cached("number", current(), options, () => new Intl.NumberFormat(current(), options)).format(value),
145
+ date: (value, options) => cached("date", current(), options, () => new Intl.DateTimeFormat(current(), options)).format(value),
146
+ relative: (value, unit, options) => cached("relative", current(), options, () => new Intl.RelativeTimeFormat(current(), options)).format(value, unit),
147
+ list: (values, options) => cached("list", current(), options, () => new Intl.ListFormat(current(), options)).format(values),
148
+ plural: (value, options) => cached("plural", current(), options, () => new Intl.PluralRules(current(), options)).select(value)
149
+ };
150
+ }
151
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,167 @@
1
+ class e{index=0;text;key;constructor(e,t){this.text=e,this.key=t}fail(e){throw Error(`zerolith/i18n: message "${this.key}": ${e} at offset ${this.index}`)}peek(e=0){return this.text.charAt(this.index+e)}skipSpace(){for(;/[ \t\r\n ]/.test(this.peek());)this.index++}expect(e){this.text.startsWith(e,this.index)||this.fail(`expected ${JSON.stringify(e)}`),this.index+=e.length}name(){let e=/^[A-Za-z_][A-Za-z0-9_.-]*/.exec(this.text.slice(this.index));return e===null&&this.fail(`expected a name`),this.index+=e[0].length,e[0]}literal(){if(this.peek()===`|`){this.index++;let e=``;for(;this.index<this.text.length&&this.peek()!==`|`;)this.peek()===`\\`?(e+=this.peek(1),this.index+=2):(e+=this.peek(),this.index++);return this.expect(`|`),{kind:`literal`,value:e}}let e=/^[A-Za-z0-9_.+:@%-]+/.exec(this.text.slice(this.index));return e===null&&this.fail(`expected a literal`),this.index+=e[0].length,{kind:`literal`,value:e[0]}}variable(){return this.expect(`$`),{kind:`variable`,name:this.name()}}expression(){if(this.skipSpace(),this.peek()===`#`||this.peek()===`/`){for(;this.index<this.text.length&&this.peek()!==`}`;)this.index++;this.expect(`}`);return}let e;this.peek()===`$`?e=this.variable():this.peek()!==`:`&&(e=this.literal()),this.skipSpace();let t,n={};if(this.peek()===`:`)for(this.index++,t=this.name(),this.skipSpace();this.peek()!==`}`&&this.peek()!==`@`&&this.index<this.text.length;){let e=this.name();this.skipSpace(),this.expect(`=`),this.skipSpace(),n[e]=this.peek()===`$`?this.variable():this.literal(),this.skipSpace()}for(;this.peek()===`@`;)this.index++,this.name(),this.skipSpace(),this.peek()===`=`&&(this.index++,this.skipSpace(),this.peek()===`$`?this.variable():this.literal(),this.skipSpace());return this.expect(`}`),e===void 0&&t===void 0&&this.fail(`an expression needs an operand or a function`),{operand:e,fn:t,options:n}}pattern(e){let t=[],n=``;for(;this.index<this.text.length;){let r=this.peek();if(e&&r===`}`&&this.peek(1)===`}`)break;if(r===`\\`){let e=this.peek(1);e!==`{`&&e!==`}`&&e!==`\\`&&e!==`|`&&this.fail(`only \\{ \\} \\\\ and \\| can be escaped`),n+=e,this.index+=2}else if(r===`{`){n!==``&&(t.push(n),n=``),this.index++;let e=this.expression();e!==void 0&&t.push(e)}else r===`}`?this.fail(`a lone } must be escaped as \\}`):(n+=r,this.index++)}return n!==``&&t.push(n),t}quotedPattern(){this.expect(`{{`);let e=this.pattern(!0);return this.expect(`}}`),e}parse(){let e={declarations:new Map,pattern:void 0,selectors:[],variants:[]},t=this.text.trimStart();if(!t.startsWith(`.`)&&!t.startsWith(`{{`))return e.pattern=this.pattern(!1),e;for(this.skipSpace();this.text.startsWith(`.input`,this.index)||this.text.startsWith(`.local`,this.index);){let t=this.text.startsWith(`.local`,this.index);this.index+=6,this.skipSpace();let n;t?(n=this.variable().name,this.skipSpace(),this.expect(`=`),this.skipSpace()):n=``,this.expect(`{`);let r=this.expression();r===void 0&&this.fail(`a declaration cannot be markup`),t||(r.operand?.kind!==`variable`&&this.fail(`.input needs a variable operand`),n=r.operand.name),e.declarations.has(n)&&this.fail(`$${n} is declared twice`),e.declarations.set(n,{expression:r,local:t}),this.skipSpace()}if(this.text.startsWith(`.match`,this.index)){for(this.index+=6,this.skipSpace();this.peek()===`$`||this.peek()===`{`;){if(this.peek()===`{`){this.index++;let t=this.expression();t===void 0&&this.fail(`a selector cannot be markup`),e.selectors.push(t)}else e.selectors.push({operand:this.variable(),fn:void 0,options:{}});this.skipSpace()}for(e.selectors.length===0&&this.fail(`.match needs at least one selector`);this.index<this.text.length;){let t=[];for(;this.peek()!==`{`;)this.peek()===`*`?(this.index++,t.push(`*`)):t.push(this.literal().value),this.skipSpace();t.length!==e.selectors.length&&this.fail(`a variant needs ${e.selectors.length} key(s), found ${t.length}`),e.variants.push({keys:t,pattern:this.quotedPattern()}),this.skipSpace()}return e.variants.some(e=>e.keys.every(e=>e===`*`))||this.fail(`a matcher needs a variant whose keys are all *`),e}return e.pattern=this.quotedPattern(),this.skipSpace(),this.index<this.text.length&&this.fail(`unexpected text after the pattern`),e}}const t=new Set([`number`,`integer`,`percent`,`currency`,`offset`]),n=new Set([`date`,`time`,`datetime`]),r={minimumFractionDigits:`minimumFractionDigits`,maximumFractionDigits:`maximumFractionDigits`,minimumIntegerDigits:`minimumIntegerDigits`,minimumSignificantDigits:`minimumSignificantDigits`,maximumSignificantDigits:`maximumSignificantDigits`,signDisplay:`signDisplay`,trailingZeroDisplay:`trailingZeroDisplay`,roundingMode:`roundingMode`,roundingIncrement:`roundingIncrement`,roundingPriority:`roundingPriority`,currencyDisplay:`currencyDisplay`,currencySign:`currencySign`,numberingSystem:`numberingSystem`},i=new Set(`arguments.await.break.case.catch.class.const.continue.debugger.default.delete.do.else.enum.eval.export.extends.false.finally.for.function.if.implements.import.in.instanceof.interface.let.new.null.package.private.protected.public.return.static.super.switch.this.throw.true.try.typeof.var.void.while.with.yield`.split(`.`)),a=RegExp(`[<>${String.fromCodePoint(8232,8233)}]`,`g`),o=/\r\n|[\n\r\u2028\u2029]/;function s(e){return JSON.stringify(e).replace(a,e=>`\\u${e.charCodeAt(0).toString(16).padStart(4,`0`)}`)}function c(e){return e.split(o).join(` `).replaceAll(`<`,`&lt;`)}const l=/^[A-Za-z_][A-Za-z0-9_]*$/;function u(e){return l.test(e)?e:s(e)}function d(e){let t=e.replace(/([a-z0-9])([A-Z])/g,`$1 $2`).split(/[^A-Za-z0-9]+/).filter(e=>e!==``).map((e,t)=>t===0?e.charAt(0).toLowerCase()+e.slice(1):e.charAt(0).toUpperCase()+e.slice(1)).join(``);return/^[0-9]/.test(t)?`_${t}`:t===``?`_`:t}class f{arguments=new Map;locals=new Map;prelude=[];key;message;formatters;used;reads=0;constructor(e,t,n,r){this.key=e,this.message=t,this.formatters=n,this.used=r}shared(e){this.used.add(`once`);let t=this.formatters.get(e);return t===void 0&&(t=`$f${this.formatters.size}`,this.formatters.set(e,t)),t}fail(e){throw Error(`zerolith/i18n: message "${this.key}": ${e}`)}argument(e,t){this.reads++;let n=this.locals.get(e);if(n!==void 0)return n;let r=this.arguments.get(e);return r===void 0||r===`string`?this.arguments.set(e,t):r!==t&&t!==`string`&&this.fail(`$${e} is used both as ${r} and as ${t}`),l.test(e)?`args.${e}`:`args[${s(e)}]`}optionValue(e){if(e!==void 0)return e.kind===`literal`?s(e.value):`String(${this.argument(e.name,`string`)})`}numberOptions(e){let t=[],n=e.fn??`number`;if(n===`integer`)t.push(`maximumFractionDigits: 0`);else if(n===`percent`)t.push(`style: "percent"`);else if(n===`currency`){let n=this.optionValue(e.options.currency);n===void 0&&this.fail(`:currency needs a currency option`),t.push(`style: "currency"`,`currency: ${n}`)}for(let[n,i]of Object.entries(e.options)){let e=r[n];if(e!==void 0){let n=i.kind===`literal`?i.value:void 0,r=n!==void 0&&/^[0-9]+$/.test(n)?n:void 0;t.push(`${e}: ${r??this.optionValue(i)??`undefined`}`)}else n===`useGrouping`&&i.kind===`literal`?t.push(`useGrouping: ${i.value===`never`?`false`:i.value===`always`?`true`:s(i.value)}`):n===`fractionDigits`&&i.kind===`literal`&&/^[0-9]+$/.test(i.value)&&t.push(`minimumFractionDigits: ${i.value}`,`maximumFractionDigits: ${i.value}`)}return t.length===0?`{}`:`{ ${t.join(`, `)} }`}dateOptions(e){let t=[],n=e.fn??`date`,r=t=>{let n=e.options[t];return n?.kind===`literal`?n.value:void 0},i=r(n===`datetime`?`dateLength`:`length`)??(n===`time`?void 0:`medium`);i!==void 0&&n!==`time`&&t.push(`dateStyle: ${s(i)}`);let a=r(n===`datetime`?`timePrecision`:`precision`)??(n===`date`?void 0:`minute`);a!==void 0&&n!==`date`&&t.push(`timeStyle: ${s(a===`second`?`medium`:`short`)}`);let o=r(`timeZone`);o!==void 0&&o!==`input`&&t.push(`timeZone: ${s(o)}`);let c=r(`hour12`);c!==void 0&&t.push(`hour12: ${c===`true`}`);let l=r(`timeZoneStyle`);return l!==void 0&&t.push(`timeZoneName: ${s(l)}`),t.length===0?`{}`:`{ ${t.join(`, `)} }`}numeric(e){let t=e.operand,n;if(t===void 0?this.fail(`:${e.fn??``} needs an operand`):n=t.kind===`literal`?Number.isFinite(Number(t.value))?String(Number(t.value)):this.fail(`${JSON.stringify(t.value)} is not a number`):this.argument(t.name,`number`),e.fn===`offset`){let t=this.optionValue(e.options.add),r=this.optionValue(e.options.subtract);t===void 0==(r===void 0)&&this.fail(`:offset needs exactly one of add or subtract`),n=`(${n} ${t===void 0?`-`:`+`} Number(${t??r??`0`}))`}return n}resolve(e,t=!1){if(e.fn===void 0&&e.operand?.kind===`variable`){let n=this.message.declarations.get(e.operand.name);if(n!==void 0&&(t||!n.local))return n.expression}return e}format(e){let r=this.resolve(e),i=r.fn;if(i===void 0||i===`string`){let e=r.operand;return e===void 0&&this.fail(`:string needs an operand`),e.kind===`literal`?s(e.value):`String(${this.argument(e.name,`string`)})`}if(t.has(i)){let e=this.numeric(r),t=this.reads,n=this.numberOptions(r);return this.reads===t?`${this.shared(`new Intl.NumberFormat(locale, ${n})`)}().format(${e})`:(this.used.add(`number`),`$number(${e}, ${n})`)}if(n.has(i)){let e=r.operand;e===void 0&&this.fail(`:${i} needs an operand`);let t=e.kind===`literal`?`new Date(${s(e.value)})`:this.argument(e.name,`date`);return`${this.shared(`new Intl.DateTimeFormat(locale, ${this.dateOptions(r)})`)}().format(${t})`}this.fail(`unknown function :${i}`)}selector(e){let n=this.resolve(e,!0),r=n.fn??`string`;if(t.has(r)){let e=n.options.select,t=e?.kind===`literal`?e.value:`plural`,i=r===`percent`?`(${this.numeric(n)}) * 100`:this.numeric(n);if(t===`exact`)return`{ value: String(${i}), categories: [] }`;let a=s(t===`ordinal`?`ordinal`:`cardinal`),o=this.reads,c=this.numberOptions(n);return this.reads===o?`{ value: String(${i}), categories: [${this.shared(`new Intl.PluralRules(locale, { ...new Intl.NumberFormat(locale, ${c}).resolvedOptions(), type: ${a} })`)}().select(${i})] }`:(this.used.add(`plural`),`{ value: String(${i}), categories: [$plural(${i}, ${a}, ${c})] }`)}if(r===`string`){let e=n.operand;return e===void 0&&this.fail(`a selector needs an operand`),`{ value: ${e.kind===`literal`?s(e.value):`String(${this.argument(e.name,`string`)})`}, categories: [] }`}this.fail(`:${r} cannot select`)}pattern(e){return e.length===0?`""`:e.map(e=>typeof e==`string`?s(e):this.format(e)).join(` + `)}body(){for(let[e,t]of this.message.declarations)if(t.local){let n=this.format(t.expression),r=l.test(e)?`local_${e}`:`local_${this.locals.size}`;this.locals.set(e,r),this.prelude.push(`const ${r} = ${n};`)}if(this.message.pattern!==void 0)return this.pattern(this.message.pattern);let e=this.message.selectors.map(e=>this.selector(e)),t=this.message.variants.map(e=>`{ keys: ${s(e.keys)}, pattern: () => ${this.pattern(e.pattern)} }`);return this.used.add(`select`),`$select([${e.join(`, `)}], [${t.join(`, `)}])`}}const p={cache:{js:`const $formats = new Map();
2
+ function $cached(kind, options, create)
3
+ {
4
+ const key = kind + JSON.stringify(options);
5
+ let instance = $formats.get(key);
6
+ if (instance === undefined)
7
+ {
8
+ instance = create();
9
+ $formats.set(key, instance);
10
+ }
11
+ return instance;
12
+ }`,ts:`const $formats: Map<string, unknown> = new Map();
13
+ function $cached<T>(kind: string, options: object, create: () => T): T
14
+ {
15
+ const key = kind + JSON.stringify(options);
16
+ let instance = $formats.get(key) as T | undefined;
17
+ if (instance === undefined)
18
+ {
19
+ instance = create();
20
+ $formats.set(key, instance);
21
+ }
22
+ return instance;
23
+ }`},once:{js:`function $once(create)
24
+ {
25
+ let instance;
26
+ return () => (instance ??= create());
27
+ }`,ts:`function $once<T>(create: () => T): () => T
28
+ {
29
+ let instance: T | undefined;
30
+ return () => (instance ??= create());
31
+ }`},number:{js:`function $number(value, options)
32
+ {
33
+ return $cached("n", options, () => new Intl.NumberFormat(locale, options)).format(value);
34
+ }`,ts:`function $number(value: number, options: Intl.NumberFormatOptions): string
35
+ {
36
+ return $cached("n", options, () => new Intl.NumberFormat(locale, options)).format(value);
37
+ }`},plural:{js:`function $plural(value, type, options)
38
+ {
39
+ return $cached("p" + type, options, () => new Intl.PluralRules(locale, { ...$cached("n", options, () => new Intl.NumberFormat(locale, options)).resolvedOptions(), type })).select(value);
40
+ }`,ts:`function $plural(value: number, type: "cardinal" | "ordinal", options: Intl.NumberFormatOptions): string
41
+ {
42
+ return $cached("p" + type, options, () => new Intl.PluralRules(locale, { ...$cached("n", options, () => new Intl.NumberFormat(locale, options)).resolvedOptions(), type })).select(value);
43
+ }`},select:{js:`function $select(selectors, variants)
44
+ {
45
+ let best;
46
+ let bestRank;
47
+ for (const variant of variants)
48
+ {
49
+ const rank = [];
50
+ let matches = true;
51
+ for (const [index, key] of variant.keys.entries())
52
+ {
53
+ const selector = selectors[index];
54
+ if (key === "*")
55
+ {
56
+ rank.push(0);
57
+ }
58
+ else if (key === selector.value)
59
+ {
60
+ rank.push(2);
61
+ }
62
+ else if (selector.categories.includes(key))
63
+ {
64
+ rank.push(1);
65
+ }
66
+ else
67
+ {
68
+ matches = false;
69
+ break;
70
+ }
71
+ }
72
+ if (!matches)
73
+ {
74
+ continue;
75
+ }
76
+ if (matches && $better(rank, bestRank))
77
+ {
78
+ best = variant;
79
+ bestRank = rank;
80
+ }
81
+ }
82
+ return best === undefined ? "" : best.pattern();
83
+ }
84
+ function $better(rank, current)
85
+ {
86
+ if (current === undefined)
87
+ {
88
+ return true;
89
+ }
90
+ for (const [index, score] of rank.entries())
91
+ {
92
+ const other = current[index] ?? 0;
93
+ if (score !== other)
94
+ {
95
+ return score > other;
96
+ }
97
+ }
98
+ return false;
99
+ }`,ts:`interface Selector
100
+ {
101
+ value: string;
102
+ categories: string[];
103
+ }
104
+ interface Variant
105
+ {
106
+ keys: string[];
107
+ pattern: () => string;
108
+ }
109
+ function $better(rank: number[], current: number[] | undefined): boolean
110
+ {
111
+ if (current === undefined)
112
+ {
113
+ return true;
114
+ }
115
+ for (const [index, score] of rank.entries())
116
+ {
117
+ const other = current[index] ?? 0;
118
+ if (score !== other)
119
+ {
120
+ return score > other;
121
+ }
122
+ }
123
+ return false;
124
+ }
125
+ function $select(selectors: Selector[], variants: Variant[]): string
126
+ {
127
+ let best: Variant | undefined;
128
+ let bestRank: number[] | undefined;
129
+ for (const variant of variants)
130
+ {
131
+ const rank: number[] = [];
132
+ let matches = true;
133
+ for (const [index, key] of variant.keys.entries())
134
+ {
135
+ const selector = selectors[index];
136
+ if (key === "*")
137
+ {
138
+ rank.push(0);
139
+ }
140
+ else if (selector !== undefined && key === selector.value)
141
+ {
142
+ rank.push(2);
143
+ }
144
+ else if (selector !== undefined && selector.categories.includes(key))
145
+ {
146
+ rank.push(1);
147
+ }
148
+ else
149
+ {
150
+ matches = false;
151
+ break;
152
+ }
153
+ }
154
+ if (matches && $better(rank, bestRank))
155
+ {
156
+ best = variant;
157
+ bestRank = rank;
158
+ }
159
+ }
160
+ return best === undefined ? "" : best.pattern();
161
+ }`}};function m(e,t){let n=new Set(e);return(n.has(`number`)||n.has(`plural`))&&n.add(`cache`),Object.keys(p).filter(e=>n.has(e)).map(e=>p[e][t?`js`:`ts`]).join(`
162
+ `)}function h(e){return e===`number`?`number`:e===`date`?`Date | number`:`string | number`}export function compileMessages(t,n,r={}){let a=r.language===`js`,l=[];l.push(`// Generated by @zerolith/i18n from ${c(r.source??`the ${t} catalog`)}. Do not edit; regenerate instead.`),a&&l.push(`// @ts-check`),l.push(`export const locale${a?``:`: string`} = ${s(t)};`),l.push(``);let p=l.length,g=new Map,_=new Set,v=[],y=new Set;for(let[t,r]of Object.entries(n)){let n=d(t);if(y.has(n))throw Error(`zerolith/i18n: keys "${t}" and another one both become ${n}`);if(n===`locale`)throw Error(`zerolith/i18n: key "${t}" becomes locale, which every compiled module exports; rename the key`);let s=i.has(n)?`message_${n}`:n;y.add(n),v.push(n);let c=new e(r,t).parse(),p=new f(t,c,g,_),m=p.body(),b=[...p.arguments.entries()].toSorted(([e],[t])=>e.localeCompare(t)),x=r.replace(/\*\//g,`* /`).replaceAll(`<`,`&lt;`).split(o).map(e=>` * ${e}`.trimEnd()).join(`
163
+ `),S=`{ ${b.map(([e,t])=>`${u(e)}: ${h(t)}`).join(`; `)} }`;a?(l.push(`/**\n${x}${b.length>0?`\n * @param {${S}} args`:``}\n * @returns {string}\n */`),l.push(`${s===n?`export `:``}function ${s}(${b.length>0?`args`:``})`)):(l.push(`/**\n${x}\n */`),l.push(`${s===n?`export `:``}function ${s}(${b.length>0?`args: ${S}`:``}): string`)),l.push(`{`);for(let e of p.prelude)l.push(` ${e}`);l.push(` return ${m};`),l.push(`}`),s!==n&&l.push(`export { ${s} as ${n} };`),l.push(``)}let b=m(_,a),x=Array.from(g,([e,t])=>`const ${t} = $once(() => ${e});`);return l.splice(p,0,...b===``?[]:[b,``],...x.length===0?[]:[...x,``]),{code:l.join(`
164
+ `),names:v}}export function messageNames(e){return Object.keys(e).map(d)}export function compileIndex(e,t={}){let n=t.language===`js`,r=n?`js`:`ts`,i=[`// Generated by @zerolith/i18n. Do not edit; regenerate instead.`];return n&&i.push(`// @ts-check`),n||(i.push(`import type * as first from ${s(`./${e[0]??`en`}.${r}`)};`),i.push(``)),i.push(`export const locales${n?``:`: readonly string[]`} = ${s(e)};`),i.push(``),i.push(`/** Loads one locale's messages; each locale is its own module. */`),i.push(n?`export const loaders = {`:`export const loaders: Readonly<Record<string, () => Promise<typeof first>>> = {`),i.push(e.map(e=>` ${s(e)}: () => import(${s(`./${e}.${r}`)})`).join(`,
165
+ `)),i.push(`};`),i.push(``),i.join(`
166
+ `)}
167
+ //# sourceMappingURL=compile.js.map