From 4bfd01b68a07c2e57badc46fbbcf8fddd40c513f Mon Sep 17 00:00:00 2001 From: Soapbox Bot Date: Wed, 11 Oct 2023 19:06:03 +0000 Subject: [PATCH 1/7] Update formatjs monorepo --- package.json | 6 +- yarn.lock | 266 ++++++++++++++++++--------------------------------- 2 files changed, 95 insertions(+), 177 deletions(-) diff --git a/package.json b/package.json index f83f350a9..3ff3c36ec 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "axios": "^1.2.2", "axios-mock-adapter": "^1.22.0", "babel-plugin-preval": "^5.1.0", - "babel-plugin-react-intl": "^7.5.20", + "babel-plugin-react-intl": "^8.0.0", "blurhash": "^2.0.0", "bootstrap-icons": "^1.5.0", "bowser": "^2.11.0", @@ -115,7 +115,7 @@ "immer": "^10.0.0", "immutable": "^4.2.1", "intersection-observer": "^0.12.2", - "intl-messageformat": "9.13.0", + "intl-messageformat": "10.5.3", "intl-messageformat-parser": "^6.0.0", "intl-pluralrules": "^2.0.0", "leaflet": "^1.8.0", @@ -140,7 +140,7 @@ "react-hotkeys": "^1.1.4", "react-immutable-pure-component": "^2.2.2", "react-inlinesvg": "^4.0.0", - "react-intl": "^5.0.0", + "react-intl": "^6.0.0", "react-motion": "^0.5.2", "react-overlays": "^0.9.0", "react-popper": "^2.3.0", diff --git a/yarn.lock b/yarn.lock index cb3e79e2f..9c4e6dc19 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1434,20 +1434,13 @@ resolved "https://registry.yarnpkg.com/@fontsource/tajawal/-/tajawal-5.0.8.tgz#cd8a593ec5062b283b093b56ee5d38b6b97fa93d" integrity sha512-KILlXB6B8YYcssz3pccPs/4s1XcXwTWogCtE4Ag3oTpK+81DIQLc2b9o77UiBP4yC17MmqeOp1lvoaJQP80RoA== -"@formatjs/ecma402-abstract@1.11.4": - version "1.11.4" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz#b962dfc4ae84361f9f08fbce411b4e4340930eda" - integrity sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw== +"@formatjs/ecma402-abstract@1.17.2": + version "1.17.2" + resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.17.2.tgz#d197c6e26b9fd96ff7ba3b3a0cc2f25f1f2dcac3" + integrity sha512-k2mTh0m+IV1HRdU0xXM617tSQTi53tVR2muvYOsBeYcUgEAyxV1FOC7Qj279th3fBVQ+Dj6muvNJZcHSPNdbKg== dependencies: - "@formatjs/intl-localematcher" "0.2.25" - tslib "^2.1.0" - -"@formatjs/ecma402-abstract@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.4.0.tgz#ac6c17a8fffac43c6d68c849a7b732626d32654c" - integrity sha512-Mv027hcLFjE45K8UJ8PjRpdDGfR0aManEFj1KzoN8zXNveHGEygpZGfFf/FTTMl+QEVSrPAUlyxaCApvmv47AQ== - dependencies: - tslib "^2.0.1" + "@formatjs/intl-localematcher" "0.4.2" + tslib "^2.4.0" "@formatjs/ecma402-abstract@1.5.0": version "1.5.0" @@ -1463,116 +1456,69 @@ dependencies: tslib "^2.1.0" -"@formatjs/ecma402-abstract@1.9.8": - version "1.9.8" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.9.8.tgz#f3dad447fbc7f063f88e2a148b7a353161740e74" - integrity sha512-2U4n11bLmTij/k4ePCEFKJILPYwdMcJTdnKVBi+JMWBgu5O1N+XhCazlE6QXqVO1Agh2Doh0b/9Jf1mSmSVfhA== +"@formatjs/fast-memoize@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz#33bd616d2e486c3e8ef4e68c99648c196887802b" + integrity sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA== dependencies: - "@formatjs/intl-localematcher" "0.2.20" - tslib "^2.1.0" + tslib "^2.4.0" -"@formatjs/fast-memoize@1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.2.0.tgz#1123bfcc5d21d761f15d8b1c32d10e1b6530355d" - integrity sha512-fObitP9Tlc31SKrPHgkPgQpGo4+4yXfQQITTCNH8AZdEqB7Mq4nPrjpUL/tNGN3lEeJcFxDbi0haX8HM7QvQ8w== +"@formatjs/icu-messageformat-parser@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.6.2.tgz#9bbb29099416e4ce2c7df50029c48985d4f901b3" + integrity sha512-nF/Iww7sc5h+1MBCDRm68qpHTCG4xvGzYs/x9HFcDETSGScaJ1Fcadk5U/NXjXeCtzD+DhN4BAwKFVclHfKMdA== dependencies: - tslib "^2.1.0" + "@formatjs/ecma402-abstract" "1.17.2" + "@formatjs/icu-skeleton-parser" "1.6.2" + tslib "^2.4.0" -"@formatjs/fast-memoize@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz#e6f5aee2e4fd0ca5edba6eba7668e2d855e0fc21" - integrity sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg== +"@formatjs/icu-skeleton-parser@1.6.2": + version "1.6.2" + resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.6.2.tgz#00303034dc08583973c8aa67b96534c49c0bad8d" + integrity sha512-VtB9Slo4ZL6QgtDFJ8Injvscf0xiDd4bIV93SOJTBjUF4xe2nAWOoSjLEtqIG+hlIs1sNrVKAaFo3nuTI4r5ZA== dependencies: - tslib "^2.1.0" + "@formatjs/ecma402-abstract" "1.17.2" + tslib "^2.4.0" -"@formatjs/icu-messageformat-parser@2.0.11": - version "2.0.11" - resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.0.11.tgz#e4ba40b9a8aefc8bccfc96be5906d3bca305b4b3" - integrity sha512-5mWb8U8aulYGwnDZWrr+vdgn5PilvtrqQYQ1pvpgzQes/osi85TwmL2GqTGLlKIvBKD2XNA61kAqXYY95w4LWg== +"@formatjs/intl-displaynames@6.5.2": + version "6.5.2" + resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-6.5.2.tgz#b14ffd0962d5b5cfd71457efc389f0bca83a00db" + integrity sha512-uC2VBlz+WydGTDDpJwMTQuPH3CUpTricr91WH1QMfz5oEHg2sB7mUERcZONE/lu8MOe1jREIx4vBciZEVTqkmA== dependencies: - "@formatjs/ecma402-abstract" "1.9.8" - "@formatjs/icu-skeleton-parser" "1.2.12" - tslib "^2.1.0" + "@formatjs/ecma402-abstract" "1.17.2" + "@formatjs/intl-localematcher" "0.4.2" + tslib "^2.4.0" -"@formatjs/icu-messageformat-parser@2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz#a54293dd7f098d6a6f6a084ab08b6d54a3e8c12d" - integrity sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw== +"@formatjs/intl-listformat@7.4.2": + version "7.4.2" + resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-7.4.2.tgz#c8d86d3b15eead41f74748d1c79d6450fd1bad82" + integrity sha512-+6bSVudEQkf12Hh7kuKt8Xv/MyFlqdwA4V4NLnTZW8uYdF9RxlOELDD0rPaOc2++TMKIzI5o6XXwHPvpL6VrPA== dependencies: - "@formatjs/ecma402-abstract" "1.11.4" - "@formatjs/icu-skeleton-parser" "1.3.6" - tslib "^2.1.0" + "@formatjs/ecma402-abstract" "1.17.2" + "@formatjs/intl-localematcher" "0.4.2" + tslib "^2.4.0" -"@formatjs/icu-skeleton-parser@1.2.12": - version "1.2.12" - resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.2.12.tgz#45426eb1448c0c08c931eb9f0672283c0e4d0062" - integrity sha512-DTFxWmEA02ZNW6fsYjGYSADvtrqqjCYF7DSgCmMfaaE0gLP4pCdAgOPE+lkXXU+jP8iCw/YhMT2Seyk/C5lBWg== +"@formatjs/intl-localematcher@0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.4.2.tgz#7e6e596dbaf2f0c5a7c22da5a01d5c55f4c37e9a" + integrity sha512-BGdtJFmaNJy5An/Zan4OId/yR9Ih1OojFjcduX/xOvq798OgWSyDtd6Qd5jqJXwJs1ipe4Fxu9+cshic5Ox2tA== dependencies: - "@formatjs/ecma402-abstract" "1.9.8" - tslib "^2.1.0" + tslib "^2.4.0" -"@formatjs/icu-skeleton-parser@1.3.6": - version "1.3.6" - resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz#4ce8c0737d6f07b735288177049e97acbf2e8964" - integrity sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg== +"@formatjs/intl@2.9.3": + version "2.9.3" + resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-2.9.3.tgz#e570c4b1afb173dfb1f80a42624425dde9841329" + integrity sha512-hclPdyCF1zk2XmhgdXfl5Sd30QEdRBnIijH7Vc1AWz2K0/saVRrxuL3UYn+m3xEyfOa4yDbTWVbmXDL0XEzlsQ== dependencies: - "@formatjs/ecma402-abstract" "1.11.4" - tslib "^2.1.0" + "@formatjs/ecma402-abstract" "1.17.2" + "@formatjs/fast-memoize" "2.2.0" + "@formatjs/icu-messageformat-parser" "2.6.2" + "@formatjs/intl-displaynames" "6.5.2" + "@formatjs/intl-listformat" "7.4.2" + intl-messageformat "10.5.3" + tslib "^2.4.0" -"@formatjs/intl-displaynames@5.2.3": - version "5.2.3" - resolved "https://registry.yarnpkg.com/@formatjs/intl-displaynames/-/intl-displaynames-5.2.3.tgz#a0cebc81e89c5414177ade71a2f2388d799ee6e8" - integrity sha512-5BmhSurLbfgdeo0OBcNPPkIS8ikMMYaHe2NclxEQZqcMvrnQzNMNnUE2dDF5vZx+mkvKq77aQYzpc8RfqVsRCQ== - dependencies: - "@formatjs/ecma402-abstract" "1.9.8" - "@formatjs/intl-localematcher" "0.2.20" - tslib "^2.1.0" - -"@formatjs/intl-listformat@6.3.3": - version "6.3.3" - resolved "https://registry.yarnpkg.com/@formatjs/intl-listformat/-/intl-listformat-6.3.3.tgz#0cb83a012c0ae46876e30589a086695298e0fb5c" - integrity sha512-3nzAKgVS5rePDa5HiH0OwZgAhqxLtzlMc9Pg4QgajRHSP1TqFiMmQnnn52wd3+xVTb7cjZVm3JBnTv51/MhTOg== - dependencies: - "@formatjs/ecma402-abstract" "1.9.8" - "@formatjs/intl-localematcher" "0.2.20" - tslib "^2.1.0" - -"@formatjs/intl-localematcher@0.2.20": - version "0.2.20" - resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.2.20.tgz#782aef53d1c1b6112ee67468dc59f9b8d1ba7b17" - integrity sha512-/Ro85goRZnCojzxOegANFYL0LaDIpdPjAukR7xMTjOtRx+3yyjR0ifGTOW3/Kjhmab3t6GnyHBYWZSudxEOxPA== - dependencies: - tslib "^2.1.0" - -"@formatjs/intl-localematcher@0.2.25": - version "0.2.25" - resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz#60892fe1b271ec35ba07a2eb018a2dd7bca6ea3a" - integrity sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA== - dependencies: - tslib "^2.1.0" - -"@formatjs/intl-numberformat@^5.5.2": - version "5.7.6" - resolved "https://registry.yarnpkg.com/@formatjs/intl-numberformat/-/intl-numberformat-5.7.6.tgz#630206bb0acefd2d508ccf4f82367c6875cad611" - integrity sha512-ZlZfYtvbVHYZY5OG3RXizoCwxKxEKOrzEe2YOw9wbzoxF3PmFn0SAgojCFGLyNXkkR6xVxlylhbuOPf1dkIVNg== - dependencies: - "@formatjs/ecma402-abstract" "1.4.0" - tslib "^2.0.1" - -"@formatjs/intl@1.14.1": - version "1.14.1" - resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-1.14.1.tgz#03e12f7e2cf557defdd1a5aeb1c143efb8cfbc7b" - integrity sha512-mtL8oBgFwTu0GHFnxaF93fk/zNzNkPzl+27Fwg5AZ88pWHWb7037dpODzoCBnaIVk4FBO5emUn/6jI9Byj8hOw== - dependencies: - "@formatjs/ecma402-abstract" "1.9.8" - "@formatjs/fast-memoize" "1.2.0" - "@formatjs/icu-messageformat-parser" "2.0.11" - "@formatjs/intl-displaynames" "5.2.3" - "@formatjs/intl-listformat" "6.3.3" - intl-messageformat "9.9.1" - tslib "^2.1.0" - -"@formatjs/ts-transformer@^2.6.0": +"@formatjs/ts-transformer@2.13.0": version "2.13.0" resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-2.13.0.tgz#df47b35cdd209269d282a411f1646e0498aa8fdc" integrity sha512-mu7sHXZk1NWZrQ3eUqugpSYo8x5/tXkrI4uIbFqCEC0eNgQaIcoKgVeDFgDAcgG+cEme2atAUYSFF+DFWC4org== @@ -2363,13 +2309,6 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== -"@types/fs-extra@^9.0.1": - version "9.0.13" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" - integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== - dependencies: - "@types/node" "*" - "@types/geojson@*": version "7946.0.10" resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.10.tgz#6dfbf5ea17142f7f9a043809f1cd4c448cb68249" @@ -2400,7 +2339,7 @@ dependencies: "@types/node" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.13" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85" integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ== @@ -2534,7 +2473,7 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@17", "@types/react@^18.0.26": +"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@^18.0.26": version "18.0.26" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917" integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug== @@ -3267,21 +3206,20 @@ babel-plugin-preval@^5.1.0: babel-plugin-macros "^3.0.1" require-from-string "^2.0.2" -babel-plugin-react-intl@^7.5.20: - version "7.9.4" - resolved "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-7.9.4.tgz#1fc9ab50470d41b934df50d8f436578ee1732cb0" - integrity sha512-cMKrHEXrw43yT4M89Wbgq8A8N8lffSquj1Piwov/HVukR7jwOw8gf9btXNsQhT27ccyqEwy+M286JQYy0jby2g== +babel-plugin-react-intl@^8.0.0: + version "8.2.25" + resolved "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-8.2.25.tgz#7b6adaa2bc291ac7b9f87bf51f1c2ea8974ffe84" + integrity sha512-vqzRwqxMKHBKEpzWIIabxUXSBYd8urOkk49nQdzgEt55tLIuDc1XdHceeMNaeJt9VRLYZUiL5vpYpnvrntUNMQ== dependencies: "@babel/core" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" "@babel/types" "^7.9.5" - "@formatjs/ts-transformer" "^2.6.0" + "@formatjs/ts-transformer" "2.13.0" "@types/babel__core" "^7.1.7" - "@types/fs-extra" "^9.0.1" "@types/schema-utils" "^2.4.0" - fs-extra "^9.0.0" - intl-messageformat-parser "^5.3.7" - schema-utils "^2.6.6" + intl-messageformat-parser "6.1.2" + schema-utils "^3.0.0" + tslib "^2.0.1" babel-plugin-transform-require-context@^0.1.1: version "0.1.1" @@ -4846,7 +4784,7 @@ fs-extra@^8.0.1: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.0, fs-extra@^9.0.1: +fs-extra@^9.0.1: version "9.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -5359,13 +5297,6 @@ intl-messageformat-parser@6.1.2: "@formatjs/ecma402-abstract" "1.5.0" tslib "^2.0.1" -intl-messageformat-parser@^5.3.7: - version "5.5.1" - resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-5.5.1.tgz#f09a692755813e6220081e3374df3fb1698bd0c6" - integrity sha512-TvB3LqF2VtP6yI6HXlRT5TxX98HKha6hCcrg9dwlPwNaedVNuQA9KgBdtWKgiyakyCTYHQ+KJeFEstNKfZr64w== - dependencies: - "@formatjs/intl-numberformat" "^5.5.2" - intl-messageformat-parser@^6.0.0: version "6.4.4" resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.4.4.tgz#abbd94e96dc4ff41607376bfab024553450cc1e0" @@ -5374,24 +5305,15 @@ intl-messageformat-parser@^6.0.0: "@formatjs/ecma402-abstract" "1.6.4" tslib "^2.1.0" -intl-messageformat@9.13.0: - version "9.13.0" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.13.0.tgz#97360b73bd82212e4f6005c712a4a16053165468" - integrity sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw== +intl-messageformat@10.5.3: + version "10.5.3" + resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.5.3.tgz#db0779d4a1988faa2977d76574489b7a25f0d5d0" + integrity sha512-TzKn1uhJBMyuKTO4zUX47SU+d66fu1W9tVzIiZrQ6hBqQQeYscBMIzKL/qEXnFbJrH9uU5VV3+T5fWib4SIcKA== dependencies: - "@formatjs/ecma402-abstract" "1.11.4" - "@formatjs/fast-memoize" "1.2.1" - "@formatjs/icu-messageformat-parser" "2.1.0" - tslib "^2.1.0" - -intl-messageformat@9.9.1: - version "9.9.1" - resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-9.9.1.tgz#255d453b0656b4f7e741f31d2b4a95bf2adfe064" - integrity sha512-cuzS/XKHn//hvKka77JKU2dseiVY2dofQjIOZv6ZFxFt4Z9sPXnZ7KQ9Ak2r+4XBCjI04MqJ1PhKs/3X22AkfA== - dependencies: - "@formatjs/fast-memoize" "1.2.0" - "@formatjs/icu-messageformat-parser" "2.0.11" - tslib "^2.1.0" + "@formatjs/ecma402-abstract" "1.17.2" + "@formatjs/fast-memoize" "2.2.0" + "@formatjs/icu-messageformat-parser" "2.6.2" + tslib "^2.4.0" intl-pluralrules@^2.0.0: version "2.0.1" @@ -7354,21 +7276,21 @@ react-intl-translations-manager@^5.0.3: json-stable-stringify "^1.0.1" mkdirp "^0.5.1" -react-intl@^5.0.0: - version "5.20.10" - resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-5.20.10.tgz#8b0f18a5b76e9f8f5a3ccc993deb0c4cef9dcde0" - integrity sha512-zy0ZQhpjkGsKcK1BFo2HbGM/q8GBVovzoXZGQ76DowR0yr6UzQuPLkrlIrObL2zxIYiDaxaz+hUJaoa2a1xqOQ== +react-intl@^6.0.0: + version "6.4.7" + resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-6.4.7.tgz#28ec40350ff791a6a773f5e76b9e12835ae17e19" + integrity sha512-0hnOHAZhxTFqD1hGTxrF40qNyZJPPYiGhWIIxIz0Udz+3e3c7sdN80qlxArR+AbJ+jb5ALXZkJYH20+GPFCM0Q== dependencies: - "@formatjs/ecma402-abstract" "1.9.8" - "@formatjs/icu-messageformat-parser" "2.0.11" - "@formatjs/intl" "1.14.1" - "@formatjs/intl-displaynames" "5.2.3" - "@formatjs/intl-listformat" "6.3.3" + "@formatjs/ecma402-abstract" "1.17.2" + "@formatjs/icu-messageformat-parser" "2.6.2" + "@formatjs/intl" "2.9.3" + "@formatjs/intl-displaynames" "6.5.2" + "@formatjs/intl-listformat" "7.4.2" "@types/hoist-non-react-statics" "^3.3.1" - "@types/react" "17" + "@types/react" "16 || 17 || 18" hoist-non-react-statics "^3.3.2" - intl-messageformat "9.9.1" - tslib "^2.1.0" + intl-messageformat "10.5.3" + tslib "^2.4.0" react-is@^16.13.1, react-is@^16.3.2, react-is@^16.6.0, react-is@^16.7.0: version "16.13.1" @@ -7948,16 +7870,7 @@ schema-utils@*, schema-utils@^4.0.0: ajv-formats "^2.1.1" ajv-keywords "^5.0.0" -schema-utils@^2.6.6: - version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" - integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== - dependencies: - "@types/json-schema" "^7.0.5" - ajv "^6.12.4" - ajv-keywords "^3.5.2" - -schema-utils@^3.1.1, schema-utils@^3.2.0: +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== @@ -8692,6 +8605,11 @@ tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== +tslib@^2.4.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + tsx@^3.13.0: version "3.13.0" resolved "https://registry.yarnpkg.com/tsx/-/tsx-3.13.0.tgz#f860e511b33fcb41d74df87d7ba239a0b4012dbb" From 23d5fae391ff84f675625164f980ebb7aa69410a Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 11 Oct 2023 14:33:53 -0500 Subject: [PATCH 2/7] Nuke translationRunner, make `yarn i18n` work again --- babel.config.cjs | 2 +- package.json | 8 +- scripts/translationRunner.ts | 249 --------------- .../index.d.ts | 154 --------- yarn.lock | 302 +++++++++++------- 5 files changed, 196 insertions(+), 519 deletions(-) delete mode 100644 scripts/translationRunner.ts delete mode 100644 types/react-intl-translations-manager/index.d.ts diff --git a/babel.config.cjs b/babel.config.cjs index 68f63d400..fda45454d 100644 --- a/babel.config.cjs +++ b/babel.config.cjs @@ -15,7 +15,7 @@ module.exports = (api) => { ['@babel/env', envOptions], ], plugins: [ - ['react-intl', { messagesDir: './build/messages/' }], + 'formatjs', 'preval', ], 'sourceType': 'unambiguous', diff --git a/package.json b/package.json index 3ff3c36ec..c0945bafd 100644 --- a/package.json +++ b/package.json @@ -22,8 +22,7 @@ "build": "npx vite build --emptyOutDir", "preview": "npx vite preview", "audit:fix": "npx yarn-audit-fix", - "manage:translations": "npx tsx ./scripts/translationRunner.ts", - "i18n": "rm -rf build tmp && npx cross-env NODE_ENV=production ${npm_execpath} run build && ${npm_execpath} manage:translations en", + "i18n": "npx formatjs extract 'src/**/*.{ts,tsx}' --ignore '**/*.d.ts' --out-file build/messages.json && npx formatjs compile build/messages.json --out-file src/locales/en.json", "test": "npx vitest", "test:coverage": "${npm_execpath} run test --coverage", "test:all": "${npm_execpath} run test:coverage && ${npm_execpath} run lint", @@ -94,8 +93,8 @@ "autoprefixer": "^10.4.15", "axios": "^1.2.2", "axios-mock-adapter": "^1.22.0", + "babel-plugin-formatjs": "^10.5.6", "babel-plugin-preval": "^5.1.0", - "babel-plugin-react-intl": "^8.0.0", "blurhash": "^2.0.0", "bootstrap-icons": "^1.5.0", "bowser": "^2.11.0", @@ -116,7 +115,6 @@ "immutable": "^4.2.1", "intersection-observer": "^0.12.2", "intl-messageformat": "10.5.3", - "intl-messageformat-parser": "^6.0.0", "intl-pluralrules": "^2.0.0", "leaflet": "^1.8.0", "lexical": "^0.12.2", @@ -179,6 +177,7 @@ "zod": "^3.21.4" }, "devDependencies": { + "@formatjs/cli": "^6.2.0", "@gitbeaker/node": "^35.8.0", "@jedmao/redux-mock-store": "^3.0.5", "@testing-library/jest-dom": "^6.1.3", @@ -210,7 +209,6 @@ "stylelint": "^15.10.3", "stylelint-config-standard-scss": "^11.0.0", "tailwindcss": "^3.3.3", - "tsx": "^3.13.0", "vite-plugin-checker": "^0.6.2", "vite-plugin-pwa": "^0.16.5", "vitest": "^0.34.4", diff --git a/scripts/translationRunner.ts b/scripts/translationRunner.ts deleted file mode 100644 index 97ce641a6..000000000 --- a/scripts/translationRunner.ts +++ /dev/null @@ -1,249 +0,0 @@ -import fs from 'fs'; -import path from 'path'; -import { fileURLToPath } from 'url'; - -import * as parser from 'intl-messageformat-parser'; -import manager from 'react-intl-translations-manager'; -import yargs from 'yargs/yargs'; - -import type { ExtractedDescriptor } from 'react-intl-translations-manager'; - -const { default: manageTranslations, readMessageFiles } = manager as unknown as typeof import('react-intl-translations-manager'); - -type Validator = (language: string) => void; - -interface LanguageResult { - language: string; - error: any; -} - -const RFC5646_REGEXP = /^[a-z]{2,3}(?:-(?:x|[A-Za-z]{2,4}))*$/; - -const __dirname = path.dirname(fileURLToPath(import.meta.url)); -const rootDirectory = path.resolve(__dirname, '..'); -const translationsDirectory = path.resolve(rootDirectory, 'src', 'locales'); -const messagesDirectory = path.resolve(rootDirectory, 'build', 'messages'); -const availableLanguages = fs.readdirSync(translationsDirectory).reduce((languages, filename) => { - const basename = path.basename(filename, '.json'); - if (RFC5646_REGEXP.test(basename)) { - languages.push(basename); - } - return languages; -}, [] as string[]); - -const testRFC5646: Validator = (language) => { - if (!RFC5646_REGEXP.test(language)) { - throw new Error('Not RFC5646 name'); - } -}; - -const testAvailability: Validator = (language) => { - if (!availableLanguages.includes(language)) { - throw new Error('Not an available language'); - } -}; - -const validateLanguages = (languages: string[], validators: Validator[]): void => { - const invalidLanguages = languages.reduce((acc, language): LanguageResult[] => { - try { - validators.forEach(validator => validator(language)); - } catch (error) { - acc.push({ language, error }); - } - return acc; - }, [] as LanguageResult[]); - - if (invalidLanguages.length > 0) { - console.error(` -Error: Specified invalid LANGUAGES: -${invalidLanguages.map(({ language, error }) => `* ${language}: ${error.message}`).join('\n')} - -Use yarn "manage:translations -- --help" for usage information -`); - process.exit(1); - } -}; - -const usage = `Usage: yarn manage:translations [OPTIONS] [LANGUAGES] - -Manage JavaScript translation files in Soapbox. Generates and update translations in translationsDirectory: ${translationsDirectory} - -LANGUAGES -The RFC5646 language tag for the language you want to test or fix. If you want to input multiple languages, separate them with space. - -Available languages: -${availableLanguages.join(', ')} -`; - -const argv = yargs() - .usage(usage) - .option('f', { - alias: 'force', - default: false, - describe: 'force using the provided languages. create files if not exists.', - type: 'boolean', - }) - .parseSync(); - -// check if message directory exists -if (!fs.existsSync(messagesDirectory)) { - console.error(` -Error: messagesDirectory not exists -(${messagesDirectory}) -Try to run "yarn build" first`); - process.exit(1); -} - -// determine the languages list -const languages: string[] = (argv._.length > 0) ? argv._.map(String) : availableLanguages; - -const validators: Validator[] = [ - testRFC5646, -]; - -if (!argv.force) { - validators.push(testAvailability); -} - -// validate languages -validateLanguages(languages, validators); - -// manage translations -manageTranslations({ - messagesDirectory, - translationsDirectory, - detectDuplicateIds: false, - singleMessagesFile: false, - languages, - jsonOptions: { - trailingNewline: true, - }, -}); - -// Check variable interpolations and print error messages if variables are -// used in translations which are not used in the default message. -/* eslint-disable no-console */ - -function findVariablesinAST(tree: parser.MessageFormatElement[]): Set { - const result = new Set(); - tree.forEach((element) => { - switch (element.type) { - case parser.TYPE.argument: - case parser.TYPE.number: - result.add(element.value); - break; - case parser.TYPE.plural: - result.add(element.value); - Object.values(element.options) - .map(option => option.value) - .forEach(subtree => - findVariablesinAST(subtree) - .forEach(variable => result.add(variable))); - break; - case parser.TYPE.literal: - break; - default: - console.log('unhandled element=', element); - break; - } - }); - return result; -} - -function findVariables(string: string): Set { - return findVariablesinAST(parser.parse(string)); -} - -const extractedMessagesFiles = readMessageFiles(translationsDirectory); -const extractedMessages = extractedMessagesFiles.reduce((acc, messageFile) => { - messageFile.descriptors.forEach((descriptor) => { - descriptor.descriptors?.forEach((item) => { - const variables = findVariables(item.defaultMessage); - acc.push({ - id: item.id, - defaultMessage: item.defaultMessage, - variables: variables, - }); - }); - }); - return acc; -}, [] as ExtractedDescriptor[]); - -interface Translation { - language: string; - data: Record; -} - -const translations: Translation[] = languages.map((language: string) => { - return { - language: language, - data: JSON.parse(fs.readFileSync(path.join(translationsDirectory, language + '.json'), 'utf8')), - }; -}); - -function difference(a: Set, b: Set): Set { - return new Set(Array.from(a).filter(x => !b.has(x))); -} - -function pushIfUnique(arr: T[], newItem: T): void { - if (arr.every((item) => { - return (JSON.stringify(item) !== JSON.stringify(newItem)); - })) { - arr.push(newItem); - } -} - -interface Problem { - language: string; - id: ExtractedDescriptor['id']; - severity: 'error' | 'warning'; - type: string; -} - -const problems: Problem[] = translations.reduce((acc, translation) => { - extractedMessages.forEach((message) => { - try { - const translationVariables = findVariables(translation.data[message.id!]); - if (Array.from(difference(translationVariables, message.variables)).length > 0) { - pushIfUnique(acc, { - language: translation.language, - id: message.id, - severity: 'error', - type: 'missing variable ', - }); - } else if (Array.from(difference(message.variables, translationVariables)).length > 0) { - pushIfUnique(acc, { - language: translation.language, - id: message.id, - severity: 'warning', - type: 'inconsistent variables', - }); - } - } catch (error) { - pushIfUnique(acc, { - language: translation.language, - id: message.id, - severity: 'error', - type: 'syntax error ', - }); - } - }); - return acc; -}, [] as Problem[]); - -if (problems.length > 0) { - console.error(`${problems.length} messages found with errors or warnings:`); - console.error('\nLoc\tIssue \tMessage ID'); - console.error('-'.repeat(60)); - - problems.forEach((problem) => { - const color = (problem.severity === 'error') ? '\x1b[31m' : ''; - console.error(`${color}${problem.language}\t${problem.type}\t${problem.id}\x1b[0m`); - }); - console.error('\n'); - if (problems.find((item) => { - return item.severity === 'error'; - })) { - process.exit(1); - } -} diff --git a/types/react-intl-translations-manager/index.d.ts b/types/react-intl-translations-manager/index.d.ts deleted file mode 100644 index 9e7365b73..000000000 --- a/types/react-intl-translations-manager/index.d.ts +++ /dev/null @@ -1,154 +0,0 @@ -declare module 'react-intl-translations-manager' { - import type { MessageDescriptor } from 'react-intl'; - - export interface ExtractedDescriptor extends Omit { - variables: Set; - descriptors?: ExtractedDescriptor[]; - defaultMessage: string; - } - - export interface ExtractedMessage { - path: string; - descriptors: ExtractedDescriptor[]; - } - - export interface ManageTranslationsConfig { - /** - * Directory where the babel plugin puts the extracted messages. This path is relative to your projects root. - * - * example: `src/locales/extractedMessages` - */ - messagesDirectory: string; - /** - * Directory of the translation files the translation manager needs to maintain. - * - * example: `src/locales/lang` - */ - translationsDirectory: string; - /** - * Directory of the whitelist files the translation manager needs to maintain. These files contain the key of translations that have the exact same text in a specific language as the defaultMessage. Specifying this key will suppress `unmaintained translation` warnings. - * - * example: `Dashboard` in english is also accepted as a valid translation for dutch. - * - * (optional, default: `translationsDirectory`) - */ - whitelistsDirectory?: string; - /** - * What languages the translation manager needs to maintain. Specifying no languages actually doesn't make sense, but won't break the translationManager either. (Please do not include the default language, react-intl will automatically include it.) - * - * example: for `['nl', 'fr']` the translation manager will maintain a `nl.json`, `fr.json`, `whitelist_nl.json` and a w`hitelist_fr.json` file - * - * (optional, default: `[]`) - */ - languages?: string[]; - /** - * Option to output a single JSON file containing the aggregate of all extracted messages, grouped by the file they were extracted from. - * - * example: - * - * ```json - * [ - * { - * "path": "src/components/foo.json", - * "descriptors": [ - * { - * "id": "bar", - * "description": "Text for bar", - * "defaultMessage": "Bar" - * } - * ] - * } - * ] - * ``` - * - * (optional, default: `false`) - */ - singleMessagesFile?: boolean; - /** - * If you want the translationManager to log duplicate message ids or not - * - * (optional, default: `true`) - */ - detectDuplicateIds?: boolean; - /** - * If you want the translationManager to sort it's output, both json and console output - * - * (optional, default: `true`) - */ - sortKeys?: boolean; - /** (optional, default: `{ space: 2, trailingNewline: false }`)) */ - jsonOptions?: any; - /** - * Here you can specify custom logging methods. If not specified a default printer is used. - * - * Possible printers to configure: - * - * ```js - * const printers = { - * printDuplicateIds: duplicateIds => { - * console.log(`You have ${duplicateIds.length} duplicate IDs`); - * }, - * printLanguageReport: report => { - * console.log('Log report for a language'); - * }, - * printNoLanguageFile: lang => { - * console.log( - * `No existing ${lang} translation file found. A new one is created.` - * ); - * }, - * printNoLanguageWhitelistFile: lang => { - * console.log(`No existing ${lang} file found. A new one is created.`); - * } - * }; - * ``` - * - * (optional, default: `{}`) - */ - overridePrinters?: any; - /** - * Here you can specify overrides for the core hooks. If not specified, the default methods will be used. - * - * Possible overrides to configure: - * - * ```js - * const overrideCoreMethods = { - * provideExtractedMessages: () => {}, - * outputSingleFile: () => {}, - * outputDuplicateKeys: () => {}, - * beforeReporting: () => {}, - * provideLangTemplate: () => {}, - * provideTranslationsFile: () => {}, - * provideWhitelistFile: () => {}, - * reportLanguage: () => {}, - * afterReporting: () => {} - * }; - * ``` - */ - overrideCoreMethods?: any; - } - - /** This will maintain all translation files. Based on your config you will get output for duplicate ids, and per specified language you will get the deleted translations, added messages (new messages that need to be translated), and not yet translated messages. It will also maintain a whitelist file per language where you can specify translation keys where the translation is identical to the default message. This way you can avoid untranslated message warnings for these messages. */ - export default function manageTranslations(config: ManageTranslationsConfig): void; - - /** - * This is a `babel-plugin-react-intl` specific helper method. It will read all extracted JSON file for the specified directory, filter out all files without any messages, and output an array with all messages. - * - * Example output: - * - * ```js - * const extractedMessages = [ - * { - * path: 'src/components/Foo.json', - * descriptors: [ - * { - * id: 'foo_ok', - * description: 'Ok text', - * defaultMessage: 'OK' - * } - * ] - * } - * ]; - * ``` - */ - export function readMessageFiles(messagesDirectory: string): ExtractedMessage[]; -} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 9c4e6dc19..8a9c83918 100644 --- a/yarn.lock +++ b/yarn.lock @@ -52,7 +52,28 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== -"@babel/core@^7.11.1", "@babel/core@^7.22.9", "@babel/core@^7.9.0": +"@babel/core@^7.10.4": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.0.tgz#f8259ae0e52a123eb40f552551e647b506a94d83" + integrity sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.0" + "@babel/helpers" "^7.23.0" + "@babel/parser" "^7.23.0" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.0" + "@babel/types" "^7.23.0" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/core@^7.11.1", "@babel/core@^7.22.9": version "7.22.19" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.19.tgz#b38162460a6f3baf2a424bda720b24a8aafea241" integrity sha512-Q8Yj5X4LHVYTbLCKVz0//2D2aDmHF4xzCdEttYvKOnWvErGsa6geHXD6w46x64n5tP69VfeH+IfSrdyH3MLhwA== @@ -83,6 +104,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" + integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== + dependencies: + "@babel/types" "^7.23.0" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" @@ -151,6 +182,11 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + "@babel/helper-environment-visitor@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" @@ -164,6 +200,14 @@ "@babel/template" "^7.22.5" "@babel/types" "^7.22.5" +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" @@ -196,6 +240,17 @@ "@babel/helper-split-export-declaration" "^7.22.6" "@babel/helper-validator-identifier" "^7.22.19" +"@babel/helper-module-transforms@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e" + integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" @@ -257,6 +312,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.19.tgz#2f34ab1e445f5b95e2e6edfe50ea2449e610583a" integrity sha512-Tinq7ybnEPFFXhlYOYFiSjespWQk0dq2dRNAiMdRTOYQzEGqnnNyrTxPYHP5r6wGjlF1rFgABdDV0g8EwD6Qbg== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + "@babel/helper-validator-option@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" @@ -280,6 +340,15 @@ "@babel/traverse" "^7.22.15" "@babel/types" "^7.22.15" +"@babel/helpers@^7.23.0": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.2.tgz#2832549a6e37d484286e15ba36a5330483cac767" + integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.2" + "@babel/types" "^7.23.0" + "@babel/highlight@^7.22.13": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16" @@ -294,6 +363,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.16.tgz#180aead7f247305cce6551bea2720934e2fa2c95" integrity sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA== +"@babel/parser@^7.20.7", "@babel/parser@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" + integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962" @@ -378,7 +452,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.22.5": +"@babel/plugin-syntax-jsx@7", "@babel/plugin-syntax-jsx@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918" integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== @@ -1067,6 +1141,22 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" +"@babel/traverse@7", "@babel/traverse@^7.23.0", "@babel/traverse@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" + integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.0" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.0" + "@babel/types" "^7.23.0" + debug "^4.1.0" + globals "^11.1.0" + "@babel/traverse@^7.15.4", "@babel/traverse@^7.22.15", "@babel/traverse@^7.22.19": version "7.22.19" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.19.tgz#bb2b12b7de9d7fec9e812ed89eea097b941954f8" @@ -1083,7 +1173,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.10.3", "@babel/types@^7.22.10", "@babel/types@^7.22.15", "@babel/types@^7.22.17", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.9.5": +"@babel/types@^7.0.0", "@babel/types@^7.10.3", "@babel/types@^7.22.10", "@babel/types@^7.22.15", "@babel/types@^7.22.17", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.3.0", "@babel/types@^7.4.4": version "7.22.19" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.19.tgz#7425343253556916e440e662bb221a93ddb75684" integrity sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg== @@ -1092,6 +1182,15 @@ "@babel/helper-validator-identifier" "^7.22.19" to-fast-properties "^2.0.0" +"@babel/types@^7.12.11", "@babel/types@^7.20.7", "@babel/types@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" + integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@csstools/css-parser-algorithms@^2.3.1": version "2.3.1" resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz#ec4fc764ba45d2bb7ee2774667e056aa95003f3a" @@ -1434,6 +1533,11 @@ resolved "https://registry.yarnpkg.com/@fontsource/tajawal/-/tajawal-5.0.8.tgz#cd8a593ec5062b283b093b56ee5d38b6b97fa93d" integrity sha512-KILlXB6B8YYcssz3pccPs/4s1XcXwTWogCtE4Ag3oTpK+81DIQLc2b9o77UiBP4yC17MmqeOp1lvoaJQP80RoA== +"@formatjs/cli@^6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-6.2.0.tgz#17fbd40753eeb1f6e79c3caf25845c3a9c044d90" + integrity sha512-sP04UpocRHYwSovUnunAZHYvCTVbNcaLtWKnr1lETGRUnRRQqnXy/3d2Ce271ELXmNUSde2eHRdu4rv2XaVaiQ== + "@formatjs/ecma402-abstract@1.17.2": version "1.17.2" resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.17.2.tgz#d197c6e26b9fd96ff7ba3b3a0cc2f25f1f2dcac3" @@ -1442,20 +1546,6 @@ "@formatjs/intl-localematcher" "0.4.2" tslib "^2.4.0" -"@formatjs/ecma402-abstract@1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.5.0.tgz#759c8f11ff45e96f8fb58741e7fbdb41096d5ddd" - integrity sha512-wXv36yo+mfWllweN0Fq7sUs7PUiNopn7I0JpLTe3hGu6ZMR4CV7LqK1llhB18pndwpKoafQKb1et2DCJAOW20Q== - dependencies: - tslib "^2.0.1" - -"@formatjs/ecma402-abstract@1.6.4": - version "1.6.4" - resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.6.4.tgz#cff5ef03837fb6bae70b16d04940213c17e87884" - integrity sha512-ukFjGD9dLsxcD9D5AEshJqQElPQeUAlTALT/lzIV6OcYojyuU81gw/uXDUOrs6XW79jtOJwQDkLqHbCJBJMOTw== - dependencies: - tslib "^2.1.0" - "@formatjs/fast-memoize@2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz#33bd616d2e486c3e8ef4e68c99648c196887802b" @@ -1518,14 +1608,18 @@ intl-messageformat "10.5.3" tslib "^2.4.0" -"@formatjs/ts-transformer@2.13.0": - version "2.13.0" - resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-2.13.0.tgz#df47b35cdd209269d282a411f1646e0498aa8fdc" - integrity sha512-mu7sHXZk1NWZrQ3eUqugpSYo8x5/tXkrI4uIbFqCEC0eNgQaIcoKgVeDFgDAcgG+cEme2atAUYSFF+DFWC4org== +"@formatjs/ts-transformer@3.13.5": + version "3.13.5" + resolved "https://registry.yarnpkg.com/@formatjs/ts-transformer/-/ts-transformer-3.13.5.tgz#8b4f5dcb02940e3f12b9f6c95b47f52777a9969d" + integrity sha512-dh2mmZqkId0UeM+FQtmwugpMGvyzTBmXj5LjwD4M5OeSm62tcgkScjqeO/1EetaNS/JkTUBbsFBnHzaDzh3yOw== dependencies: - intl-messageformat-parser "6.1.2" - tslib "^2.0.1" - typescript "^4.0" + "@formatjs/icu-messageformat-parser" "2.6.2" + "@types/json-stable-stringify" "^1.0.32" + "@types/node" "14 || 16 || 17" + chalk "^4.0.0" + json-stable-stringify "^1.0.1" + tslib "^2.4.0" + typescript "^4.7 || 5" "@gamestdio/websocket@^0.3.2": version "0.3.2" @@ -2223,7 +2317,18 @@ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== -"@types/babel__core@^7.1.12", "@types/babel__core@^7.1.7": +"@types/babel__core@*", "@types/babel__core@^7.1.7": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.2.tgz#215db4f4a35d710256579784a548907237728756" + integrity sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__core@^7.1.12": version "7.1.19" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== @@ -2241,6 +2346,13 @@ dependencies: "@babel/types" "^7.0.0" +"@types/babel__helper-plugin-utils@^7.10.0": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@types/babel__helper-plugin-utils/-/babel__helper-plugin-utils-7.10.1.tgz#d24424d9cc7785a64cb1c1b41fac5c2d37c92aac" + integrity sha512-6RaT7i6r2rT6ouIDZ2Cd6dPkq4wn1F8pLyDO+7wPVsL1dodvORiZORImaD6j9FBcHjPGuERE0hhtwkuPNXsO0A== + dependencies: + "@types/babel__core" "*" + "@types/babel__template@*": version "7.4.1" resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" @@ -2256,6 +2368,13 @@ dependencies: "@babel/types" "^7.3.0" +"@types/babel__traverse@^7.1.7": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.2.tgz#4ddf99d95cfdd946ff35d2b65c978d9c9bf2645d" + integrity sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw== + dependencies: + "@babel/types" "^7.20.7" + "@types/cacheable-request@^6.0.1": version "6.0.3" resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" @@ -2344,6 +2463,11 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85" integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ== +"@types/json-stable-stringify@^1.0.32": + version "1.0.34" + resolved "https://registry.yarnpkg.com/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz#c0fb25e4d957e0ee2e497c1f553d7f8bb668fd75" + integrity sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw== + "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" @@ -2378,6 +2502,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.23.tgz#3b41a6e643589ac6442bdbd7a4a3ded62f33f7da" integrity sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw== +"@types/node@14 || 16 || 17": + version "17.0.45" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" + integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== + "@types/normalize-package-data@^2.4.0": version "2.4.1" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" @@ -2515,13 +2644,6 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39" integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew== -"@types/schema-utils@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/schema-utils/-/schema-utils-2.4.0.tgz#9983012045d541dcee053e685a27c9c87c840fcd" - integrity sha512-454hrj5gz/FXcUE20ygfEiN4DxZ1sprUo0V1gqIqkNZ/CzoEzAZEll2uxMsuyz6BYjiQan4Aa65xbTemfzW9hQ== - dependencies: - schema-utils "*" - "@types/semver@^7.3.9", "@types/semver@^7.5.0": version "7.5.2" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.2.tgz#31f6eec1ed7ec23f4f05608d3a2d381df041f564" @@ -3163,6 +3285,23 @@ axobject-query@^3.1.1: dependencies: dequal "^2.0.3" +babel-plugin-formatjs@^10.5.6: + version "10.5.6" + resolved "https://registry.yarnpkg.com/babel-plugin-formatjs/-/babel-plugin-formatjs-10.5.6.tgz#394908db02594ec34d4341fb38342302cd304a45" + integrity sha512-XlE8WHF/ZstS5K3ZCWb5nQ6e9u6KpNquTpHpjteGaMSguSjvbfNb7CsF4YHq1fTPBdHWNspA3qfAqMGgHBO4mw== + dependencies: + "@babel/core" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-jsx" "7" + "@babel/traverse" "7" + "@babel/types" "^7.12.11" + "@formatjs/icu-messageformat-parser" "2.6.2" + "@formatjs/ts-transformer" "3.13.5" + "@types/babel__core" "^7.1.7" + "@types/babel__helper-plugin-utils" "^7.10.0" + "@types/babel__traverse" "^7.1.7" + tslib "^2.4.0" + babel-plugin-macros@^3.0.1: version "3.1.0" resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1" @@ -3206,21 +3345,6 @@ babel-plugin-preval@^5.1.0: babel-plugin-macros "^3.0.1" require-from-string "^2.0.2" -babel-plugin-react-intl@^8.0.0: - version "8.2.25" - resolved "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-8.2.25.tgz#7b6adaa2bc291ac7b9f87bf51f1c2ea8974ffe84" - integrity sha512-vqzRwqxMKHBKEpzWIIabxUXSBYd8urOkk49nQdzgEt55tLIuDc1XdHceeMNaeJt9VRLYZUiL5vpYpnvrntUNMQ== - dependencies: - "@babel/core" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/types" "^7.9.5" - "@formatjs/ts-transformer" "2.13.0" - "@types/babel__core" "^7.1.7" - "@types/schema-utils" "^2.4.0" - intl-messageformat-parser "6.1.2" - schema-utils "^3.0.0" - tslib "^2.0.1" - babel-plugin-transform-require-context@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-require-context/-/babel-plugin-transform-require-context-0.1.1.tgz#319b545ca83080b5062776b46cc9b8b346fea9a6" @@ -3637,6 +3761,11 @@ convert-source-map@^1.7.0: dependencies: safe-buffer "~5.1.1" +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + core-js-compat@^3.31.0: version "3.32.2" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.2.tgz#8047d1a8b3ac4e639f0d4f66d4431aa3b16e004c" @@ -4284,7 +4413,7 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.18.10, esbuild@~0.18.20: +esbuild@^0.18.10: version "0.18.20" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== @@ -4804,11 +4933,6 @@ fsevents@~2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -4886,13 +5010,6 @@ get-tsconfig@^4.5.0: dependencies: resolve-pkg-maps "^1.0.0" -get-tsconfig@^4.7.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" - integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== - dependencies: - resolve-pkg-maps "^1.0.0" - glob-parent@^5.1.2, glob-parent@^6.0.1, glob-parent@^6.0.2, glob-parent@~5.1.2: version "6.0.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" @@ -5289,22 +5406,6 @@ intersection-observer@^0.12.2: resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.12.2.tgz#4a45349cc0cd91916682b1f44c28d7ec737dc375" integrity sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg== -intl-messageformat-parser@6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.1.2.tgz#28c65f3689f538e66c7cf628881548d6a82ff3c2" - integrity sha512-4GQDEPhl/ZMNDKwMsLqyw1LG2IAWjmLJXdmnRcHKeLQzpgtNYZI6lVw1279pqIkRk2MfKb9aDsVFzm565azK5A== - dependencies: - "@formatjs/ecma402-abstract" "1.5.0" - tslib "^2.0.1" - -intl-messageformat-parser@^6.0.0: - version "6.4.4" - resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-6.4.4.tgz#abbd94e96dc4ff41607376bfab024553450cc1e0" - integrity sha512-7AaFKNZEfzLQR6+jivOuz9e7yA8ka5KrmLebgY4QHTRLf8r64dp3LjnW98LkBWjdk8GK0sawD2dHDqW++A/pXA== - dependencies: - "@formatjs/ecma402-abstract" "1.6.4" - tslib "^2.1.0" - intl-messageformat@10.5.3: version "10.5.3" resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-10.5.3.tgz#db0779d4a1988faa2977d76574489b7a25f0d5d0" @@ -7860,7 +7961,16 @@ scheduler@^0.23.0: dependencies: loose-envify "^1.1.0" -schema-utils@*, schema-utils@^4.0.0: +schema-utils@^3.1.1, schema-utils@^3.2.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== + dependencies: + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +schema-utils@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7" integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg== @@ -7870,15 +7980,6 @@ schema-utils@*, schema-utils@^4.0.0: ajv-formats "^2.1.1" ajv-keywords "^5.0.0" -schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.3.0.tgz#f50a88877c3c01652a15b622ae9e9795df7a60fe" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - scroll-behavior@^0.9.1: version "0.9.12" resolved "https://registry.yarnpkg.com/scroll-behavior/-/scroll-behavior-0.9.12.tgz#1c22d273ec4ce6cd4714a443fead50227da9424c" @@ -7996,14 +8097,6 @@ slice-ansi@^4.0.0: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-support@^0.5.21: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - source-map-support@~0.5.20: version "0.5.20" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.20.tgz#12166089f8f5e5e8c56926b377633392dd2cb6c9" @@ -8600,7 +8693,7 @@ tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1: +tslib@^2.0.3, tslib@^2.3.1: version "2.5.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== @@ -8610,17 +8703,6 @@ tslib@^2.4.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tsx@^3.13.0: - version "3.13.0" - resolved "https://registry.yarnpkg.com/tsx/-/tsx-3.13.0.tgz#f860e511b33fcb41d74df87d7ba239a0b4012dbb" - integrity sha512-rjmRpTu3as/5fjNq/kOkOtihgLxuIz6pbKdj9xwP4J5jOLkBxw/rjN5ANw+KyrrOXV5uB7HC8+SrrSJxT65y+A== - dependencies: - esbuild "~0.18.20" - get-tsconfig "^4.7.2" - source-map-support "^0.5.21" - optionalDependencies: - fsevents "~2.3.3" - twemoji-parser@14.0.0: version "14.0.0" resolved "https://registry.yarnpkg.com/twemoji-parser/-/twemoji-parser-14.0.0.tgz#13dabcb6d3a261d9efbf58a1666b182033bf2b62" @@ -8711,10 +8793,10 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typescript@^4.0: - version "4.4.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.3.tgz#bdc5407caa2b109efd4f82fe130656f977a29324" - integrity sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA== +"typescript@^4.7 || 5": + version "5.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== typescript@^5.1.3: version "5.1.3" From e2e405c9a53de10b225216061e47aba89b0a06fa Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 11 Oct 2023 14:39:03 -0500 Subject: [PATCH 3/7] npx yarn-deduplicate yarn.lock && yarn --- yarn.lock | 200 +++++------------------------------------------------- 1 file changed, 17 insertions(+), 183 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8a9c83918..64a758d9a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -52,7 +52,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== -"@babel/core@^7.10.4": +"@babel/core@^7.10.4", "@babel/core@^7.11.1", "@babel/core@^7.22.9": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.0.tgz#f8259ae0e52a123eb40f552551e647b506a94d83" integrity sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ== @@ -73,38 +73,7 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/core@^7.11.1", "@babel/core@^7.22.9": - version "7.22.19" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.19.tgz#b38162460a6f3baf2a424bda720b24a8aafea241" - integrity sha512-Q8Yj5X4LHVYTbLCKVz0//2D2aDmHF4xzCdEttYvKOnWvErGsa6geHXD6w46x64n5tP69VfeH+IfSrdyH3MLhwA== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.22.15" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-module-transforms" "^7.22.19" - "@babel/helpers" "^7.22.15" - "@babel/parser" "^7.22.16" - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.22.19" - "@babel/types" "^7.22.19" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/generator@^7.15.4", "@babel/generator@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.15.tgz#1564189c7ec94cb8f77b5e8a90c4d200d21b2339" - integrity sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA== - dependencies: - "@babel/types" "^7.22.15" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/generator@^7.23.0": +"@babel/generator@^7.15.4", "@babel/generator@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== @@ -182,25 +151,12 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" -"@babel/helper-environment-visitor@^7.22.20": +"@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== - -"@babel/helper-function-name@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be" - integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ== - dependencies: - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/helper-function-name@^7.23.0": +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== @@ -229,18 +185,7 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.22.15", "@babel/helper-module-transforms@^7.22.19", "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9": - version "7.22.19" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.19.tgz#94b1f281caa6518f02ec0f5ea2b5348e298ce266" - integrity sha512-m6h1cJvn+OJ+R3jOHp30faq5xKJ7VbjwDj5RGgHuRlU9hrMeKsGC+JpihkR5w1g7IfseCPPtZ0r7/hB4UKaYlA== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.19" - -"@babel/helper-module-transforms@^7.23.0": +"@babel/helper-module-transforms@^7.22.15", "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9", "@babel/helper-module-transforms@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e" integrity sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw== @@ -307,12 +252,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== -"@babel/helper-validator-identifier@^7.22.19", "@babel/helper-validator-identifier@^7.22.5": - version "7.22.19" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.19.tgz#2f34ab1e445f5b95e2e6edfe50ea2449e610583a" - integrity sha512-Tinq7ybnEPFFXhlYOYFiSjespWQk0dq2dRNAiMdRTOYQzEGqnnNyrTxPYHP5r6wGjlF1rFgABdDV0g8EwD6Qbg== - -"@babel/helper-validator-identifier@^7.22.20": +"@babel/helper-validator-identifier@^7.22.20", "@babel/helper-validator-identifier@^7.22.5": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== @@ -331,15 +271,6 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.17" -"@babel/helpers@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.15.tgz#f09c3df31e86e3ea0b7ff7556d85cdebd47ea6f1" - integrity sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.22.15" - "@babel/types" "^7.22.15" - "@babel/helpers@^7.23.0": version "7.23.2" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.2.tgz#2832549a6e37d484286e15ba36a5330483cac767" @@ -358,12 +289,7 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.15.6", "@babel/parser@^7.22.15", "@babel/parser@^7.22.16": - version "7.22.16" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.16.tgz#180aead7f247305cce6551bea2720934e2fa2c95" - integrity sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA== - -"@babel/parser@^7.20.7", "@babel/parser@^7.23.0": +"@babel/parser@^7.1.0", "@babel/parser@^7.15.6", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== @@ -1141,7 +1067,7 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@7", "@babel/traverse@^7.23.0", "@babel/traverse@^7.23.2": +"@babel/traverse@7", "@babel/traverse@^7.15.4", "@babel/traverse@^7.23.0", "@babel/traverse@^7.23.2": version "7.23.2" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== @@ -1157,32 +1083,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.15.4", "@babel/traverse@^7.22.15", "@babel/traverse@^7.22.19": - version "7.22.19" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.19.tgz#bb2b12b7de9d7fec9e812ed89eea097b941954f8" - integrity sha512-ZCcpVPK64krfdScRbpxF6xA5fz7IOsfMwx1tcACvCzt6JY+0aHkBk7eIU8FRDSZRU5Zei6Z4JfgAxN1bqXGECg== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.22.15" - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-function-name" "^7.22.5" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.16" - "@babel/types" "^7.22.19" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.10.3", "@babel/types@^7.22.10", "@babel/types@^7.22.15", "@babel/types@^7.22.17", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.3.0", "@babel/types@^7.4.4": - version "7.22.19" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.19.tgz#7425343253556916e440e662bb221a93ddb75684" - integrity sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.19" - to-fast-properties "^2.0.0" - -"@babel/types@^7.12.11", "@babel/types@^7.20.7", "@babel/types@^7.23.0": +"@babel/types@^7.0.0", "@babel/types@^7.10.3", "@babel/types@^7.12.11", "@babel/types@^7.20.7", "@babel/types@^7.22.10", "@babel/types@^7.22.15", "@babel/types@^7.22.17", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.4.4": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== @@ -1508,12 +1409,7 @@ "@floating-ui/utils" "^0.1.5" tabbable "^6.0.1" -"@floating-ui/utils@^0.1.1": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.2.tgz#b7e9309ccce5a0a40ac482cb894f120dba2b357f" - integrity sha512-ou3elfqG/hZsbmF4bxeJhPHIf3G2pm0ujc39hYEZrfVqt7Vk/Zji6CXc3W0pmYM8BW1g40U+akTl9DKZhFhInQ== - -"@floating-ui/utils@^0.1.5": +"@floating-ui/utils@^0.1.1", "@floating-ui/utils@^0.1.5": version "0.1.5" resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.5.tgz#f0bada210a75fdf41101c48ddcc291e1b33b3f47" integrity sha512-3lClsx2F3ei6hup0LYFbbm+NH87qVTX/6T63IllEFCLjT7XCxmbgBM42sXf8LTZx0CE5VpRRUnISUbqSlsxGSA== @@ -2317,7 +2213,7 @@ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" integrity sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q== -"@types/babel__core@*", "@types/babel__core@^7.1.7": +"@types/babel__core@*", "@types/babel__core@^7.1.12", "@types/babel__core@^7.1.7": version "7.20.2" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.2.tgz#215db4f4a35d710256579784a548907237728756" integrity sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA== @@ -2328,17 +2224,6 @@ "@types/babel__template" "*" "@types/babel__traverse" "*" -"@types/babel__core@^7.1.12": - version "7.1.19" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" - integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - "@types/babel__generator@*": version "7.6.4" resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" @@ -2361,14 +2246,7 @@ "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" - integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== - dependencies: - "@babel/types" "^7.3.0" - -"@types/babel__traverse@^7.1.7": +"@types/babel__traverse@*", "@types/babel__traverse@^7.1.7": version "7.20.2" resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.2.tgz#4ddf99d95cfdd946ff35d2b65c978d9c9bf2645d" integrity sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw== @@ -2497,12 +2375,7 @@ resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== -"@types/node@*": - version "17.0.23" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.23.tgz#3b41a6e643589ac6442bdbd7a4a3ded62f33f7da" - integrity sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw== - -"@types/node@14 || 16 || 17": +"@types/node@*", "@types/node@14 || 16 || 17": version "17.0.45" resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== @@ -3754,13 +3627,6 @@ consolidate@^0.15.1: dependencies: bluebird "^3.1.1" -convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - convert-source-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" @@ -6505,7 +6371,7 @@ nostr-machina@^0.1.0: nostr-tools "^1.14.0" zod "^3.21.0" -nostr-tools@^1.14.0: +nostr-tools@^1.14.0, nostr-tools@^1.14.2: version "1.16.0" resolved "https://registry.yarnpkg.com/nostr-tools/-/nostr-tools-1.16.0.tgz#5867f1d8bd055a5a3b27aadb199457dceb244314" integrity sha512-sx/aOl0gmkeHVoIVbyOhEQhzF88NsrBXMC8bsjhPASqA6oZ8uSOAyEGgRLMfC3SKgzQD5Gr6KvDoAahaD6xKcg== @@ -6517,18 +6383,6 @@ nostr-tools@^1.14.0: "@scure/bip32" "1.3.1" "@scure/bip39" "1.2.1" -nostr-tools@^1.14.2: - version "1.14.2" - resolved "https://registry.yarnpkg.com/nostr-tools/-/nostr-tools-1.14.2.tgz#161c9401467725e87c07fcf1c9924d31b12fd45c" - integrity sha512-QEe8+tMDW0632eNDcQ+EG1edmsCXLV4WPiWLDcdT3uoE+GM15pVcy18sKwbN7SmgO4GKFEqQ49k45eANC6++SQ== - dependencies: - "@noble/ciphers" "^0.2.0" - "@noble/curves" "1.1.0" - "@noble/hashes" "1.3.1" - "@scure/base" "1.1.1" - "@scure/bip32" "1.3.1" - "@scure/bip39" "1.2.1" - npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -7919,11 +7773,6 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - safe-regex-test@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" @@ -8693,12 +8542,7 @@ tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.3, tslib@^2.3.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" - integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== - -tslib@^2.4.0: +tslib@^2.0.3, tslib@^2.3.1, tslib@^2.4.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -8793,16 +8637,11 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -"typescript@^4.7 || 5": +"typescript@^4.7 || 5", typescript@^5.1.3: version "5.2.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== -typescript@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.3.tgz#8d84219244a6b40b6fb2b33cc1c062f715b9e826" - integrity sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw== - typeson-registry@^1.0.0-alpha.20: version "1.0.0-alpha.39" resolved "https://registry.yarnpkg.com/typeson-registry/-/typeson-registry-1.0.0-alpha.39.tgz#9e0f5aabd5eebfcffd65a796487541196f4b1211" @@ -9646,12 +9485,7 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== -zod@^3.21.0: +zod@^3.21.0, zod@^3.21.4: version "3.22.3" resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.3.tgz#2fbc96118b174290d94e8896371c95629e87a060" integrity sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug== - -zod@^3.21.4: - version "3.21.4" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db" - integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw== From 8bd18f66bc514826bbee8a1579891b8a3a14323c Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 11 Oct 2023 14:43:19 -0500 Subject: [PATCH 4/7] Remove yargs --- package.json | 4 +--- yarn.lock | 14 +------------- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index c0945bafd..bf0ebc145 100644 --- a/package.json +++ b/package.json @@ -184,7 +184,6 @@ "@testing-library/react": "^14.0.0", "@testing-library/react-hooks": "^8.0.1", "@testing-library/user-event": "^14.5.1", - "@types/yargs": "^17.0.24", "@typescript-eslint/eslint-plugin": "^6.0.0", "@typescript-eslint/parser": "^6.0.0", "babel-plugin-transform-require-context": "^0.1.1", @@ -211,8 +210,7 @@ "tailwindcss": "^3.3.3", "vite-plugin-checker": "^0.6.2", "vite-plugin-pwa": "^0.16.5", - "vitest": "^0.34.4", - "yargs": "^17.6.2" + "vitest": "^0.34.4" }, "resolutions": { "@types/react": "^18.0.26", diff --git a/yarn.lock b/yarn.lock index 64a758d9a..fb3e7e076 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2537,18 +2537,6 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.0.tgz#53ef263e5239728b56096b0a869595135b7952d2" integrity sha512-kr90f+ERiQtKWMz5rP32ltJ/BtULDI5RVO0uavn1HQUOwjx0R1h0rnDYNL0CepF1zL5bSY6FISAfd9tOdDhU5Q== -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== - -"@types/yargs@^17.0.24": - version "17.0.24" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.24.tgz#b3ef8d50ad4aa6aecf6ddc97c580a00f5aa11902" - integrity sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw== - dependencies: - "@types/yargs-parser" "*" - "@typescript-eslint/eslint-plugin@^6.0.0": version "6.7.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.0.tgz#ed2a38867190f8a688af85ad7c8a74670b8b3675" @@ -9462,7 +9450,7 @@ yargs-parser@^21.1.1: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^17.5.1, yargs@^17.6.2: +yargs@^17.5.1: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== From b5f92b10f92059a4cc15c816491f13637baed457 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 11 Oct 2023 14:57:53 -0500 Subject: [PATCH 5/7] i18n: resolve duplicate message identifiers in code --- src/components/sidebar-menu.tsx | 8 ++++---- src/components/status-action-bar.tsx | 2 +- src/features/account/components/header.tsx | 6 +++--- .../components/chat-page/components/chat-page-sidebar.tsx | 2 +- src/features/chats/components/chat-pane/blankslate.tsx | 6 +++--- src/features/filters/index.tsx | 2 +- src/features/group/components/group-options-button.tsx | 2 +- src/features/group/manage-group.tsx | 2 +- src/features/list-adder/index.tsx | 2 +- src/features/ui/components/floating-action-button.tsx | 2 +- src/features/ui/components/modals/actions-modal.tsx | 2 +- src/features/ui/components/navbar.tsx | 2 +- src/features/ui/components/panels/sign-up-panel.tsx | 2 +- src/toast.tsx | 2 +- 14 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/components/sidebar-menu.tsx b/src/components/sidebar-menu.tsx index 8b1d43f1a..baab149a2 100644 --- a/src/components/sidebar-menu.tsx +++ b/src/components/sidebar-menu.tsx @@ -22,10 +22,10 @@ const messages = defineMessages({ follows: { id: 'account.follows', defaultMessage: 'Follows' }, profile: { id: 'account.profile', defaultMessage: 'Profile' }, preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' }, - blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' }, - domainBlocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Hidden domains' }, - mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' }, - filters: { id: 'navigation_bar.filters', defaultMessage: 'Muted words' }, + blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocks' }, + domainBlocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Domain blocks' }, + mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Mutes' }, + filters: { id: 'navigation_bar.filters', defaultMessage: 'Filters' }, followedTags: { id: 'navigation_bar.followed_tags', defaultMessage: 'Followed hashtags' }, soapboxConfig: { id: 'navigation_bar.soapbox_config', defaultMessage: 'Soapbox config' }, accountMigration: { id: 'navigation_bar.account_migration', defaultMessage: 'Move account' }, diff --git a/src/components/status-action-bar.tsx b/src/components/status-action-bar.tsx index 8b2009b82..f0c6d4313 100644 --- a/src/components/status-action-bar.tsx +++ b/src/components/status-action-bar.tsx @@ -55,7 +55,7 @@ const messages = defineMessages({ direct: { id: 'status.direct', defaultMessage: 'Direct message @{name}' }, disfavourite: { id: 'status.disfavourite', defaultMessage: 'Disike' }, edit: { id: 'status.edit', defaultMessage: 'Edit' }, - embed: { id: 'status.embed', defaultMessage: 'Embed' }, + embed: { id: 'status.embed', defaultMessage: 'Embed post' }, external: { id: 'status.external', defaultMessage: 'View post on {domain}' }, favourite: { id: 'status.favourite', defaultMessage: 'Like' }, groupBlockConfirm: { id: 'confirmations.block_from_group.confirm', defaultMessage: 'Ban' }, diff --git a/src/features/account/components/header.tsx b/src/features/account/components/header.tsx index 8cf23eaa8..99321cb40 100644 --- a/src/features/account/components/header.tsx +++ b/src/features/account/components/header.tsx @@ -53,9 +53,9 @@ const messages = defineMessages({ showReblogs: { id: 'account.show_reblogs', defaultMessage: 'Show reposts from @{name}' }, preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' }, follow_requests: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' }, - blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' }, - domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Hidden domains' }, - mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' }, + blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocks' }, + domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Domain blocks' }, + mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Mutes' }, endorse: { id: 'account.endorse', defaultMessage: 'Feature on profile' }, unendorse: { id: 'account.unendorse', defaultMessage: 'Don\'t feature on profile' }, removeFromFollowers: { id: 'account.remove_from_followers', defaultMessage: 'Remove this follower' }, diff --git a/src/features/chats/components/chat-page/components/chat-page-sidebar.tsx b/src/features/chats/components/chat-page/components/chat-page-sidebar.tsx index ad3a2ef3a..6691acf5f 100644 --- a/src/features/chats/components/chat-page/components/chat-page-sidebar.tsx +++ b/src/features/chats/components/chat-page/components/chat-page-sidebar.tsx @@ -10,7 +10,7 @@ import ChatList from '../../chat-list'; import ChatSearchInput from '../../chat-search-input'; const messages = defineMessages({ - title: { id: 'column.chats', defaultMessage: 'Messages' }, + title: { id: 'column.chats', defaultMessage: 'Chats' }, }); const ChatPageSidebar = () => { diff --git a/src/features/chats/components/chat-pane/blankslate.tsx b/src/features/chats/components/chat-pane/blankslate.tsx index 40aa19278..d718ff376 100644 --- a/src/features/chats/components/chat-pane/blankslate.tsx +++ b/src/features/chats/components/chat-pane/blankslate.tsx @@ -4,9 +4,9 @@ import { defineMessages, useIntl } from 'react-intl'; import { Button, Stack, Text } from 'soapbox/components/ui'; const messages = defineMessages({ - title: { id: 'chat_search.empty_results_blankslate.title', defaultMessage: 'No messages yet' }, - body: { id: 'chat_search.empty_results_blankslate.body', defaultMessage: 'Search for someone to chat with.' }, - action: { id: 'chat_search.empty_results_blankslate.action', defaultMessage: 'Message someone' }, + title: { id: 'chat_pane.blankslate.title', defaultMessage: 'No messages yet' }, + body: { id: 'chat_pane.blankslate.body', defaultMessage: 'Search for someone to chat with.' }, + action: { id: 'chat_pane.blankslate.action', defaultMessage: 'Message someone' }, }); interface IBlankslate { diff --git a/src/features/filters/index.tsx b/src/features/filters/index.tsx index 5aadf1795..41001c396 100644 --- a/src/features/filters/index.tsx +++ b/src/features/filters/index.tsx @@ -17,7 +17,7 @@ const messages = defineMessages({ conversations: { id: 'column.filters.conversations', defaultMessage: 'Conversations' }, accounts: { id: 'column.filters.accounts', defaultMessage: 'Accounts' }, delete_error: { id: 'column.filters.delete_error', defaultMessage: 'Error deleting filter' }, - edit: { id: 'column.filters.edit', defaultMessage: 'Edit' }, + edit: { id: 'column.filters.edit', defaultMessage: 'Edit Filter' }, delete: { id: 'column.filters.delete', defaultMessage: 'Delete' }, }); diff --git a/src/features/group/components/group-options-button.tsx b/src/features/group/components/group-options-button.tsx index c8f378f87..6b35d03d7 100644 --- a/src/features/group/components/group-options-button.tsx +++ b/src/features/group/components/group-options-button.tsx @@ -14,7 +14,7 @@ import type { Account, Group } from 'soapbox/types/entities'; const messages = defineMessages({ confirmationConfirm: { id: 'confirmations.leave_group.confirm', defaultMessage: 'Leave' }, - confirmationHeading: { id: 'confirmations.leave_group.heading', defaultMessage: 'Leave Group' }, + confirmationHeading: { id: 'confirmations.leave_group.heading', defaultMessage: 'Leave group' }, confirmationMessage: { id: 'confirmations.leave_group.message', defaultMessage: 'You are about to leave the group. Do you want to continue?' }, muteConfirm: { id: 'confirmations.mute_group.confirm', defaultMessage: 'Mute' }, muteHeading: { id: 'confirmations.mute_group.heading', defaultMessage: 'Mute Group' }, diff --git a/src/features/group/manage-group.tsx b/src/features/group/manage-group.tsx index c669c026f..ed9eea111 100644 --- a/src/features/group/manage-group.tsx +++ b/src/features/group/manage-group.tsx @@ -25,7 +25,7 @@ const messages = defineMessages({ deleteHeading: { id: 'confirmations.delete_group.heading', defaultMessage: 'Delete Group' }, deleteMessage: { id: 'confirmations.delete_group.message', defaultMessage: 'Are you sure you want to delete this group? This is a permanent action that cannot be undone.' }, members: { id: 'group.tabs.members', defaultMessage: 'Members' }, - other: { id: 'settings.other', defaultMessage: 'Other Options' }, + other: { id: 'settings.other', defaultMessage: 'Other options' }, deleteSuccess: { id: 'group.delete.success', defaultMessage: 'Group successfully deleted' }, }); diff --git a/src/features/list-adder/index.tsx b/src/features/list-adder/index.tsx index f13c3279c..821298208 100644 --- a/src/features/list-adder/index.tsx +++ b/src/features/list-adder/index.tsx @@ -18,7 +18,7 @@ import type { List as ListEntity } from 'soapbox/types/entities'; const messages = defineMessages({ close: { id: 'lightbox.close', defaultMessage: 'Close' }, subheading: { id: 'lists.subheading', defaultMessage: 'Your lists' }, - add: { id: 'lists.new.create', defaultMessage: 'Add List' }, + add: { id: 'lists.new.create', defaultMessage: 'Add list' }, }); // hack diff --git a/src/features/ui/components/floating-action-button.tsx b/src/features/ui/components/floating-action-button.tsx index ea6bd64ee..11032641f 100644 --- a/src/features/ui/components/floating-action-button.tsx +++ b/src/features/ui/components/floating-action-button.tsx @@ -10,7 +10,7 @@ import { Avatar, HStack, Icon } from 'soapbox/components/ui'; import { useAppDispatch } from 'soapbox/hooks'; const messages = defineMessages({ - publish: { id: 'compose_form.publish', defaultMessage: 'Publish' }, + publish: { id: 'compose_form.publish', defaultMessage: 'Post' }, }); /** FloatingActionButton (aka FAB), a composer button that floats in the corner on mobile. */ diff --git a/src/features/ui/components/modals/actions-modal.tsx b/src/features/ui/components/modals/actions-modal.tsx index b7a6e3d76..5fd37bab7 100644 --- a/src/features/ui/components/modals/actions-modal.tsx +++ b/src/features/ui/components/modals/actions-modal.tsx @@ -64,7 +64,7 @@ const ActionsModal: React.FC = ({ status, actions, onClick, onClo
  • diff --git a/src/features/ui/components/navbar.tsx b/src/features/ui/components/navbar.tsx index feb9ff701..a9a1d520c 100644 --- a/src/features/ui/components/navbar.tsx +++ b/src/features/ui/components/navbar.tsx @@ -170,7 +170,7 @@ const Navbar = () => { size='sm' {...(features.nostrSignup ? { onClick: handleNostrLogin } : { to: '/login' })} > - + {(isOpen) && ( diff --git a/src/features/ui/components/panels/sign-up-panel.tsx b/src/features/ui/components/panels/sign-up-panel.tsx index f5e6c9222..e12ae02c4 100644 --- a/src/features/ui/components/panels/sign-up-panel.tsx +++ b/src/features/ui/components/panels/sign-up-panel.tsx @@ -19,7 +19,7 @@ const SignUpPanel = () => { - + diff --git a/src/toast.tsx b/src/toast.tsx index 7dd703596..49791b0fa 100644 --- a/src/toast.tsx +++ b/src/toast.tsx @@ -40,7 +40,7 @@ function error(message: ToastText, opts?: IToastOptions) { } const messages = defineMessages({ - unexpectedMessage: { id: 'alert.unexpected.message', defaultMessage: 'An unexpected error occurred.' }, + unexpectedMessage: { id: 'alert.unexpected.message', defaultMessage: 'Something went wrong.' }, }); function showAlertForError(networkError: AxiosError) { From f6251a221a15839b311ffd9d84fbdc85715fc3e4 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 11 Oct 2023 15:15:50 -0500 Subject: [PATCH 6/7] Run yarn i18n, copy some messages from en.json back into source files --- src/actions/compose.ts | 2 +- src/components/polls/poll-footer.tsx | 2 +- src/components/sidebar-menu.tsx | 2 +- src/components/status-action-bar.tsx | 10 +- src/components/status-list.tsx | 2 +- src/components/thumb-navigation.tsx | 2 +- .../auth-login/components/login-form.tsx | 2 +- .../auth-login/components/password-reset.tsx | 2 +- .../components/registration-page.tsx | 2 +- .../chats/components/chat-search-input.tsx | 2 +- .../compose/components/polls/poll-form.tsx | 4 +- src/features/edit-profile/index.tsx | 2 +- .../components/emoji-picker-dropdown.tsx | 2 +- .../components/group-member-list-item.tsx | 2 +- src/features/group/manage-group.tsx | 2 +- src/features/groups/popular.tsx | 2 +- .../notifications/components/notification.tsx | 2 +- src/features/preferences/index.tsx | 2 +- src/features/public-timeline/index.tsx | 2 +- src/features/settings/index.tsx | 2 +- .../compose-event-modal/upload-button.tsx | 2 +- .../ui/components/modals/compose-modal.tsx | 2 +- .../modals/edit-announcement-modal.tsx | 4 +- .../modals/missing-description-modal.tsx | 2 +- src/features/ui/components/navbar.tsx | 2 +- src/features/ui/components/profile-stats.tsx | 2 +- src/features/ui/components/user-panel.tsx | 2 +- src/locales/en.json | 108 +++--------------- src/pages/profile-page.tsx | 2 +- 29 files changed, 49 insertions(+), 127 deletions(-) diff --git a/src/actions/compose.ts b/src/actions/compose.ts index c71524195..44aa179b3 100644 --- a/src/actions/compose.ts +++ b/src/actions/compose.ts @@ -91,7 +91,7 @@ const COMPOSE_EDITOR_STATE_SET = 'COMPOSE_EDITOR_STATE_SET' as const; const messages = defineMessages({ scheduleError: { id: 'compose.invalid_schedule', defaultMessage: 'You must schedule a post at least 5 minutes out.' }, - success: { id: 'compose.submit_success', defaultMessage: 'Your post was sent' }, + success: { id: 'compose.submit_success', defaultMessage: 'Your post was sent!' }, editSuccess: { id: 'compose.edit_success', defaultMessage: 'Your post was edited' }, uploadErrorLimit: { id: 'upload_error.limit', defaultMessage: 'File upload limit exceeded.' }, uploadErrorPoll: { id: 'upload_error.poll', defaultMessage: 'File upload not allowed with polls.' }, diff --git a/src/components/polls/poll-footer.tsx b/src/components/polls/poll-footer.tsx index 9df4215d0..b9a341c5e 100644 --- a/src/components/polls/poll-footer.tsx +++ b/src/components/polls/poll-footer.tsx @@ -49,7 +49,7 @@ const PollFooter: React.FC = ({ poll, showResults, selected }): JSX {(!showResults && poll.multiple) && ( )} diff --git a/src/components/sidebar-menu.tsx b/src/components/sidebar-menu.tsx index baab149a2..0de3b6c82 100644 --- a/src/components/sidebar-menu.tsx +++ b/src/components/sidebar-menu.tsx @@ -19,7 +19,7 @@ import type { Account as AccountEntity } from 'soapbox/types/entities'; const messages = defineMessages({ followers: { id: 'account.followers', defaultMessage: 'Followers' }, - follows: { id: 'account.follows', defaultMessage: 'Follows' }, + follows: { id: 'account.follows', defaultMessage: 'Following' }, profile: { id: 'account.profile', defaultMessage: 'Profile' }, preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' }, blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocks' }, diff --git a/src/components/status-action-bar.tsx b/src/components/status-action-bar.tsx index f0c6d4313..d16df70cc 100644 --- a/src/components/status-action-bar.tsx +++ b/src/components/status-action-bar.tsx @@ -43,7 +43,7 @@ const messages = defineMessages({ cancel_reblog_private: { id: 'status.cancel_reblog_private', defaultMessage: 'Un-repost' }, cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be reposted' }, chat: { id: 'status.chat', defaultMessage: 'Chat with @{name}' }, - copy: { id: 'status.copy', defaultMessage: 'Copy link to post' }, + copy: { id: 'status.copy', defaultMessage: 'Copy Link to Post' }, deactivateUser: { id: 'admin.users.actions.deactivate_user', defaultMessage: 'Deactivate @{name}' }, delete: { id: 'status.delete', defaultMessage: 'Delete' }, deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' }, @@ -58,7 +58,7 @@ const messages = defineMessages({ embed: { id: 'status.embed', defaultMessage: 'Embed post' }, external: { id: 'status.external', defaultMessage: 'View post on {domain}' }, favourite: { id: 'status.favourite', defaultMessage: 'Like' }, - groupBlockConfirm: { id: 'confirmations.block_from_group.confirm', defaultMessage: 'Ban' }, + groupBlockConfirm: { id: 'confirmations.block_from_group.confirm', defaultMessage: 'Ban User' }, groupBlockFromGroupHeading: { id: 'confirmations.block_from_group.heading', defaultMessage: 'Ban From Group' }, groupBlockFromGroupMessage: { id: 'confirmations.block_from_group.message', defaultMessage: 'Are you sure you want to ban @{name} from the group?' }, groupModDelete: { id: 'status.group_mod_delete', defaultMessage: 'Delete post from group' }, @@ -70,12 +70,12 @@ const messages = defineMessages({ more: { id: 'status.more', defaultMessage: 'More' }, mute: { id: 'account.mute', defaultMessage: 'Mute @{name}' }, muteConfirm: { id: 'confirmations.mute_group.confirm', defaultMessage: 'Mute' }, - muteConversation: { id: 'status.mute_conversation', defaultMessage: 'Mute conversation' }, + muteConversation: { id: 'status.mute_conversation', defaultMessage: 'Mute Conversation' }, muteGroup: { id: 'group.mute.long_label', defaultMessage: 'Mute Group' }, muteHeading: { id: 'confirmations.mute_group.heading', defaultMessage: 'Mute Group' }, muteMessage: { id: 'confirmations.mute_group.message', defaultMessage: 'You are about to mute the group. Do you want to continue?' }, muteSuccess: { id: 'group.mute.success', defaultMessage: 'Muted the group' }, - open: { id: 'status.open', defaultMessage: 'Expand this post' }, + open: { id: 'status.open', defaultMessage: 'Show Post Details' }, pin: { id: 'status.pin', defaultMessage: 'Pin on profile' }, pinToGroup: { id: 'status.pin_to_group', defaultMessage: 'Pin to Group' }, pinToGroupSuccess: { id: 'status.pin_to_group.success', defaultMessage: 'Pinned to Group!' }, @@ -100,7 +100,7 @@ const messages = defineMessages({ report: { id: 'status.report', defaultMessage: 'Report @{name}' }, share: { id: 'status.share', defaultMessage: 'Share' }, unbookmark: { id: 'status.unbookmark', defaultMessage: 'Remove bookmark' }, - unmuteConversation: { id: 'status.unmute_conversation', defaultMessage: 'Unmute conversation' }, + unmuteConversation: { id: 'status.unmute_conversation', defaultMessage: 'Unmute Conversation' }, unmuteGroup: { id: 'group.unmute.long_label', defaultMessage: 'Unmute Group' }, unmuteSuccess: { id: 'group.unmute.success', defaultMessage: 'Unmuted the group' }, unpin: { id: 'status.unpin', defaultMessage: 'Unpin from profile' }, diff --git a/src/components/status-list.tsx b/src/components/status-list.tsx index 4f6347593..8d6a5793d 100644 --- a/src/components/status-list.tsx +++ b/src/components/status-list.tsx @@ -213,7 +213,7 @@ const StatusList: React.FC = ({
    - +
    diff --git a/src/components/thumb-navigation.tsx b/src/components/thumb-navigation.tsx index 52b3a4c50..b7cf24955 100644 --- a/src/components/thumb-navigation.tsx +++ b/src/components/thumb-navigation.tsx @@ -72,7 +72,7 @@ const ThumbNavigation: React.FC = (): JSX.Element => { {account && ( } + text={} to='/notifications' exact count={notificationCount} diff --git a/src/features/auth-login/components/login-form.tsx b/src/features/auth-login/components/login-form.tsx index 4fcb95d4c..21e353d31 100644 --- a/src/features/auth-login/components/login-form.tsx +++ b/src/features/auth-login/components/login-form.tsx @@ -8,7 +8,7 @@ import { useFeatures } from 'soapbox/hooks'; const messages = defineMessages({ username: { id: 'login.fields.username_label', - defaultMessage: 'E-mail or username', + defaultMessage: 'Email or username', }, email: { id: 'login.fields.email_label', diff --git a/src/features/auth-login/components/password-reset.tsx b/src/features/auth-login/components/password-reset.tsx index 11d1f42f0..8812c5b73 100644 --- a/src/features/auth-login/components/password-reset.tsx +++ b/src/features/auth-login/components/password-reset.tsx @@ -9,7 +9,7 @@ import { useAppDispatch, useFeatures } from 'soapbox/hooks'; import toast from 'soapbox/toast'; const messages = defineMessages({ - nicknameOrEmail: { id: 'password_reset.fields.username_placeholder', defaultMessage: 'E-mail or username' }, + nicknameOrEmail: { id: 'password_reset.fields.username_placeholder', defaultMessage: 'Email or username' }, email: { id: 'password_reset.fields.email_placeholder', defaultMessage: 'E-mail address' }, confirmation: { id: 'password_reset.confirmation', defaultMessage: 'Check your email for confirmation.' }, }); diff --git a/src/features/auth-login/components/registration-page.tsx b/src/features/auth-login/components/registration-page.tsx index ea57c9e5e..db5f53a05 100644 --- a/src/features/auth-login/components/registration-page.tsx +++ b/src/features/auth-login/components/registration-page.tsx @@ -17,7 +17,7 @@ const RegistrationPage: React.FC = () => { diff --git a/src/features/chats/components/chat-search-input.tsx b/src/features/chats/components/chat-search-input.tsx index 5324ca212..23fbddf3a 100644 --- a/src/features/chats/components/chat-search-input.tsx +++ b/src/features/chats/components/chat-search-input.tsx @@ -4,7 +4,7 @@ import { defineMessages, useIntl } from 'react-intl'; import { Icon, Input } from 'soapbox/components/ui'; const messages = defineMessages({ - searchPlaceholder: { id: 'chats.search_placeholder', defaultMessage: 'Search inbox' }, + searchPlaceholder: { id: 'chats.search_placeholder', defaultMessage: 'Start a chat with…' }, }); interface IChatSearchInput { diff --git a/src/features/compose/components/polls/poll-form.tsx b/src/features/compose/components/polls/poll-form.tsx index f18d27d6f..ed45cbbad 100644 --- a/src/features/compose/components/polls/poll-form.tsx +++ b/src/features/compose/components/polls/poll-form.tsx @@ -13,7 +13,7 @@ import type { AutoSuggestion } from 'soapbox/components/autosuggest-input'; const messages = defineMessages({ option_placeholder: { id: 'compose_form.poll.option_placeholder', defaultMessage: 'Answer #{number}' }, add_option: { id: 'compose_form.poll.add_option', defaultMessage: 'Add an answer' }, - pollDuration: { id: 'compose_form.poll.duration', defaultMessage: 'Duration' }, + pollDuration: { id: 'compose_form.poll.duration', defaultMessage: 'Poll duration' }, removePoll: { id: 'compose_form.poll.remove', defaultMessage: 'Remove poll' }, switchToMultiple: { id: 'compose_form.poll.switch_to_multiple', defaultMessage: 'Change poll to allow multiple answers' }, switchToSingle: { id: 'compose_form.poll.switch_to_single', defaultMessage: 'Change poll to allow for a single answer' }, @@ -95,7 +95,7 @@ const Option: React.FC = ({ {index > 1 && (
    )} diff --git a/src/features/edit-profile/index.tsx b/src/features/edit-profile/index.tsx index c32bf6888..fbcebf02b 100644 --- a/src/features/edit-profile/index.tsx +++ b/src/features/edit-profile/index.tsx @@ -49,7 +49,7 @@ const messages = defineMessages({ header: { id: 'edit_profile.header', defaultMessage: 'Edit Profile' }, metaFieldLabel: { id: 'edit_profile.fields.meta_fields.label_placeholder', defaultMessage: 'Label' }, metaFieldContent: { id: 'edit_profile.fields.meta_fields.content_placeholder', defaultMessage: 'Content' }, - success: { id: 'edit_profile.success', defaultMessage: 'Profile saved!' }, + success: { id: 'edit_profile.success', defaultMessage: 'Your profile has been successfully saved!' }, error: { id: 'edit_profile.error', defaultMessage: 'Profile update failed' }, bioPlaceholder: { id: 'edit_profile.fields.bio_placeholder', defaultMessage: 'Tell us about yourself.' }, displayNamePlaceholder: { id: 'edit_profile.fields.display_name_placeholder', defaultMessage: 'Name' }, diff --git a/src/features/emoji/components/emoji-picker-dropdown.tsx b/src/features/emoji/components/emoji-picker-dropdown.tsx index 6cc3015cb..f3167f61b 100644 --- a/src/features/emoji/components/emoji-picker-dropdown.tsx +++ b/src/features/emoji/components/emoji-picker-dropdown.tsx @@ -18,7 +18,7 @@ export const messages = defineMessages({ emoji_pick: { id: 'emoji_button.pick', defaultMessage: 'Pick an emoji…' }, emoji_oh_no: { id: 'emoji_button.oh_no', defaultMessage: 'Oh no!' }, emoji_search: { id: 'emoji_button.search', defaultMessage: 'Search…' }, - emoji_not_found: { id: 'emoji_button.not_found', defaultMessage: 'No emoji\'s found.' }, + emoji_not_found: { id: 'emoji_button.not_found', defaultMessage: 'No emojis found.' }, emoji_add_custom: { id: 'emoji_button.add_custom', defaultMessage: 'Add custom emoji' }, custom: { id: 'emoji_button.custom', defaultMessage: 'Custom' }, recent: { id: 'emoji_button.recent', defaultMessage: 'Frequently used' }, diff --git a/src/features/group/components/group-member-list-item.tsx b/src/features/group/components/group-member-list-item.tsx index 5b5bac6ff..79be5ef50 100644 --- a/src/features/group/components/group-member-list-item.tsx +++ b/src/features/group/components/group-member-list-item.tsx @@ -23,7 +23,7 @@ import type { Group, GroupMember } from 'soapbox/types/entities'; const messages = defineMessages({ adminLimitTitle: { id: 'group.member.admin.limit.title', defaultMessage: 'Admin limit reached' }, adminLimitSummary: { id: 'group.member.admin.limit.summary', defaultMessage: 'You can assign up to {count, plural, one {admin} other {admins}} for the group at this time.' }, - blockConfirm: { id: 'confirmations.block_from_group.confirm', defaultMessage: 'Ban' }, + blockConfirm: { id: 'confirmations.block_from_group.confirm', defaultMessage: 'Ban User' }, blockFromGroupHeading: { id: 'confirmations.block_from_group.heading', defaultMessage: 'Ban From Group' }, blockFromGroupMessage: { id: 'confirmations.block_from_group.message', defaultMessage: 'Are you sure you want to ban @{name} from the group?' }, blocked: { id: 'group.group_mod_block.success', defaultMessage: '@{name} is banned' }, diff --git a/src/features/group/manage-group.tsx b/src/features/group/manage-group.tsx index ed9eea111..c669c026f 100644 --- a/src/features/group/manage-group.tsx +++ b/src/features/group/manage-group.tsx @@ -25,7 +25,7 @@ const messages = defineMessages({ deleteHeading: { id: 'confirmations.delete_group.heading', defaultMessage: 'Delete Group' }, deleteMessage: { id: 'confirmations.delete_group.message', defaultMessage: 'Are you sure you want to delete this group? This is a permanent action that cannot be undone.' }, members: { id: 'group.tabs.members', defaultMessage: 'Members' }, - other: { id: 'settings.other', defaultMessage: 'Other options' }, + other: { id: 'settings.other', defaultMessage: 'Other Options' }, deleteSuccess: { id: 'group.delete.success', defaultMessage: 'Group successfully deleted' }, }); diff --git a/src/features/groups/popular.tsx b/src/features/groups/popular.tsx index 2f417dd8f..a2c464d79 100644 --- a/src/features/groups/popular.tsx +++ b/src/features/groups/popular.tsx @@ -13,7 +13,7 @@ import LayoutButtons, { GroupLayout } from './components/discover/layout-buttons import type { Group } from 'soapbox/schemas'; const messages = defineMessages({ - label: { id: 'groups.popular.label', defaultMessage: 'Popular Groups' }, + label: { id: 'groups.popular.label', defaultMessage: 'Suggested Groups' }, }); const GridList: Components['List'] = React.forwardRef((props, ref) => { diff --git a/src/features/notifications/components/notification.tsx b/src/features/notifications/components/notification.tsx index 6a914943b..f027cddda 100644 --- a/src/features/notifications/components/notification.tsx +++ b/src/features/notifications/components/notification.tsx @@ -148,7 +148,7 @@ const buildMessage = ( others: totalCount && totalCount > 0 ? ( ) : '', diff --git a/src/features/preferences/index.tsx b/src/features/preferences/index.tsx index 84f84ba43..516ae5b69 100644 --- a/src/features/preferences/index.tsx +++ b/src/features/preferences/index.tsx @@ -134,7 +134,7 @@ const Preferences = () => { - }> + }> { > = ({ disabled, onSelectFile }) => { /> - + = ({ onClose, composeId = 'compose-m } else if (quote) { return ; } else { - return ; + return ; } }; diff --git a/src/features/ui/components/modals/edit-announcement-modal.tsx b/src/features/ui/components/modals/edit-announcement-modal.tsx index 23c074d49..b0d7bdeec 100644 --- a/src/features/ui/components/modals/edit-announcement-modal.tsx +++ b/src/features/ui/components/modals/edit-announcement-modal.tsx @@ -10,8 +10,8 @@ import { useAppDispatch, useAppSelector } from 'soapbox/hooks'; const messages = defineMessages({ save: { id: 'admin.edit_announcement.save', defaultMessage: 'Save' }, announcementContentPlaceholder: { id: 'admin.edit_announcement.fields.content_placeholder', defaultMessage: 'Announcement content' }, - announcementStartTimePlaceholder: { id: 'admin.edit_announcement.fields.start_time_placeholder', defaultMessage: 'Announcement starts on…' }, - announcementEndTimePlaceholder: { id: 'admin.edit_announcement.fields.end_time_placeholder', defaultMessage: 'Announcement ends on…' }, + announcementStartTimePlaceholder: { id: 'admin.edit_announcement.fields.start_time_placeholder', defaultMessage: 'Announcement starts on:' }, + announcementEndTimePlaceholder: { id: 'admin.edit_announcement.fields.end_time_placeholder', defaultMessage: 'Announcement ends on:' }, }); interface IEditAnnouncementModal { diff --git a/src/features/ui/components/modals/missing-description-modal.tsx b/src/features/ui/components/modals/missing-description-modal.tsx index a29c2859b..742836dba 100644 --- a/src/features/ui/components/modals/missing-description-modal.tsx +++ b/src/features/ui/components/modals/missing-description-modal.tsx @@ -4,7 +4,7 @@ import { injectIntl, FormattedMessage, IntlShape, defineMessages } from 'react-i import { Modal } from 'soapbox/components/ui'; const messages = defineMessages({ - modalTitle: { id: 'missing_description_modal.text', defaultMessage: 'You have not entered a description for all attachments.' }, + modalTitle: { id: 'missing_description_modal.text', defaultMessage: 'You have not entered a description for all attachments. Continue anyway?' }, post: { id: 'missing_description_modal.continue', defaultMessage: 'Post' }, cancel: { id: 'missing_description_modal.cancel', defaultMessage: 'Cancel' }, }); diff --git a/src/features/ui/components/navbar.tsx b/src/features/ui/components/navbar.tsx index a9a1d520c..62c9b5a0f 100644 --- a/src/features/ui/components/navbar.tsx +++ b/src/features/ui/components/navbar.tsx @@ -18,7 +18,7 @@ import type { AxiosError } from 'axios'; const messages = defineMessages({ login: { id: 'navbar.login.action', defaultMessage: 'Log in' }, - username: { id: 'navbar.login.username.placeholder', defaultMessage: 'E-mail or username' }, + username: { id: 'navbar.login.username.placeholder', defaultMessage: 'Email or username' }, email: { id: 'navbar.login.email.placeholder', defaultMessage: 'E-mail address' }, password: { id: 'navbar.login.password.label', defaultMessage: 'Password' }, forgotPassword: { id: 'navbar.login.forgot_password', defaultMessage: 'Forgot password?' }, diff --git a/src/features/ui/components/profile-stats.tsx b/src/features/ui/components/profile-stats.tsx index 9132cad60..6863f9bd9 100644 --- a/src/features/ui/components/profile-stats.tsx +++ b/src/features/ui/components/profile-stats.tsx @@ -9,7 +9,7 @@ import type { Account } from 'soapbox/schemas'; const messages = defineMessages({ followers: { id: 'account.followers', defaultMessage: 'Followers' }, - follows: { id: 'account.follows', defaultMessage: 'Follows' }, + follows: { id: 'account.follows', defaultMessage: 'Following' }, }); interface IProfileStats { diff --git a/src/features/ui/components/user-panel.tsx b/src/features/ui/components/user-panel.tsx index 94ed3984f..4d9036966 100644 --- a/src/features/ui/components/user-panel.tsx +++ b/src/features/ui/components/user-panel.tsx @@ -97,7 +97,7 @@ const UserPanel: React.FC = ({ accountId, action, badges, domain }) {shortNumberFormat(account.following_count)} - + diff --git a/src/locales/en.json b/src/locales/en.json index 0f0da7b2e..60bd2076f 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -156,9 +156,6 @@ "admin_nav.awaiting_approval": "Waitlist", "admin_nav.dashboard": "Dashboard", "admin_nav.reports": "Reports", - "age_verification.body": "{siteTitle} requires users to be at least {ageMinimum, plural, one {# year} other {# years}} old to access its platform. Anyone under the age of {ageMinimum, plural, one {# year} other {# years}} old cannot access this platform.", - "age_verification.fail": "You must be {ageMinimum, plural, one {# year} other {# years}} old or older.", - "age_verification.header": "Enter your birth date", "alert.unexpected.body": "We're sorry for the interruption. If the problem persists, please reach out to our support team. You may also try to {clearCookies} (this will log you out).", "alert.unexpected.browser": "Browser", "alert.unexpected.clear_cookies": "clear cookies and browser data", @@ -189,7 +186,6 @@ "auth.awaiting_approval": "Your account is awaiting approval", "auth.invalid_credentials": "Wrong username or password", "auth.logged_out": "Logged out.", - "auth_layout.register": "Create an account", "authorize.success": "Approved", "backups.actions.create": "Create backup", "backups.empty_message": "No backups found. {action}", @@ -200,12 +196,6 @@ "birthdays_modal.empty": "None of your friends have birthday today.", "boost_modal.combo": "You can press {combo} to skip this next time", "boost_modal.title": "Repost?", - "bundle_column_error.body": "Something went wrong while loading this page.", - "bundle_column_error.retry": "Try again", - "bundle_column_error.title": "Network error", - "bundle_modal_error.close": "Close", - "bundle_modal_error.message": "Something went wrong while loading this modal.", - "bundle_modal_error.retry": "Try again", "card.back.label": "Back", "chat.actions.send": "Send", "chat.failed_to_send": "Message failed to send.", @@ -239,9 +229,11 @@ "chat_message_list_intro.leave_chat.confirm": "Leave Chat", "chat_message_list_intro.leave_chat.heading": "Leave Chat", "chat_message_list_intro.leave_chat.message": "Are you sure you want to leave this chat? Messages will be deleted for you and this chat will be removed from your inbox.", + "chat_pane.blankslate.action": "Message someone", + "chat_pane.blankslate.body": "Search for someone to chat with.", + "chat_pane.blankslate.title": "No messages yet", "chat_search.blankslate.body": "Search for someone to chat with.", "chat_search.blankslate.title": "Start a chat", - "chat_search.empty_results_blankslate.action": "Message someone", "chat_search.empty_results_blankslate.body": "Try searching for another name.", "chat_search.empty_results_blankslate.title": "No matches found", "chat_search.placeholder": "Type a name", @@ -271,10 +263,10 @@ "chat_window.auto_delete_label": "Auto-delete after {day, plural, one {# day} other {# days}}", "chat_window.auto_delete_tooltip": "Chat messages are set to auto-delete after {day, plural, one {# day} other {# days}} upon sending.", "chats.actions.copy": "Copy", - "chats.actions.delete": "Delete message", + "chats.actions.delete": "Delete for both", "chats.actions.deleteForMe": "Delete for me", "chats.actions.more": "More", - "chats.actions.report": "Report user", + "chats.actions.report": "Report", "chats.dividers.today": "Today", "chats.main.blankslate.new_chat": "Message someone", "chats.main.blankslate.subtitle": "Search for someone to chat with", @@ -336,7 +328,7 @@ "column.filters.delete_error": "Error deleting filter", "column.filters.drop_header": "Drop instead of hide", "column.filters.drop_hint": "Filtered posts will disappear irreversibly, even if filter is later removed", - "column.filters.edit": "Edit", + "column.filters.edit": "Edit Filter", "column.filters.expires": "Expire after", "column.filters.hide_header": "Hide completely", "column.filters.hide_hint": "Completely hide the filtered content, instead of showing a warning", @@ -371,10 +363,11 @@ "column.notifications": "Notifications", "column.pins": "Pinned posts", "column.preferences": "Preferences", - "column.public": "Federated timeline", + "column.public": "Fediverse timeline", "column.quotes": "Post quotes", "column.reactions": "Reactions", "column.reblogs": "Reposts", + "column.registration": "Sign Up", "column.scheduled_statuses": "Scheduled Posts", "column.search": "Search", "column.settings_store": "Settings store", @@ -383,7 +376,6 @@ "column_forbidden.body": "You do not have permission to access this page.", "column_forbidden.title": "Forbidden", "common.cancel": "Cancel", - "common.error": "Something isn't right. Try reloading the page.", "compare_history_modal.header": "Edit history", "compose.character_counter.title": "Used {chars} out of {maxChars} {maxChars, plural, one {character} other {characters}}", "compose.edit_success": "Your post was edited", @@ -417,14 +409,6 @@ "compose_form.direct_message_warning": "This post will only be sent to the mentioned users.", "compose_form.event_placeholder": "Post to this event", "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", - "compose_form.lexical.create_horizontal_line": "Create horizontal line", - "compose_form.lexical.format_bold": "Format bold", - "compose_form.lexical.format_italic": "Format italic", - "compose_form.lexical.format_strikethrough": "Format strikethrough", - "compose_form.lexical.format_underline": "Format underline", - "compose_form.lexical.insert_code_block": "Insert code block", - "compose_form.lexical.insert_link": "Insert link", - "compose_form.lexical.upload_media": "Upload media", "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", "compose_form.lock_disclaimer.lock": "locked", "compose_form.markdown.marked": "Post markdown enabled", @@ -440,7 +424,7 @@ "compose_form.poll.remove_option": "Remove this answer", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple answers", "compose_form.poll.switch_to_single": "Change poll to allow for a single answer", - "compose_form.poll_placeholder": "Add a poll topic...", + "compose_form.poll_placeholder": "Add a poll topic…", "compose_form.publish": "Post", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", @@ -615,25 +599,6 @@ "edit_profile.save": "Save", "edit_profile.success": "Your profile has been successfully saved!", "email_confirmation.success": "Your email has been confirmed!", - "email_passthru.confirmed.body": "Close this tab and continue the registration process on the {bold} from which you sent this email confirmation.", - "email_passthru.confirmed.heading": "Email Confirmed!", - "email_passthru.fail.expired": "Your email token has expired", - "email_passthru.fail.generic": "Unable to confirm your email", - "email_passthru.fail.invalid_token": "Your token is invalid", - "email_passthru.fail.not_found": "Your email token is invalid.", - "email_passthru.generic_fail.body": "Please request a new email confirmation.", - "email_passthru.generic_fail.heading": "Something Went Wrong", - "email_passthru.success": "Your email has been verified!", - "email_passthru.token_expired.body": "Your email token has expired. Please request a new email confirmation from the {bold} from which you sent this email confirmation.", - "email_passthru.token_expired.heading": "Token Expired", - "email_passthru.token_not_found.body": "Your email token was not found. Please request a new email confirmation from the {bold} from which you sent this email confirmation.", - "email_passthru.token_not_found.heading": "Invalid Token", - "email_verification.email.label": "E-mail address", - "email_verification.fail": "Failed to request email verification.", - "email_verification.header": "Enter your email address", - "email_verification.success": "Verification email sent successfully.", - "email_verification.taken": "is taken", - "email_verifilcation.exists": "This email has already been taken.", "embed.instructions": "Embed this post on your website by copying the code below.", "emoji_button.activity": "Activity", "emoji_button.add_custom": "Add custom emoji", @@ -876,13 +841,7 @@ "groups.suggested.label": "Suggested Groups", "groups.tags.title": "Browse Topics", "hashtag.follow": "Follow hashtag", - "header.home.label": "Home", - "header.login.email.placeholder": "E-mail address", - "header.login.forgot_password": "Forgot password?", "header.login.label": "Log in", - "header.login.password.label": "Password", - "header.login.username.placeholder": "Email or username", - "header.menu.title": "Open menu", "header.register.label": "Register", "home.column_settings.show_reblogs": "Show reposts", "home.column_settings.show_replies": "Show replies", @@ -943,7 +902,7 @@ "keyboard_shortcuts.up": "to move up in the list", "landing_page_modal.download": "Download", "landing_page_modal.helpCenter": "Help Center", - "lightbox.close": "Cancel", + "lightbox.close": "Close", "lightbox.expand": "Expand", "lightbox.minimize": "Minimize", "lightbox.next": "Next", @@ -1042,8 +1001,6 @@ "missing_description_modal.text": "You have not entered a description for all attachments. Continue anyway?", "missing_indicator.label": "Not found", "missing_indicator.sublabel": "This resource could not be found", - "modals.policy.submit": "Accept & Continue", - "modals.policy.updateTitle": "You’ve scored the latest version of {siteTitle}! Take a moment to review the exciting new things we’ve been working on.", "moderation_overlay.contact": "Contact", "moderation_overlay.hide": "Hide content", "moderation_overlay.show": "Show Content", @@ -1111,7 +1068,7 @@ "notification.mentioned": "{name} mentioned you", "notification.move": "{name} moved to {targetName}", "notification.name": "{link}{others}", - "notification.others": " + {count, plural, one {# other} other {# others}}", + "notification.others": "+ {count, plural, one {# other} other {# others}}", "notification.pleroma:chat_mention": "{name} sent you a message", "notification.pleroma:emoji_reaction": "{name} reacted to your post", "notification.pleroma:event_reminder": "An event you are participating in starts soon", @@ -1184,7 +1141,6 @@ "poll_button.add_poll": "Add a poll", "poll_button.remove_poll": "Remove poll", "preferences.fields.auto_play_gif_label": "Auto-play animated GIFs", - "preferences.fields.auto_play_video_label": "Auto-play videos", "preferences.fields.autoload_more_label": "Automatically load more items when scrolled to the bottom of the page", "preferences.fields.autoload_timelines_label": "Automatically load new posts when scrolled to the top of the page", "preferences.fields.boost_modal_label": "Show confirmation dialog before reposting", @@ -1233,7 +1189,6 @@ "regeneration_indicator.sublabel": "Your home feed is being prepared!", "register_invite.lead": "Complete the form below to create an account.", "register_invite.title": "You've been invited to join {siteTitle}!", - "registration.acceptance": "By registering, you agree to the {terms} and {privacy}.", "registration.agreement": "I agree to the {tos}.", "registration.captcha.hint": "Click the image to get a new captcha", "registration.captcha.placeholder": "Enter the pictured text", @@ -1245,27 +1200,13 @@ "registration.fields.password_placeholder": "Password", "registration.fields.username_hint": "Only letters, numbers, and underscores are allowed.", "registration.fields.username_placeholder": "Username", - "registration.header": "Register your account", "registration.newsletter": "Subscribe to newsletter.", "registration.password_mismatch": "Passwords don't match.", - "registration.privacy": "Privacy Policy", "registration.reason": "Why do you want to join?", "registration.reason_hint": "This will help us review your application", "registration.sign_up": "Sign up", "registration.tos": "Terms of Service", "registration.username_unavailable": "Username is already taken.", - "registration.validation.capital_letter": "1 capital letter", - "registration.validation.lowercase_letter": "1 lowercase letter", - "registration.validation.minimum_characters": "8 characters", - "registrations.create_account": "Create an account", - "registrations.error": "Failed to register your account.", - "registrations.get_started": "Let's get started!", - "registrations.password.label": "Password", - "registrations.success": "Welcome to {siteTitle}!", - "registrations.tagline": "Social Media Without Discrimination", - "registrations.unprocessable_entity": "This username has already been taken.", - "registrations.username.hint": "May only contain A-Z, 0-9, and underscores", - "registrations.username.label": "Your username", "reject.success": "Rejected", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", @@ -1387,22 +1328,6 @@ "signup_panel.subtitle": "Sign up now to discuss what's happening.", "signup_panel.title": "New to {site_title}?", "site_preview.preview": "Preview", - "sms_verification.expired": "Your SMS token has expired.", - "sms_verification.fail": "Failed to send SMS message to your phone number.", - "sms_verification.header": "Enter your phone number", - "sms_verification.invalid": "Please enter a valid phone number.", - "sms_verification.modal.enter_code": "We sent you a 6-digit code via SMS. Enter it below.", - "sms_verification.modal.resend_code": "Resend verification code?", - "sms_verification.modal.verify_code": "Verify code", - "sms_verification.modal.verify_help_text": "Verify your phone number to start using {instance}.", - "sms_verification.modal.verify_number": "Verify phone number", - "sms_verification.modal.verify_sms": "Verify SMS", - "sms_verification.modal.verify_title": "Verify your phone number", - "sms_verification.phone.label": "Phone number", - "sms_verification.sent.actions.resend": "Resend verification code?", - "sms_verification.sent.body": "We sent you a 6-digit code via SMS. Enter it below.", - "sms_verification.sent.header": "Verification code", - "sms_verification.success": "A verification code has been sent to your phone number.", "soapbox_config.authenticated_profile_hint": "Users must be logged-in to view replies and media on user profiles.", "soapbox_config.authenticated_profile_label": "Profiles require authentication", "soapbox_config.copyright_footer.meta_fields.label_placeholder": "Copyright footer", @@ -1440,19 +1365,18 @@ "soapbox_config.promo_panel.meta_fields.icon_placeholder": "Icon", "soapbox_config.promo_panel.meta_fields.label_placeholder": "Label", "soapbox_config.promo_panel.meta_fields.url_placeholder": "URL", - "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click Save to apply your changes.", + "soapbox_config.raw_json_hint": "Edit the settings data directly. Changes made directly to the JSON file will override the form fields above. Click \"Save\" to apply your changes.", "soapbox_config.raw_json_invalid": "is invalid", "soapbox_config.raw_json_label": "Advanced: Edit raw JSON data", "soapbox_config.redirect_root_no_login_hint": "Path to redirect the homepage when a user is not logged in.", "soapbox_config.redirect_root_no_login_label": "Redirect homepage", "soapbox_config.save": "Save", "soapbox_config.saved": "Soapbox config saved!", + "soapbox_config.sentry_dsn_hint": "DSN URL for error reporting. Works with Sentry and GlitchTip.", + "soapbox_config.sentry_dsn_label": "Sentry DSN", "soapbox_config.tile_server_attribution_label": "Map tiles attribution", "soapbox_config.tile_server_label": "Map tile server", "soapbox_config.verified_can_edit_name_label": "Allow verified users to edit their own display name.", - "sponsored.info.message": "{siteTitle} displays ads to help fund our service.", - "sponsored.info.title": "Why am I seeing this ad?", - "sponsored.subtitle": "Sponsored post", "status.admin_account": "Moderate @{name}", "status.admin_status": "Open this post in the moderation interface", "status.approval.pending": "Pending approval", @@ -1595,7 +1519,5 @@ "video.pause": "Pause", "video.play": "Play", "video.unmute": "Unmute sound", - "waitlist.actions.verify_number": "Verify phone number", - "waitlist.body": "Welcome back to {title}! You were previously placed on our waitlist. Please verify your phone number to receive immediate access to your account!", "who_to_follow.title": "People To Follow" -} +} \ No newline at end of file diff --git a/src/pages/profile-page.tsx b/src/pages/profile-page.tsx index ea5e55856..4f0531dd7 100644 --- a/src/pages/profile-page.tsx +++ b/src/pages/profile-page.tsx @@ -49,7 +49,7 @@ const ProfilePage: React.FC = ({ params, children }) => { name: 'profile', }, { - text: , + text: , to: `/@${username}/with_replies`, name: 'replies', }, From c62e595c58ddbc933b5d29f413c8d45766d5a352 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 11 Oct 2023 15:19:47 -0500 Subject: [PATCH 7/7] GitLab CI: check yarn i18n --- .gitlab-ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 82f0cd79f..dbc2c6b3a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -62,6 +62,12 @@ build: paths: - soapbox.zip +i18n: + stage: test + script: + - yarn i18n + - git diff --quiet || (echo "Locale files are out of date. Please run `yarn i18n`" && exit 1) + docs-deploy: stage: deploy image: alpine:latest