Fix les scripts de traduction

pull/2503/head
Jérémy Rialland 2023-02-08 10:09:19 +01:00 committed by Jérémy Rialland
parent 700f614e8c
commit 38a6749cb5
8 changed files with 383 additions and 280 deletions

View File

@ -139,7 +139,7 @@
"cypress-plugin-tab": "^1.0.5",
"cypress-wait-until": "^1.7.2",
"dotenv": "^16.0.3",
"i18next-parser": "^7.0.3",
"i18next-parser": "^7.6.0",
"netlify-cli": "^12.2.8",
"rimraf": "^3.0.2",
"rollup-plugin-toml": "^1.0.0",

View File

@ -10,8 +10,10 @@ export default {
defaultNamespace: 'translation',
// Default namespace used in your i18next config
defaultValue: 'NO_TRANSLATION',
// Default value to give to empty keys
defaultValue(locale, namespace, key, value) {
return key === value || (key && value === '') ? 'NO_TRANSLATION' : value
},
indentation: 2,
// Indentation of the catalog files
@ -85,9 +87,11 @@ export default {
sort: true,
// Whether or not to sort the catalog
useKeysAsDefaultValue: false,
// Whether to use the keys as the default value; ex. "Hello": "Hello", "World": "World"
// The option `defaultValue` will not work if this is set to true
resetDefaultValueLocale: 'fr',
// The locale to compare with default values to determine whether a default value has been changed.
// If this is set and a default value differs from a translation in the specified locale, all entries
// for that key across locales are reset to the default value, and existing translations are moved to
// the `_old` file.
verbose: false,
// Display info about the parsing including some stats

View File

@ -10,19 +10,38 @@ import {
const [missingTranslations, resolved] = getRulesMissingTranslations()
writeFileSync(
rulesTranslationPath,
yaml.stringify(resolved, { sortMapEntries: true })
)
const translateObject = (paths, arr) =>
Promise.all(
arr.map(async ([dot, k, v]) => {
if (typeof v === 'string') {
const trad = await fetchTranslation(v)
const res = paths.reduce((obj, key) => obj[key], resolved)
res[dot][k] = '[automatic] ' + trad
} else {
translateObject([...paths, dot, k], v)
}
})
)
await Promise.all(
missingTranslations.map(async ([dottedName, attr, value]) => {
try {
const translation = await fetchTranslation(value)
resolved[dottedName][attr] = '[automatic] ' + translation
if (attr === 'avec') {
return await translateObject([dottedName, attr], value)
}
if (typeof value === 'string') {
const translation = await fetchTranslation(value)
resolved[dottedName][attr] = '[automatic] ' + translation
} else {
console.warn(
"Warning: ⚠️ Can't translate anything other than a string",
{ dottedName, attr, value }
)
}
} catch (e) {
console.error(e)
console.log(value)
console.log({ dottedName, attr, value })
}
})
)

View File

@ -8,14 +8,18 @@ import {
getUiMissingTranslations,
} from './utils.js'
const sleep = (timeout) =>
new Promise((resolve) => setTimeout(resolve, timeout))
const missingTranslations = getUiMissingTranslations()
let originalKeys = yaml.parse(readFileSync(UiOriginalTranslationPath, 'utf-8'))
let translatedKeys = yaml.parse(readFileSync(UiTranslationPath, 'utf-8'))
await Promise.all(
Object.entries(missingTranslations)
.map(([key, value]) => [key, value === 'NO_TRANSLATION' ? key : value])
.map(async ([key, originalTranslation]) => {
.map(async ([key, originalTranslation], i) => {
try {
await sleep(i * 50)
const translation = await fetchTranslation(originalTranslation)
const path = key.split(/(?<=[A-zÀ-ü0-9])\.(?=[A-zÀ-ü0-9])/)
translatedKeys = assocPath(path, translation, translatedKeys)

View File

@ -21,13 +21,10 @@ let attributesToTranslate = [
'note',
]
export function getRulesMissingTranslations() {
let currentExternalization = yaml.parse(
readFileSync(rulesTranslationPath, 'utf-8')
)
const recursiveRulesMissingTranslations = (currentExternalization, rules) => {
const ret = { missingTranslations: [], resolved: {} }
let missingTranslations = []
let resolved = Object.fromEntries(
ret.resolved = Object.fromEntries(
Object.entries(rules)
.map(([dottedName, rule]) => [
dottedName,
@ -41,6 +38,22 @@ export function getRulesMissingTranslations() {
Object.entries(rule)
.filter(([, v]) => !!v)
.map(([k, v]) => {
let currentTranslation = currentExternalization?.[dottedName]
if ('avec' === k) {
const result = recursiveRulesMissingTranslations(
currentTranslation?.avec,
v
)
ret.missingTranslations.push([
dottedName,
'avec',
result.missingTranslations,
])
return [['avec', result.resolved]]
}
let attrToTranslate = attributesToTranslate.find(
(attr) => attr === k
)
@ -48,8 +61,6 @@ export function getRulesMissingTranslations() {
let enTrad = attrToTranslate + '.en'
let frTrad = attrToTranslate + '.fr'
let currentTranslation = currentExternalization[dottedName]
if ('suggestions' === attrToTranslate) {
return Object.keys(v).reduce((acc, suggestion) => {
const enTrad = `suggestions.${suggestion}.en`
@ -64,7 +75,7 @@ export function getRulesMissingTranslations() {
[enTrad, currentTranslation[enTrad]],
]
}
missingTranslations.push([dottedName, enTrad, suggestion])
ret.missingTranslations.push([dottedName, enTrad, suggestion])
return [...acc, [frTrad, suggestion]]
}, [])
}
@ -80,13 +91,26 @@ export function getRulesMissingTranslations() {
[enTrad, currentTranslation[enTrad]],
[frTrad, v],
]
missingTranslations.push([dottedName, enTrad, v])
ret.missingTranslations.push([dottedName, enTrad, v])
return [[frTrad, v]]
})
.flat()
),
])
)
return ret
}
export function getRulesMissingTranslations() {
let currentExternalization = yaml.parse(
readFileSync(rulesTranslationPath, 'utf-8')
)
const { missingTranslations, resolved } = recursiveRulesMissingTranslations(
currentExternalization,
rules
)
return [missingTranslations, resolved]
}
@ -99,11 +123,7 @@ export const getUiMissingTranslations = () => {
const missingTranslations = Object.entries(staticKeys)
.filter(([key, valueInSource]) => {
if (
key.match(/^\{.*\}$/) ||
valueInSource === 'NO_TRANSLATION' ||
key.includes('NO_AUTO_TRANSLATION')
) {
if (key.match(/^\{.*\}$/) || key.includes('NO_AUTO_TRANSLATION')) {
return false
}
const keys = key.split(/(?<=[A-zÀ-ü0-9])\.(?=[A-zÀ-ü0-9])/)
@ -111,7 +131,8 @@ export const getUiMissingTranslations = () => {
currentSelection?.[subPath]
const isNewKey = !keys.reduce(pathReducer, translatedKeys)
const isInvalidatedKey =
keys.reduce(pathReducer, originalKeys) !== valueInSource
keys.reduce(pathReducer, originalKeys) !==
(valueInSource === 'NO_TRANSLATION' ? key : valueInSource)
return isNewKey || isInvalidatedKey
}, staticKeys)
@ -128,15 +149,19 @@ export const fetchTranslation = async (text) => {
if (typeof text !== 'string') {
throw new Error("❌ Can't translate anything other than a string")
}
const response = await fetch(
`https://api.deepl.com/v2/translate?${new URLSearchParams({
const response = await fetch(`https://api.deepl.com/v2/translate`, {
method: 'POST',
headers: {
Authorization: 'DeepL-Auth-Key ' + process.env.DEEPL_API_SECRET,
'Content-Type': 'application/x-www-form-urlencoded',
},
body: new URLSearchParams({
text,
auth_key: process.env.DEEPL_API_SECRET,
tag_handling: 'xml',
source_lang: 'FR',
target_lang: 'EN',
}).toString()}`
)
}),
})
if (response.status !== 200) {
const msg = JSON.stringify(text, null, 2)
console.error(`❌ Deepl return status ${response.status} for:\n\t${msg}\n`)
@ -144,7 +169,9 @@ export const fetchTranslation = async (text) => {
}
try {
const { translations } = await response.json()
console.log(`✅ Deepl translation succeeded for:\n\t${text}\n`)
console.log(
`✅ Deepl translation succeeded for:\n\t${text}\n\t${translations[0].text}\n`
)
return translations[0].text
} catch (e) {
console.warn(`❌ Deepl translation failed for:\n\t${text}\n`)

View File

@ -21,8 +21,7 @@ const translateSuggestion: translateAttribute = (
suggestions: Object.entries(rule.suggestions!).reduce(
(acc, [name, value]) => ({
...acc,
[translation[`${prop}.${name}.${lang}`]?.replace(/^\[automatic\] /, '')]:
value,
[translation[`${prop}.${name}.${lang}`]]: value,
}),
{}
),
@ -44,8 +43,7 @@ const translateProp =
if (prop === 'suggestions' && rule?.suggestions) {
return translateSuggestion(prop, rule, translation, lang)
}
let propTrans = translation[prop + '.' + lang]
propTrans = propTrans?.replace(/^\[automatic\] /, '')
const propTrans = translation[prop + '.' + lang]
let avec
if (

View File

@ -1,6 +1,6 @@
/* eslint-disable no-console */
import replace from '@rollup/plugin-replace'
import yaml from '@rollup/plugin-yaml'
import yaml, { ValidYamlType } from '@rollup/plugin-yaml'
import legacy from '@vitejs/plugin-legacy'
import react from '@vitejs/plugin-react'
import fs from 'fs/promises'
@ -60,7 +60,13 @@ export default defineConfig(({ command, mode }) => ({
plugins: [['babel-plugin-styled-components', { pure: true }]],
},
}),
yaml(),
yaml({
transform(data, filePath) {
return filePath.endsWith('/rules-en.yaml')
? cleanAutomaticTag(data)
: data
},
}),
multipleSPA({
defaultSite: 'mon-entreprise',
templatePath: './source/template.html',
@ -282,3 +288,21 @@ export const getBranch = (mode: string) => {
export const isProductionBranch = (mode: string) => {
return ['master', 'next'].includes(getBranch(mode))
}
const cleanAutomaticTag = (data: ValidYamlType): ValidYamlType => {
if (typeof data === 'string' && data.startsWith('[automatic] ')) {
return data.replace('[automatic] ', '')
}
if (Array.isArray(data)) {
return data.map((val) => cleanAutomaticTag(val))
}
if (data && typeof data === 'object') {
return Object.fromEntries<ValidYamlType>(
Object.entries(data).map(([key, val]) => [key, cleanAutomaticTag(val)])
)
}
return data
}

505
yarn.lock
View File

@ -2778,7 +2778,7 @@ __metadata:
languageName: node
linkType: hard
"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.5, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.16.4, @babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.5.0, @babel/runtime@npm:^7.6.2, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2":
"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.5, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.16.4, @babel/runtime@npm:^7.5.0, @babel/runtime@npm:^7.6.2, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2":
version: 7.17.8
resolution: "@babel/runtime@npm:7.17.8"
dependencies:
@ -2814,6 +2814,15 @@ __metadata:
languageName: node
linkType: hard
"@babel/runtime@npm:^7.20.6":
version: 7.20.13
resolution: "@babel/runtime@npm:7.20.13"
dependencies:
regenerator-runtime: ^0.13.11
checksum: 09b7a97a05c80540db6c9e4ddf8c5d2ebb06cae5caf3a87e33c33f27f8c4d49d9c67a2d72f1570e796045288fad569f98a26ceba0c4f5fad2af84b6ad855c4fb
languageName: node
linkType: hard
"@babel/runtime@npm:~7.5.4":
version: 7.5.5
resolution: "@babel/runtime@npm:7.5.5"
@ -3143,6 +3152,13 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/android-arm64@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/android-arm64@npm:0.17.6"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
"@esbuild/android-arm@npm:0.15.14":
version: 0.15.14
resolution: "@esbuild/android-arm@npm:0.15.14"
@ -3150,13 +3166,69 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/android-arm@npm:0.15.15":
version: 0.15.15
resolution: "@esbuild/android-arm@npm:0.15.15"
"@esbuild/android-arm@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/android-arm@npm:0.17.6"
conditions: os=android & cpu=arm
languageName: node
linkType: hard
"@esbuild/android-x64@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/android-x64@npm:0.17.6"
conditions: os=android & cpu=x64
languageName: node
linkType: hard
"@esbuild/darwin-arm64@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/darwin-arm64@npm:0.17.6"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
"@esbuild/darwin-x64@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/darwin-x64@npm:0.17.6"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
"@esbuild/freebsd-arm64@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/freebsd-arm64@npm:0.17.6"
conditions: os=freebsd & cpu=arm64
languageName: node
linkType: hard
"@esbuild/freebsd-x64@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/freebsd-x64@npm:0.17.6"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
"@esbuild/linux-arm64@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/linux-arm64@npm:0.17.6"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
"@esbuild/linux-arm@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/linux-arm@npm:0.17.6"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
"@esbuild/linux-ia32@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/linux-ia32@npm:0.17.6"
conditions: os=linux & cpu=ia32
languageName: node
linkType: hard
"@esbuild/linux-loong64@npm:0.15.14":
version: 0.15.14
resolution: "@esbuild/linux-loong64@npm:0.15.14"
@ -3164,13 +3236,90 @@ __metadata:
languageName: node
linkType: hard
"@esbuild/linux-loong64@npm:0.15.15":
version: 0.15.15
resolution: "@esbuild/linux-loong64@npm:0.15.15"
"@esbuild/linux-loong64@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/linux-loong64@npm:0.17.6"
conditions: os=linux & cpu=loong64
languageName: node
linkType: hard
"@esbuild/linux-mips64el@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/linux-mips64el@npm:0.17.6"
conditions: os=linux & cpu=mips64el
languageName: node
linkType: hard
"@esbuild/linux-ppc64@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/linux-ppc64@npm:0.17.6"
conditions: os=linux & cpu=ppc64
languageName: node
linkType: hard
"@esbuild/linux-riscv64@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/linux-riscv64@npm:0.17.6"
conditions: os=linux & cpu=riscv64
languageName: node
linkType: hard
"@esbuild/linux-s390x@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/linux-s390x@npm:0.17.6"
conditions: os=linux & cpu=s390x
languageName: node
linkType: hard
"@esbuild/linux-x64@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/linux-x64@npm:0.17.6"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard
"@esbuild/netbsd-x64@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/netbsd-x64@npm:0.17.6"
conditions: os=netbsd & cpu=x64
languageName: node
linkType: hard
"@esbuild/openbsd-x64@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/openbsd-x64@npm:0.17.6"
conditions: os=openbsd & cpu=x64
languageName: node
linkType: hard
"@esbuild/sunos-x64@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/sunos-x64@npm:0.17.6"
conditions: os=sunos & cpu=x64
languageName: node
linkType: hard
"@esbuild/win32-arm64@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/win32-arm64@npm:0.17.6"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
"@esbuild/win32-ia32@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/win32-ia32@npm:0.17.6"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
"@esbuild/win32-x64@npm:0.17.6":
version: 0.17.6
resolution: "@esbuild/win32-x64@npm:0.17.6"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@eslint/eslintrc@npm:^1.0.5, @eslint/eslintrc@npm:^1.3.3":
version: 1.3.3
resolution: "@eslint/eslintrc@npm:1.3.3"
@ -12434,13 +12583,20 @@ __metadata:
languageName: node
linkType: hard
"commander@npm:^9.1.0, commander@npm:^9.2.0, commander@npm:^9.3.0, commander@npm:^9.4.0, commander@npm:~9.4.1":
"commander@npm:^9.1.0, commander@npm:^9.2.0, commander@npm:^9.3.0, commander@npm:^9.4.0":
version: 9.4.1
resolution: "commander@npm:9.4.1"
checksum: bfb18e325a5bdf772763c2213d5c7d9e77144d944124e988bcd8e5e65fb6d45d5d4e86b09155d0f2556c9a59c31e428720e57968bcd050b2306e910a0bf3cf13
languageName: node
linkType: hard
"commander@npm:~10.0.0":
version: 10.0.0
resolution: "commander@npm:10.0.0"
checksum: 9f6495651f878213005ac744dd87a85fa3d9f2b8b90d1c19d0866d666bda7f735adfd7c2f10dfff345782e2f80ea258f98bb4efcef58e4e502f25f883940acfd
languageName: node
linkType: hard
"common-path-prefix@npm:^3.0.0":
version: 3.0.0
resolution: "common-path-prefix@npm:3.0.0"
@ -14579,13 +14735,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-android-64@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-android-64@npm:0.15.15"
conditions: os=android & cpu=x64
languageName: node
linkType: hard
"esbuild-android-arm64@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-android-arm64@npm:0.15.14"
@ -14593,13 +14742,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-android-arm64@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-android-arm64@npm:0.15.15"
conditions: os=android & cpu=arm64
languageName: node
linkType: hard
"esbuild-darwin-64@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-darwin-64@npm:0.15.14"
@ -14607,13 +14749,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-darwin-64@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-darwin-64@npm:0.15.15"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
"esbuild-darwin-arm64@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-darwin-arm64@npm:0.15.14"
@ -14621,13 +14756,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-darwin-arm64@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-darwin-arm64@npm:0.15.15"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
"esbuild-freebsd-64@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-freebsd-64@npm:0.15.14"
@ -14635,13 +14763,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-freebsd-64@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-freebsd-64@npm:0.15.15"
conditions: os=freebsd & cpu=x64
languageName: node
linkType: hard
"esbuild-freebsd-arm64@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-freebsd-arm64@npm:0.15.14"
@ -14649,13 +14770,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-freebsd-arm64@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-freebsd-arm64@npm:0.15.15"
conditions: os=freebsd & cpu=arm64
languageName: node
linkType: hard
"esbuild-linux-32@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-linux-32@npm:0.15.14"
@ -14663,13 +14777,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-linux-32@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-linux-32@npm:0.15.15"
conditions: os=linux & cpu=ia32
languageName: node
linkType: hard
"esbuild-linux-64@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-linux-64@npm:0.15.14"
@ -14677,13 +14784,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-linux-64@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-linux-64@npm:0.15.15"
conditions: os=linux & cpu=x64
languageName: node
linkType: hard
"esbuild-linux-arm64@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-linux-arm64@npm:0.15.14"
@ -14691,13 +14791,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-linux-arm64@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-linux-arm64@npm:0.15.15"
conditions: os=linux & cpu=arm64
languageName: node
linkType: hard
"esbuild-linux-arm@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-linux-arm@npm:0.15.14"
@ -14705,13 +14798,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-linux-arm@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-linux-arm@npm:0.15.15"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
"esbuild-linux-mips64le@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-linux-mips64le@npm:0.15.14"
@ -14719,13 +14805,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-linux-mips64le@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-linux-mips64le@npm:0.15.15"
conditions: os=linux & cpu=mips64el
languageName: node
linkType: hard
"esbuild-linux-ppc64le@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-linux-ppc64le@npm:0.15.14"
@ -14733,13 +14812,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-linux-ppc64le@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-linux-ppc64le@npm:0.15.15"
conditions: os=linux & cpu=ppc64
languageName: node
linkType: hard
"esbuild-linux-riscv64@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-linux-riscv64@npm:0.15.14"
@ -14747,13 +14819,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-linux-riscv64@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-linux-riscv64@npm:0.15.15"
conditions: os=linux & cpu=riscv64
languageName: node
linkType: hard
"esbuild-linux-s390x@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-linux-s390x@npm:0.15.14"
@ -14761,13 +14826,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-linux-s390x@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-linux-s390x@npm:0.15.15"
conditions: os=linux & cpu=s390x
languageName: node
linkType: hard
"esbuild-netbsd-64@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-netbsd-64@npm:0.15.14"
@ -14775,13 +14833,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-netbsd-64@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-netbsd-64@npm:0.15.15"
conditions: os=netbsd & cpu=x64
languageName: node
linkType: hard
"esbuild-openbsd-64@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-openbsd-64@npm:0.15.14"
@ -14789,13 +14840,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-openbsd-64@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-openbsd-64@npm:0.15.15"
conditions: os=openbsd & cpu=x64
languageName: node
linkType: hard
"esbuild-sunos-64@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-sunos-64@npm:0.15.14"
@ -14803,13 +14847,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-sunos-64@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-sunos-64@npm:0.15.15"
conditions: os=sunos & cpu=x64
languageName: node
linkType: hard
"esbuild-windows-32@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-windows-32@npm:0.15.14"
@ -14817,13 +14854,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-windows-32@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-windows-32@npm:0.15.15"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
"esbuild-windows-64@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-windows-64@npm:0.15.14"
@ -14831,13 +14861,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-windows-64@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-windows-64@npm:0.15.15"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"esbuild-windows-arm64@npm:0.15.14":
version: 0.15.14
resolution: "esbuild-windows-arm64@npm:0.15.14"
@ -14845,90 +14868,6 @@ __metadata:
languageName: node
linkType: hard
"esbuild-windows-arm64@npm:0.15.15":
version: 0.15.15
resolution: "esbuild-windows-arm64@npm:0.15.15"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
"esbuild@npm:^0.15.13":
version: 0.15.15
resolution: "esbuild@npm:0.15.15"
dependencies:
"@esbuild/android-arm": 0.15.15
"@esbuild/linux-loong64": 0.15.15
esbuild-android-64: 0.15.15
esbuild-android-arm64: 0.15.15
esbuild-darwin-64: 0.15.15
esbuild-darwin-arm64: 0.15.15
esbuild-freebsd-64: 0.15.15
esbuild-freebsd-arm64: 0.15.15
esbuild-linux-32: 0.15.15
esbuild-linux-64: 0.15.15
esbuild-linux-arm: 0.15.15
esbuild-linux-arm64: 0.15.15
esbuild-linux-mips64le: 0.15.15
esbuild-linux-ppc64le: 0.15.15
esbuild-linux-riscv64: 0.15.15
esbuild-linux-s390x: 0.15.15
esbuild-netbsd-64: 0.15.15
esbuild-openbsd-64: 0.15.15
esbuild-sunos-64: 0.15.15
esbuild-windows-32: 0.15.15
esbuild-windows-64: 0.15.15
esbuild-windows-arm64: 0.15.15
dependenciesMeta:
"@esbuild/android-arm":
optional: true
"@esbuild/linux-loong64":
optional: true
esbuild-android-64:
optional: true
esbuild-android-arm64:
optional: true
esbuild-darwin-64:
optional: true
esbuild-darwin-arm64:
optional: true
esbuild-freebsd-64:
optional: true
esbuild-freebsd-arm64:
optional: true
esbuild-linux-32:
optional: true
esbuild-linux-64:
optional: true
esbuild-linux-arm:
optional: true
esbuild-linux-arm64:
optional: true
esbuild-linux-mips64le:
optional: true
esbuild-linux-ppc64le:
optional: true
esbuild-linux-riscv64:
optional: true
esbuild-linux-s390x:
optional: true
esbuild-netbsd-64:
optional: true
esbuild-openbsd-64:
optional: true
esbuild-sunos-64:
optional: true
esbuild-windows-32:
optional: true
esbuild-windows-64:
optional: true
esbuild-windows-arm64:
optional: true
bin:
esbuild: bin/esbuild
checksum: 9a194a310ac7d6989d1fe7354901d531d3b0d4cc1897a85a7cb9f1ae0fe8d82eb59747e63c91f676bab7bed8d6a1f28f620d49f043e7bd6203f9afe34031f739
languageName: node
linkType: hard
"esbuild@npm:^0.15.9":
version: 0.15.14
resolution: "esbuild@npm:0.15.14"
@ -15006,6 +14945,83 @@ __metadata:
languageName: node
linkType: hard
"esbuild@npm:^0.17.0":
version: 0.17.6
resolution: "esbuild@npm:0.17.6"
dependencies:
"@esbuild/android-arm": 0.17.6
"@esbuild/android-arm64": 0.17.6
"@esbuild/android-x64": 0.17.6
"@esbuild/darwin-arm64": 0.17.6
"@esbuild/darwin-x64": 0.17.6
"@esbuild/freebsd-arm64": 0.17.6
"@esbuild/freebsd-x64": 0.17.6
"@esbuild/linux-arm": 0.17.6
"@esbuild/linux-arm64": 0.17.6
"@esbuild/linux-ia32": 0.17.6
"@esbuild/linux-loong64": 0.17.6
"@esbuild/linux-mips64el": 0.17.6
"@esbuild/linux-ppc64": 0.17.6
"@esbuild/linux-riscv64": 0.17.6
"@esbuild/linux-s390x": 0.17.6
"@esbuild/linux-x64": 0.17.6
"@esbuild/netbsd-x64": 0.17.6
"@esbuild/openbsd-x64": 0.17.6
"@esbuild/sunos-x64": 0.17.6
"@esbuild/win32-arm64": 0.17.6
"@esbuild/win32-ia32": 0.17.6
"@esbuild/win32-x64": 0.17.6
dependenciesMeta:
"@esbuild/android-arm":
optional: true
"@esbuild/android-arm64":
optional: true
"@esbuild/android-x64":
optional: true
"@esbuild/darwin-arm64":
optional: true
"@esbuild/darwin-x64":
optional: true
"@esbuild/freebsd-arm64":
optional: true
"@esbuild/freebsd-x64":
optional: true
"@esbuild/linux-arm":
optional: true
"@esbuild/linux-arm64":
optional: true
"@esbuild/linux-ia32":
optional: true
"@esbuild/linux-loong64":
optional: true
"@esbuild/linux-mips64el":
optional: true
"@esbuild/linux-ppc64":
optional: true
"@esbuild/linux-riscv64":
optional: true
"@esbuild/linux-s390x":
optional: true
"@esbuild/linux-x64":
optional: true
"@esbuild/netbsd-x64":
optional: true
"@esbuild/openbsd-x64":
optional: true
"@esbuild/sunos-x64":
optional: true
"@esbuild/win32-arm64":
optional: true
"@esbuild/win32-ia32":
optional: true
"@esbuild/win32-x64":
optional: true
bin:
esbuild: bin/esbuild
checksum: 13c4c3bcaa7ff291810d2c8294a1eb997b4672c60a9285b32d8eafcbc552e4468e06efe9d1a15067f5cbd41adcb12ddb4362618845e2e916e437f281c9aa80ab
languageName: node
linkType: hard
"escalade@npm:^3.1.1":
version: 3.1.1
resolution: "escalade@npm:3.1.1"
@ -16621,7 +16637,7 @@ __metadata:
languageName: node
linkType: hard
"fs-extra@npm:^10.0.0, fs-extra@npm:^10.1.0":
"fs-extra@npm:^10.1.0":
version: 10.1.0
resolution: "fs-extra@npm:10.1.0"
dependencies:
@ -16632,6 +16648,17 @@ __metadata:
languageName: node
linkType: hard
"fs-extra@npm:^11.1.0":
version: 11.1.0
resolution: "fs-extra@npm:11.1.0"
dependencies:
graceful-fs: ^4.2.0
jsonfile: ^6.0.1
universalify: ^2.0.0
checksum: 5ca476103fa1f5ff4a9b3c4f331548f8a3c1881edaae323a4415d3153b5dc11dc6a981c8d1dd93eec8367ceee27b53f8bd27eecbbf66ffcdd04927510c171e7f
languageName: node
linkType: hard
"fs-extra@npm:^8.0.1, fs-extra@npm:^8.1.0":
version: 8.1.0
resolution: "fs-extra@npm:8.1.0"
@ -18115,19 +18142,19 @@ __metadata:
languageName: node
linkType: hard
"i18next-parser@npm:^7.0.3":
version: 7.0.3
resolution: "i18next-parser@npm:7.0.3"
"i18next-parser@npm:^7.6.0":
version: 7.6.0
resolution: "i18next-parser@npm:7.6.0"
dependencies:
"@babel/runtime": ^7.15.4
broccoli-plugin: ^4.0.7
cheerio: ^1.0.0-rc.2
colors: 1.4.0
commander: ~9.4.1
commander: ~10.0.0
concat-stream: ~2.0.0
eol: ^0.9.1
esbuild: ^0.15.13
fs-extra: ^10.0.0
esbuild: ^0.17.0
fs-extra: ^11.1.0
gulp-sort: ^2.0.0
i18next: ^22.0.4
js-yaml: 4.1.0
@ -18141,16 +18168,16 @@ __metadata:
vue-template-compiler: ^2.6.11
bin:
i18next: bin/cli.js
checksum: f7e1e4d6e6e0f41babd5a20f8c9095ee34edd5cb0e68945c1fc079dedc21424e7a9a3c7471089534e11e3e025c11644f88a63cbd01188ab824cf0cc6629d96a8
checksum: cb735612f8acdb66c64236b8c4c1a5704e713e75b11af307bf21067c682972129a9e69912e0d0c22df546ddf885bed88d41f5e88e90d10bd8c7411e6fb324423
languageName: node
linkType: hard
"i18next@npm:^22.0.4":
version: 22.0.6
resolution: "i18next@npm:22.0.6"
version: 22.4.9
resolution: "i18next@npm:22.4.9"
dependencies:
"@babel/runtime": ^7.17.2
checksum: b9d20b8d6cdd16c38def15d4f1c5906418926412eafa7d582fbd8395618deb177e73bdc709559480de7e1a3281287b69665d6f7c2af8df791f10ea1dfd79cb79
"@babel/runtime": ^7.20.6
checksum: 8cce4aaced4857e006fab2c9d4adb0eb1375829e459076be79d4d3532b1be6342b7003a720e187098f17bb276bea46df8b3fc2cf21f0f3a230bd519243048d1a
languageName: node
linkType: hard
@ -25011,7 +25038,7 @@ __metadata:
languageName: node
linkType: hard
"regenerator-runtime@npm:^0.13.10, regenerator-runtime@npm:^0.13.2, regenerator-runtime@npm:^0.13.4, regenerator-runtime@npm:^0.13.7":
"regenerator-runtime@npm:^0.13.10, regenerator-runtime@npm:^0.13.11, regenerator-runtime@npm:^0.13.2, regenerator-runtime@npm:^0.13.4, regenerator-runtime@npm:^0.13.7":
version: 0.13.11
resolution: "regenerator-runtime@npm:0.13.11"
checksum: 27481628d22a1c4e3ff551096a683b424242a216fee44685467307f14d58020af1e19660bf2e26064de946bad7eff28950eae9f8209d55723e2d9351e632bbb4
@ -26294,7 +26321,7 @@ __metadata:
exoneration-covid: "workspace:^"
focus-trap-react: ^10.0.2
fuse.js: ^6.6.2
i18next-parser: ^7.0.3
i18next-parser: ^7.6.0
iframe-resizer: ^4.3.2
isbot: ^3.6.5
markdown-to-jsx: ^7.1.9