[web] Restructure shared package layouts (#1294)

- Merge @/ui into @/next
- Restructure eslint config
This commit is contained in:
Manav Rathi 2024-04-02 20:55:05 +05:30 committed by GitHub
commit 43e97d225e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
29 changed files with 341 additions and 101 deletions

View file

@ -1,4 +1,4 @@
import { setupI18n } from "@/ui/i18n";
import { setupI18n } from "@/next/i18n";
import { APPS, APP_TITLES } from "@ente/shared/apps/constants";
import { Overlay } from "@ente/shared/components/Container";
import DialogBoxV2 from "@ente/shared/components/DialogBoxV2";

View file

@ -1,4 +1,4 @@
import { setupI18n } from "@/ui/i18n";
import { setupI18n } from "@/next/i18n";
import {
APPS,
APP_TITLES,

View file

@ -1,8 +1,8 @@
module.exports = {
extends: ["@/build-config/eslintrc-typescript-react"],
extends: ["@/build-config/eslintrc-next"],
parserOptions: {
tsconfigRootDir: __dirname,
},
// TODO (MR): Figure out a way to not have to ignored the next config .js
ignorePatterns: [".eslintrc.js", "next.config.js"],
// ignorePatterns: [".eslintrc.js", "next.config.js"],
};

View file

@ -1,4 +1,4 @@
import * as React from "react";
import React from "react";
export const Container: React.FC<React.PropsWithChildren> = ({ children }) => (
<div className="container">{children}</div>

View file

@ -1,4 +1,4 @@
import * as React from "react";
import React from "react";
export const Spinner: React.FC = () => {
return <div className="loading-spinner"></div>;

View file

@ -1,4 +1,5 @@
import { Container } from "components/Container";
import React from "react";
import constants from "utils/strings";
export default function Home() {

View file

@ -1,5 +1,6 @@
import type { AppProps } from "next/app";
import Head from "next/head";
import React from "react";
import constants from "utils/strings";
import "../styles/globals.css";

View file

@ -11,7 +11,7 @@
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"jsx": "react",
"baseUrl": "./src",
"incremental": true,
"allowJs": true

View file

@ -3,7 +3,7 @@ import {
setLocaleInUse,
supportedLocales,
type SupportedLocale,
} from "@/ui/i18n";
} from "@/next/i18n";
import DropdownInput, { DropdownOption } from "components/DropdownInput";
import { t } from "i18next";
import { useRouter } from "next/router";

View file

@ -1,4 +1,4 @@
import { setupI18n } from "@/ui/i18n";
import { setupI18n } from "@/next/i18n";
import {
APPS,
APP_TITLES,

View file

@ -47,10 +47,10 @@ bit more exhaustively when changing the crypto layer.
## UI
The UI package uses "react". This is our core framework.
### React
React also has a sibling "react-dom" package that renders "React" interfaces to
the DOM.
[React](https://react.dev) ("react") is our core framework. It also has a
sibling "react-dom" package that renders JSX to the DOM.
### MUI and Emotion
@ -75,6 +75,8 @@ Emotion itself comes in many parts, of which we need the following:
> Keep `@emotion/styled` as a dependency of your project. Even if you never
> use it explicitly, it's a peer dependency of `@mui/material`.
#### Component selectors
Note that currently the SWC plugin doesn't allow the use of the component
selectors API (i.e using `styled.div` instead of `styled("div")`).
@ -104,3 +106,18 @@ Note that inspite of the "next" in the name of the library, it has nothing to do
with Next.js.
For more details, see [translations.md](translations.md).
## Meta Frameworks
### Next.js
[Next.js](https://nextjs.org) ("next") provides the meta framework for both the
Photos and the Auth app, and also for some of the sidecar apps like accounts and
cast.
We use a limited subset of Next. The main thing we get out of it is a reasonable
set of defaults for bundling our app into a static export which we can then
deploy to our webserver. In addition, the Next.js page router is convenient.
Apart from this, while we use a few tidbits from Next.js here and there, overall
our apps are regular React SPAs, and are not particularly tied to Next.

View file

@ -10,6 +10,9 @@ module.exports = {
parserOptions: {
project: true,
},
settings: {
react: { version: "18.2" },
},
root: true,
ignorePatterns: [".eslintrc.js"],
};

View file

@ -0,0 +1,5 @@
/* eslint-env node */
module.exports = {
extends: ["./eslintrc-react.js"],
ignorePatterns: [".eslintrc.js", "next.config.js", "out"],
};

View file

@ -0,0 +1,8 @@
/* eslint-env node */
module.exports = {
extends: [
"./eslintrc-base.js",
"plugin:react/recommended",
"plugin:react-hooks/recommended",
],
};

View file

@ -1,24 +0,0 @@
/* eslint-env node */
module.exports = {
extends: [
"eslint:recommended",
"plugin:react-hooks/recommended",
"plugin:@typescript-eslint/strict-type-checked",
"plugin:@typescript-eslint/stylistic-type-checked",
],
plugins: ["@typescript-eslint", "react-namespace-import"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.js"],
rules: {
// The recommended way to import React is:
//
// import * as React from "react";
//
// This rule enforces that.
"react-namespace-import/no-namespace-import": "error",
},
};

View file

@ -5,8 +5,8 @@
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^7",
"@typescript-eslint/parser": "^7",
"eslint-plugin-react": "^7.34.1",
"eslint-plugin-react-hooks": "^4.6",
"eslint-plugin-react-namespace-import": "^1.0",
"prettier-plugin-organize-imports": "^3.2",
"prettier-plugin-packagejson": "^2.4"
}

View file

@ -1,5 +1,5 @@
module.exports = {
extends: ["@/build-config/eslintrc-typescript-react"],
extends: ["@/build-config/eslintrc-next"],
parserOptions: {
tsconfigRootDir: __dirname,
},

View file

@ -1,8 +1,9 @@
## @/next
Like [@/ui](../ui/README.md), but for things that require Next.
A base package for our UI layer code, for sharing ode between our Next.js apps.
### Packaging
This (internal) package exports a React TypeScript library. We rely on the
importing project to transpile and bundle it.

View file

@ -51,7 +51,7 @@ const nextConfig = {
emotion: true,
},
// Use Next.js to transpile our internal packages before bundling them.
transpilePackages: ["@/next", "@/ui", "@/utils"],
transpilePackages: ["@/next", "@/utils"],
// Add environment variables to the JavaScript bundle. They will be
// available as `process.env.VAR_NAME` to our code.

View file

@ -3,11 +3,21 @@
"version": "0.0.0",
"private": true,
"dependencies": {
"@/ui": "*",
"next": "^14.1"
"@emotion/react": "^11.11",
"@emotion/styled": "^11.11",
"@mui/icons-material": "^5.15",
"@mui/material": "^5.15",
"get-user-locale": "^2.3",
"i18next": "^23.10",
"i18next-http-backend": "^2.5",
"next": "^14.1",
"react": "^18",
"react-dom": "^18",
"react-i18next": "^14"
},
"devDependencies": {
"@/build-config": "*",
"@types/node": "^20"
"@types/react": "^18",
"@types/react-dom": "^18"
}
}

View file

@ -1,3 +1,3 @@
Deprecated in favor of [@/utils](../utils/README.md) and
[@/ui](../ui/README.md). Don't add new code here - we'll slowly be migrating
[@/next](../next/README.md). Don't add new code here - we'll slowly be migrating
existing code from here to those two packages.

View file

@ -1,6 +0,0 @@
module.exports = {
extends: ["@/build-config/eslintrc-typescript-react"],
parserOptions: {
tsconfigRootDir: __dirname,
},
};

View file

@ -1,8 +0,0 @@
## @/ui
Like [@/utils](../utils/README.md), but for things that require React.
### Packaging
This (internal) package exports a React TypeScript library. We rely on the
importing project to transpile and bundle it.

View file

@ -1,22 +0,0 @@
{
"name": "@/ui",
"version": "0.0.0",
"private": true,
"dependencies": {
"@emotion/react": "^11.11",
"@emotion/styled": "^11.11",
"@mui/icons-material": "^5.15",
"@mui/material": "^5.15",
"get-user-locale": "^2.3",
"i18next": "^23.10",
"i18next-http-backend": "^2.5",
"react": "^18",
"react-dom": "^18",
"react-i18next": "^14"
},
"devDependencies": {
"@/build-config": "*",
"@types/react": "^18",
"@types/react-dom": "^18"
}
}

View file

@ -1,5 +0,0 @@
{
"extends": "@/build-config/tsconfig.transpile.json",
/* Typecheck all files with the given extensions (here or in subfolders) */
"include": ["**/*.ts", "**/*.tsx"]
}

View file

@ -1,5 +1,5 @@
module.exports = {
extends: ["@/build-config/eslintrc-typescript"],
extends: ["@/build-config/eslintrc-base"],
parserOptions: {
tsconfigRootDir: __dirname,
},

View file

@ -639,7 +639,7 @@
resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a"
integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==
"@types/node@*", "@types/node@^20":
"@types/node@*":
version "20.11.20"
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.20.tgz#f0a2aee575215149a62784210ad88b3a34843659"
integrity sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==
@ -1024,6 +1024,18 @@ array.prototype.filter@^1.0.3:
es-array-method-boxes-properly "^1.0.0"
is-string "^1.0.7"
array.prototype.findlast@^1.2.4:
version "1.2.5"
resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904"
integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==
dependencies:
call-bind "^1.0.7"
define-properties "^1.2.1"
es-abstract "^1.23.2"
es-errors "^1.3.0"
es-object-atoms "^1.0.0"
es-shim-unscopables "^1.0.2"
array.prototype.findlastindex@^1.2.3:
version "1.2.4"
resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz#d1c50f0b3a9da191981ff8942a0aedd82794404f"
@ -1055,7 +1067,17 @@ array.prototype.flatmap@^1.3.1, array.prototype.flatmap@^1.3.2:
es-abstract "^1.22.1"
es-shim-unscopables "^1.0.0"
array.prototype.tosorted@^1.1.1:
array.prototype.toreversed@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz#b989a6bf35c4c5051e1dc0325151bf8088954eba"
integrity sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==
dependencies:
call-bind "^1.0.2"
define-properties "^1.2.0"
es-abstract "^1.22.1"
es-shim-unscopables "^1.0.0"
array.prototype.tosorted@^1.1.1, array.prototype.tosorted@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz#c8c89348337e51b8a3c48a9227f9ce93ceedcba8"
integrity sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==
@ -1382,6 +1404,33 @@ damerau-levenshtein@^1.0.8:
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
data-view-buffer@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2"
integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==
dependencies:
call-bind "^1.0.6"
es-errors "^1.3.0"
is-data-view "^1.0.1"
data-view-byte-length@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2"
integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==
dependencies:
call-bind "^1.0.7"
es-errors "^1.3.0"
is-data-view "^1.0.1"
data-view-byte-offset@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a"
integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==
dependencies:
call-bind "^1.0.6"
es-errors "^1.3.0"
is-data-view "^1.0.1"
date-fns@^2.0.1, date-fns@^2.30.0:
version "2.30.0"
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0"
@ -1594,6 +1643,58 @@ es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.22.4:
unbox-primitive "^1.0.2"
which-typed-array "^1.1.14"
es-abstract@^1.23.0, es-abstract@^1.23.2:
version "1.23.3"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0"
integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==
dependencies:
array-buffer-byte-length "^1.0.1"
arraybuffer.prototype.slice "^1.0.3"
available-typed-arrays "^1.0.7"
call-bind "^1.0.7"
data-view-buffer "^1.0.1"
data-view-byte-length "^1.0.1"
data-view-byte-offset "^1.0.0"
es-define-property "^1.0.0"
es-errors "^1.3.0"
es-object-atoms "^1.0.0"
es-set-tostringtag "^2.0.3"
es-to-primitive "^1.2.1"
function.prototype.name "^1.1.6"
get-intrinsic "^1.2.4"
get-symbol-description "^1.0.2"
globalthis "^1.0.3"
gopd "^1.0.1"
has-property-descriptors "^1.0.2"
has-proto "^1.0.3"
has-symbols "^1.0.3"
hasown "^2.0.2"
internal-slot "^1.0.7"
is-array-buffer "^3.0.4"
is-callable "^1.2.7"
is-data-view "^1.0.1"
is-negative-zero "^2.0.3"
is-regex "^1.1.4"
is-shared-array-buffer "^1.0.3"
is-string "^1.0.7"
is-typed-array "^1.1.13"
is-weakref "^1.0.2"
object-inspect "^1.13.1"
object-keys "^1.1.1"
object.assign "^4.1.5"
regexp.prototype.flags "^1.5.2"
safe-array-concat "^1.1.2"
safe-regex-test "^1.0.3"
string.prototype.trim "^1.2.9"
string.prototype.trimend "^1.0.8"
string.prototype.trimstart "^1.0.8"
typed-array-buffer "^1.0.2"
typed-array-byte-length "^1.0.1"
typed-array-byte-offset "^1.0.2"
typed-array-length "^1.0.6"
unbox-primitive "^1.0.2"
which-typed-array "^1.1.15"
es-array-method-boxes-properly@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e"
@ -1632,7 +1733,34 @@ es-iterator-helpers@^1.0.12, es-iterator-helpers@^1.0.15:
iterator.prototype "^1.1.2"
safe-array-concat "^1.1.0"
es-set-tostringtag@^2.0.2:
es-iterator-helpers@^1.0.17:
version "1.0.18"
resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz#4d3424f46b24df38d064af6fbbc89274e29ea69d"
integrity sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==
dependencies:
call-bind "^1.0.7"
define-properties "^1.2.1"
es-abstract "^1.23.0"
es-errors "^1.3.0"
es-set-tostringtag "^2.0.3"
function-bind "^1.1.2"
get-intrinsic "^1.2.4"
globalthis "^1.0.3"
has-property-descriptors "^1.0.2"
has-proto "^1.0.3"
has-symbols "^1.0.3"
internal-slot "^1.0.7"
iterator.prototype "^1.1.2"
safe-array-concat "^1.1.2"
es-object-atoms@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941"
integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==
dependencies:
es-errors "^1.3.0"
es-set-tostringtag@^2.0.2, es-set-tostringtag@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777"
integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==
@ -1766,11 +1894,6 @@ eslint-plugin-jsx-a11y@^6.7.1:
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3"
integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==
eslint-plugin-react-namespace-import@^1.0:
version "1.0.5"
resolved "https://registry.yarnpkg.com/eslint-plugin-react-namespace-import/-/eslint-plugin-react-namespace-import-1.0.5.tgz#9da74bb169d13336a187abd3c42e22d2fe10f91d"
integrity sha512-0gUj6hSRL8cTxyLtVvbu/Rzr3aEmO4fUyJIc3qkGum2Lth+atx3z/JJgBd+PUpaksdv0D6gmBBHwjmn/nPAobQ==
eslint-plugin-react@^7.33.2, eslint-plugin-react@latest:
version "7.33.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608"
@ -1793,6 +1916,30 @@ eslint-plugin-react@^7.33.2, eslint-plugin-react@latest:
semver "^6.3.1"
string.prototype.matchall "^4.0.8"
eslint-plugin-react@^7.34.1:
version "7.34.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz#6806b70c97796f5bbfb235a5d3379ece5f4da997"
integrity sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==
dependencies:
array-includes "^3.1.7"
array.prototype.findlast "^1.2.4"
array.prototype.flatmap "^1.3.2"
array.prototype.toreversed "^1.1.2"
array.prototype.tosorted "^1.1.3"
doctrine "^2.1.0"
es-iterator-helpers "^1.0.17"
estraverse "^5.3.0"
jsx-ast-utils "^2.4.1 || ^3.0.0"
minimatch "^3.1.2"
object.entries "^1.1.7"
object.fromentries "^2.0.7"
object.hasown "^1.1.3"
object.values "^1.1.7"
prop-types "^15.8.1"
resolve "^2.0.0-next.5"
semver "^6.3.1"
string.prototype.matchall "^4.0.10"
eslint-scope@^7.2.2:
version "7.2.2"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
@ -2262,6 +2409,13 @@ hasown@^2.0.0, hasown@^2.0.1:
dependencies:
function-bind "^1.1.2"
hasown@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
dependencies:
function-bind "^1.1.2"
hdbscan@0.0.1-alpha.5:
version "0.0.1-alpha.5"
resolved "https://registry.yarnpkg.com/hdbscan/-/hdbscan-0.0.1-alpha.5.tgz#8b0cd45243fa60d2fe83e31f1e8bc939ff374c0d"
@ -2437,6 +2591,13 @@ is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.13.1:
dependencies:
hasown "^2.0.0"
is-data-view@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f"
integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==
dependencies:
is-typed-array "^1.1.13"
is-date-object@^1.0.1, is-date-object@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
@ -2485,7 +2646,7 @@ is-map@^2.0.1:
resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127"
integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==
is-negative-zero@^2.0.2:
is-negative-zero@^2.0.2, is-negative-zero@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747"
integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==
@ -2530,7 +2691,7 @@ is-set@^2.0.1:
resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec"
integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==
is-shared-array-buffer@^1.0.2:
is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688"
integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==
@ -3047,6 +3208,15 @@ object.hasown@^1.1.2:
define-properties "^1.2.0"
es-abstract "^1.22.1"
object.hasown@^1.1.3:
version "1.1.4"
resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.4.tgz#e270ae377e4c120cdcb7656ce66884a6218283dc"
integrity sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==
dependencies:
define-properties "^1.2.1"
es-abstract "^1.23.2"
es-object-atoms "^1.0.0"
object.values@^1.1.6, object.values@^1.1.7:
version "1.1.7"
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a"
@ -3502,7 +3672,7 @@ resolve@^1.19.0, resolve@^1.22.4:
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
resolve@^2.0.0-next.4:
resolve@^2.0.0-next.4, resolve@^2.0.0-next.5:
version "2.0.0-next.5"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c"
integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==
@ -3545,6 +3715,16 @@ safe-array-concat@^1.1.0:
has-symbols "^1.0.3"
isarray "^2.0.5"
safe-array-concat@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb"
integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==
dependencies:
call-bind "^1.0.7"
get-intrinsic "^1.2.4"
has-symbols "^1.0.3"
isarray "^2.0.5"
safe-buffer@^5.0.1, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
@ -3621,7 +3801,7 @@ set-function-length@^1.2.1:
gopd "^1.0.1"
has-property-descriptors "^1.0.1"
set-function-name@^2.0.0, set-function-name@^2.0.1:
set-function-name@^2.0.0, set-function-name@^2.0.1, set-function-name@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985"
integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==
@ -3658,6 +3838,16 @@ side-channel@^1.0.4:
get-intrinsic "^1.2.4"
object-inspect "^1.13.1"
side-channel@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2"
integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==
dependencies:
call-bind "^1.0.7"
es-errors "^1.3.0"
get-intrinsic "^1.2.4"
object-inspect "^1.13.1"
signal-exit@^4.0.1:
version "4.1.0"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
@ -3739,6 +3929,24 @@ string-width@^5.0.1, string-width@^5.1.2:
emoji-regex "^9.2.2"
strip-ansi "^7.0.1"
string.prototype.matchall@^4.0.10:
version "4.0.11"
resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a"
integrity sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==
dependencies:
call-bind "^1.0.7"
define-properties "^1.2.1"
es-abstract "^1.23.2"
es-errors "^1.3.0"
es-object-atoms "^1.0.0"
get-intrinsic "^1.2.4"
gopd "^1.0.1"
has-symbols "^1.0.3"
internal-slot "^1.0.7"
regexp.prototype.flags "^1.5.2"
set-function-name "^2.0.2"
side-channel "^1.0.6"
string.prototype.matchall@^4.0.8:
version "4.0.10"
resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100"
@ -3763,6 +3971,16 @@ string.prototype.trim@^1.2.8:
define-properties "^1.2.0"
es-abstract "^1.22.1"
string.prototype.trim@^1.2.9:
version "1.2.9"
resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4"
integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==
dependencies:
call-bind "^1.0.7"
define-properties "^1.2.1"
es-abstract "^1.23.0"
es-object-atoms "^1.0.0"
string.prototype.trimend@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e"
@ -3772,6 +3990,15 @@ string.prototype.trimend@^1.0.7:
define-properties "^1.2.0"
es-abstract "^1.22.1"
string.prototype.trimend@^1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229"
integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==
dependencies:
call-bind "^1.0.7"
define-properties "^1.2.1"
es-object-atoms "^1.0.0"
string.prototype.trimstart@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298"
@ -3781,6 +4008,15 @@ string.prototype.trimstart@^1.0.7:
define-properties "^1.2.0"
es-abstract "^1.22.1"
string.prototype.trimstart@^1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde"
integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==
dependencies:
call-bind "^1.0.7"
define-properties "^1.2.1"
es-object-atoms "^1.0.0"
string_decoder@^1.1.1:
version "1.3.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
@ -3970,7 +4206,7 @@ type-fest@^2.19.0:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b"
integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==
typed-array-buffer@^1.0.1:
typed-array-buffer@^1.0.1, typed-array-buffer@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3"
integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==
@ -3979,7 +4215,7 @@ typed-array-buffer@^1.0.1:
es-errors "^1.3.0"
is-typed-array "^1.1.13"
typed-array-byte-length@^1.0.0:
typed-array-byte-length@^1.0.0, typed-array-byte-length@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67"
integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==
@ -3990,7 +4226,7 @@ typed-array-byte-length@^1.0.0:
has-proto "^1.0.3"
is-typed-array "^1.1.13"
typed-array-byte-offset@^1.0.0:
typed-array-byte-offset@^1.0.0, typed-array-byte-offset@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063"
integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==
@ -4014,6 +4250,18 @@ typed-array-length@^1.0.4:
is-typed-array "^1.1.13"
possible-typed-array-names "^1.0.0"
typed-array-length@^1.0.6:
version "1.0.6"
resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3"
integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==
dependencies:
call-bind "^1.0.7"
for-each "^0.3.3"
gopd "^1.0.1"
has-proto "^1.0.3"
is-typed-array "^1.1.13"
possible-typed-array-names "^1.0.0"
typescript@^5:
version "5.3.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37"
@ -4155,6 +4403,17 @@ which-typed-array@^1.1.14, which-typed-array@^1.1.9:
gopd "^1.0.1"
has-tostringtag "^1.0.1"
which-typed-array@^1.1.15:
version "1.1.15"
resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d"
integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==
dependencies:
available-typed-arrays "^1.0.7"
call-bind "^1.0.7"
for-each "^0.3.3"
gopd "^1.0.1"
has-tostringtag "^1.0.2"
which@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"