gettext-universal 1.0.21 → 1.0.23
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/bin/gettext-universal.js +1 -1
- package/build/bin/gettext-universal.js +2 -2
- package/build/bin/po2js.js +2 -2
- package/build/src/config.d.ts +25 -7
- package/build/src/config.d.ts.map +1 -1
- package/build/src/config.js +26 -4
- package/build/src/po2js.d.ts.map +1 -1
- package/build/src/po2js.js +2 -1
- package/build/src/scanner.d.ts +10 -3
- package/build/src/scanner.d.ts.map +1 -1
- package/build/src/scanner.js +8 -1
- package/build/src/translate-context.d.ts +1 -1
- package/build/src/translate-context.d.ts.map +1 -1
- package/build/src/translate-context.js +2 -2
- package/build/src/translate.d.ts +2 -2
- package/build/src/translate.d.ts.map +1 -1
- package/build/src/translate.js +6 -5
- package/build/src/use-locale-expo.d.ts +25 -0
- package/build/src/use-locale-expo.d.ts.map +1 -0
- package/build/src/use-locale-expo.js +82 -0
- package/build/src/with-translate.d.ts +3 -2
- package/build/src/with-translate.d.ts.map +1 -1
- package/build/src/with-translate.js +4 -3
- package/package.json +6 -3
package/bin/gettext-universal.js
CHANGED
|
@@ -36,6 +36,6 @@ if (extensions.length == 0) {
|
|
|
36
36
|
extensions.push(".js", ".cjs", ".mjs", ".jsx", ".tsx")
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
const scanner = new Scanner({directory, extensions, files, ignores, output})
|
|
39
|
+
const scanner = new Scanner({directory: /** @type {string} */ (directory), extensions, files, ignores, output: /** @type {string} */ (output)})
|
|
40
40
|
|
|
41
41
|
await scanner.scan()
|
|
@@ -34,6 +34,6 @@ for (let i = 0; i < processArgs.length; i++) {
|
|
|
34
34
|
if (extensions.length == 0) {
|
|
35
35
|
extensions.push(".js", ".cjs", ".mjs", ".jsx", ".tsx");
|
|
36
36
|
}
|
|
37
|
-
const scanner = new Scanner({ directory, extensions, files, ignores, output });
|
|
37
|
+
const scanner = new Scanner({ directory: /** @type {string} */ (directory), extensions, files, ignores, output: /** @type {string} */ (output) });
|
|
38
38
|
await scanner.scan();
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0dGV4dC11bml2ZXJzYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9iaW4vZ2V0dGV4dC11bml2ZXJzYWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sT0FBTyxNQUFNLG1CQUFtQixDQUFBO0FBRXZDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3pDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQTtBQUNyQixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUE7QUFDaEIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFBO0FBQ2xCLElBQUksU0FBUyxFQUFFLE1BQU0sQ0FBQTtBQUVyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQzVDLE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUUxQixJQUFJLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUN6QixTQUFTLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDOUIsQ0FBQztTQUFNLElBQUksR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2hDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNuQyxDQUFDO1NBQU0sSUFBSSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7UUFDNUIsT0FBTyxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUU3QixJQUFJLENBQUMsSUFBSTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7WUFFNUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNsQixDQUFDO0lBQ0gsQ0FBQztTQUFNLElBQUksR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNoQyxDQUFDO1NBQU0sSUFBSSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDN0IsTUFBTSxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzNCLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0FBQ0gsQ0FBQztBQUVELElBQUksVUFBVSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUMzQixVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUN4RCxDQUFDO0FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsRUFBQyxTQUFTLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDLENBQUE7QUFFL0ksTUFBTSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5cbmltcG9ydCBTY2FubmVyIGZyb20gXCIuLi9zcmMvc2Nhbm5lci5qc1wiXG5cbmNvbnN0IHByb2Nlc3NBcmdzID0gcHJvY2Vzcy5hcmd2LnNsaWNlKDIpXG5jb25zdCBleHRlbnNpb25zID0gW11cbmNvbnN0IGZpbGVzID0gW11cbmNvbnN0IGlnbm9yZXMgPSBbXVxubGV0IGRpcmVjdG9yeSwgb3V0cHV0XG5cbmZvciAobGV0IGkgPSAwOyBpIDwgcHJvY2Vzc0FyZ3MubGVuZ3RoOyBpKyspIHtcbiAgY29uc3QgYXJnID0gcHJvY2Vzc0FyZ3NbaV1cblxuICBpZiAoYXJnID09IFwiLS1kaXJlY3RvcnlcIikge1xuICAgIGRpcmVjdG9yeSA9IHByb2Nlc3NBcmdzWysraV1cbiAgfSBlbHNlIGlmIChhcmcgPT0gXCItLWV4dGVuc2lvblwiKSB7XG4gICAgZXh0ZW5zaW9ucy5wdXNoKHByb2Nlc3NBcmdzWysraV0pXG4gIH0gZWxzZSBpZiAoYXJnID09IFwiLS1maWxlc1wiKSB7XG4gICAgd2hpbGUgKGkgPCBwcm9jZXNzQXJncy5sZW5ndGggLSAxKSB7XG4gICAgICBjb25zdCBmaWxlID0gcHJvY2Vzc0FyZ3NbKytpXVxuXG4gICAgICBpZiAoIWZpbGUpIHRocm93IG5ldyBFcnJvcihcIk5vIGZpbGUgZm91bmQ/XCIpXG5cbiAgICAgIGZpbGVzLnB1c2goZmlsZSlcbiAgICB9XG4gIH0gZWxzZSBpZiAoYXJnID09IFwiLS1pZ25vcmVcIikge1xuICAgIGlnbm9yZXMucHVzaChwcm9jZXNzQXJnc1srK2ldKVxuICB9IGVsc2UgaWYgKGFyZyA9PSBcIi0tb3V0cHV0XCIpIHtcbiAgICBvdXRwdXQgPSBwcm9jZXNzQXJnc1srK2ldXG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGFyZ3VtZW50OiAke2FyZ31gKVxuICB9XG59XG5cbmlmIChleHRlbnNpb25zLmxlbmd0aCA9PSAwKSB7XG4gIGV4dGVuc2lvbnMucHVzaChcIi5qc1wiLCBcIi5janNcIiwgXCIubWpzXCIsIFwiLmpzeFwiLCBcIi50c3hcIilcbn1cblxuY29uc3Qgc2Nhbm5lciA9IG5ldyBTY2FubmVyKHtkaXJlY3Rvcnk6IC8qKiBAdHlwZSB7c3RyaW5nfSAqLyAoZGlyZWN0b3J5KSwgZXh0ZW5zaW9ucywgZmlsZXMsIGlnbm9yZXMsIG91dHB1dDogLyoqIEB0eXBlIHtzdHJpbmd9ICovIChvdXRwdXQpfSlcblxuYXdhaXQgc2Nhbm5lci5zY2FuKClcbiJdfQ==
|
package/build/bin/po2js.js
CHANGED
|
@@ -11,6 +11,6 @@ for (let i = 0; i < processArgs.length; i++) {
|
|
|
11
11
|
throw new Error(`Unknown argument: ${arg}`);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
const po2Js = new Po2Js({ directory });
|
|
14
|
+
const po2Js = new Po2Js({ directory: /** @type {string} */ (directory) });
|
|
15
15
|
await po2Js.run();
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8yanMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9iaW4vcG8yanMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sS0FBSyxNQUFNLGlCQUFpQixDQUFBO0FBRW5DLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3pDLElBQUksU0FBUyxDQUFBO0FBRWIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUM1QyxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFMUIsSUFBSSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFDekIsU0FBUyxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzlCLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsR0FBRyxFQUFFLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLEVBQUMsU0FBUyxFQUFFLHFCQUFxQixDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUMsQ0FBQyxDQUFBO0FBRXZFLE1BQU0sS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgUG8ySnMgZnJvbSBcIi4uL3NyYy9wbzJqcy5qc1wiXG5cbmNvbnN0IHByb2Nlc3NBcmdzID0gcHJvY2Vzcy5hcmd2LnNsaWNlKDIpXG5sZXQgZGlyZWN0b3J5XG5cbmZvciAobGV0IGkgPSAwOyBpIDwgcHJvY2Vzc0FyZ3MubGVuZ3RoOyBpKyspIHtcbiAgY29uc3QgYXJnID0gcHJvY2Vzc0FyZ3NbaV1cblxuICBpZiAoYXJnID09IFwiLS1kaXJlY3RvcnlcIikge1xuICAgIGRpcmVjdG9yeSA9IHByb2Nlc3NBcmdzWysraV1cbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gYXJndW1lbnQ6ICR7YXJnfWApXG4gIH1cbn1cblxuY29uc3QgcG8ySnMgPSBuZXcgUG8ySnMoe2RpcmVjdG9yeTogLyoqIEB0eXBlIHtzdHJpbmd9ICovIChkaXJlY3RvcnkpfSlcblxuYXdhaXQgcG8ySnMucnVuKClcbiJdfQ==
|
package/build/src/config.d.ts
CHANGED
|
@@ -3,21 +3,39 @@ declare const config: Config;
|
|
|
3
3
|
declare class Config {
|
|
4
4
|
/** @type {Record<string, Record<string, any>>} */
|
|
5
5
|
locales: Record<string, Record<string, any>>;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
/** @param {{keys: () => string[], (key: string): {default: Record<string, any>}}} requireContext */
|
|
7
|
+
loadTranslationsFromRequireContext(requireContext: {
|
|
8
|
+
keys: () => string[];
|
|
9
|
+
(key: string): {
|
|
10
|
+
default: Record<string, any>;
|
|
11
|
+
};
|
|
12
|
+
}): void;
|
|
13
|
+
getFallbacks(): string[] | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Returns the active locale. If `setLocale` was called with a
|
|
16
|
+
* function (a resolver), the resolver is invoked here so callers
|
|
17
|
+
* always receive a string — this lets apps plumb a per-request
|
|
18
|
+
* locale through AsyncLocalStorage (or similar) transparently.
|
|
19
|
+
*
|
|
20
|
+
* @returns {string | undefined}
|
|
21
|
+
*/
|
|
22
|
+
getLocale(): string | undefined;
|
|
9
23
|
getLocales(): Record<string, Record<string, any>>;
|
|
10
24
|
/**
|
|
11
25
|
* @param {string[]} fallbacks
|
|
12
26
|
* @returns {void}
|
|
13
27
|
*/
|
|
14
28
|
setFallbacks(fallbacks: string[]): void;
|
|
15
|
-
fallbacks: string[];
|
|
29
|
+
fallbacks: string[] | undefined;
|
|
16
30
|
/**
|
|
17
|
-
*
|
|
31
|
+
* Sets the active locale. Accepts a string (global/static locale)
|
|
32
|
+
* OR a function that returns the current locale on each call
|
|
33
|
+
* (useful for per-request locale backed by AsyncLocalStorage).
|
|
34
|
+
*
|
|
35
|
+
* @param {string | (() => string | undefined)} locale
|
|
18
36
|
* @returns {void}
|
|
19
37
|
*/
|
|
20
|
-
setLocale(locale: string): void;
|
|
21
|
-
locale: string;
|
|
38
|
+
setLocale(locale: string | (() => string | undefined)): void;
|
|
39
|
+
locale: string | (() => string | undefined) | undefined;
|
|
22
40
|
}
|
|
23
41
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.js"],"names":[],"mappings":";AAuEA,6BAA2B;AAnE3B;IAEI,kDAAkD;IAClD,SADW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAC7B;IAGnB,oGAAoG;IACpG,mDADY;QAAC,IAAI,EAAE,MAAM,MAAM,EAAE,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG;YAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;SAAC,CAAA;KAAC,QAchF;IAED,qCAAwC;IAExC;;;;;;;OAOG;IACH,aAFa,MAAM,GAAG,SAAS,CAK9B;IAED,kDAAoC;IAEpC;;;OAGG;IACH,wBAHW,MAAM,EAAE,GACN,IAAI,CAIhB;IADC,gCAA0B;IAG5B;;;;;;;OAOG;IACH,kBAHW,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,GACjC,IAAI,CAWhB;IARC,wBAJyB,MAAM,GAAG,SAAS,cAIvB;CASvB"}
|
package/build/src/config.js
CHANGED
|
@@ -5,6 +5,7 @@ class Config {
|
|
|
5
5
|
/** @type {Record<string, Record<string, any>>} */
|
|
6
6
|
this.locales = {};
|
|
7
7
|
}
|
|
8
|
+
/** @param {{keys: () => string[], (key: string): {default: Record<string, any>}}} requireContext */
|
|
8
9
|
loadTranslationsFromRequireContext(requireContext) {
|
|
9
10
|
for (const localeFile of requireContext.keys()) {
|
|
10
11
|
const match = localeFile.match(/([a-z]{2}).js$/);
|
|
@@ -17,7 +18,19 @@ class Config {
|
|
|
17
18
|
}
|
|
18
19
|
}
|
|
19
20
|
getFallbacks() { return this.fallbacks; }
|
|
20
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Returns the active locale. If `setLocale` was called with a
|
|
23
|
+
* function (a resolver), the resolver is invoked here so callers
|
|
24
|
+
* always receive a string — this lets apps plumb a per-request
|
|
25
|
+
* locale through AsyncLocalStorage (or similar) transparently.
|
|
26
|
+
*
|
|
27
|
+
* @returns {string | undefined}
|
|
28
|
+
*/
|
|
29
|
+
getLocale() {
|
|
30
|
+
if (typeof this.locale === "function")
|
|
31
|
+
return this.locale();
|
|
32
|
+
return this.locale;
|
|
33
|
+
}
|
|
21
34
|
getLocales() { return this.locales; }
|
|
22
35
|
/**
|
|
23
36
|
* @param {string[]} fallbacks
|
|
@@ -27,14 +40,23 @@ class Config {
|
|
|
27
40
|
this.fallbacks = fallbacks;
|
|
28
41
|
}
|
|
29
42
|
/**
|
|
30
|
-
*
|
|
43
|
+
* Sets the active locale. Accepts a string (global/static locale)
|
|
44
|
+
* OR a function that returns the current locale on each call
|
|
45
|
+
* (useful for per-request locale backed by AsyncLocalStorage).
|
|
46
|
+
*
|
|
47
|
+
* @param {string | (() => string | undefined)} locale
|
|
31
48
|
* @returns {void}
|
|
32
49
|
*/
|
|
33
50
|
setLocale(locale) {
|
|
34
51
|
this.locale = locale;
|
|
35
|
-
|
|
52
|
+
// Only emit for static locales. Function resolvers return a
|
|
53
|
+
// per-request locale dynamically — emitting undefined would
|
|
54
|
+
// mislead listeners into thinking the locale was cleared.
|
|
55
|
+
if (typeof locale !== "function") {
|
|
56
|
+
events.emit("onLocaleChange", { locale });
|
|
57
|
+
}
|
|
36
58
|
}
|
|
37
59
|
}
|
|
38
60
|
const config = new Config();
|
|
39
61
|
export default config;
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBRWhDLE1BQU0sTUFBTTtJQUNWO1FBQ0Usa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQ25CLENBQUM7SUFFRCxvR0FBb0c7SUFDcEcsa0NBQWtDLENBQUMsY0FBYztRQUMvQyxLQUFLLE1BQU0sVUFBVSxJQUFJLGNBQWMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQy9DLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtZQUVoRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsVUFBVSxFQUFFLENBQUMsQ0FBQTtZQUNwRSxDQUFDO1lBRUQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ3ZCLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUE7WUFFdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxZQUFZLENBQUE7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLEtBQUssT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFBLENBQUMsQ0FBQztJQUV4Qzs7Ozs7OztPQU9HO0lBQ0gsU0FBUztRQUNQLElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFVBQVU7WUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUMzRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUE7SUFDcEIsQ0FBQztJQUVELFVBQVUsS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUEsQ0FBQyxDQUFDO0lBRXBDOzs7T0FHRztJQUNILFlBQVksQ0FBQyxTQUFTO1FBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFBO0lBQzVCLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsU0FBUyxDQUFDLE1BQU07UUFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUVwQiw0REFBNEQ7UUFDNUQsNERBQTREO1FBQzVELDBEQUEwRDtRQUMxRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBQyxNQUFNLEVBQUMsQ0FBQyxDQUFBO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFBO0FBRTNCLGVBQWUsTUFBTSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBldmVudHMgZnJvbSBcIi4vZXZlbnRzLmpzXCJcblxuY2xhc3MgQ29uZmlnIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBhbnk+Pn0gKi9cbiAgICB0aGlzLmxvY2FsZXMgPSB7fVxuICB9XG5cbiAgLyoqIEBwYXJhbSB7e2tleXM6ICgpID0+IHN0cmluZ1tdLCAoa2V5OiBzdHJpbmcpOiB7ZGVmYXVsdDogUmVjb3JkPHN0cmluZywgYW55Pn19fSByZXF1aXJlQ29udGV4dCAqL1xuICBsb2FkVHJhbnNsYXRpb25zRnJvbVJlcXVpcmVDb250ZXh0KHJlcXVpcmVDb250ZXh0KSB7XG4gICAgZm9yIChjb25zdCBsb2NhbGVGaWxlIG9mIHJlcXVpcmVDb250ZXh0LmtleXMoKSkge1xuICAgICAgY29uc3QgbWF0Y2ggPSBsb2NhbGVGaWxlLm1hdGNoKC8oW2Etel17Mn0pLmpzJC8pXG5cbiAgICAgIGlmICghbWF0Y2gpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZG4ndCBkZXRlY3QgbG9jYWxlIGZyb20gZmlsZTogJHtsb2NhbGVGaWxlfWApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxvY2FsZSA9IG1hdGNoWzFdXG4gICAgICBjb25zdCB0cmFuc2xhdGlvbnMgPSByZXF1aXJlQ29udGV4dChsb2NhbGVGaWxlKS5kZWZhdWx0XG5cbiAgICAgIHRoaXMubG9jYWxlc1tsb2NhbGVdID0gdHJhbnNsYXRpb25zXG4gICAgfVxuICB9XG5cbiAgZ2V0RmFsbGJhY2tzKCkgeyByZXR1cm4gdGhpcy5mYWxsYmFja3MgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBhY3RpdmUgbG9jYWxlLiBJZiBgc2V0TG9jYWxlYCB3YXMgY2FsbGVkIHdpdGggYVxuICAgKiBmdW5jdGlvbiAoYSByZXNvbHZlciksIHRoZSByZXNvbHZlciBpcyBpbnZva2VkIGhlcmUgc28gY2FsbGVyc1xuICAgKiBhbHdheXMgcmVjZWl2ZSBhIHN0cmluZyDigJQgdGhpcyBsZXRzIGFwcHMgcGx1bWIgYSBwZXItcmVxdWVzdFxuICAgKiBsb2NhbGUgdGhyb3VnaCBBc3luY0xvY2FsU3RvcmFnZSAob3Igc2ltaWxhcikgdHJhbnNwYXJlbnRseS5cbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICovXG4gIGdldExvY2FsZSgpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMubG9jYWxlID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiB0aGlzLmxvY2FsZSgpXG4gICAgcmV0dXJuIHRoaXMubG9jYWxlXG4gIH1cblxuICBnZXRMb2NhbGVzKCkgeyByZXR1cm4gdGhpcy5sb2NhbGVzIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gZmFsbGJhY2tzXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgc2V0RmFsbGJhY2tzKGZhbGxiYWNrcykge1xuICAgIHRoaXMuZmFsbGJhY2tzID0gZmFsbGJhY2tzXG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYWN0aXZlIGxvY2FsZS4gQWNjZXB0cyBhIHN0cmluZyAoZ2xvYmFsL3N0YXRpYyBsb2NhbGUpXG4gICAqIE9SIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIHRoZSBjdXJyZW50IGxvY2FsZSBvbiBlYWNoIGNhbGxcbiAgICogKHVzZWZ1bCBmb3IgcGVyLXJlcXVlc3QgbG9jYWxlIGJhY2tlZCBieSBBc3luY0xvY2FsU3RvcmFnZSkuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgKCgpID0+IHN0cmluZyB8IHVuZGVmaW5lZCl9IGxvY2FsZVxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHNldExvY2FsZShsb2NhbGUpIHtcbiAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZVxuXG4gICAgLy8gT25seSBlbWl0IGZvciBzdGF0aWMgbG9jYWxlcy4gRnVuY3Rpb24gcmVzb2x2ZXJzIHJldHVybiBhXG4gICAgLy8gcGVyLXJlcXVlc3QgbG9jYWxlIGR5bmFtaWNhbGx5IOKAlCBlbWl0dGluZyB1bmRlZmluZWQgd291bGRcbiAgICAvLyBtaXNsZWFkIGxpc3RlbmVycyBpbnRvIHRoaW5raW5nIHRoZSBsb2NhbGUgd2FzIGNsZWFyZWQuXG4gICAgaWYgKHR5cGVvZiBsb2NhbGUgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgZXZlbnRzLmVtaXQoXCJvbkxvY2FsZUNoYW5nZVwiLCB7bG9jYWxlfSlcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgY29uZmlnID0gbmV3IENvbmZpZygpXG5cbmV4cG9ydCBkZWZhdWx0IGNvbmZpZ1xuIl19
|
package/build/src/po2js.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"po2js.d.ts","sourceRoot":"","sources":["../../src/po2js.js"],"names":[],"mappings":"AAKA;IACE;;;OAGG;IACH,2BAFG;QAAqB,SAAS,EAAtB,MAAM;KAChB,EAGA;IADC,kBAA0B;IAG5B,qBAUC;IAED;;;OAGG;IACH,eAHW,MAAM,OACN,MAAM,
|
|
1
|
+
{"version":3,"file":"po2js.d.ts","sourceRoot":"","sources":["../../src/po2js.js"],"names":[],"mappings":"AAKA;IACE;;;OAGG;IACH,2BAFG;QAAqB,SAAS,EAAtB,MAAM;KAChB,EAGA;IADC,kBAA0B;IAG5B,qBAUC;IAED;;;OAGG;IACH,eAHW,MAAM,OACN,MAAM,iBAwBhB;CACF"}
|
package/build/src/po2js.js
CHANGED
|
@@ -29,6 +29,7 @@ export default class Po2Js {
|
|
|
29
29
|
const fileContentBuffer = await fs.readFile(fullPath);
|
|
30
30
|
const fileContent = fileContentBuffer.toString();
|
|
31
31
|
const matches = fileContent.matchAll(/#: (.+?)\nmsgid \"(.+?)\"\nmsgstr \"(.+?)\"\n(\n|$)/g);
|
|
32
|
+
/** @type {Record<string, string>} */
|
|
32
33
|
const translations = {};
|
|
33
34
|
for (const match of matches) {
|
|
34
35
|
const msgId = match[2];
|
|
@@ -40,4 +41,4 @@ export default class Po2Js {
|
|
|
40
41
|
console.log(`Wrote ${jsFilePath}`);
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8yanMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcG8yanMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxRQUFRLElBQUksRUFBRSxFQUFDLE1BQU0sSUFBSSxDQUFBO0FBQ2pDLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUV2QixNQUFNLENBQUMsT0FBTyxPQUFPLEtBQUs7SUFDeEI7OztPQUdHO0lBQ0gsWUFBWSxFQUFDLFNBQVMsRUFBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEtBQUssR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBRTlDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtZQUU1QyxJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQTtZQUNoQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHO1FBQ3RCLE1BQU0sUUFBUSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQTtRQUM1QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUN6QyxNQUFNLFVBQVUsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksUUFBUSxLQUFLLENBQUE7UUFDckQsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDckQsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDaEQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxzREFBc0QsQ0FBQyxDQUFBO1FBQzVGLHFDQUFxQztRQUNyQyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUE7UUFFdkIsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM1QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDdEIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBRXZCLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUE7UUFDOUIsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLGtCQUFrQixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQTtRQUUxRSxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBRXRDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxVQUFVLEVBQUUsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQge3Byb21pc2VzIGFzIGZzfSBmcm9tIFwiZnNcIlxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQbzJKcyB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJnc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5kaXJlY3RvcnlcbiAgICovXG4gIGNvbnN0cnVjdG9yKHtkaXJlY3Rvcnl9KSB7XG4gICAgdGhpcy5kaXJlY3RvcnkgPSBkaXJlY3RvcnlcbiAgfVxuXG4gIGFzeW5jIHJ1bigpIHtcbiAgICBjb25zdCBmaWxlcyA9IGF3YWl0IGZzLnJlYWRkaXIodGhpcy5kaXJlY3RvcnkpXG5cbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgIGNvbnN0IGV4dCA9IHBhdGguZXh0bmFtZShmaWxlKS50b0xvd2VyQ2FzZSgpXG5cbiAgICAgIGlmIChleHQgPT0gXCIucG9cIikge1xuICAgICAgICBhd2FpdCB0aGlzLnJlYWRGaWxlKGZpbGUsIGV4dClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtzdHJpbmd9IGZpbGVcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV4dFxuICAgKi9cbiAgYXN5bmMgcmVhZEZpbGUoZmlsZSwgZXh0KSB7XG4gICAgY29uc3QgZnVsbFBhdGggPSBgJHt0aGlzLmRpcmVjdG9yeX0vJHtmaWxlfWBcbiAgICBjb25zdCBiYXNlTmFtZSA9IHBhdGguYmFzZW5hbWUoZmlsZSwgZXh0KVxuICAgIGNvbnN0IGpzRmlsZVBhdGggPSBgJHt0aGlzLmRpcmVjdG9yeX0vJHtiYXNlTmFtZX0uanNgXG4gICAgY29uc3QgZmlsZUNvbnRlbnRCdWZmZXIgPSBhd2FpdCBmcy5yZWFkRmlsZShmdWxsUGF0aClcbiAgICBjb25zdCBmaWxlQ29udGVudCA9IGZpbGVDb250ZW50QnVmZmVyLnRvU3RyaW5nKClcbiAgICBjb25zdCBtYXRjaGVzID0gZmlsZUNvbnRlbnQubWF0Y2hBbGwoLyM6ICguKz8pXFxubXNnaWQgXFxcIiguKz8pXFxcIlxcbm1zZ3N0ciBcXFwiKC4rPylcXFwiXFxuKFxcbnwkKS9nKVxuICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gKi9cbiAgICBjb25zdCB0cmFuc2xhdGlvbnMgPSB7fVxuXG4gICAgZm9yIChjb25zdCBtYXRjaCBvZiBtYXRjaGVzKSB7XG4gICAgICBjb25zdCBtc2dJZCA9IG1hdGNoWzJdXG4gICAgICBjb25zdCBtc2dTdHIgPSBtYXRjaFszXVxuXG4gICAgICB0cmFuc2xhdGlvbnNbbXNnSWRdID0gbXNnU3RyXG4gICAgfVxuXG4gICAgY29uc3QganNDb2RlID0gYGV4cG9ydCBkZWZhdWx0ICR7SlNPTi5zdHJpbmdpZnkodHJhbnNsYXRpb25zLCBudWxsLCAyKX1cXG5gXG5cbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoanNGaWxlUGF0aCwganNDb2RlKVxuXG4gICAgY29uc29sZS5sb2coYFdyb3RlICR7anNGaWxlUGF0aH1gKVxuICB9XG59XG4iXX0=
|
package/build/src/scanner.d.ts
CHANGED
|
@@ -34,11 +34,18 @@ export default class Scanner {
|
|
|
34
34
|
scan(): Promise<void>;
|
|
35
35
|
scanGivenFiles(): Promise<void>;
|
|
36
36
|
scanFiles(): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* @param {{localPath: string, fullPath: string}} fileData
|
|
39
|
+
*/
|
|
37
40
|
scanFile({ localPath, fullPath }: {
|
|
38
|
-
localPath:
|
|
39
|
-
fullPath:
|
|
41
|
+
localPath: string;
|
|
42
|
+
fullPath: string;
|
|
40
43
|
}): Promise<void>;
|
|
41
|
-
|
|
44
|
+
/**
|
|
45
|
+
* @param {string} pathToScan
|
|
46
|
+
* @param {string[]} pathParts
|
|
47
|
+
*/
|
|
48
|
+
scanDir(pathToScan: string, pathParts: string[]): Promise<void>;
|
|
42
49
|
/**
|
|
43
50
|
* @param {object} args
|
|
44
51
|
* @param {string} args.fullPath
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/scanner.js"],"names":[],"mappings":"AAGA;IACE;;;;;;;OAOG;IACH,4EANG;QAAqB,SAAS,EAAtB,MAAM;QACS,UAAU,EAAzB,MAAM,EAAE;QACO,KAAK,EAApB,MAAM,EAAE;QACO,OAAO,EAAtB,MAAM,EAAE;QACK,MAAM,EAAnB,MAAM;KAChB,EAeA;IAXC,kBAA0B;IAC1B,qBAA4B;IAC5B,gBAAkB;IAClB,kBAAsB;IACtB,eAAoB;IAEpB,2DAA2D;IAC3D,cADW,KAAK,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAC,CACjC;IAEtB,sFAAsF;IACtF,cADW,MAAM,CAAC,MAAM,EAAE;QAAC,KAAK,EAAE,KAAK,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAC,CAAC,CAAA;KAAC,CAAC,CAC5D;IAGxB,sBAgBC;IAED,gCAOC;IAED,2BAQC;IAED;;;
|
|
1
|
+
{"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../src/scanner.js"],"names":[],"mappings":"AAGA;IACE;;;;;;;OAOG;IACH,4EANG;QAAqB,SAAS,EAAtB,MAAM;QACS,UAAU,EAAzB,MAAM,EAAE;QACO,KAAK,EAApB,MAAM,EAAE;QACO,OAAO,EAAtB,MAAM,EAAE;QACK,MAAM,EAAnB,MAAM;KAChB,EAeA;IAXC,kBAA0B;IAC1B,qBAA4B;IAC5B,gBAAkB;IAClB,kBAAsB;IACtB,eAAoB;IAEpB,2DAA2D;IAC3D,cADW,KAAK,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAC,CACjC;IAEtB,sFAAsF;IACtF,cADW,MAAM,CAAC,MAAM,EAAE;QAAC,KAAK,EAAE,KAAK,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAC,CAAC,CAAA;KAAC,CAAC,CAC5D;IAGxB,sBAgBC;IAED,gCAOC;IAED,2BAQC;IAED;;OAEG;IACH,kCAFW;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,iBA2B/C;IAED;;;OAGG;IACH,oBAHW,MAAM,aACN,MAAM,EAAE,iBA8BlB;IAED;;;;OAIG;IACH,wCAHG;QAAqB,QAAQ,EAArB,MAAM;QACO,SAAS,EAAtB,MAAM;KAChB,QAMA;IAED,6BA4BC;CACF"}
|
package/build/src/scanner.js
CHANGED
|
@@ -55,6 +55,9 @@ export default class Scanner {
|
|
|
55
55
|
}
|
|
56
56
|
await Promise.all(promises);
|
|
57
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* @param {{localPath: string, fullPath: string}} fileData
|
|
60
|
+
*/
|
|
58
61
|
async scanFile({ localPath, fullPath }) {
|
|
59
62
|
if (!fullPath)
|
|
60
63
|
throw new Error(`Invalid fullPath given: ${fullPath}`);
|
|
@@ -77,6 +80,10 @@ export default class Scanner {
|
|
|
77
80
|
}
|
|
78
81
|
}
|
|
79
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* @param {string} pathToScan
|
|
85
|
+
* @param {string[]} pathParts
|
|
86
|
+
*/
|
|
80
87
|
async scanDir(pathToScan, pathParts) {
|
|
81
88
|
const files = await fs.readdir(pathToScan);
|
|
82
89
|
const localPath = pathParts.join("/");
|
|
@@ -133,4 +140,4 @@ export default class Scanner {
|
|
|
133
140
|
await fp.close();
|
|
134
141
|
}
|
|
135
142
|
}
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2FubmVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLElBQUksRUFBRSxFQUFDLE1BQU0sSUFBSSxDQUFBO0FBQ2pDLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUV2QixNQUFNLENBQUMsT0FBTyxPQUFPLE9BQU87SUFDMUI7Ozs7Ozs7T0FPRztJQUNILFlBQVksRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsUUFBUSxFQUFDO1FBQ3RFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUVoSCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtRQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQTtRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUVwQiwyREFBMkQ7UUFDM0QsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUE7UUFFdEIsc0ZBQXNGO1FBQ3RGLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ3hDLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQzdCLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFBO1FBQ3hELENBQUM7UUFFRCxNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUV0QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUMxQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBQyxDQUFDLENBQUE7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYztRQUNsQixLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDckIsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsU0FBUyxFQUFFLElBQUk7YUFDaEIsQ0FBQyxDQUFBO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUztRQUNiLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQTtRQUVuQixLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN6QyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUN4QyxDQUFDO1FBRUQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUMsU0FBUyxFQUFFLFFBQVEsRUFBQztRQUNsQyxJQUFJLENBQUMsUUFBUTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFFckUsTUFBTSxhQUFhLEdBQUcsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ2pELE1BQU0sT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQzlDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUE7UUFFeEMsS0FBSyxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUUsVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNqRSxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBQ2xDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQTtZQUU1RCxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBRTNDLElBQUksQ0FBQyxjQUFjO29CQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUVsRyxJQUFJLENBQUMsQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7b0JBQzNDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEdBQUc7d0JBQ2xDLEtBQUssRUFBRSxFQUFFO3FCQUNWLENBQUE7Z0JBQ0gsQ0FBQztnQkFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFDLENBQUMsQ0FBQTtZQUN2RSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxTQUFTO1FBQ2pDLE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUMxQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRXJDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNyQyx3Q0FBd0M7WUFFeEMsT0FBTTtRQUNSLENBQUM7UUFFRCxrREFBa0Q7UUFFbEQsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QixNQUFNLFFBQVEsR0FBRyxHQUFHLFVBQVUsSUFBSSxJQUFJLEVBQUUsQ0FBQTtZQUN4QyxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7WUFFckMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7Z0JBRTdDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFBO1lBQ3RDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO2dCQUU1QyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsU0FBUyxJQUFJLElBQUksRUFBRSxFQUFDLENBQUMsQ0FBQTtnQkFDcEUsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjLENBQUMsRUFBQyxRQUFRLEVBQUUsU0FBUyxFQUFDO1FBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ3JCLFFBQVE7WUFDUixTQUFTO1NBQ1YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFFMUMsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLENBQUE7UUFFekIsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBQzlCLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUMvQixNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQTtRQUNsRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUEsQ0FBQywwQkFBMEI7UUFFL0MsS0FBSyxNQUFNLGNBQWMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQTtZQUVyRCxJQUFJLGlCQUFpQixJQUFJLENBQUM7Z0JBQUUsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBRWhELEtBQUssTUFBTSxJQUFJLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNyQyxNQUFNLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBQyxHQUFHLElBQUksQ0FBQTtnQkFFcEMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sU0FBUyxJQUFJLFVBQVUsSUFBSSxDQUFDLENBQUE7WUFDbkQsQ0FBQztZQUVELE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLGNBQWMsTUFBTSxDQUFDLENBQUE7WUFDL0MsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFBO1lBRS9CLGlCQUFpQixFQUFFLENBQUE7UUFDckIsQ0FBQztRQUVELE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ2xCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cHJvbWlzZXMgYXMgZnN9IGZyb20gXCJmc1wiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFNjYW5uZXIge1xuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3NcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuZGlyZWN0b3J5XG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGFyZ3MuZXh0ZW5zaW9uc1xuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhcmdzLmZpbGVzXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGFyZ3MuaWdub3Jlc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5vdXRwdXRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHtkaXJlY3RvcnksIGV4dGVuc2lvbnMsIGZpbGVzLCBpZ25vcmVzLCBvdXRwdXQsIC4uLnJlc3RBcmdzfSkge1xuICAgIGlmIChPYmplY3Qua2V5cyhyZXN0QXJncykubGVuZ3RoID4gMCkgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGFycmd1bWVudHM6ICR7T2JqZWN0LmtleXMocmVzdEFyZ3MpLmpvaW4oXCIsIFwiKX1gKVxuXG4gICAgdGhpcy5kaXJlY3RvcnkgPSBkaXJlY3RvcnlcbiAgICB0aGlzLmV4dGVuc2lvbnMgPSBleHRlbnNpb25zXG4gICAgdGhpcy5maWxlcyA9IGZpbGVzXG4gICAgdGhpcy5pZ25vcmVzID0gaWdub3Jlc1xuICAgIHRoaXMub3V0cHV0ID0gb3V0cHV0XG5cbiAgICAvKiogQHR5cGUge0FycmF5PHtmdWxsUGF0aDogc3RyaW5nLCBsb2NhbFBhdGg6IHN0cmluZ30+fSAqL1xuICAgIHRoaXMuc2Nhbm5lZEZpbGVzID0gW11cblxuICAgIC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywge2ZpbGVzOiBBcnJheTx7bG9jYWxQYXRoOiBzdHJpbmcsIGxpbmVOdW1iZXI6IG51bWJlcn0+fT59ICovXG4gICAgdGhpcy50cmFuc2xhdGlvbnMgPSB7fVxuICB9XG5cbiAgYXN5bmMgc2NhbigpIHtcbiAgICBpZiAodGhpcy5kaXJlY3RvcnkpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2NhbkRpcih0aGlzLmRpcmVjdG9yeSwgW10pXG4gICAgfSBlbHNlIGlmICh0aGlzLmZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGF3YWl0IHRoaXMuc2NhbkdpdmVuRmlsZXMoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBkaXJlY3Rvcnkgb3IgZmlsZXMgZ2l2ZW4gdG8gc2NhblwiKVxuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuc2NhbkZpbGVzKClcblxuICAgIGlmICh0aGlzLm91dHB1dCkge1xuICAgICAgYXdhaXQgdGhpcy53cml0ZU91dHB1dCgpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKHt0cmFuc2xhdGlvbnM6IHRoaXMudHJhbnNsYXRpb25zfSlcbiAgICB9XG4gIH1cblxuICBhc3luYyBzY2FuR2l2ZW5GaWxlcygpIHtcbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgdGhpcy5maWxlcykge1xuICAgICAgdGhpcy5zY2FubmVkRmlsZXMucHVzaCh7XG4gICAgICAgIGZ1bGxQYXRoOiBmaWxlLFxuICAgICAgICBsb2NhbFBhdGg6IGZpbGUsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNjYW5GaWxlcygpIHtcbiAgICBjb25zdCBwcm9taXNlcyA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGZpbGVEYXRhIG9mIHRoaXMuc2Nhbm5lZEZpbGVzKSB7XG4gICAgICBwcm9taXNlcy5wdXNoKHRoaXMuc2NhbkZpbGUoZmlsZURhdGEpKVxuICAgIH1cblxuICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuICB9XG5cbiAgYXN5bmMgc2NhbkZpbGUoe2xvY2FsUGF0aCwgZnVsbFBhdGh9KSB7XG4gICAgaWYgKCFmdWxsUGF0aCkgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGZ1bGxQYXRoIGdpdmVuOiAke2Z1bGxQYXRofWApXG5cbiAgICBjb25zdCBjb250ZW50QnVmZmVyID0gYXdhaXQgZnMucmVhZEZpbGUoZnVsbFBhdGgpXG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IGNvbnRlbnRCdWZmZXIudG9TdHJpbmcoKVxuICAgIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdCgvKFxcclxcbnxcXG4pLylcblxuICAgIGZvciAobGV0IGxpbmVOdW1iZXIgPSAxOyBsaW5lTnVtYmVyIDwgbGluZXMubGVuZ3RoOyBsaW5lTnVtYmVyKyspIHtcbiAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1tsaW5lTnVtYmVyIC0gMV1cbiAgICAgIGNvbnN0IG1hdGNoID0gbGluZS5tYXRjaCgvX1xcKFxccyooXCIoLis/KVwifCcoLis/KScpXFxzKigsfFxcKSkvKVxuXG4gICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSBtYXRjaFsyXSB8fCBtYXRjaFszXVxuXG4gICAgICAgIGlmICghdHJhbnNsYXRpb25LZXkpIHRocm93IG5ldyBFcnJvcihgRW1wdHkgdHJhbnNsYXRpb24ga2V5IGZyb20gbWF0Y2g6ICR7SlNPTi5zdHJpbmdpZnkobWF0Y2gpfWApXG5cbiAgICAgICAgaWYgKCEodHJhbnNsYXRpb25LZXkgaW4gdGhpcy50cmFuc2xhdGlvbnMpKSB7XG4gICAgICAgICAgdGhpcy50cmFuc2xhdGlvbnNbdHJhbnNsYXRpb25LZXldID0ge1xuICAgICAgICAgICAgZmlsZXM6IFtdXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbnNbdHJhbnNsYXRpb25LZXldLmZpbGVzLnB1c2goe2xvY2FsUGF0aCwgbGluZU51bWJlcn0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2NhbkRpcihwYXRoVG9TY2FuLCBwYXRoUGFydHMpIHtcbiAgICBjb25zdCBmaWxlcyA9IGF3YWl0IGZzLnJlYWRkaXIocGF0aFRvU2NhbilcbiAgICBjb25zdCBsb2NhbFBhdGggPSBwYXRoUGFydHMuam9pbihcIi9cIilcblxuICAgIGlmICh0aGlzLmlnbm9yZXMuaW5jbHVkZXMobG9jYWxQYXRoKSkge1xuICAgICAgLy8gY29uc29sZS5sb2coYElnbm9yZWluZyAke2xvY2FsUGF0aH1gKVxuXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBjb25zb2xlLmxvZyh7ZmlsZXMsIHBhdGg6IHBhdGhQYXJ0cy5qb2luKFwiL1wiKX0pXG5cbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgIGNvbnN0IGZ1bGxQYXRoID0gYCR7cGF0aFRvU2Nhbn0vJHtmaWxlfWBcbiAgICAgIGNvbnN0IHN0YXQgPSBhd2FpdCBmcy5sc3RhdChmdWxsUGF0aClcblxuICAgICAgaWYgKHN0YXQuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICBjb25zdCBuZXdQYXRoUGFydHMgPSBwYXRoUGFydHMuY29uY2F0KFtmaWxlXSlcblxuICAgICAgICB0aGlzLnNjYW5EaXIoZnVsbFBhdGgsIG5ld1BhdGhQYXJ0cylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGV4dCA9IHBhdGguZXh0bmFtZShmaWxlKS50b0xvd2VyQ2FzZSgpXG5cbiAgICAgICAgaWYgKHRoaXMuZXh0ZW5zaW9ucy5pbmNsdWRlcyhleHQpKSB7XG4gICAgICAgICAgdGhpcy5hZGRTY2FubmVkRmlsZSh7ZnVsbFBhdGgsIGxvY2FsUGF0aDogYCR7bG9jYWxQYXRofS8ke2ZpbGV9YH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3NcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuZnVsbFBhdGhcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MubG9jYWxQYXRoXG4gICAqL1xuICBhZGRTY2FubmVkRmlsZSh7ZnVsbFBhdGgsIGxvY2FsUGF0aH0pIHtcbiAgICB0aGlzLnNjYW5uZWRGaWxlcy5wdXNoKHtcbiAgICAgIGZ1bGxQYXRoLFxuICAgICAgbG9jYWxQYXRoLFxuICAgIH0pXG4gIH1cblxuICBhc3luYyB3cml0ZU91dHB1dCgpIHtcbiAgICBjb25zdCBmcCA9IGF3YWl0IGZzLm9wZW4odGhpcy5vdXRwdXQsIFwid1wiKVxuXG4gICAgbGV0IHRyYW5zbGF0aW9uc0NvdW50ID0gMFxuXG4gICAgYXdhaXQgZnAud3JpdGUoXCJtc2dpZCBcXFwiXFxcIlxcblwiKVxuICAgIGF3YWl0IGZwLndyaXRlKFwibXNnc3RyIFxcXCJcXFwiXFxuXCIpXG4gICAgYXdhaXQgZnAud3JpdGUoXCJcXFwiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04XFxcXG5cXFwiXFxuXCIpXG4gICAgYXdhaXQgZnAud3JpdGUoXCJcXG5cIikgLy8gRW1wdHkgbGluZSBhZnRlciBoZWFkZXJcblxuICAgIGZvciAoY29uc3QgdHJhbnNsYXRpb25LZXkgaW4gdGhpcy50cmFuc2xhdGlvbnMpIHtcbiAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdGhpcy50cmFuc2xhdGlvbnNbdHJhbnNsYXRpb25LZXldXG5cbiAgICAgIGlmICh0cmFuc2xhdGlvbnNDb3VudCA+PSAxKSBhd2FpdCBmcC53cml0ZShcIlxcblwiKVxuXG4gICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgdHJhbnNsYXRpb24uZmlsZXMpIHtcbiAgICAgICAgY29uc3Qge2xvY2FsUGF0aCwgbGluZU51bWJlcn0gPSBmaWxlXG5cbiAgICAgICAgYXdhaXQgZnAud3JpdGUoYCM6ICR7bG9jYWxQYXRofToke2xpbmVOdW1iZXJ9XFxuYClcbiAgICAgIH1cblxuICAgICAgYXdhaXQgZnAud3JpdGUoYG1zZ2lkIFxcXCIke3RyYW5zbGF0aW9uS2V5fVxcXCJcXG5gKVxuICAgICAgYXdhaXQgZnAud3JpdGUoXCJtc2dzdHIgXFxcIlxcXCJcXG5cIilcblxuICAgICAgdHJhbnNsYXRpb25zQ291bnQrK1xuICAgIH1cblxuICAgIGF3YWl0IGZwLmNsb3NlKClcbiAgfVxufVxuIl19
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2FubmVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLElBQUksRUFBRSxFQUFDLE1BQU0sSUFBSSxDQUFBO0FBQ2pDLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUV2QixNQUFNLENBQUMsT0FBTyxPQUFPLE9BQU87SUFDMUI7Ozs7Ozs7T0FPRztJQUNILFlBQVksRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsUUFBUSxFQUFDO1FBQ3RFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUVoSCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtRQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQTtRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQTtRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUVwQiwyREFBMkQ7UUFDM0QsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUE7UUFFdEIsc0ZBQXNGO1FBQ3RGLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFBO0lBQ3hCLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ3hDLENBQUM7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QUUsQ0FBQTtRQUNyQixDQUFDO1FBRUQsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDbEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtwcm9taXNlcyBhcyBmc30gZnJvbSBcImZzXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2Nhbm5lciB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJnc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5kaXJlY3RvcnlcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gYXJncy5leHRlbnNpb25zXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGFyZ3MuZmlsZXNcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gYXJncy5pZ25vcmVzXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLm91dHB1dFxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2RpcmVjdG9yeSwgZXh0ZW5zaW9ucywgZmlsZXMsIGlnbm9yZXMsIG91dHB1dCwgLi4ucmVzdEFyZ3N9KSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKHJlc3RBcmdzKS5sZW5ndGggPiAwKSB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gYXJyZ3VtZW50czogJHtPYmplY3Qua2V5cyhyZXN0QXJncykuam9pbihcIiwgXCIpfWApXG5cbiAgICB0aGlzLmRpcmVjdG9yeSA9IGRpcmVjdG9yeVxuICAgIHRoaXMuZXh0ZW5zaW9ucyA9IGV4dGVuc2lvbnNcbiAgICB0aGlzLmZpbGVzID0gZmlsZXNcbiAgICB0aGlzLmlnbm9yZXMgPSBpZ25vcmVzXG4gICAgdGhpcy5vdXRwdXQgPSBvdXRwdXRcblxuICAgIC8qKiBAdHlwZSB7QXJyYXk8e2Z1bGxQYXRoOiBzdHJpbmcsIGxvY2FsUGF0aDogc3RyaW5nfT59ICovXG4gICAgdGhpcy5zY2FubmVkRmlsZXMgPSBbXVxuXG4gICAgLyoqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCB7ZmlsZXM6IEFycmF5PHtsb2NhbFBhdGg6IHN0cmluZywgbGluZU51bWJlcjogbnVtYmVyfT59Pn0gKi9cbiAgICB0aGlzLnRyYW5zbGF0aW9ucyA9IHt9XG4gIH1cblxuICBhc3luYyBzY2FuKCkge1xuICAgIGlmICh0aGlzLmRpcmVjdG9yeSkge1xuICAgICAgYXdhaXQgdGhpcy5zY2FuRGlyKHRoaXMuZGlyZWN0b3J5LCBbXSlcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgdGhpcy5zY2FuR2l2ZW5GaWxlcygpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIGRpcmVjdG9yeSBvciBmaWxlcyBnaXZlbiB0byBzY2FuXCIpXG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5zY2FuRmlsZXMoKVxuXG4gICAgaWYgKHRoaXMub3V0cHV0KSB7XG4gICAgICBhd2FpdCB0aGlzLndyaXRlT3V0cHV0KClcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coe3RyYW5zbGF0aW9uczogdGhpcy50cmFuc2xhdGlvbnN9KVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNjYW5HaXZlbkZpbGVzKCkge1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiB0aGlzLmZpbGVzKSB7XG4gICAgICB0aGlzLnNjYW5uZWRGaWxlcy5wdXNoKHtcbiAgICAgICAgZnVsbFBhdGg6IGZpbGUsXG4gICAgICAgIGxvY2FsUGF0aDogZmlsZSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgc2NhbkZpbGVzKCkge1xuICAgIGNvbnN0IHByb21pc2VzID0gW11cblxuICAgIGZvciAoY29uc3QgZmlsZURhdGEgb2YgdGhpcy5zY2FubmVkRmlsZXMpIHtcbiAgICAgIHByb21pc2VzLnB1c2godGhpcy5zY2FuRmlsZShmaWxlRGF0YSkpXG4gICAgfVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHt7bG9jYWxQYXRoOiBzdHJpbmcsIGZ1bGxQYXRoOiBzdHJpbmd9fSBmaWxlRGF0YVxuICAgKi9cbiAgYXN5bmMgc2NhbkZpbGUoe2xvY2FsUGF0aCwgZnVsbFBhdGh9KSB7XG4gICAgaWYgKCFmdWxsUGF0aCkgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGZ1bGxQYXRoIGdpdmVuOiAke2Z1bGxQYXRofWApXG5cbiAgICBjb25zdCBjb250ZW50QnVmZmVyID0gYXdhaXQgZnMucmVhZEZpbGUoZnVsbFBhdGgpXG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IGNvbnRlbnRCdWZmZXIudG9TdHJpbmcoKVxuICAgIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdCgvKFxcclxcbnxcXG4pLylcblxuICAgIGZvciAobGV0IGxpbmVOdW1iZXIgPSAxOyBsaW5lTnVtYmVyIDwgbGluZXMubGVuZ3RoOyBsaW5lTnVtYmVyKyspIHtcbiAgICAgIGNvbnN0IGxpbmUgPSBsaW5lc1tsaW5lTnVtYmVyIC0gMV1cbiAgICAgIGNvbnN0IG1hdGNoID0gbGluZS5tYXRjaCgvX1xcKFxccyooXCIoLis/KVwifCcoLis/KScpXFxzKigsfFxcKSkvKVxuXG4gICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSBtYXRjaFsyXSB8fCBtYXRjaFszXVxuXG4gICAgICAgIGlmICghdHJhbnNsYXRpb25LZXkpIHRocm93IG5ldyBFcnJvcihgRW1wdHkgdHJhbnNsYXRpb24ga2V5IGZyb20gbWF0Y2g6ICR7SlNPTi5zdHJpbmdpZnkobWF0Y2gpfWApXG5cbiAgICAgICAgaWYgKCEodHJhbnNsYXRpb25LZXkgaW4gdGhpcy50cmFuc2xhdGlvbnMpKSB7XG4gICAgICAgICAgdGhpcy50cmFuc2xhdGlvbnNbdHJhbnNsYXRpb25LZXldID0ge1xuICAgICAgICAgICAgZmlsZXM6IFtdXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50cmFuc2xhdGlvbnNbdHJhbnNsYXRpb25LZXldLmZpbGVzLnB1c2goe2xvY2FsUGF0aCwgbGluZU51bWJlcn0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXRoVG9TY2FuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHBhdGhQYXJ0c1xuICAgKi9cbiAgYXN5bmMgc2NhbkRpcihwYXRoVG9TY2FuLCBwYXRoUGFydHMpIHtcbiAgICBjb25zdCBmaWxlcyA9IGF3YWl0IGZzLnJlYWRkaXIocGF0aFRvU2NhbilcbiAgICBjb25zdCBsb2NhbFBhdGggPSBwYXRoUGFydHMuam9pbihcIi9cIilcblxuICAgIGlmICh0aGlzLmlnbm9yZXMuaW5jbHVkZXMobG9jYWxQYXRoKSkge1xuICAgICAgLy8gY29uc29sZS5sb2coYElnbm9yZWluZyAke2xvY2FsUGF0aH1gKVxuXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBjb25zb2xlLmxvZyh7ZmlsZXMsIHBhdGg6IHBhdGhQYXJ0cy5qb2luKFwiL1wiKX0pXG5cbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgIGNvbnN0IGZ1bGxQYXRoID0gYCR7cGF0aFRvU2Nhbn0vJHtmaWxlfWBcbiAgICAgIGNvbnN0IHN0YXQgPSBhd2FpdCBmcy5sc3RhdChmdWxsUGF0aClcblxuICAgICAgaWYgKHN0YXQuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICBjb25zdCBuZXdQYXRoUGFydHMgPSBwYXRoUGFydHMuY29uY2F0KFtmaWxlXSlcblxuICAgICAgICB0aGlzLnNjYW5EaXIoZnVsbFBhdGgsIG5ld1BhdGhQYXJ0cylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGV4dCA9IHBhdGguZXh0bmFtZShmaWxlKS50b0xvd2VyQ2FzZSgpXG5cbiAgICAgICAgaWYgKHRoaXMuZXh0ZW5zaW9ucy5pbmNsdWRlcyhleHQpKSB7XG4gICAgICAgICAgdGhpcy5hZGRTY2FubmVkRmlsZSh7ZnVsbFBhdGgsIGxvY2FsUGF0aDogYCR7bG9jYWxQYXRofS8ke2ZpbGV9YH0pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3NcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuZnVsbFBhdGhcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MubG9jYWxQYXRoXG4gICAqL1xuICBhZGRTY2FubmVkRmlsZSh7ZnVsbFBhdGgsIGxvY2FsUGF0aH0pIHtcbiAgICB0aGlzLnNjYW5uZWRGaWxlcy5wdXNoKHtcbiAgICAgIGZ1bGxQYXRoLFxuICAgICAgbG9jYWxQYXRoLFxuICAgIH0pXG4gIH1cblxuICBhc3luYyB3cml0ZU91dHB1dCgpIHtcbiAgICBjb25zdCBmcCA9IGF3YWl0IGZzLm9wZW4odGhpcy5vdXRwdXQsIFwid1wiKVxuXG4gICAgbGV0IHRyYW5zbGF0aW9uc0NvdW50ID0gMFxuXG4gICAgYXdhaXQgZnAud3JpdGUoXCJtc2dpZCBcXFwiXFxcIlxcblwiKVxuICAgIGF3YWl0IGZwLndyaXRlKFwibXNnc3RyIFxcXCJcXFwiXFxuXCIpXG4gICAgYXdhaXQgZnAud3JpdGUoXCJcXFwiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04XFxcXG5cXFwiXFxuXCIpXG4gICAgYXdhaXQgZnAud3JpdGUoXCJcXG5cIikgLy8gRW1wdHkgbGluZSBhZnRlciBoZWFkZXJcblxuICAgIGZvciAoY29uc3QgdHJhbnNsYXRpb25LZXkgaW4gdGhpcy50cmFuc2xhdGlvbnMpIHtcbiAgICAgIGNvbnN0IHRyYW5zbGF0aW9uID0gdGhpcy50cmFuc2xhdGlvbnNbdHJhbnNsYXRpb25LZXldXG5cbiAgICAgIGlmICh0cmFuc2xhdGlvbnNDb3VudCA+PSAxKSBhd2FpdCBmcC53cml0ZShcIlxcblwiKVxuXG4gICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgdHJhbnNsYXRpb24uZmlsZXMpIHtcbiAgICAgICAgY29uc3Qge2xvY2FsUGF0aCwgbGluZU51bWJlcn0gPSBmaWxlXG5cbiAgICAgICAgYXdhaXQgZnAud3JpdGUoYCM6ICR7bG9jYWxQYXRofToke2xpbmVOdW1iZXJ9XFxuYClcbiAgICAgIH1cblxuICAgICAgYXdhaXQgZnAud3JpdGUoYG1zZ2lkIFxcXCIke3RyYW5zbGF0aW9uS2V5fVxcXCJcXG5gKVxuICAgICAgYXdhaXQgZnAud3JpdGUoXCJtc2dzdHIgXFxcIlxcXCJcXG5cIilcblxuICAgICAgdHJhbnNsYXRpb25zQ291bnQrK1xuICAgIH1cblxuICAgIGF3YWl0IGZwLmNsb3NlKClcbiAgfVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translate-context.d.ts","sourceRoot":"","sources":["../../src/translate-context.js"],"names":[],"mappings":";AAEA,
|
|
1
|
+
{"version":3,"file":"translate-context.d.ts","sourceRoot":"","sources":["../../src/translate-context.js"],"names":[],"mappings":";AAEA,6DAAsE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { createContext } from "react";
|
|
2
|
-
const TranslateContext = createContext();
|
|
2
|
+
const TranslateContext = createContext(/** @type {any} */ (undefined));
|
|
3
3
|
export default TranslateContext;
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhbnNsYXRlLWNvbnRleHQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUVuQyxNQUFNLGdCQUFnQixHQUFHLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7QUFFdEUsZUFBZSxnQkFBZ0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Y3JlYXRlQ29udGV4dH0gZnJvbSBcInJlYWN0XCJcblxuY29uc3QgVHJhbnNsYXRlQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoLyoqIEB0eXBlIHthbnl9ICovICh1bmRlZmluZWQpKVxuXG5leHBvcnQgZGVmYXVsdCBUcmFuc2xhdGVDb250ZXh0XG4iXX0=
|
package/build/src/translate.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
export default function translate(msgId: string, variables?: Record<string, any>, argsCandidate?: TranslateArgs | string[]): any;
|
|
12
12
|
export type TranslateArgs = {
|
|
13
|
-
defaultValue?: string;
|
|
14
|
-
locales?: string[];
|
|
13
|
+
defaultValue?: string | undefined;
|
|
14
|
+
locales?: string[] | undefined;
|
|
15
15
|
};
|
|
16
16
|
//# sourceMappingURL=translate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../src/translate.js"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH;;;;GAIG;AACH,yCAJW,MAAM,cACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,kBACnB,aAAa,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"translate.d.ts","sourceRoot":"","sources":["../../src/translate.js"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH;;;;GAIG;AACH,yCAJW,MAAM,cACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,kBACnB,aAAa,GAAG,MAAM,EAAE,OAgFlC"}
|
package/build/src/translate.js
CHANGED
|
@@ -16,15 +16,16 @@ export default function translate(msgId, variables, argsCandidate) {
|
|
|
16
16
|
if (Array.isArray(argsCandidate)) {
|
|
17
17
|
preferredLocales = argsCandidate;
|
|
18
18
|
}
|
|
19
|
-
else if (typeof
|
|
19
|
+
else if (typeof argsCandidate == "object") {
|
|
20
20
|
args = argsCandidate;
|
|
21
21
|
if (args.locales) {
|
|
22
22
|
preferredLocales = args.locales;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
if (!preferredLocales) {
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
const currentLocale = config.getLocale();
|
|
27
|
+
if (currentLocale) {
|
|
28
|
+
preferredLocales = [currentLocale];
|
|
28
29
|
}
|
|
29
30
|
else {
|
|
30
31
|
console.error("No 'preferredLocales' was given and a locale wasn't set in the configuration either");
|
|
@@ -46,7 +47,7 @@ export default function translate(msgId, variables, argsCandidate) {
|
|
|
46
47
|
if (!translation) {
|
|
47
48
|
const fallbacks = config.getFallbacks();
|
|
48
49
|
if (fallbacks) {
|
|
49
|
-
for (const fallback of
|
|
50
|
+
for (const fallback of fallbacks) {
|
|
50
51
|
const localeTranslations = config.getLocales()[fallback];
|
|
51
52
|
if (!localeTranslations)
|
|
52
53
|
continue;
|
|
@@ -75,4 +76,4 @@ export default function translate(msgId, variables, argsCandidate) {
|
|
|
75
76
|
}
|
|
76
77
|
return translation;
|
|
77
78
|
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RyYW5zbGF0ZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBRWhDOzs7O0dBSUc7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE9BQU8sVUFBVSxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxhQUFhO0lBQy9ELElBQUksSUFBSSxDQUFBO0lBQ1IsSUFBSSxnQkFBZ0IsQ0FBQTtJQUVwQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztRQUNqQyxnQkFBZ0IsR0FBRyxhQUFhLENBQUE7SUFDbEMsQ0FBQztTQUFNLElBQUksT0FBTyxhQUFhLElBQUksUUFBUSxFQUFFLENBQUM7UUFDNUMsSUFBSSxHQUFHLGFBQWEsQ0FBQTtRQUVwQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFBO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDdEIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBRXhDLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsZ0JBQWdCLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNwQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMscUZBQXFGLENBQUMsQ0FBQTtRQUN0RyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksV0FBVyxDQUFBO0lBRWYsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JCLEtBQUssTUFBTSxlQUFlLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUMvQyxNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQTtZQUUvRCxJQUFJLENBQUMsa0JBQWtCO2dCQUFFLFNBQVE7WUFFakMsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUVuRCxJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3RCLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQTtnQkFDL0IsTUFBSztZQUNQLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUE7UUFFdkMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLEtBQUssTUFBTSxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2dCQUV4RCxJQUFJLENBQUMsa0JBQWtCO29CQUFFLFNBQVE7Z0JBRWpDLE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBRW5ELElBQUksaUJBQWlCLEVBQUUsQ0FBQztvQkFDdEIsV0FBVyxHQUFHLGlCQUFpQixDQUFBO29CQUMvQixNQUFLO2dCQUNQLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsSUFBSSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDdkIsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUE7UUFDakMsQ0FBQzthQUFNLENBQUM7WUFDTixXQUFXLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNkLEtBQUssTUFBTSxHQUFHLElBQUksU0FBUyxFQUFFLENBQUM7WUFDNUIsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQzVCLE1BQU0sVUFBVSxHQUFHLEtBQUssR0FBRyxHQUFHLENBQUE7WUFFOUIsV0FBVyxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3pELENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUE7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuL2NvbmZpZy5qc1wiXG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gVHJhbnNsYXRlQXJnc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFtkZWZhdWx0VmFsdWVdXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBbbG9jYWxlc11cbiAqL1xuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBtc2dJZFxuICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBbdmFyaWFibGVzXVxuICogQHBhcmFtIHtUcmFuc2xhdGVBcmdzIHwgc3RyaW5nW119IFthcmdzQ2FuZGlkYXRlXSBwcmVmZXJyZWRMb2NhbGVzIG9yIGFyZ3VtZW50c1xuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0cmFuc2xhdGUobXNnSWQsIHZhcmlhYmxlcywgYXJnc0NhbmRpZGF0ZSkge1xuICBsZXQgYXJnc1xuICBsZXQgcHJlZmVycmVkTG9jYWxlc1xuXG4gIGlmIChBcnJheS5pc0FycmF5KGFyZ3NDYW5kaWRhdGUpKSB7XG4gICAgcHJlZmVycmVkTG9jYWxlcyA9IGFyZ3NDYW5kaWRhdGVcbiAgfSBlbHNlIGlmICh0eXBlb2YgYXJnc0NhbmRpZGF0ZSA9PSBcIm9iamVjdFwiKSB7XG4gICAgYXJncyA9IGFyZ3NDYW5kaWRhdGVcblxuICAgIGlmIChhcmdzLmxvY2FsZXMpIHtcbiAgICAgIHByZWZlcnJlZExvY2FsZXMgPSBhcmdzLmxvY2FsZXNcbiAgICB9XG4gIH1cblxuICBpZiAoIXByZWZlcnJlZExvY2FsZXMpIHtcbiAgICBjb25zdCBjdXJyZW50TG9jYWxlID0gY29uZmlnLmdldExvY2FsZSgpXG5cbiAgICBpZiAoY3VycmVudExvY2FsZSkge1xuICAgICAgcHJlZmVycmVkTG9jYWxlcyA9IFtjdXJyZW50TG9jYWxlXVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiTm8gJ3ByZWZlcnJlZExvY2FsZXMnIHdhcyBnaXZlbiBhbmQgYSBsb2NhbGUgd2Fzbid0IHNldCBpbiB0aGUgY29uZmlndXJhdGlvbiBlaXRoZXJcIilcbiAgICB9XG4gIH1cblxuICBsZXQgdHJhbnNsYXRpb25cblxuICBpZiAocHJlZmVycmVkTG9jYWxlcykge1xuICAgIGZvciAoY29uc3QgcHJlZmVycmVkTG9jYWxlIG9mIHByZWZlcnJlZExvY2FsZXMpIHtcbiAgICAgIGNvbnN0IGxvY2FsZVRyYW5zbGF0aW9ucyA9IGNvbmZpZy5nZXRMb2NhbGVzKClbcHJlZmVycmVkTG9jYWxlXVxuXG4gICAgICBpZiAoIWxvY2FsZVRyYW5zbGF0aW9ucykgY29udGludWVcblxuICAgICAgY29uc3QgbG9jYWxlVHJhbnNsYXRpb24gPSBsb2NhbGVUcmFuc2xhdGlvbnNbbXNnSWRdXG5cbiAgICAgIGlmIChsb2NhbGVUcmFuc2xhdGlvbikge1xuICAgICAgICB0cmFuc2xhdGlvbiA9IGxvY2FsZVRyYW5zbGF0aW9uXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKCF0cmFuc2xhdGlvbikge1xuICAgIGNvbnN0IGZhbGxiYWNrcyA9IGNvbmZpZy5nZXRGYWxsYmFja3MoKVxuXG4gICAgaWYgKGZhbGxiYWNrcykge1xuICAgICAgZm9yIChjb25zdCBmYWxsYmFjayBvZiBmYWxsYmFja3MpIHtcbiAgICAgICAgY29uc3QgbG9jYWxlVHJhbnNsYXRpb25zID0gY29uZmlnLmdldExvY2FsZXMoKVtmYWxsYmFja11cblxuICAgICAgICBpZiAoIWxvY2FsZVRyYW5zbGF0aW9ucykgY29udGludWVcblxuICAgICAgICBjb25zdCBsb2NhbGVUcmFuc2xhdGlvbiA9IGxvY2FsZVRyYW5zbGF0aW9uc1ttc2dJZF1cblxuICAgICAgICBpZiAobG9jYWxlVHJhbnNsYXRpb24pIHtcbiAgICAgICAgICB0cmFuc2xhdGlvbiA9IGxvY2FsZVRyYW5zbGF0aW9uXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmICghdHJhbnNsYXRpb24pIHtcbiAgICBpZiAoYXJncz8uZGVmYXVsdFZhbHVlKSB7XG4gICAgICB0cmFuc2xhdGlvbiA9IGFyZ3MuZGVmYXVsdFZhbHVlXG4gICAgfSBlbHNlIHtcbiAgICAgIHRyYW5zbGF0aW9uID0gbXNnSWRcbiAgICB9XG4gIH1cblxuICBpZiAodmFyaWFibGVzKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdmFyaWFibGVzKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZhcmlhYmxlc1trZXldXG4gICAgICBjb25zdCByZXBsYWNlS2V5ID0gYCV7JHtrZXl9fWBcblxuICAgICAgdHJhbnNsYXRpb24gPSB0cmFuc2xhdGlvbi5yZXBsYWNlQWxsKHJlcGxhY2VLZXksIHZhbHVlKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cmFuc2xhdGlvblxufVxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subscribes the calling component to the current locale so it re-renders
|
|
3
|
+
* when any code calls `config.setLocale(...)` (e.g. a settings picker).
|
|
4
|
+
* Also syncs the context-set locale + device locales into the global
|
|
5
|
+
* `config` on first mount and whenever the context/device values change,
|
|
6
|
+
* so direct callers of `translate(...)` read the right values without
|
|
7
|
+
* needing the hook's return value.
|
|
8
|
+
*
|
|
9
|
+
* Pair with a class-field `_ = translate` (or a direct `import translate
|
|
10
|
+
* from "gettext-universal/build/src/translate.js"`) so the translator is
|
|
11
|
+
* always defined and typechecks cleanly, instead of relying on the
|
|
12
|
+
* `useTranslate()` return value being assigned inside `setup()`.
|
|
13
|
+
*
|
|
14
|
+
* Does NOT fight explicit `config.setLocale(...)` callers — the hook
|
|
15
|
+
* only writes when ITS OWN derived primary/fallback changes, tracked
|
|
16
|
+
* via refs, so a settings picker that calls `setLocale` stays in effect
|
|
17
|
+
* across re-renders.
|
|
18
|
+
*
|
|
19
|
+
* Returns `void`. For the callable-translator pattern, keep using
|
|
20
|
+
* `useTranslate()` / `useTranslateExpo()` — both hooks remain available.
|
|
21
|
+
*
|
|
22
|
+
* @returns {void}
|
|
23
|
+
*/
|
|
24
|
+
export default function useLocaleExpo(): void;
|
|
25
|
+
//# sourceMappingURL=use-locale-expo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-locale-expo.d.ts","sourceRoot":"","sources":["../../src/use-locale-expo.js"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,yCAFa,IAAI,CAgEhB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
+
import { useLocales } from "expo-localization";
|
|
4
|
+
import config from "./config.js";
|
|
5
|
+
import events from "./events.js";
|
|
6
|
+
import TranslateContext from "./translate-context.js";
|
|
7
|
+
/**
|
|
8
|
+
* Subscribes the calling component to the current locale so it re-renders
|
|
9
|
+
* when any code calls `config.setLocale(...)` (e.g. a settings picker).
|
|
10
|
+
* Also syncs the context-set locale + device locales into the global
|
|
11
|
+
* `config` on first mount and whenever the context/device values change,
|
|
12
|
+
* so direct callers of `translate(...)` read the right values without
|
|
13
|
+
* needing the hook's return value.
|
|
14
|
+
*
|
|
15
|
+
* Pair with a class-field `_ = translate` (or a direct `import translate
|
|
16
|
+
* from "gettext-universal/build/src/translate.js"`) so the translator is
|
|
17
|
+
* always defined and typechecks cleanly, instead of relying on the
|
|
18
|
+
* `useTranslate()` return value being assigned inside `setup()`.
|
|
19
|
+
*
|
|
20
|
+
* Does NOT fight explicit `config.setLocale(...)` callers — the hook
|
|
21
|
+
* only writes when ITS OWN derived primary/fallback changes, tracked
|
|
22
|
+
* via refs, so a settings picker that calls `setLocale` stays in effect
|
|
23
|
+
* across re-renders.
|
|
24
|
+
*
|
|
25
|
+
* Returns `void`. For the callable-translator pattern, keep using
|
|
26
|
+
* `useTranslate()` / `useTranslateExpo()` — both hooks remain available.
|
|
27
|
+
*
|
|
28
|
+
* @returns {void}
|
|
29
|
+
*/
|
|
30
|
+
export default function useLocaleExpo() {
|
|
31
|
+
const localeContext = useContext(TranslateContext);
|
|
32
|
+
const locales = useLocales();
|
|
33
|
+
const contextLocale = localeContext?.locale;
|
|
34
|
+
const deviceLocales = useMemo(() => {
|
|
35
|
+
if (!Array.isArray(locales))
|
|
36
|
+
return [];
|
|
37
|
+
return locales
|
|
38
|
+
.map((localeData) => localeData.languageCode)
|
|
39
|
+
.filter(/** @type {(value: string | null) => value is string} */ ((value) => typeof value === "string" && value.length > 0));
|
|
40
|
+
}, [locales]);
|
|
41
|
+
const primaryLocale = contextLocale || deviceLocales[0];
|
|
42
|
+
// Re-render whenever any code calls `config.setLocale(...)` — e.g. a
|
|
43
|
+
// settings picker that swaps the active locale from another screen.
|
|
44
|
+
//
|
|
45
|
+
// Must subscribe BEFORE the primary/fallbacks `useEffect`s below —
|
|
46
|
+
// those call `config.setLocale(...)` which emits `onLocaleChange`, and
|
|
47
|
+
// without a live listener the first-mount sync of a stale `config`
|
|
48
|
+
// would be silently missed, leaving the component rendering stale
|
|
49
|
+
// translations from `translate(...)` until an unrelated re-render.
|
|
50
|
+
const [, setTick] = useState(0);
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
/** @returns {void} */
|
|
53
|
+
const onLocaleChange = () => {
|
|
54
|
+
setTick((tick) => tick + 1);
|
|
55
|
+
};
|
|
56
|
+
events.on("onLocaleChange", onLocaleChange);
|
|
57
|
+
return () => {
|
|
58
|
+
events.off("onLocaleChange", onLocaleChange);
|
|
59
|
+
};
|
|
60
|
+
}, []);
|
|
61
|
+
/** @type {React.MutableRefObject<string | null>} */
|
|
62
|
+
const lastWrittenPrimaryRef = useRef(null);
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
if (!primaryLocale)
|
|
65
|
+
return;
|
|
66
|
+
if (lastWrittenPrimaryRef.current === primaryLocale)
|
|
67
|
+
return;
|
|
68
|
+
lastWrittenPrimaryRef.current = primaryLocale;
|
|
69
|
+
config.setLocale(primaryLocale);
|
|
70
|
+
}, [primaryLocale]);
|
|
71
|
+
/** @type {React.MutableRefObject<string[] | null>} */
|
|
72
|
+
const lastWrittenFallbacksRef = useRef(null);
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
const previous = lastWrittenFallbacksRef.current;
|
|
75
|
+
if (previous && previous.length === deviceLocales.length && previous.every((locale, index) => locale === deviceLocales[index])) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
lastWrittenFallbacksRef.current = deviceLocales;
|
|
79
|
+
config.setFallbacks(deviceLocales);
|
|
80
|
+
}, [deviceLocales]);
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlLWxvY2FsZS1leHBvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3VzZS1sb2NhbGUtZXhwby5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUMsTUFBTSxPQUFPLENBQUE7QUFDdEUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG1CQUFtQixDQUFBO0FBQzVDLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxnQkFBZ0IsTUFBTSx3QkFBd0IsQ0FBQTtBQUVyRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE1BQU0sQ0FBQyxPQUFPLFVBQVUsYUFBYTtJQUNuQyxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUNsRCxNQUFNLE9BQU8sR0FBRyxVQUFVLEVBQUUsQ0FBQTtJQUM1QixNQUFNLGFBQWEsR0FBRyxhQUFhLEVBQUUsTUFBTSxDQUFBO0lBRTNDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUE7UUFFdEMsT0FBTyxPQUFPO2FBQ1gsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO2FBQzVDLE1BQU0sQ0FBQyx3REFBd0QsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2hJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFFYixNQUFNLGFBQWEsR0FBRyxhQUFhLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRXZELHFFQUFxRTtJQUNyRSxvRUFBb0U7SUFDcEUsRUFBRTtJQUNGLG1FQUFtRTtJQUNuRSx1RUFBdUU7SUFDdkUsbUVBQW1FO0lBQ25FLGtFQUFrRTtJQUNsRSxtRUFBbUU7SUFDbkUsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBRS9CLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixzQkFBc0I7UUFDdEIsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFO1lBQzFCLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQzdCLENBQUMsQ0FBQTtRQUVELE1BQU0sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUE7UUFFM0MsT0FBTyxHQUFHLEVBQUU7WUFDVixNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFBO1FBQzlDLENBQUMsQ0FBQTtJQUNILENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUVOLG9EQUFvRDtJQUNwRCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUUxQyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsSUFBSSxDQUFDLGFBQWE7WUFBRSxPQUFNO1FBQzFCLElBQUkscUJBQXFCLENBQUMsT0FBTyxLQUFLLGFBQWE7WUFBRSxPQUFNO1FBRTNELHFCQUFxQixDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUE7UUFDN0MsTUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUNqQyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFBO0lBRW5CLHNEQUFzRDtJQUN0RCxNQUFNLHVCQUF1QixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUU1QyxTQUFTLENBQUMsR0FBRyxFQUFFO1FBQ2IsTUFBTSxRQUFRLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFBO1FBRWhELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssYUFBYSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDL0gsT0FBTTtRQUNSLENBQUM7UUFFRCx1QkFBdUIsQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFBO1FBQy9DLE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDcEMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQTtBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCB7dXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHt1c2VMb2NhbGVzfSBmcm9tIFwiZXhwby1sb2NhbGl6YXRpb25cIlxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi9jb25maWcuanNcIlxuaW1wb3J0IGV2ZW50cyBmcm9tIFwiLi9ldmVudHMuanNcIlxuaW1wb3J0IFRyYW5zbGF0ZUNvbnRleHQgZnJvbSBcIi4vdHJhbnNsYXRlLWNvbnRleHQuanNcIlxuXG4vKipcbiAqIFN1YnNjcmliZXMgdGhlIGNhbGxpbmcgY29tcG9uZW50IHRvIHRoZSBjdXJyZW50IGxvY2FsZSBzbyBpdCByZS1yZW5kZXJzXG4gKiB3aGVuIGFueSBjb2RlIGNhbGxzIGBjb25maWcuc2V0TG9jYWxlKC4uLilgIChlLmcuIGEgc2V0dGluZ3MgcGlja2VyKS5cbiAqIEFsc28gc3luY3MgdGhlIGNvbnRleHQtc2V0IGxvY2FsZSArIGRldmljZSBsb2NhbGVzIGludG8gdGhlIGdsb2JhbFxuICogYGNvbmZpZ2Agb24gZmlyc3QgbW91bnQgYW5kIHdoZW5ldmVyIHRoZSBjb250ZXh0L2RldmljZSB2YWx1ZXMgY2hhbmdlLFxuICogc28gZGlyZWN0IGNhbGxlcnMgb2YgYHRyYW5zbGF0ZSguLi4pYCByZWFkIHRoZSByaWdodCB2YWx1ZXMgd2l0aG91dFxuICogbmVlZGluZyB0aGUgaG9vaydzIHJldHVybiB2YWx1ZS5cbiAqXG4gKiBQYWlyIHdpdGggYSBjbGFzcy1maWVsZCBgXyA9IHRyYW5zbGF0ZWAgKG9yIGEgZGlyZWN0IGBpbXBvcnQgdHJhbnNsYXRlXG4gKiBmcm9tIFwiZ2V0dGV4dC11bml2ZXJzYWwvYnVpbGQvc3JjL3RyYW5zbGF0ZS5qc1wiYCkgc28gdGhlIHRyYW5zbGF0b3IgaXNcbiAqIGFsd2F5cyBkZWZpbmVkIGFuZCB0eXBlY2hlY2tzIGNsZWFubHksIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGVcbiAqIGB1c2VUcmFuc2xhdGUoKWAgcmV0dXJuIHZhbHVlIGJlaW5nIGFzc2lnbmVkIGluc2lkZSBgc2V0dXAoKWAuXG4gKlxuICogRG9lcyBOT1QgZmlnaHQgZXhwbGljaXQgYGNvbmZpZy5zZXRMb2NhbGUoLi4uKWAgY2FsbGVycyDigJQgdGhlIGhvb2tcbiAqIG9ubHkgd3JpdGVzIHdoZW4gSVRTIE9XTiBkZXJpdmVkIHByaW1hcnkvZmFsbGJhY2sgY2hhbmdlcywgdHJhY2tlZFxuICogdmlhIHJlZnMsIHNvIGEgc2V0dGluZ3MgcGlja2VyIHRoYXQgY2FsbHMgYHNldExvY2FsZWAgc3RheXMgaW4gZWZmZWN0XG4gKiBhY3Jvc3MgcmUtcmVuZGVycy5cbiAqXG4gKiBSZXR1cm5zIGB2b2lkYC4gRm9yIHRoZSBjYWxsYWJsZS10cmFuc2xhdG9yIHBhdHRlcm4sIGtlZXAgdXNpbmdcbiAqIGB1c2VUcmFuc2xhdGUoKWAgLyBgdXNlVHJhbnNsYXRlRXhwbygpYCDigJQgYm90aCBob29rcyByZW1haW4gYXZhaWxhYmxlLlxuICpcbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VMb2NhbGVFeHBvKCkge1xuICBjb25zdCBsb2NhbGVDb250ZXh0ID0gdXNlQ29udGV4dChUcmFuc2xhdGVDb250ZXh0KVxuICBjb25zdCBsb2NhbGVzID0gdXNlTG9jYWxlcygpXG4gIGNvbnN0IGNvbnRleHRMb2NhbGUgPSBsb2NhbGVDb250ZXh0Py5sb2NhbGVcblxuICBjb25zdCBkZXZpY2VMb2NhbGVzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGxvY2FsZXMpKSByZXR1cm4gW11cblxuICAgIHJldHVybiBsb2NhbGVzXG4gICAgICAubWFwKChsb2NhbGVEYXRhKSA9PiBsb2NhbGVEYXRhLmxhbmd1YWdlQ29kZSlcbiAgICAgIC5maWx0ZXIoLyoqIEB0eXBlIHsodmFsdWU6IHN0cmluZyB8IG51bGwpID0+IHZhbHVlIGlzIHN0cmluZ30gKi8gKCh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIHZhbHVlLmxlbmd0aCA+IDApKVxuICB9LCBbbG9jYWxlc10pXG5cbiAgY29uc3QgcHJpbWFyeUxvY2FsZSA9IGNvbnRleHRMb2NhbGUgfHwgZGV2aWNlTG9jYWxlc1swXVxuXG4gIC8vIFJlLXJlbmRlciB3aGVuZXZlciBhbnkgY29kZSBjYWxscyBgY29uZmlnLnNldExvY2FsZSguLi4pYCDigJQgZS5nLiBhXG4gIC8vIHNldHRpbmdzIHBpY2tlciB0aGF0IHN3YXBzIHRoZSBhY3RpdmUgbG9jYWxlIGZyb20gYW5vdGhlciBzY3JlZW4uXG4gIC8vXG4gIC8vIE11c3Qgc3Vic2NyaWJlIEJFRk9SRSB0aGUgcHJpbWFyeS9mYWxsYmFja3MgYHVzZUVmZmVjdGBzIGJlbG93IOKAlFxuICAvLyB0aG9zZSBjYWxsIGBjb25maWcuc2V0TG9jYWxlKC4uLilgIHdoaWNoIGVtaXRzIGBvbkxvY2FsZUNoYW5nZWAsIGFuZFxuICAvLyB3aXRob3V0IGEgbGl2ZSBsaXN0ZW5lciB0aGUgZmlyc3QtbW91bnQgc3luYyBvZiBhIHN0YWxlIGBjb25maWdgXG4gIC8vIHdvdWxkIGJlIHNpbGVudGx5IG1pc3NlZCwgbGVhdmluZyB0aGUgY29tcG9uZW50IHJlbmRlcmluZyBzdGFsZVxuICAvLyB0cmFuc2xhdGlvbnMgZnJvbSBgdHJhbnNsYXRlKC4uLilgIHVudGlsIGFuIHVucmVsYXRlZCByZS1yZW5kZXIuXG4gIGNvbnN0IFssIHNldFRpY2tdID0gdXNlU3RhdGUoMClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8qKiBAcmV0dXJucyB7dm9pZH0gKi9cbiAgICBjb25zdCBvbkxvY2FsZUNoYW5nZSA9ICgpID0+IHtcbiAgICAgIHNldFRpY2soKHRpY2spID0+IHRpY2sgKyAxKVxuICAgIH1cblxuICAgIGV2ZW50cy5vbihcIm9uTG9jYWxlQ2hhbmdlXCIsIG9uTG9jYWxlQ2hhbmdlKVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGV2ZW50cy5vZmYoXCJvbkxvY2FsZUNoYW5nZVwiLCBvbkxvY2FsZUNoYW5nZSlcbiAgICB9XG4gIH0sIFtdKVxuXG4gIC8qKiBAdHlwZSB7UmVhY3QuTXV0YWJsZVJlZk9iamVjdDxzdHJpbmcgfCBudWxsPn0gKi9cbiAgY29uc3QgbGFzdFdyaXR0ZW5QcmltYXJ5UmVmID0gdXNlUmVmKG51bGwpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXByaW1hcnlMb2NhbGUpIHJldHVyblxuICAgIGlmIChsYXN0V3JpdHRlblByaW1hcnlSZWYuY3VycmVudCA9PT0gcHJpbWFyeUxvY2FsZSkgcmV0dXJuXG5cbiAgICBsYXN0V3JpdHRlblByaW1hcnlSZWYuY3VycmVudCA9IHByaW1hcnlMb2NhbGVcbiAgICBjb25maWcuc2V0TG9jYWxlKHByaW1hcnlMb2NhbGUpXG4gIH0sIFtwcmltYXJ5TG9jYWxlXSlcblxuICAvKiogQHR5cGUge1JlYWN0Lk11dGFibGVSZWZPYmplY3Q8c3RyaW5nW10gfCBudWxsPn0gKi9cbiAgY29uc3QgbGFzdFdyaXR0ZW5GYWxsYmFja3NSZWYgPSB1c2VSZWYobnVsbClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHByZXZpb3VzID0gbGFzdFdyaXR0ZW5GYWxsYmFja3NSZWYuY3VycmVudFxuXG4gICAgaWYgKHByZXZpb3VzICYmIHByZXZpb3VzLmxlbmd0aCA9PT0gZGV2aWNlTG9jYWxlcy5sZW5ndGggJiYgcHJldmlvdXMuZXZlcnkoKGxvY2FsZSwgaW5kZXgpID0+IGxvY2FsZSA9PT0gZGV2aWNlTG9jYWxlc1tpbmRleF0pKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBsYXN0V3JpdHRlbkZhbGxiYWNrc1JlZi5jdXJyZW50ID0gZGV2aWNlTG9jYWxlc1xuICAgIGNvbmZpZy5zZXRGYWxsYmFja3MoZGV2aWNlTG9jYWxlcylcbiAgfSwgW2RldmljZUxvY2FsZXNdKVxufVxuIl19
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export default WithTranslate;
|
|
2
|
+
/** @param {{children: any, [key: string]: any}} props */
|
|
2
3
|
declare function WithTranslate({ children, ...restProps }: {
|
|
3
|
-
[x: string]: any;
|
|
4
4
|
children: any;
|
|
5
|
-
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
6
7
|
//# sourceMappingURL=with-translate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-translate.d.ts","sourceRoot":"","sources":["../../src/with-translate.jsx"],"names":[],"mappings":";AAOA
|
|
1
|
+
{"version":3,"file":"with-translate.d.ts","sourceRoot":"","sources":["../../src/with-translate.jsx"],"names":[],"mappings":";AAOA,yDAAyD;AACzD,2DADY;IAAC,QAAQ,EAAE,GAAG,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,2CAsC9C"}
|
|
@@ -5,6 +5,7 @@ import { useCallback, useMemo, useState } from "react";
|
|
|
5
5
|
import TranslateContext from "./translate-context.js";
|
|
6
6
|
import useEventEmitter from "ya-use-event-emitter";
|
|
7
7
|
import { useLocales } from "expo-localization";
|
|
8
|
+
/** @param {{children: any, [key: string]: any}} props */
|
|
8
9
|
const WithTranslate = ({ children, ...restProps }) => {
|
|
9
10
|
const locales = useLocales();
|
|
10
11
|
const [locale, setLocale] = useState(config.getLocale());
|
|
@@ -19,9 +20,9 @@ const WithTranslate = ({ children, ...restProps }) => {
|
|
|
19
20
|
return actualLocales;
|
|
20
21
|
}, [locale, locales]);
|
|
21
22
|
const contextData = useMemo(() => ({ locale, locales: actualLocales }), [actualLocales]);
|
|
22
|
-
const onChangeLocale = useCallback(({ locale }) => {
|
|
23
|
+
const onChangeLocale = useCallback(/** @type {(...args: any[]) => void} */ (({ locale }) => {
|
|
23
24
|
setLocale(locale);
|
|
24
|
-
}, []);
|
|
25
|
+
}), []);
|
|
25
26
|
useEventEmitter(events, "onLocaleChange", onChangeLocale);
|
|
26
27
|
const restPropsKeys = Object.keys(restProps);
|
|
27
28
|
if (restPropsKeys.length > 0) {
|
|
@@ -30,4 +31,4 @@ const WithTranslate = ({ children, ...restProps }) => {
|
|
|
30
31
|
return (_jsx(TranslateContext.Provider, { value: contextData, children: children }));
|
|
31
32
|
};
|
|
32
33
|
export default WithTranslate;
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC10cmFuc2xhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2l0aC10cmFuc2xhdGUuanN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFBO0FBQ2hDLE9BQU8sRUFBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUNwRCxPQUFPLGdCQUFnQixNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sZUFBZSxNQUFNLHNCQUFzQixDQUFBO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQTtBQUU1Qyx5REFBeUQ7QUFDekQsTUFBTSxhQUFhLEdBQUcsQ0FBQyxFQUFDLFFBQVEsRUFBRSxHQUFHLFNBQVMsRUFBQyxFQUFFLEVBQUU7SUFDakQsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLENBQUE7SUFDNUIsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUE7SUFFeEQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUNqQyxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUE7UUFFeEIsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDNUIsQ0FBQztRQUVELEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDN0IsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDekMsQ0FBQztRQUVELE9BQU8sYUFBYSxDQUFBO0lBQ3RCLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBRXJCLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQTtJQUV0RixNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLEVBQUUsRUFBRTtRQUN2RixTQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbkIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFFUCxlQUFlLENBQUMsTUFBTSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFBO0lBRXpELE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFNUMsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3JFLENBQUM7SUFFRCxPQUFPLENBQ0wsS0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUMsS0FBSyxFQUFFLFdBQVcsWUFDMUMsUUFBUSxHQUNpQixDQUM3QixDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsZUFBZSxhQUFhLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29uZmlnIGZyb20gXCIuL2NvbmZpZy5qc1wiXG5pbXBvcnQgZXZlbnRzIGZyb20gXCIuL2V2ZW50cy5qc1wiXG5pbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VNZW1vLCB1c2VTdGF0ZX0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBUcmFuc2xhdGVDb250ZXh0IGZyb20gXCIuL3RyYW5zbGF0ZS1jb250ZXh0LmpzXCJcbmltcG9ydCB1c2VFdmVudEVtaXR0ZXIgZnJvbSBcInlhLXVzZS1ldmVudC1lbWl0dGVyXCJcbmltcG9ydCB7dXNlTG9jYWxlc30gZnJvbSBcImV4cG8tbG9jYWxpemF0aW9uXCJcblxuLyoqIEBwYXJhbSB7e2NoaWxkcmVuOiBhbnksIFtrZXk6IHN0cmluZ106IGFueX19IHByb3BzICovXG5jb25zdCBXaXRoVHJhbnNsYXRlID0gKHtjaGlsZHJlbiwgLi4ucmVzdFByb3BzfSkgPT4ge1xuICBjb25zdCBsb2NhbGVzID0gdXNlTG9jYWxlcygpXG4gIGNvbnN0IFtsb2NhbGUsIHNldExvY2FsZV0gPSB1c2VTdGF0ZShjb25maWcuZ2V0TG9jYWxlKCkpXG5cbiAgY29uc3QgYWN0dWFsTG9jYWxlcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGFjdHVhbExvY2FsZXMgPSBbXVxuXG4gICAgaWYgKGxvY2FsZSkge1xuICAgICAgYWN0dWFsTG9jYWxlcy5wdXNoKGxvY2FsZSlcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGxvY2FsZSBvZiBsb2NhbGVzKSB7XG4gICAgICBhY3R1YWxMb2NhbGVzLnB1c2gobG9jYWxlLmxhbmd1YWdlQ29kZSlcbiAgICB9XG5cbiAgICByZXR1cm4gYWN0dWFsTG9jYWxlc1xuICB9LCBbbG9jYWxlLCBsb2NhbGVzXSlcblxuICBjb25zdCBjb250ZXh0RGF0YSA9IHVzZU1lbW8oKCkgPT4gKHtsb2NhbGUsIGxvY2FsZXM6IGFjdHVhbExvY2FsZXN9KSwgW2FjdHVhbExvY2FsZXNdKVxuXG4gIGNvbnN0IG9uQ2hhbmdlTG9jYWxlID0gdXNlQ2FsbGJhY2soLyoqIEB0eXBlIHsoLi4uYXJnczogYW55W10pID0+IHZvaWR9ICovICgoe2xvY2FsZX0pID0+IHtcbiAgICBzZXRMb2NhbGUobG9jYWxlKVxuICB9KSwgW10pXG5cbiAgdXNlRXZlbnRFbWl0dGVyKGV2ZW50cywgXCJvbkxvY2FsZUNoYW5nZVwiLCBvbkNoYW5nZUxvY2FsZSlcblxuICBjb25zdCByZXN0UHJvcHNLZXlzID0gT2JqZWN0LmtleXMocmVzdFByb3BzKVxuXG4gIGlmIChyZXN0UHJvcHNLZXlzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gcHJvcHMgZ2l2ZW46ICR7cmVzdFByb3BzS2V5cy5qb2luKFwiLCBcIil9YClcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFRyYW5zbGF0ZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHREYXRhfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L1RyYW5zbGF0ZUNvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgV2l0aFRyYW5zbGF0ZVxuIl19
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
},
|
|
5
5
|
"name": "gettext-universal",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"version": "1.0.
|
|
7
|
+
"version": "1.0.23",
|
|
8
8
|
"main": "build/index.js",
|
|
9
9
|
"types": "build/index.d.ts",
|
|
10
10
|
"files": [
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"gettext-universal": "node bin/gettext-universal.js",
|
|
17
17
|
"po2js": "node bin/po2js.js",
|
|
18
18
|
"prepublishOnly": "npm run build",
|
|
19
|
+
"release:patch": "node scripts/release-patch.js",
|
|
19
20
|
"test": "jasmine",
|
|
20
21
|
"typecheck": "tsc --noEmit",
|
|
21
22
|
"watch": "tsc -w"
|
|
@@ -42,8 +43,10 @@
|
|
|
42
43
|
"ya-use-event-emitter": "^0.1.2"
|
|
43
44
|
},
|
|
44
45
|
"devDependencies": {
|
|
45
|
-
"
|
|
46
|
-
"
|
|
46
|
+
"@types/node": "^25.5.2",
|
|
47
|
+
"@types/react": "^19.2.14",
|
|
48
|
+
"jasmine": "^6.0.0",
|
|
49
|
+
"typescript": "^6.0.2"
|
|
47
50
|
},
|
|
48
51
|
"peerDependencies": {
|
|
49
52
|
"expo-localization": "*",
|