hanzio 3.0.0 → 3.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +114 -3
- package/dist/api-wrapper/connection-auth.d.ts +61 -0
- package/dist/cli/fields.d.ts +30 -0
- package/dist/cli/index.d.ts +122 -0
- package/dist/format/index.d.ts +91 -0
- package/dist/format/phone.d.ts +19 -0
- package/dist/http/index.d.ts +14 -0
- package/dist/i18n/catalog.d.ts +47 -0
- package/dist/i18n/check.d.ts +45 -0
- package/dist/i18n/cli.d.ts +2 -0
- package/dist/i18n/content-rules.d.ts +55 -0
- package/dist/i18n/i18next.d.ts +39 -0
- package/dist/i18n/index.d.ts +16 -1
- package/dist/i18n/locales.d.ts +62 -0
- package/dist/i18n/vite.d.ts +16 -0
- package/dist/i18n/vue.d.ts +93 -0
- package/dist/{index-kj1phgrx.js → index-29mmh343.js} +24 -1
- package/dist/{index-zbj9s3s3.js → index-2kz392vw.js} +1 -1
- package/dist/index-5n2e326q.js +409 -0
- package/dist/{index-hy7kbb99.js → index-5tzqfmnj.js} +1 -1
- package/dist/{index-0zvtcbzy.js → index-6f2w90pp.js} +69 -1
- package/dist/index-mq2qgc20.js +116 -0
- package/dist/index-najbyzpr.js +99 -0
- package/dist/index-nfvq3zax.js +475 -0
- package/dist/index-ww09bm49.js +250 -0
- package/dist/iso/countries.d.ts +262 -0
- package/dist/iso/currencies.d.ts +165 -0
- package/dist/iso/index.d.ts +4 -0
- package/dist/iso/languages.d.ts +195 -0
- package/dist/iso/phone-language.d.ts +5 -0
- package/dist/promise/index.d.ts +31 -0
- package/dist/redis/client.d.ts +49 -0
- package/dist/redis/concurrency-limit.d.ts +63 -0
- package/dist/redis/index.d.ts +3 -0
- package/dist/redis/lua-script.d.ts +13 -0
- package/dist/secrets/infisical-identity-file.d.ts +12 -0
- package/dist/src/api-wrapper/connection-auth.js +82 -0
- package/dist/src/api-wrapper/index.js +1 -1
- package/dist/src/cli/index.js +10 -0
- package/dist/src/format/index.js +79 -2
- package/dist/src/format/phone.js +21 -0
- package/dist/src/http/index.js +69 -0
- package/dist/src/i18n/check.js +15 -0
- package/dist/src/i18n/cli.js +71 -0
- package/dist/src/i18n/i18next.js +48 -0
- package/dist/src/i18n/index.js +16 -34
- package/dist/src/i18n/vite.js +25 -0
- package/dist/src/i18n/vue.js +51 -0
- package/dist/src/index.js +14 -4
- package/dist/src/iso/index.js +655 -0
- package/dist/src/redis/index.js +577 -0
- package/dist/src/secrets/index.js +78 -35
- package/dist/src/sitemap/index.js +1 -1
- package/dist/src/storage/index.js +8 -117
- package/dist/src/testing/index.js +348 -0
- package/dist/src/zod/index.js +20 -253
- package/dist/string/index.d.ts +21 -0
- package/dist/testing/connection-auth-contract.d.ts +43 -0
- package/dist/testing/helpers.d.ts +26 -0
- package/dist/testing/index.d.ts +5 -0
- package/dist/testing/module-mocker.d.ts +30 -0
- package/dist/testing/prisma.d.ts +30 -0
- package/dist/testing/window.d.ts +18 -0
- package/dist/zod/index.d.ts +10 -0
- package/dist/zod/introspect.d.ts +2 -1
- package/package.json +96 -2
- package/src/api-wrapper/README.md +52 -0
- package/src/api-wrapper/connection-auth.ts +142 -0
- package/src/cli/README.md +220 -0
- package/src/cli/fields.ts +213 -0
- package/src/cli/index.ts +533 -0
- package/src/format/README.md +82 -2
- package/src/format/index.ts +148 -0
- package/src/format/phone.ts +43 -0
- package/src/http/README.md +25 -0
- package/src/http/index.ts +94 -0
- package/src/i18n/README.md +206 -3
- package/src/i18n/catalog.ts +139 -0
- package/src/i18n/check.ts +376 -0
- package/src/i18n/cli.ts +90 -0
- package/src/i18n/content-rules.ts +179 -0
- package/src/i18n/i18next.ts +89 -0
- package/src/i18n/index.ts +34 -0
- package/src/i18n/locales.ts +135 -0
- package/src/i18n/vite.ts +40 -0
- package/src/i18n/vue.ts +82 -0
- package/src/index.ts +1 -1
- package/src/iso/README.md +44 -0
- package/src/iso/countries.ts +272 -0
- package/src/iso/currencies.ts +172 -0
- package/src/iso/index.ts +8 -0
- package/src/iso/languages.ts +208 -0
- package/src/iso/phone-language.ts +46 -0
- package/src/promise/index.ts +100 -0
- package/src/redis/README.md +112 -0
- package/src/redis/client.ts +239 -0
- package/src/redis/concurrency-limit.ts +591 -0
- package/src/redis/index.ts +15 -0
- package/src/redis/lua-script.ts +43 -0
- package/src/secrets/README.md +5 -1
- package/src/secrets/infisical-identity-file.ts +69 -0
- package/src/secrets/infisical.ts +18 -3
- package/src/string/index.ts +59 -0
- package/src/testing/README.md +119 -0
- package/src/testing/connection-auth-contract.ts +303 -0
- package/src/testing/helpers.ts +41 -0
- package/src/testing/index.ts +12 -0
- package/src/testing/module-mocker.ts +50 -0
- package/src/testing/prisma.ts +78 -0
- package/src/testing/window.ts +119 -0
- package/src/zod/index.ts +20 -0
- package/src/zod/introspect.ts +1 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// src/http/index.ts
|
|
2
|
+
var SSE_KEEPALIVE_INTERVAL_MS = 15000;
|
|
3
|
+
var SSE_KEEPALIVE_COMMENT = new TextEncoder().encode(`:
|
|
4
|
+
|
|
5
|
+
`);
|
|
6
|
+
function defaultClearTimeout(id) {
|
|
7
|
+
clearTimeout(id);
|
|
8
|
+
}
|
|
9
|
+
function createSseKeepAliveTransform(intervalMs = SSE_KEEPALIVE_INTERVAL_MS, timers = { setTimeout, clearTimeout: defaultClearTimeout }) {
|
|
10
|
+
let timer;
|
|
11
|
+
let closed = false;
|
|
12
|
+
let enqueueKeepAlive;
|
|
13
|
+
const clear = () => {
|
|
14
|
+
if (timer === undefined)
|
|
15
|
+
return;
|
|
16
|
+
timers.clearTimeout(timer);
|
|
17
|
+
timer = undefined;
|
|
18
|
+
};
|
|
19
|
+
const arm = () => {
|
|
20
|
+
clear();
|
|
21
|
+
timer = timers.setTimeout(() => {
|
|
22
|
+
enqueueKeepAlive?.();
|
|
23
|
+
}, intervalMs);
|
|
24
|
+
};
|
|
25
|
+
return new TransformStream({
|
|
26
|
+
start(controller) {
|
|
27
|
+
enqueueKeepAlive = () => {
|
|
28
|
+
if (closed)
|
|
29
|
+
return;
|
|
30
|
+
try {
|
|
31
|
+
controller.enqueue(SSE_KEEPALIVE_COMMENT);
|
|
32
|
+
} catch {
|
|
33
|
+
closed = true;
|
|
34
|
+
clear();
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
arm();
|
|
38
|
+
};
|
|
39
|
+
enqueueKeepAlive();
|
|
40
|
+
},
|
|
41
|
+
transform(chunk, controller) {
|
|
42
|
+
if (closed)
|
|
43
|
+
return;
|
|
44
|
+
controller.enqueue(chunk);
|
|
45
|
+
arm();
|
|
46
|
+
},
|
|
47
|
+
flush() {
|
|
48
|
+
closed = true;
|
|
49
|
+
clear();
|
|
50
|
+
}
|
|
51
|
+
}, { highWaterMark: 16 }, { highWaterMark: 16 });
|
|
52
|
+
}
|
|
53
|
+
function withSseKeepAlive(response, intervalMs = SSE_KEEPALIVE_INTERVAL_MS) {
|
|
54
|
+
const headers = new Headers(response.headers);
|
|
55
|
+
headers.set("Cache-Control", "no-cache");
|
|
56
|
+
headers.set("X-Accel-Buffering", "no");
|
|
57
|
+
headers.set("Connection", "keep-alive");
|
|
58
|
+
const body = response.body ? response.body.pipeThrough(createSseKeepAliveTransform(intervalMs)) : response.body;
|
|
59
|
+
return new Response(body, {
|
|
60
|
+
status: response.status,
|
|
61
|
+
statusText: response.statusText,
|
|
62
|
+
headers
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
export {
|
|
66
|
+
SSE_KEEPALIVE_COMMENT,
|
|
67
|
+
createSseKeepAliveTransform,
|
|
68
|
+
withSseKeepAlive
|
|
69
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {
|
|
2
|
+
parseMessages2,
|
|
3
|
+
generateCatalogTypes2,
|
|
4
|
+
defineI18nConfig2,
|
|
5
|
+
validateCatalogs2,
|
|
6
|
+
writeCatalogTypes2
|
|
7
|
+
} from "../../index-5n2e326q.js";
|
|
8
|
+
import"../../index-najbyzpr.js";
|
|
9
|
+
export {
|
|
10
|
+
defineI18nConfig2 as defineI18nConfig,
|
|
11
|
+
generateCatalogTypes2 as generateCatalogTypes,
|
|
12
|
+
parseMessages2 as parseMessages,
|
|
13
|
+
validateCatalogs2 as validateCatalogs,
|
|
14
|
+
writeCatalogTypes2 as writeCatalogTypes
|
|
15
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
CliError2,
|
|
4
|
+
defineCommand2,
|
|
5
|
+
defineCli2
|
|
6
|
+
} from "../../index-nfvq3zax.js";
|
|
7
|
+
import"../../index-najbyzpr.js";
|
|
8
|
+
import {
|
|
9
|
+
validateCatalogs2,
|
|
10
|
+
writeCatalogTypes2
|
|
11
|
+
} from "../../index-5n2e326q.js";
|
|
12
|
+
|
|
13
|
+
// src/i18n/cli.ts
|
|
14
|
+
import { existsSync } from "node:fs";
|
|
15
|
+
import { dirname, resolve } from "node:path";
|
|
16
|
+
import { pathToFileURL } from "node:url";
|
|
17
|
+
import { z } from "zod";
|
|
18
|
+
var CONFIG_NAMES = [
|
|
19
|
+
"i18n.config.ts",
|
|
20
|
+
"i18n.config.mts",
|
|
21
|
+
"i18n.config.js",
|
|
22
|
+
"i18n.config.mjs"
|
|
23
|
+
];
|
|
24
|
+
async function loadConfig(file) {
|
|
25
|
+
const path = file ? resolve(file) : CONFIG_NAMES.map((name) => resolve(name)).find((path) => existsSync(path));
|
|
26
|
+
if (!path || !existsSync(path))
|
|
27
|
+
throw new CliError2(`No i18n config found: pass --config or add ${CONFIG_NAMES[0]}.`);
|
|
28
|
+
const loaded = await import(pathToFileURL(path).href);
|
|
29
|
+
if (!loaded.default?.catalogs)
|
|
30
|
+
throw new CliError2(`${path} must default-export an i18n config`);
|
|
31
|
+
return { config: loaded.default, root: dirname(path) };
|
|
32
|
+
}
|
|
33
|
+
function failOnIssues(issues, ctx) {
|
|
34
|
+
if (issues.length === 0)
|
|
35
|
+
return;
|
|
36
|
+
for (const issue of issues) {
|
|
37
|
+
const locale = issue.locale ? `/${issue.locale}` : "";
|
|
38
|
+
ctx.stderr.write(`❌ ${issue.catalog}${locale}: ${issue.message}
|
|
39
|
+
`);
|
|
40
|
+
}
|
|
41
|
+
throw new CliError2(`${issues.length} catalog problem(s)`);
|
|
42
|
+
}
|
|
43
|
+
var cli = defineCli2({
|
|
44
|
+
name: "hanzio-i18n",
|
|
45
|
+
globals: z.object({
|
|
46
|
+
config: z.string().optional().describe("Config file (default: i18n.config.*)")
|
|
47
|
+
}),
|
|
48
|
+
context: (globals) => loadConfig(globals.config),
|
|
49
|
+
commands: {
|
|
50
|
+
check: defineCommand2({
|
|
51
|
+
description: "Validate the translation catalogs",
|
|
52
|
+
run: async (_input, ctx) => {
|
|
53
|
+
const { config, root } = ctx.context;
|
|
54
|
+
failOnIssues(await validateCatalogs2(config, { root }), ctx);
|
|
55
|
+
return config.catalogs.map((catalog) => `✅ ${catalog.name}: ${config.locales.length} locale(s) valid`).join(`
|
|
56
|
+
`);
|
|
57
|
+
}
|
|
58
|
+
}),
|
|
59
|
+
generate: defineCommand2({
|
|
60
|
+
description: "Write each catalog's generatedTypes",
|
|
61
|
+
run: (_input, ctx) => {
|
|
62
|
+
const { config, root } = ctx.context;
|
|
63
|
+
const { written, issues } = writeCatalogTypes2(config, { root });
|
|
64
|
+
failOnIssues(issues, ctx);
|
|
65
|
+
return written.map((path) => `Generated ${path}`).join(`
|
|
66
|
+
`) || undefined;
|
|
67
|
+
}
|
|
68
|
+
})
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
process.exitCode = await cli.run();
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createAsyncStorageItem2
|
|
3
|
+
} from "../../index-mq2qgc20.js";
|
|
4
|
+
|
|
5
|
+
// src/i18n/i18next.ts
|
|
6
|
+
function initI18next(i18n, options) {
|
|
7
|
+
const { locales, deviceLocales, storageKey, storage, ...initOptions } = options;
|
|
8
|
+
const persisted = storageKey && storage ? createAsyncStorageItem2({
|
|
9
|
+
key: storageKey,
|
|
10
|
+
fallback: null,
|
|
11
|
+
storage,
|
|
12
|
+
serialize: (value) => value ?? "",
|
|
13
|
+
deserialize: (raw) => raw
|
|
14
|
+
}) : undefined;
|
|
15
|
+
const ready = (async () => {
|
|
16
|
+
const locale = locales.resolve(await persisted?.get(), ...deviceLocales?.() ?? []);
|
|
17
|
+
await i18n.init({
|
|
18
|
+
fallbackLng: locales.defaultLocale,
|
|
19
|
+
returnNull: false,
|
|
20
|
+
...initOptions,
|
|
21
|
+
interpolation: {
|
|
22
|
+
escapeValue: false,
|
|
23
|
+
prefix: "{",
|
|
24
|
+
suffix: "}",
|
|
25
|
+
...initOptions.interpolation
|
|
26
|
+
},
|
|
27
|
+
lng: locale
|
|
28
|
+
});
|
|
29
|
+
})();
|
|
30
|
+
async function setLocale(locale) {
|
|
31
|
+
if (i18n.language !== locale)
|
|
32
|
+
await i18n.changeLanguage(locale);
|
|
33
|
+
await persisted?.set(locale);
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
ready,
|
|
37
|
+
setLocale,
|
|
38
|
+
locale: () => locales.match(i18n.language) ?? locales.defaultLocale,
|
|
39
|
+
async syncLocale(tag) {
|
|
40
|
+
const locale = locales.match(tag);
|
|
41
|
+
if (locale)
|
|
42
|
+
await setLocale(locale);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export {
|
|
47
|
+
initI18next
|
|
48
|
+
};
|
package/dist/src/i18n/index.js
CHANGED
|
@@ -1,36 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const value = Object.hasOwn(params, name) ? params[name] : undefined;
|
|
11
|
-
return value == null ? match : String(value);
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
function flattenMessages(messages) {
|
|
15
|
-
const out = {};
|
|
16
|
-
const visit = (node, prefix) => {
|
|
17
|
-
for (const [key, value] of Object.entries(node)) {
|
|
18
|
-
if (typeof value === "string")
|
|
19
|
-
out[prefix + key] = value;
|
|
20
|
-
else
|
|
21
|
-
visit(value, `${prefix + key}.`);
|
|
22
|
-
}
|
|
23
|
-
};
|
|
24
|
-
visit(messages, "");
|
|
25
|
-
return out;
|
|
26
|
-
}
|
|
27
|
-
function createTranslator(messages) {
|
|
28
|
-
const flat = flattenMessages(messages);
|
|
29
|
-
return (key, ...args) => interpolate(flat[key] ?? key, ...args);
|
|
30
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
defineLocales2,
|
|
3
|
+
createLocaleSelector2,
|
|
4
|
+
extractPlaceholders2,
|
|
5
|
+
interpolate2,
|
|
6
|
+
flattenMessages2,
|
|
7
|
+
createTranslator2,
|
|
8
|
+
typedTranslate2
|
|
9
|
+
} from "../../index-najbyzpr.js";
|
|
31
10
|
export {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
11
|
+
createLocaleSelector2 as createLocaleSelector,
|
|
12
|
+
createTranslator2 as createTranslator,
|
|
13
|
+
defineLocales2 as defineLocales,
|
|
14
|
+
extractPlaceholders2 as extractPlaceholders,
|
|
15
|
+
flattenMessages2 as flattenMessages,
|
|
16
|
+
interpolate2 as interpolate,
|
|
17
|
+
typedTranslate2 as typedTranslate
|
|
36
18
|
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// src/i18n/vite.ts
|
|
2
|
+
var INTLIFY_VIRTUAL_PREFIX = "virtual:intlify-i18n-";
|
|
3
|
+
function localeCatalogReloadPlugin(options = {}) {
|
|
4
|
+
const match = options.match ?? /[/\\]locales[/\\][^/\\]+\.json$/;
|
|
5
|
+
return {
|
|
6
|
+
name: "hanzio-locale-catalog-reload",
|
|
7
|
+
apply: "serve",
|
|
8
|
+
hotUpdate({ file }) {
|
|
9
|
+
if (this.environment.name !== "client")
|
|
10
|
+
return;
|
|
11
|
+
if (!match.test(file))
|
|
12
|
+
return;
|
|
13
|
+
const graph = this.environment.moduleGraph;
|
|
14
|
+
for (const [id, module] of graph.idToModuleMap) {
|
|
15
|
+
if (id.startsWith(INTLIFY_VIRTUAL_PREFIX))
|
|
16
|
+
graph.invalidateModule(module);
|
|
17
|
+
}
|
|
18
|
+
this.environment.hot.send({ type: "full-reload" });
|
|
19
|
+
return [];
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
localeCatalogReloadPlugin
|
|
25
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createStorageItem2
|
|
3
|
+
} from "../../index-mq2qgc20.js";
|
|
4
|
+
import {
|
|
5
|
+
typedTranslate2
|
|
6
|
+
} from "../../index-najbyzpr.js";
|
|
7
|
+
|
|
8
|
+
// src/i18n/vue.ts
|
|
9
|
+
import { createI18n, useI18n } from "vue-i18n";
|
|
10
|
+
var browser = globalThis;
|
|
11
|
+
function createVueI18n(options) {
|
|
12
|
+
const { locales, storageKey, storage, ...i18nOptions } = options;
|
|
13
|
+
const persisted = storageKey ? createStorageItem2({
|
|
14
|
+
key: storageKey,
|
|
15
|
+
fallback: null,
|
|
16
|
+
storage,
|
|
17
|
+
serialize: (value) => value ?? "",
|
|
18
|
+
deserialize: (raw) => raw
|
|
19
|
+
}) : undefined;
|
|
20
|
+
const initial = locales.resolve(persisted?.get(), browser.navigator?.language);
|
|
21
|
+
const i18n = createI18n({
|
|
22
|
+
fallbackLocale: locales.defaultLocale,
|
|
23
|
+
...i18nOptions,
|
|
24
|
+
legacy: false,
|
|
25
|
+
locale: initial
|
|
26
|
+
});
|
|
27
|
+
const apply = (locale) => {
|
|
28
|
+
i18n.global.locale.value = locale;
|
|
29
|
+
if (browser.document)
|
|
30
|
+
browser.document.documentElement.lang = locale;
|
|
31
|
+
};
|
|
32
|
+
apply(initial);
|
|
33
|
+
return {
|
|
34
|
+
i18n,
|
|
35
|
+
setLocale(locale) {
|
|
36
|
+
apply(locale);
|
|
37
|
+
persisted?.set(locale);
|
|
38
|
+
},
|
|
39
|
+
useI18n() {
|
|
40
|
+
const composer = useI18n();
|
|
41
|
+
return {
|
|
42
|
+
...composer,
|
|
43
|
+
locale: composer.locale,
|
|
44
|
+
t: typedTranslate2(composer.t)
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export {
|
|
50
|
+
createVueI18n
|
|
51
|
+
};
|
package/dist/src/index.js
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
sumBy2,
|
|
14
14
|
sortBy2,
|
|
15
15
|
range2
|
|
16
|
-
} from "../index-
|
|
16
|
+
} from "../index-5tzqfmnj.js";
|
|
17
17
|
import {
|
|
18
18
|
createCache2
|
|
19
19
|
} from "../index-k9yx6bne.js";
|
|
@@ -32,13 +32,14 @@ import {
|
|
|
32
32
|
exponentialBackoff2,
|
|
33
33
|
retry2,
|
|
34
34
|
pMap2,
|
|
35
|
+
createTaskPool2,
|
|
35
36
|
startTimer2,
|
|
36
37
|
timed2,
|
|
37
38
|
anySignal2,
|
|
38
39
|
timeoutSignal2,
|
|
39
40
|
raceAbort2,
|
|
40
41
|
createLatestGuard2
|
|
41
|
-
} from "../index-
|
|
42
|
+
} from "../index-6f2w90pp.js";
|
|
42
43
|
import {
|
|
43
44
|
InvariantError2,
|
|
44
45
|
getErrorMessage2,
|
|
@@ -70,8 +71,12 @@ import {
|
|
|
70
71
|
foldForSearch2,
|
|
71
72
|
matchesSearch2,
|
|
72
73
|
initials2,
|
|
73
|
-
safeJsonParse2
|
|
74
|
-
|
|
74
|
+
safeJsonParse2,
|
|
75
|
+
escapeHtml2,
|
|
76
|
+
stripEmoji2,
|
|
77
|
+
fileExtension2,
|
|
78
|
+
toJsonValue2
|
|
79
|
+
} from "../index-29mmh343.js";
|
|
75
80
|
import {
|
|
76
81
|
buildQueryString2,
|
|
77
82
|
replacePathParams2,
|
|
@@ -1008,12 +1013,15 @@ export {
|
|
|
1008
1013
|
createLatestGuard2 as createLatestGuard,
|
|
1009
1014
|
createResolveColorsByKeys,
|
|
1010
1015
|
createStateMachine,
|
|
1016
|
+
createTaskPool2 as createTaskPool,
|
|
1011
1017
|
debounce,
|
|
1012
1018
|
ensureLeadingSlash2 as ensureLeadingSlash,
|
|
1013
1019
|
err2 as err,
|
|
1020
|
+
escapeHtml2 as escapeHtml,
|
|
1014
1021
|
escapeRegExp2 as escapeRegExp,
|
|
1015
1022
|
exponentialBackoff2 as exponentialBackoff,
|
|
1016
1023
|
extractNumber2 as extractNumber,
|
|
1024
|
+
fileExtension2 as fileExtension,
|
|
1017
1025
|
findArrayDifferenceByKey2 as findArrayDifferenceByKey,
|
|
1018
1026
|
foldForSearch2 as foldForSearch,
|
|
1019
1027
|
formatPeriodLabel,
|
|
@@ -1083,6 +1091,7 @@ export {
|
|
|
1083
1091
|
sortBy2 as sortBy,
|
|
1084
1092
|
stableStringify2 as stableStringify,
|
|
1085
1093
|
startTimer2 as startTimer,
|
|
1094
|
+
stripEmoji2 as stripEmoji,
|
|
1086
1095
|
sumBy2 as sumBy,
|
|
1087
1096
|
throttle,
|
|
1088
1097
|
timed2 as timed,
|
|
@@ -1090,6 +1099,7 @@ export {
|
|
|
1090
1099
|
toArray2 as toArray,
|
|
1091
1100
|
toError2 as toError,
|
|
1092
1101
|
toHex,
|
|
1102
|
+
toJsonValue2 as toJsonValue,
|
|
1093
1103
|
toRgbString,
|
|
1094
1104
|
trimTrailingSlash2 as trimTrailingSlash,
|
|
1095
1105
|
truncate2 as truncate,
|