🌐Translations for the latest features (#78)
* 🌐Translations for the latest features
Also:
- Rename “Home” to Shared drive
- Hide banner with suggestion of downloading desktop app
- Fix Upload button on main screen
- Add separate buttons for the manage access and share by link
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"hello": "Hello",
|
||||
"virtual-folder.shared-drive": "Shared Drive",
|
||||
"virtual-folder.my-drive": "My Drive",
|
||||
"virtual-folder.trash": "Trash"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"hello": "Bonjour",
|
||||
"virtual-folder.shared-drive": "Общий Диск",
|
||||
"virtual-folder.my-drive": "Мой Диск",
|
||||
"virtual-folder.trash": "Корзина"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"hello": "Привет",
|
||||
"virtual-folder.shared-drive": "Общий Диск",
|
||||
"virtual-folder.my-drive": "Мой Диск",
|
||||
"virtual-folder.trash": "Корзина"
|
||||
}
|
||||
Generated
+107
@@ -18,6 +18,7 @@
|
||||
"@sentry/tracing": "^6.19.7",
|
||||
"@socket.io/redis-adapter": "^7.2.0",
|
||||
"@types/http-proxy": "^1.17.11",
|
||||
"@types/i18n": "^0.13.6",
|
||||
"@types/pdf-parse": "^1.1.1",
|
||||
"@types/redis": "^4.0.11",
|
||||
"@types/sharp": "^0.29.5",
|
||||
@@ -53,6 +54,7 @@
|
||||
"get-website-favicon": "^0.0.7",
|
||||
"html-metadata-parser": "^2.0.4",
|
||||
"html-to-text": "^8.2.1",
|
||||
"i18n": "^0.15.1",
|
||||
"idtoken-verifier": "^2.2.3",
|
||||
"jsonwebtoken": "^9.0.0",
|
||||
"jwks-rsa": "^3.0.1",
|
||||
@@ -1551,6 +1553,45 @@
|
||||
"node-pre-gyp": "bin/node-pre-gyp"
|
||||
}
|
||||
},
|
||||
"node_modules/@messageformat/core": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.2.0.tgz",
|
||||
"integrity": "sha512-ppbb/7OYqg/t4WdFk8VAfZEV2sNUq3+7VeBAo5sKFhmF786sh6gB7fUeXa2qLTDIcTHS49HivTBN7QNOU5OFTg==",
|
||||
"dependencies": {
|
||||
"@messageformat/date-skeleton": "^1.0.0",
|
||||
"@messageformat/number-skeleton": "^1.0.0",
|
||||
"@messageformat/parser": "^5.1.0",
|
||||
"@messageformat/runtime": "^3.0.1",
|
||||
"make-plural": "^7.0.0",
|
||||
"safe-identifier": "^0.4.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@messageformat/date-skeleton": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.0.1.tgz",
|
||||
"integrity": "sha512-jPXy8fg+WMPIgmGjxSlnGJn68h/2InfT0TNSkVx0IGXgp4ynnvYkbZ51dGWmGySEK+pBiYUttbQdu5XEqX5CRg=="
|
||||
},
|
||||
"node_modules/@messageformat/number-skeleton": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@messageformat/number-skeleton/-/number-skeleton-1.2.0.tgz",
|
||||
"integrity": "sha512-xsgwcL7J7WhlHJ3RNbaVgssaIwcEyFkBqxHdcdaiJzwTZAWEOD8BuUFxnxV9k5S0qHN3v/KzUpq0IUpjH1seRg=="
|
||||
},
|
||||
"node_modules/@messageformat/parser": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.1.0.tgz",
|
||||
"integrity": "sha512-jKlkls3Gewgw6qMjKZ9SFfHUpdzEVdovKFtW1qRhJ3WI4FW5R/NnGDqr8SDGz+krWDO3ki94boMmQvGke1HwUQ==",
|
||||
"dependencies": {
|
||||
"moo": "^0.5.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@messageformat/runtime": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.1.tgz",
|
||||
"integrity": "sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==",
|
||||
"dependencies": {
|
||||
"make-plural": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@nodelib/fs.scandir": {
|
||||
"version": "2.1.5",
|
||||
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
||||
@@ -1996,6 +2037,11 @@
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/i18n": {
|
||||
"version": "0.13.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/i18n/-/i18n-0.13.6.tgz",
|
||||
"integrity": "sha512-LLbimAA0oQilgP4PJBFH7sRdBUjWLo6R1rf46SUgVzsUZeXH3PT1piXj4LNX5ECDi0bLg9RmQMmY1K2qawqJqA=="
|
||||
},
|
||||
"node_modules/@types/istanbul-lib-coverage": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
|
||||
@@ -3216,6 +3262,11 @@
|
||||
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
|
||||
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
|
||||
},
|
||||
"node_modules/boolean": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz",
|
||||
"integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw=="
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
@@ -5126,6 +5177,17 @@
|
||||
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/fast-printf": {
|
||||
"version": "1.6.9",
|
||||
"resolved": "https://registry.npmjs.org/fast-printf/-/fast-printf-1.6.9.tgz",
|
||||
"integrity": "sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==",
|
||||
"dependencies": {
|
||||
"boolean": "^3.1.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fast-redact": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.2.0.tgz",
|
||||
@@ -6329,6 +6391,25 @@
|
||||
"node": ">=10.17.0"
|
||||
}
|
||||
},
|
||||
"node_modules/i18n": {
|
||||
"version": "0.15.1",
|
||||
"resolved": "https://registry.npmjs.org/i18n/-/i18n-0.15.1.tgz",
|
||||
"integrity": "sha512-yue187t8MqUPMHdKjiZGrX+L+xcUsDClGO0Cz4loaKUOK9WrGw5pgan4bv130utOwX7fHE9w2iUeHFalVQWkXA==",
|
||||
"dependencies": {
|
||||
"@messageformat/core": "^3.0.0",
|
||||
"debug": "^4.3.3",
|
||||
"fast-printf": "^1.6.9",
|
||||
"make-plural": "^7.0.0",
|
||||
"math-interval-parser": "^2.0.1",
|
||||
"mustache": "^4.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/mashpie"
|
||||
}
|
||||
},
|
||||
"node_modules/iconv-lite": {
|
||||
"version": "0.4.24",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
||||
@@ -7944,6 +8025,11 @@
|
||||
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/make-plural": {
|
||||
"version": "7.3.0",
|
||||
"resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.3.0.tgz",
|
||||
"integrity": "sha512-/K3BC0KIsO+WK2i94LkMPv3wslMrazrQhfi5We9fMbLlLjzoOSJWr7TAdupLlDWaJcWxwoNosBkhFDejiu5VDw=="
|
||||
},
|
||||
"node_modules/makeerror": {
|
||||
"version": "1.0.12",
|
||||
"resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
|
||||
@@ -7979,6 +8065,14 @@
|
||||
"integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/math-interval-parser": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz",
|
||||
"integrity": "sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/md5": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz",
|
||||
@@ -8378,6 +8472,14 @@
|
||||
"readable-stream": "^3.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/mustache": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz",
|
||||
"integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==",
|
||||
"bin": {
|
||||
"mustache": "bin/mustache"
|
||||
}
|
||||
},
|
||||
"node_modules/napi-build-utils": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
|
||||
@@ -10155,6 +10257,11 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"node_modules/safe-identifier": {
|
||||
"version": "0.4.2",
|
||||
"resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz",
|
||||
"integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w=="
|
||||
},
|
||||
"node_modules/safe-regex2": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz",
|
||||
|
||||
@@ -110,6 +110,7 @@
|
||||
"@sentry/tracing": "^6.19.7",
|
||||
"@socket.io/redis-adapter": "^7.2.0",
|
||||
"@types/http-proxy": "^1.17.11",
|
||||
"@types/i18n": "^0.13.6",
|
||||
"@types/pdf-parse": "^1.1.1",
|
||||
"@types/redis": "^4.0.11",
|
||||
"@types/sharp": "^0.29.5",
|
||||
@@ -145,6 +146,7 @@
|
||||
"get-website-favicon": "^0.0.7",
|
||||
"html-metadata-parser": "^2.0.4",
|
||||
"html-to-text": "^8.2.1",
|
||||
"i18n": "^0.15.1",
|
||||
"idtoken-verifier": "^2.2.3",
|
||||
"jsonwebtoken": "^9.0.0",
|
||||
"jwks-rsa": "^3.0.1",
|
||||
|
||||
@@ -181,7 +181,7 @@ export class DocumentsService {
|
||||
({
|
||||
id,
|
||||
parent_id: null,
|
||||
name: getVirtualFoldersNames(id),
|
||||
name: await getVirtualFoldersNames(id, context),
|
||||
size: await calculateItemSize(
|
||||
{ id, is_directory: true, size: 0 },
|
||||
this.repository,
|
||||
|
||||
@@ -12,7 +12,7 @@ import {
|
||||
writeToTemporaryFile,
|
||||
} from "../../utils/files";
|
||||
import mimes from "../../utils/mime";
|
||||
import globalResolver from "../global-resolver";
|
||||
import gr from "../global-resolver";
|
||||
import { stopWords } from "./const";
|
||||
import { DriveFile } from "./entities/drive-file";
|
||||
import { DriveFileMetadata, FileVersion } from "./entities/file-version";
|
||||
@@ -26,12 +26,19 @@ export const isVirtualFolder = (id: string) => {
|
||||
return id === ROOT || id === TRASH || id.startsWith("user_");
|
||||
};
|
||||
|
||||
export const getVirtualFoldersNames = (id: string) => {
|
||||
export const getVirtualFoldersNames = async (id: string, context: DriveExecutionContext) => {
|
||||
const user = await gr.services.users.get({ id: context.user?.id });
|
||||
const locale = user?.preferences?.locale || "en";
|
||||
|
||||
if (id.startsWith("user_")) {
|
||||
return "My Drive";
|
||||
return gr.services.i18n.translate("virtual-folder.my-drive", locale);
|
||||
}
|
||||
|
||||
return id === ROOT ? "Home" : id === TRASH ? "Trash" : "Unknown";
|
||||
return id === ROOT
|
||||
? gr.services.i18n.translate("virtual-folder.shared-drive", locale)
|
||||
: id === TRASH
|
||||
? gr.services.i18n.translate("virtual-folder.trash", locale)
|
||||
: "Unknown";
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -232,11 +239,10 @@ export const getPath = async (
|
||||
? [
|
||||
{
|
||||
id,
|
||||
name: getVirtualFoldersNames(id),
|
||||
name: await getVirtualFoldersNames(id, context),
|
||||
} as DriveFile,
|
||||
]
|
||||
: [];
|
||||
|
||||
const item = await repository.findOne({
|
||||
id,
|
||||
company_id: context.company.id,
|
||||
@@ -276,7 +282,7 @@ export const addDriveItemToArchive = async (
|
||||
|
||||
if (!item.is_directory) {
|
||||
const file_id = item.last_version_cache.file_metadata.external_id;
|
||||
const file = await globalResolver.services.files.download(file_id, context);
|
||||
const file = await gr.services.files.download(file_id, context);
|
||||
|
||||
if (!file) {
|
||||
throw Error("file not found");
|
||||
@@ -398,7 +404,7 @@ export const getFileMetadata = async (
|
||||
fileId: string,
|
||||
context: CompanyExecutionContext,
|
||||
): Promise<DriveFileMetadata> => {
|
||||
const file = await globalResolver.services.files.getFile(
|
||||
const file = await gr.services.files.getFile(
|
||||
{
|
||||
id: fileId,
|
||||
company_id: context.company.id,
|
||||
|
||||
@@ -35,6 +35,7 @@ import { UserServiceImpl } from "./user/services/users/service";
|
||||
import { WorkspaceServiceImpl } from "./workspaces/services/workspace";
|
||||
|
||||
import { PreviewEngine } from "./previews/services/files/engine";
|
||||
import { I18nService } from "./i18n";
|
||||
|
||||
type PlatformServices = {
|
||||
auth: AuthServiceAPI;
|
||||
@@ -73,6 +74,7 @@ type TdriveServices = {
|
||||
engine: DocumentsEngine;
|
||||
};
|
||||
tags: TagsService;
|
||||
i18n: I18nService;
|
||||
};
|
||||
|
||||
class GlobalResolver {
|
||||
@@ -136,6 +138,7 @@ class GlobalResolver {
|
||||
engine: await new DocumentsEngine().init(),
|
||||
},
|
||||
tags: await new TagsService().init(),
|
||||
i18n: await new I18nService().init(),
|
||||
};
|
||||
|
||||
Object.keys(this.services).forEach((key: keyof TdriveServices) => {
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
import i18n from "i18n";
|
||||
import path from "path";
|
||||
import { logger } from "../../core/platform/framework/logger";
|
||||
import { Initializable, TdriveServiceProvider } from "../../core/platform/framework";
|
||||
|
||||
export class I18nService implements TdriveServiceProvider, Initializable {
|
||||
version = "0";
|
||||
|
||||
public translate(str: string, locale: string): string {
|
||||
return i18n.__({ phrase: str, locale: locale });
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
async init(): Promise<this> {
|
||||
i18n.configure({
|
||||
locales: ["en", "ru", "fr"],
|
||||
defaultLocale: "en",
|
||||
directory: path.resolve("./locales/"),
|
||||
logWarnFn: msg => logger.warn(msg),
|
||||
logErrorFn: msg => logger.error(msg),
|
||||
});
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export * from "./i18n-service";
|
||||
@@ -87,7 +87,7 @@ describe("the Drive feature", () => {
|
||||
const result = deserialize<DriveItemDetailsMockClass>(DriveItemDetailsMockClass, response.body);
|
||||
|
||||
expect(result.item.id).toEqual("root");
|
||||
expect(result.item.name).toEqual("Home");
|
||||
expect(result.item.name).toEqual("Shared Drive");
|
||||
});
|
||||
|
||||
it("did fetch the trash", async () => {
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import "reflect-metadata";
|
||||
import {describe, it} from "@jest/globals";
|
||||
import { I18nService } from "../../../../../src/services/i18n";
|
||||
|
||||
describe("i18n service", () => {
|
||||
|
||||
let subj: I18nService;
|
||||
|
||||
beforeAll(async () => {
|
||||
subj = await (new I18nService()).init();
|
||||
});
|
||||
|
||||
|
||||
it("'Should translate \"Hello\" to FR", async () => {
|
||||
//given
|
||||
const msg = "hello";
|
||||
|
||||
//expect
|
||||
expect(subj.translate(msg, "fr")).toEqual("Bonjour");
|
||||
});
|
||||
|
||||
it("'Should translate \"Hello\" to RU", async () => {
|
||||
//given
|
||||
const msg = "hello";
|
||||
|
||||
//expect
|
||||
expect(subj.translate(msg, "ru")).toEqual("Привет");
|
||||
});
|
||||
|
||||
});
|
||||
@@ -694,6 +694,42 @@
|
||||
semver "^7.3.5"
|
||||
tar "^6.1.11"
|
||||
|
||||
"@messageformat/core@^3.0.0":
|
||||
version "3.2.0"
|
||||
resolved "https://registry.npmjs.org/@messageformat/core/-/core-3.2.0.tgz"
|
||||
integrity sha512-ppbb/7OYqg/t4WdFk8VAfZEV2sNUq3+7VeBAo5sKFhmF786sh6gB7fUeXa2qLTDIcTHS49HivTBN7QNOU5OFTg==
|
||||
dependencies:
|
||||
"@messageformat/date-skeleton" "^1.0.0"
|
||||
"@messageformat/number-skeleton" "^1.0.0"
|
||||
"@messageformat/parser" "^5.1.0"
|
||||
"@messageformat/runtime" "^3.0.1"
|
||||
make-plural "^7.0.0"
|
||||
safe-identifier "^0.4.1"
|
||||
|
||||
"@messageformat/date-skeleton@^1.0.0":
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.0.1.tgz"
|
||||
integrity sha512-jPXy8fg+WMPIgmGjxSlnGJn68h/2InfT0TNSkVx0IGXgp4ynnvYkbZ51dGWmGySEK+pBiYUttbQdu5XEqX5CRg==
|
||||
|
||||
"@messageformat/number-skeleton@^1.0.0":
|
||||
version "1.2.0"
|
||||
resolved "https://registry.npmjs.org/@messageformat/number-skeleton/-/number-skeleton-1.2.0.tgz"
|
||||
integrity sha512-xsgwcL7J7WhlHJ3RNbaVgssaIwcEyFkBqxHdcdaiJzwTZAWEOD8BuUFxnxV9k5S0qHN3v/KzUpq0IUpjH1seRg==
|
||||
|
||||
"@messageformat/parser@^5.1.0":
|
||||
version "5.1.0"
|
||||
resolved "https://registry.npmjs.org/@messageformat/parser/-/parser-5.1.0.tgz"
|
||||
integrity sha512-jKlkls3Gewgw6qMjKZ9SFfHUpdzEVdovKFtW1qRhJ3WI4FW5R/NnGDqr8SDGz+krWDO3ki94boMmQvGke1HwUQ==
|
||||
dependencies:
|
||||
moo "^0.5.1"
|
||||
|
||||
"@messageformat/runtime@^3.0.1":
|
||||
version "3.0.1"
|
||||
resolved "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.1.tgz"
|
||||
integrity sha512-6RU5ol2lDtO8bD9Yxe6CZkl0DArdv0qkuoZC+ZwowU+cdRlVE1157wjCmlA5Rsf1Xc/brACnsZa5PZpEDfTFFg==
|
||||
dependencies:
|
||||
make-plural "^7.0.0"
|
||||
|
||||
"@nodelib/fs.scandir@2.1.5":
|
||||
version "2.1.5"
|
||||
resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
|
||||
@@ -1026,6 +1062,11 @@
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/i18n@^0.13.6":
|
||||
version "0.13.6"
|
||||
resolved "https://registry.npmjs.org/@types/i18n/-/i18n-0.13.6.tgz"
|
||||
integrity sha512-LLbimAA0oQilgP4PJBFH7sRdBUjWLo6R1rf46SUgVzsUZeXH3PT1piXj4LNX5ECDi0bLg9RmQMmY1K2qawqJqA==
|
||||
|
||||
"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
|
||||
version "2.0.4"
|
||||
resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz"
|
||||
@@ -1826,6 +1867,11 @@ boolbase@^1.0.0:
|
||||
resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz"
|
||||
integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
|
||||
|
||||
boolean@^3.1.4:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz"
|
||||
integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==
|
||||
|
||||
brace-expansion@^1.1.7:
|
||||
version "1.1.11"
|
||||
resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
|
||||
@@ -2438,7 +2484,7 @@ debug@^3.2.7:
|
||||
dependencies:
|
||||
ms "^2.1.1"
|
||||
|
||||
debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@4:
|
||||
debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@4:
|
||||
version "4.3.4"
|
||||
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
|
||||
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
|
||||
@@ -3109,6 +3155,13 @@ fast-levenshtein@^2.0.6:
|
||||
resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
|
||||
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
|
||||
|
||||
fast-printf@^1.6.9:
|
||||
version "1.6.9"
|
||||
resolved "https://registry.npmjs.org/fast-printf/-/fast-printf-1.6.9.tgz"
|
||||
integrity sha512-FChq8hbz65WMj4rstcQsFB0O7Cy++nmbNfLYnD9cYv2cRn8EG6k/MGn9kO/tjO66t09DLDugj3yL+V2o6Qftrg==
|
||||
dependencies:
|
||||
boolean "^3.1.4"
|
||||
|
||||
fast-redact@^3.0.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.npmjs.org/fast-redact/-/fast-redact-3.2.0.tgz"
|
||||
@@ -3828,6 +3881,18 @@ human-signals@^2.1.0:
|
||||
resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz"
|
||||
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
|
||||
|
||||
i18n@^0.15.1:
|
||||
version "0.15.1"
|
||||
resolved "https://registry.npmjs.org/i18n/-/i18n-0.15.1.tgz"
|
||||
integrity sha512-yue187t8MqUPMHdKjiZGrX+L+xcUsDClGO0Cz4loaKUOK9WrGw5pgan4bv130utOwX7fHE9w2iUeHFalVQWkXA==
|
||||
dependencies:
|
||||
"@messageformat/core" "^3.0.0"
|
||||
debug "^4.3.3"
|
||||
fast-printf "^1.6.9"
|
||||
make-plural "^7.0.0"
|
||||
math-interval-parser "^2.0.1"
|
||||
mustache "^4.2.0"
|
||||
|
||||
iconv-lite@^0.4.4:
|
||||
version "0.4.24"
|
||||
resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
|
||||
@@ -4873,6 +4938,11 @@ make-error@^1.1.1, make-error@1.x:
|
||||
resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz"
|
||||
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
|
||||
|
||||
make-plural@^7.0.0:
|
||||
version "7.3.0"
|
||||
resolved "https://registry.npmjs.org/make-plural/-/make-plural-7.3.0.tgz"
|
||||
integrity sha512-/K3BC0KIsO+WK2i94LkMPv3wslMrazrQhfi5We9fMbLlLjzoOSJWr7TAdupLlDWaJcWxwoNosBkhFDejiu5VDw==
|
||||
|
||||
makeerror@1.0.12:
|
||||
version "1.0.12"
|
||||
resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz"
|
||||
@@ -4902,6 +4972,11 @@ map-stream@~0.1.0:
|
||||
resolved "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz"
|
||||
integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==
|
||||
|
||||
math-interval-parser@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-2.0.1.tgz"
|
||||
integrity sha512-VmlAmb0UJwlvMyx8iPhXUDnVW1F9IrGEd9CIOmv+XL8AErCUUuozoDMrgImvnYt2A+53qVX/tPW6YJurMKYsvA==
|
||||
|
||||
md5@^2.2.1:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz"
|
||||
@@ -5172,6 +5247,11 @@ multistream@^4.1.0:
|
||||
once "^1.4.0"
|
||||
readable-stream "^3.6.0"
|
||||
|
||||
mustache@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz"
|
||||
integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==
|
||||
|
||||
napi-build-utils@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz"
|
||||
@@ -6188,6 +6268,11 @@ safe-buffer@~5.1.2:
|
||||
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
|
||||
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
|
||||
|
||||
safe-identifier@^0.4.1:
|
||||
version "0.4.2"
|
||||
resolved "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz"
|
||||
integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==
|
||||
|
||||
safe-regex2@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz"
|
||||
|
||||
Reference in New Issue
Block a user