From 0afa8182c795b1339367005cb0fbc1efdbd96499 Mon Sep 17 00:00:00 2001 From: Dennis Kigen Date: Wed, 8 May 2024 00:46:56 +0300 Subject: [PATCH] (chore) Decouple linting and formatting concerns (#30) --- .eslintrc | 38 +- .github/workflows/e2e.yml | 2 +- .husky/pre-commit | 4 +- __mocks__/react-i18next.js | 23 +- e2e/pages/index.ts | 2 +- e2e/specs/sample-test.spec.ts | 16 +- e2e/support/github/docker-compose.yml | 4 +- i18next-parser.config.js | 38 +- jest.config.js | 36 +- package.json | 25 +- prettier.config.js | 8 + src/boxes/extensions/blue-box.component.tsx | 4 +- src/boxes/extensions/brand-box.component.tsx | 4 +- src/boxes/extensions/red-box.component.tsx | 4 +- src/boxes/slot/boxes.component.tsx | 14 +- src/config-schema.ts | 13 +- src/declarations.d.ts | 8 +- src/greeter/greeter.component.tsx | 34 +- src/greeter/greeter.test.tsx | 24 +- src/index.ts | 35 +- .../patient-getter.component.tsx | 31 +- src/patient-getter/patient-getter.resource.ts | 4 +- src/patient-getter/patient-getter.test.tsx | 30 +- src/resources/resources.component.tsx | 60 +- src/root.component.tsx | 24 +- src/root.test.tsx | 38 +- src/setup-tests.ts | 2 +- webpack.config.js | 2 +- yarn.lock | 1035 ++++++++++------- 29 files changed, 816 insertions(+), 746 deletions(-) create mode 100644 prettier.config.js diff --git a/.eslintrc b/.eslintrc index dfbfb23..5cd48b6 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,16 +1,34 @@ { + "env": { + "node": true + }, + "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"], "parser": "@typescript-eslint/parser", - "plugins": [ - "@typescript-eslint" - ], + "plugins": ["@typescript-eslint", "react-hooks"], "root": true, - "extends": [ - "eslint:recommended", - "plugin:prettier/recommended", - "plugin:@typescript-eslint/recommended", - "ts-react-important-stuff" - ], "rules": { + "react-hooks/exhaustive-deps": "warn", + "react-hooks/rules-of-hooks": "error", + // Disabling these rules for now just to keep the diff small. I'll enable them in a future PR that fixes lint issues. + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-unused-vars": "off", + "@typescript-eslint/no-var-requires": "off", + "@typescript-eslint/ban-ts-comment": "off", + "@typescript-eslint/ban-types": "off", + // Use `import type` instead of `import` for type imports https://typescript-eslint.io/blog/consistent-type-imports-and-exports-why-and-how + "@typescript-eslint/consistent-type-imports": [ + "error", + { + "fixStyle": "inline-type-imports" + } + ], + "prefer-const": "off", + "no-console": ["error", { "allow": ["warn", "error"] }], + "no-unsafe-optional-chaining": "off", + "no-explicit-any": "off", + "no-extra-boolean-cast": "off", + "no-prototype-builtins": "off", + "no-useless-escape": "off", "no-restricted-imports": [ "error", { @@ -36,4 +54,4 @@ } ] } -} \ No newline at end of file +} diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index f835841..e54bf5f 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -39,7 +39,7 @@ jobs: run: npx playwright install chromium --with-deps - name: Build apps - run: yarn turbo run build --color --concurrency=5 + run: yarn turbo build --concurrency=5 - name: Run dev server run: bash e2e/support/github/run-e2e-docker-env.sh diff --git a/.husky/pre-commit b/.husky/pre-commit index d34bdb9..a44dcf7 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -3,5 +3,5 @@ set -e # die on error -yarn pretty-quick --staged -yarn turbo run extract-translations +npx lint-staged +yarn turbo extract-translations diff --git a/__mocks__/react-i18next.js b/__mocks__/react-i18next.js index 83a605f..828ece4 100644 --- a/__mocks__/react-i18next.js +++ b/__mocks__/react-i18next.js @@ -1,15 +1,13 @@ /** At present, this entire mock is boilerplate. */ -const React = require("react"); -const reactI18next = require("react-i18next"); +const React = require('react'); +const reactI18next = require('react-i18next'); -const hasChildren = (node) => - node && (node.children || (node.props && node.props.children)); +const hasChildren = (node) => node && (node.children || (node.props && node.props.children)); -const getChildren = (node) => - node && node.children ? node.children : node.props && node.props.children; +const getChildren = (node) => (node && node.children ? node.children : node.props && node.props.children); const renderNodes = (reactNodes) => { - if (typeof reactNodes === "string") { + if (typeof reactNodes === 'string') { return reactNodes; } @@ -17,18 +15,15 @@ const renderNodes = (reactNodes) => { const child = reactNodes[key]; const isElement = React.isValidElement(child); - if (typeof child === "string") { + if (typeof child === 'string') { return child; } if (hasChildren(child)) { const inner = renderNodes(getChildren(child)); return React.cloneElement(child, { ...child.props, key: i }, inner); } - if (typeof child === "object" && !isElement) { - return Object.keys(child).reduce( - (str, childKey) => `${str}${child[childKey]}`, - "" - ); + if (typeof child === 'object' && !isElement) { + return Object.keys(child).reduce((str, childKey) => `${str}${child[childKey]}`, ''); } return child; @@ -36,7 +31,7 @@ const renderNodes = (reactNodes) => { }; const useMock = [(k) => k, {}]; -useMock.t = (k, o) => (o && o.defaultValue) || (typeof o === "string" ? o : k); +useMock.t = (k, o) => (o && o.defaultValue) || (typeof o === 'string' ? o : k); useMock.i18n = {}; module.exports = { diff --git a/e2e/pages/index.ts b/e2e/pages/index.ts index e74822d..5778f2f 100644 --- a/e2e/pages/index.ts +++ b/e2e/pages/index.ts @@ -1 +1 @@ -export * from './home-page'; \ No newline at end of file +export * from './home-page'; diff --git a/e2e/specs/sample-test.spec.ts b/e2e/specs/sample-test.spec.ts index 729c9fa..725f9df 100644 --- a/e2e/specs/sample-test.spec.ts +++ b/e2e/specs/sample-test.spec.ts @@ -1,11 +1,11 @@ -import test from "@playwright/test"; -import { HomePage } from "../pages"; -import { expect } from "@playwright/test"; +import test from '@playwright/test'; +import { HomePage } from '../pages'; +import { expect } from '@playwright/test'; // This test is a sample E2E test. You can delete it. -test("Sample test", async ({ page}) => { - const homePage = new HomePage(page); - await homePage.goto(); - await expect(homePage.page.getByRole('link', { name: 'Home' })).toBeVisible(); -}); +test('Sample test', async ({ page }) => { + const homePage = new HomePage(page); + await homePage.goto(); + await expect(homePage.page.getByRole('link', { name: 'Home' })).toBeVisible(); +}); diff --git a/e2e/support/github/docker-compose.yml b/e2e/support/github/docker-compose.yml index 6a82976..b95aaf1 100644 --- a/e2e/support/github/docker-compose.yml +++ b/e2e/support/github/docker-compose.yml @@ -1,11 +1,11 @@ # This docker compose file is used to create a backend environment for the e2e.yml workflow. -version: "3.7" +version: '3.7' services: gateway: image: openmrs/openmrs-reference-application-3-gateway:${TAG:-nightly} ports: - - "8080:80" + - '8080:80' frontend: build: diff --git a/i18next-parser.config.js b/i18next-parser.config.js index 6c14d75..c720f96 100644 --- a/i18next-parser.config.js +++ b/i18next-parser.config.js @@ -1,14 +1,14 @@ module.exports = { - contextSeparator: "_", + contextSeparator: '_', // Key separator used in your translation keys createOldCatalogs: false, // Save the \_old files - defaultNamespace: "translations", + defaultNamespace: 'translations', // Default namespace used in your i18next config - defaultValue: "", + defaultValue: '', // Default value to give to empty keys // You may also specify a function accepting the locale, namespace, and key as arguments @@ -18,43 +18,43 @@ module.exports = { keepRemoved: false, // Keep keys from the catalog that are no longer in code - keySeparator: ".", + keySeparator: '.', // Key separator used in your translation keys // If you want to use plain english keys, separators such as `.` and `:` will conflict. You might want to set `keySeparator: false` and `namespaceSeparator: false`. That way, `t('Status: Loading...')` will not think that there are a namespace and three separator dots for instance. // see below for more details lexers: { - hbs: ["HandlebarsLexer"], - handlebars: ["HandlebarsLexer"], + hbs: ['HandlebarsLexer'], + handlebars: ['HandlebarsLexer'], - htm: ["HTMLLexer"], - html: ["HTMLLexer"], + htm: ['HTMLLexer'], + html: ['HTMLLexer'], - mjs: ["JavascriptLexer"], - js: ["JavascriptLexer"], // if you're writing jsx inside .js files, change this to JsxLexer - ts: ["JavascriptLexer"], - jsx: ["JsxLexer"], - tsx: ["JsxLexer"], + mjs: ['JavascriptLexer'], + js: ['JavascriptLexer'], // if you're writing jsx inside .js files, change this to JsxLexer + ts: ['JavascriptLexer'], + jsx: ['JsxLexer'], + tsx: ['JsxLexer'], - default: ["JavascriptLexer"], + default: ['JavascriptLexer'], }, - lineEnding: "auto", + lineEnding: 'auto', // Control the line ending. See options at https://github.com/ryanve/eol - locales: ["en"], + locales: ['en'], // An array of the locales in your applications - namespaceSeparator: ":", + namespaceSeparator: ':', // Namespace separator used in your translation keys // If you want to use plain english keys, separators such as `.` and `:` will conflict. You might want to set `keySeparator: false` and `namespaceSeparator: false`. That way, `t('Status: Loading...')` will not think that there are a namespace and three separator dots for instance. - output: "$NAMESPACE/$LOCALE.json", + output: '$NAMESPACE/$LOCALE.json', // Supports $LOCALE and $NAMESPACE injection // Supports JSON (.json) and YAML (.yml) file formats // Where to write the locale files relative to process.cwd() - pluralSeparator: "_", + pluralSeparator: '_', // Plural separator used in your translation keys // If you want to use plain english keys, separators such as `_` might conflict. You might want to set `pluralSeparator` to a different string that does not occur in your keys. diff --git a/jest.config.js b/jest.config.js index c58e500..3adb554 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,32 +1,32 @@ /** * @returns {Promise} */ -const path = require("path"); +const path = require('path'); module.exports = { collectCoverageFrom: [ - "**/src/**/*.component.tsx", - "!**/node_modules/**", - "!**/vendor/**", - "!**/src/**/*.test.*", - "!**/src/declarations.d.ts", - "!**/e2e/**", + '**/src/**/*.component.tsx', + '!**/node_modules/**', + '!**/vendor/**', + '!**/src/**/*.test.*', + '!**/src/declarations.d.ts', + '!**/e2e/**', ], transform: { - "^.+\\.tsx?$": ["@swc/jest"], + '^.+\\.tsx?$': ['@swc/jest'], }, - transformIgnorePatterns: ["/node_modules/(?!@openmrs)"], + transformIgnorePatterns: ['/node_modules/(?!@openmrs)'], moduleNameMapper: { - "@openmrs/esm-framework": "@openmrs/esm-framework/mock", - "@openmrs/esm-utils": "@openmrs/esm-framework/mock", - "\\.(s?css)$": "identity-obj-proxy", - "^lodash-es/(.*)$": "lodash/$1", - "^dexie$": require.resolve("dexie"), + '@openmrs/esm-framework': '@openmrs/esm-framework/mock', + '@openmrs/esm-utils': '@openmrs/esm-framework/mock', + '\\.(s?css)$': 'identity-obj-proxy', + '^lodash-es/(.*)$': 'lodash/$1', + '^dexie$': require.resolve('dexie'), }, - setupFilesAfterEnv: ["/src/setup-tests.ts"], - testPathIgnorePatterns: [path.resolve(__dirname, "e2e")], - testEnvironment: "jsdom", + setupFilesAfterEnv: ['/src/setup-tests.ts'], + testPathIgnorePatterns: [path.resolve(__dirname, 'e2e')], + testEnvironment: 'jsdom', testEnvironmentOptions: { - url: "http://localhost/", + url: 'http://localhost/', }, }; diff --git a/package.json b/package.json index d68d4f9..6138623 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "serve": "webpack serve --mode=development", "build": "webpack --mode production", "analyze": "webpack --mode=production --env analyze=true", - "lint": "TIMING=1 eslint src --ext js,jsx,ts,tsx", + "lint": "eslint src --ext js,jsx,ts,tsx --max-warnings 0", "prettier": "prettier --write \"src/**/*.{ts,tsx}\" --list-different", "typescript": "tsc", "test": "jest --config jest.config.js --passWithNoTests", @@ -21,11 +21,6 @@ "extract-translations": "i18next 'src/**/*.component.tsx' --config ./i18next-parser.config.js", "test-e2e": "playwright test" }, - "husky": { - "hooks": { - "pre-commit": "pretty-quick --staged && yarn verify" - } - }, "browserslist": [ "extends browserslist-config-openmrs" ], @@ -73,14 +68,14 @@ "@types/react-router": "^5.1.20", "@types/react-router-dom": "^5.3.3", "@types/webpack-env": "^1.18.1", - "@typescript-eslint/eslint-plugin": "^5.61.0", - "@typescript-eslint/parser": "^5.61.0", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", "css-loader": "^6.8.1", "dotenv": "^16.0.3", - "eslint": "^8.44.0", + "eslint": "^8.50.0", "eslint-config-prettier": "^8.8.0", - "eslint-config-ts-react-important-stuff": "^3.0.0", - "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-react-hooks": "^4.6.2", "husky": "^8.0.3", "i18next": "^23.2.8", "i18next-parser": "^8.0.0", @@ -88,19 +83,23 @@ "jest": "^29.7.0", "jest-cli": "^29.7.0", "jest-environment-jsdom": "^29.7.0", + "lint-staged": "^15.2.2", "openmrs": "next", "prettier": "^2.8.8", - "pretty-quick": "^3.1.3", "react": "^18.2.0", "react-dom": "^18.2.0", "react-i18next": "^11.18.6", "react-router-dom": "^6.14.1", "rxjs": "^6.6.7", "swc-loader": "^0.2.3", - "turbo": "^1.12.4", + "turbo": "^1.13.3", "typescript": "^4.9.5", "webpack": "^5.88.1", "webpack-cli": "^5.1.4" }, + "lint-staged": { + "packages/**/src/**/*.{ts,tsx}": "eslint --cache --fix --max-warnings 0", + "*.{css,scss,ts,tsx}": "prettier --write --list-different" + }, "packageManager": "yarn@4.2.1" } diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000..99e9f3d --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,8 @@ +module.exports = { + bracketSpacing: true, + printWidth: 120, + semi: true, + singleQuote: true, + tabWidth: 2, + trailingComma: 'all', +}; diff --git a/src/boxes/extensions/blue-box.component.tsx b/src/boxes/extensions/blue-box.component.tsx index b4598eb..8fc2150 100644 --- a/src/boxes/extensions/blue-box.component.tsx +++ b/src/boxes/extensions/blue-box.component.tsx @@ -5,8 +5,8 @@ * https://o3-docs.vercel.app/docs/extension-system */ -import React from "react"; -import styles from "./box.scss"; +import React from 'react'; +import styles from './box.scss'; const BlueBox: React.FC = () => { return
; diff --git a/src/boxes/extensions/brand-box.component.tsx b/src/boxes/extensions/brand-box.component.tsx index ae52bf5..2389aa9 100644 --- a/src/boxes/extensions/brand-box.component.tsx +++ b/src/boxes/extensions/brand-box.component.tsx @@ -5,8 +5,8 @@ * https://o3-docs.vercel.app/docs/extension-system */ -import React from "react"; -import styles from "./box.scss"; +import React from 'react'; +import styles from './box.scss'; const RedBox: React.FC = () => { return
; diff --git a/src/boxes/extensions/red-box.component.tsx b/src/boxes/extensions/red-box.component.tsx index 768507d..0219b70 100644 --- a/src/boxes/extensions/red-box.component.tsx +++ b/src/boxes/extensions/red-box.component.tsx @@ -5,8 +5,8 @@ * https://o3-docs.vercel.app/docs/extension-system */ -import React from "react"; -import styles from "./box.scss"; +import React from 'react'; +import styles from './box.scss'; const RedBox: React.FC = () => { return
; diff --git a/src/boxes/slot/boxes.component.tsx b/src/boxes/slot/boxes.component.tsx index 56921a8..3d516fc 100644 --- a/src/boxes/slot/boxes.component.tsx +++ b/src/boxes/slot/boxes.component.tsx @@ -1,18 +1,18 @@ -import React from "react"; -import { useTranslation } from "react-i18next"; -import { Extension, ExtensionSlot } from "@openmrs/esm-framework"; -import styles from "./boxes.scss"; +import React from 'react'; +import { useTranslation } from 'react-i18next'; +import { Extension, ExtensionSlot } from '@openmrs/esm-framework'; +import styles from './boxes.scss'; export const Boxes: React.FC = () => { const { t } = useTranslation(); return (
-
{t("extensionSystem", "Extension system")}
+
{t('extensionSystem', 'Extension system')}

{t( - "extensionExplainer", - "Here are some colored boxes. Because they are attached as extensions within a slot, an admin can change what boxes are shown using configuration. These boxes happen to be defined in this module, but they could attach to this slot even if they were in a different module." + 'extensionExplainer', + 'Here are some colored boxes. Because they are attached as extensions within a slot, an admin can change what boxes are shown using configuration. These boxes happen to be defined in this module, but they could attach to this slot even if they were in a different module.', )}

diff --git a/src/config-schema.ts b/src/config-schema.ts index d5230bd..d07a785 100644 --- a/src/config-schema.ts +++ b/src/config-schema.ts @@ -1,4 +1,4 @@ -import { Type, validator } from "@openmrs/esm-framework"; +import { Type, validator } from '@openmrs/esm-framework'; /** * This is the config schema. It expects a configuration object which @@ -24,19 +24,16 @@ export const configSchema = { casualGreeting: { _type: Type.Boolean, _default: false, - _description: "Whether to use a casual greeting (or a formal one).", + _description: 'Whether to use a casual greeting (or a formal one).', }, whoToGreet: { _type: Type.Array, - _default: ["World"], - _description: - "Who should be greeted. Names will be separated by a comma and space.", + _default: ['World'], + _description: 'Who should be greeted. Names will be separated by a comma and space.', _elements: { _type: Type.String, }, - _validators: [ - validator((v) => v.length > 0, "At least one person must be greeted."), - ], + _validators: [validator((v) => v.length > 0, 'At least one person must be greeted.')], }, }; diff --git a/src/declarations.d.ts b/src/declarations.d.ts index c3d2762..dda6181 100644 --- a/src/declarations.d.ts +++ b/src/declarations.d.ts @@ -1,6 +1,6 @@ -declare module "@carbon/react"; -declare module "*.css"; -declare module "*.scss"; -declare module "*.png"; +declare module '@carbon/react'; +declare module '*.css'; +declare module '*.scss'; +declare module '*.png'; declare type SideNavProps = object; diff --git a/src/greeter/greeter.component.tsx b/src/greeter/greeter.component.tsx index ea1b515..e2ecc20 100644 --- a/src/greeter/greeter.component.tsx +++ b/src/greeter/greeter.component.tsx @@ -3,12 +3,12 @@ * comes from `../config-schema.ts`. For more information about the * configuration system, read the docs: https://o3-docs.vercel.app/docs/configuration-system */ -import React from "react"; -import { Tile } from "@carbon/react"; -import { Trans, useTranslation } from "react-i18next"; -import { useConfig } from "@openmrs/esm-framework"; -import { Config } from "../config-schema"; -import styles from "./greeter.scss"; +import React from 'react'; +import { Tile } from '@carbon/react'; +import { Trans, useTranslation } from 'react-i18next'; +import { useConfig } from '@openmrs/esm-framework'; +import { type Config } from '../config-schema'; +import styles from './greeter.scss'; const Greeter: React.FC = () => { const { t } = useTranslation(); @@ -16,28 +16,22 @@ const Greeter: React.FC = () => { return (
-
{t("configSystem", "Configuration system")}
+
{t('configSystem', 'Configuration system')}

- The greeting shown below is driven by the configuration system. To - change the configuration properties, click the spanner icon in the - navbar to pull up the Implementer Tools panel. Then, type{" "} - template into the Search configuration input. This - should filter the configuration properties to show only those that are - relevant to this module. You can change the values of these properties - and click Save to see the changes reflected in the UI + The greeting shown below is driven by the configuration system. To change the configuration properties, click + the spanner icon in the navbar to pull up the Implementer Tools panel. Then, type template into the{' '} + Search configuration input. This should filter the configuration properties to show only those that + are relevant to this module. You can change the values of these properties and click Save to see the + changes reflected in the UI .

- {config.casualGreeting ? ( - hey - ) : ( - hello - )}{" "} + {config.casualGreeting ? hey : hello}{' '} {/* t('world') */} - {config.whoToGreet.join(", ")}! + {config.whoToGreet.join(', ')}!

diff --git a/src/greeter/greeter.test.tsx b/src/greeter/greeter.test.tsx index 71380ab..c4d9cbb 100644 --- a/src/greeter/greeter.test.tsx +++ b/src/greeter/greeter.test.tsx @@ -1,30 +1,28 @@ -import React from "react"; -import { render, screen } from "@testing-library/react"; -import { useConfig } from "@openmrs/esm-framework"; -import { Config } from "../config-schema"; -import Greeter from "./greeter.component"; +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import { useConfig } from '@openmrs/esm-framework'; +import { Config } from '../config-schema'; +import Greeter from './greeter.component'; const mockUseConfig = useConfig as jest.Mock; -it("displays the expected default text", () => { - const config: Config = { casualGreeting: false, whoToGreet: ["World"] }; +it('displays the expected default text', () => { + const config: Config = { casualGreeting: false, whoToGreet: ['World'] }; mockUseConfig.mockReturnValue(config); render(); - expect(screen.getByText(/world/i)).toHaveTextContent("hello World!"); + expect(screen.getByText(/world/i)).toHaveTextContent('hello World!'); }); -it("casually greets my friends", () => { +it('casually greets my friends', () => { const config: Config = { casualGreeting: true, - whoToGreet: ["Ariel", "Barak", "Callum"], + whoToGreet: ['Ariel', 'Barak', 'Callum'], }; mockUseConfig.mockReturnValue(config); render(); - expect(screen.getByText(/ariel/i)).toHaveTextContent( - "hey Ariel, Barak, Callum!" - ); + expect(screen.getByText(/ariel/i)).toHaveTextContent('hey Ariel, Barak, Callum!'); }); diff --git a/src/index.ts b/src/index.ts index a1763f4..f889251 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,13 +4,13 @@ * connects the app shell to the React application(s) that make up this * microfrontend. */ -import { getAsyncLifecycle, defineConfigSchema } from "@openmrs/esm-framework"; -import { configSchema } from "./config-schema"; +import { getAsyncLifecycle, defineConfigSchema } from '@openmrs/esm-framework'; +import { configSchema } from './config-schema'; -const moduleName = "@openmrs/esm-template-app"; +const moduleName = '@openmrs/esm-template-app'; const options = { - featureName: "root-world", + featureName: 'root-world', moduleName, }; @@ -19,12 +19,7 @@ const options = { * are JSON files in the directory `../translations` (which you should * see in the directory structure). */ -export const importTranslation = require.context( - "../translations", - false, - /.json$/, - "lazy" -); +export const importTranslation = require.context('../translations', false, /.json$/, 'lazy'); /** * This function performs any setup that should happen at microfrontend @@ -42,25 +37,13 @@ export function startupApp() { * will be `openmrsSpaBase() + 'root'`, which is usually * `/openmrs/spa/root`. */ -export const root = getAsyncLifecycle( - () => import("./root.component"), - options -); +export const root = getAsyncLifecycle(() => import('./root.component'), options); /** * The following are named exports for the extensions defined in this frontend modules. See the `routes.json` file to see how these are used. */ -export const redBox = getAsyncLifecycle( - () => import("./boxes/extensions/red-box.component"), - options -); +export const redBox = getAsyncLifecycle(() => import('./boxes/extensions/red-box.component'), options); -export const blueBox = getAsyncLifecycle( - () => import("./boxes/extensions/blue-box.component"), - options -); +export const blueBox = getAsyncLifecycle(() => import('./boxes/extensions/blue-box.component'), options); -export const brandBox = getAsyncLifecycle( - () => import("./boxes/extensions/brand-box.component"), - options -); +export const brandBox = getAsyncLifecycle(() => import('./boxes/extensions/brand-box.component'), options); diff --git a/src/patient-getter/patient-getter.component.tsx b/src/patient-getter/patient-getter.component.tsx index 95531de..9647a74 100644 --- a/src/patient-getter/patient-getter.component.tsx +++ b/src/patient-getter/patient-getter.component.tsx @@ -9,11 +9,11 @@ * made. This component renders a loading indicator while `isLoading` is true. */ -import React, { useState } from "react"; -import { Button, InlineLoading, Tile } from "@carbon/react"; -import { useTranslation } from "react-i18next"; -import { usePatient } from "./patient-getter.resource"; -import styles from "./patient-getter.scss"; +import React, { useState } from 'react'; +import { Button, InlineLoading, Tile } from '@carbon/react'; +import { useTranslation } from 'react-i18next'; +import { usePatient } from './patient-getter.resource'; +import styles from './patient-getter.scss'; function PatientGetter() { const { t } = useTranslation(); @@ -22,23 +22,10 @@ function PatientGetter() { return (
-
{t("dataFetching", "Data fetching")}
-

- {t( - "patientGetterExplainer", - "Try clicking the button below to fetch a patient from the backend" - )} - : -

- - {isLoading ? ( - - ) : null} +
{t('dataFetching', 'Data fetching')}
+

{t('patientGetterExplainer', 'Try clicking the button below to fetch a patient from the backend')}:

+ + {isLoading ? : null} {patient ? ( {patient diff --git a/src/patient-getter/patient-getter.resource.ts b/src/patient-getter/patient-getter.resource.ts index f2cfe17..6ffda42 100644 --- a/src/patient-getter/patient-getter.resource.ts +++ b/src/patient-getter/patient-getter.resource.ts @@ -1,5 +1,5 @@ -import useSWR from "swr"; -import { fhirBaseUrl, openmrsFetch } from "@openmrs/esm-framework"; +import useSWR from 'swr'; +import { fhirBaseUrl, openmrsFetch } from '@openmrs/esm-framework'; /** * This hook searches for a patient using the provided search term from the diff --git a/src/patient-getter/patient-getter.test.tsx b/src/patient-getter/patient-getter.test.tsx index f9f5366..d7eb1c8 100644 --- a/src/patient-getter/patient-getter.test.tsx +++ b/src/patient-getter/patient-getter.test.tsx @@ -1,33 +1,33 @@ -import React from "react"; -import { render, screen, waitFor } from "@testing-library/react"; -import userEvent from "@testing-library/user-event"; -import PatientGetter from "./patient-getter.component"; +import React from 'react'; +import { render, screen, waitFor } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import PatientGetter from './patient-getter.component'; /** * This is an idiomatic mock of a backend resource. We generally mock resource fetching functions like `usePatient`, rather than mocking `fetch` or anything lower-level. */ -jest.mock("./patient-getter.resource.ts", () => ({ +jest.mock('./patient-getter.resource.ts', () => ({ usePatient: jest.fn(() => ({ patient: { - birthDate: "1997-05-21", - gender: "male", + birthDate: '1997-05-21', + gender: 'male', name: [ { - family: "Testguy", - given: "Joeboy", - id: "abc123", + family: 'Testguy', + given: 'Joeboy', + id: 'abc123', }, ], }, })), })); -it("gets a patient when the button is clicked", async () => { +it('gets a patient when the button is clicked', async () => { render(); const user = userEvent.setup(); - const heading = screen.getByRole("heading", { name: /data fetching/i }); - const button = screen.getByRole("button", { + const heading = screen.getByRole('heading', { name: /data fetching/i }); + const button = screen.getByRole('button', { name: /get a patient named 'test'/i, }); @@ -36,7 +36,5 @@ it("gets a patient when the button is clicked", async () => { await waitFor(() => user.click(button)); - expect( - screen.getByText(/Joeboy Testguy \/ male \/ 1997-05-21/) - ).toBeInTheDocument(); + expect(screen.getByText(/Joeboy Testguy \/ male \/ 1997-05-21/)).toBeInTheDocument(); }); diff --git a/src/resources/resources.component.tsx b/src/resources/resources.component.tsx index f4607d6..f46eeb1 100644 --- a/src/resources/resources.component.tsx +++ b/src/resources/resources.component.tsx @@ -1,48 +1,35 @@ -import React from "react"; -import { ClickableTile } from "@carbon/react"; -import { ChevronRight } from "@carbon/react/icons"; -import { useTranslation } from "react-i18next"; -import styles from "./resources.scss"; +import React from 'react'; +import { ClickableTile } from '@carbon/react'; +import { ChevronRight } from '@carbon/react/icons'; +import { useTranslation } from 'react-i18next'; +import styles from './resources.scss'; function Resources() { const { t } = useTranslation(); return (
-

{t("resources", "Resources")}

- - {t("usefulLinks", "Below are some links to useful resources")}: - +

{t('resources', 'Resources')}

+ {t('usefulLinks', 'Below are some links to useful resources')}:
@@ -50,22 +37,9 @@ function Resources() { ); } -function Card({ - title, - subtitle, - link, -}: { - title: string; - subtitle: string; - link: string; -}) { +function Card({ title, subtitle, link }: { title: string; subtitle: string; link: string }) { return ( - +

{title}

diff --git a/src/root.component.tsx b/src/root.component.tsx index 3a351cb..7d05489 100644 --- a/src/root.component.tsx +++ b/src/root.component.tsx @@ -8,28 +8,22 @@ * https://openmrs.github.io/openmrs-esm-core/#/main/config */ -import React from "react"; -import { useTranslation } from "react-i18next"; -import { Boxes } from "./boxes/slot/boxes.component"; -import Greeter from "./greeter/greeter.component"; -import PatientGetter from "./patient-getter/patient-getter.component"; -import Resources from "./resources/resources.component"; -import styles from "./root.scss"; +import React from 'react'; +import { useTranslation } from 'react-i18next'; +import { Boxes } from './boxes/slot/boxes.component'; +import Greeter from './greeter/greeter.component'; +import PatientGetter from './patient-getter/patient-getter.component'; +import Resources from './resources/resources.component'; +import styles from './root.scss'; const Root: React.FC = () => { const { t } = useTranslation(); return (
-

- {t("welcomeText", "Welcome to the O3 Template app")} -

+

{t('welcomeText', 'Welcome to the O3 Template app')}

- {t( - "explainer", - "The following examples demonstrate some key features of the O3 framework" - )} - . + {t('explainer', 'The following examples demonstrate some key features of the O3 framework')}.

{/* Greeter: demonstrates the configuration system */} diff --git a/src/root.test.tsx b/src/root.test.tsx index 1dc4046..43d6f78 100644 --- a/src/root.test.tsx +++ b/src/root.test.tsx @@ -21,11 +21,11 @@ * Kent C. Dodds is the inventor of `@testing-library`: * https://testing-library.com/docs/guiding-principles */ -import React from "react"; -import { render, screen } from "@testing-library/react"; -import { useConfig } from "@openmrs/esm-framework"; -import { Config } from "./config-schema"; -import Root from "./root.component"; +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import { useConfig } from '@openmrs/esm-framework'; +import { Config } from './config-schema'; +import Root from './root.component'; /** * This is an idiomatic way of dealing with mocked files. Note that @@ -36,28 +36,16 @@ import Root from "./root.component"; */ const mockUseConfig = useConfig as jest.Mock; -it("renders a landing page for the Template app", () => { - const config: Config = { casualGreeting: false, whoToGreet: ["World"] }; +it('renders a landing page for the Template app', () => { + const config: Config = { casualGreeting: false, whoToGreet: ['World'] }; mockUseConfig.mockReturnValue(config); render(); - expect( - screen.getByRole("heading", { name: /welcome to the o3 template app/i }) - ).toBeInTheDocument(); - expect( - screen.getByRole("heading", { name: /configuration system/i }) - ).toBeInTheDocument(); - expect( - screen.getByRole("heading", { name: /extension system/i }) - ).toBeInTheDocument(); - expect( - screen.getByRole("heading", { name: /data fetching/i }) - ).toBeInTheDocument(); - expect( - screen.getByRole("heading", { name: /resources/i }) - ).toBeInTheDocument(); - expect( - screen.getByRole("button", { name: /get a patient named 'test'/i }) - ).toBeInTheDocument(); + expect(screen.getByRole('heading', { name: /welcome to the o3 template app/i })).toBeInTheDocument(); + expect(screen.getByRole('heading', { name: /configuration system/i })).toBeInTheDocument(); + expect(screen.getByRole('heading', { name: /extension system/i })).toBeInTheDocument(); + expect(screen.getByRole('heading', { name: /data fetching/i })).toBeInTheDocument(); + expect(screen.getByRole('heading', { name: /resources/i })).toBeInTheDocument(); + expect(screen.getByRole('button', { name: /get a patient named 'test'/i })).toBeInTheDocument(); }); diff --git a/src/setup-tests.ts b/src/setup-tests.ts index d0de870..7b0828b 100644 --- a/src/setup-tests.ts +++ b/src/setup-tests.ts @@ -1 +1 @@ -import "@testing-library/jest-dom"; +import '@testing-library/jest-dom'; diff --git a/webpack.config.js b/webpack.config.js index f729685..2c74029 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1 +1 @@ -module.exports = require("openmrs/default-webpack-config"); +module.exports = require('openmrs/default-webpack-config'); diff --git a/yarn.lock b/yarn.lock index 35a8011..5f0e566 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1679,17 +1679,16 @@ __metadata: languageName: node linkType: hard -"@babel/runtime-corejs3@npm:^7.10.2": - version: 7.18.3 - resolution: "@babel/runtime-corejs3@npm:7.18.3" +"@babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.1": + version: 7.18.9 + resolution: "@babel/runtime@npm:7.18.9" dependencies: - core-js-pure: "npm:^3.20.2" regenerator-runtime: "npm:^0.13.4" - checksum: 10/e3287ecf36c5f698cd89a46f809e10222a29921dfcfc87636eea04fc36e892e37ac05e28d1de76fe91912531c16f0b6fe20329a57e208ab6c673b0d14fcf8fc0 + checksum: 10/254985e146f369605456fa4ac5b25308567dffecb49b9d562e22a7e48856949b5f250243f35abb993328ff81bf429112d23b632d04c26feeb71355ca22cdff3c languageName: node linkType: hard -"@babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.5, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.9.2": +"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.5, @babel/runtime@npm:^7.9.2": version: 7.18.3 resolution: "@babel/runtime@npm:7.18.3" dependencies: @@ -1698,15 +1697,6 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.1": - version: 7.18.9 - resolution: "@babel/runtime@npm:7.18.9" - dependencies: - regenerator-runtime: "npm:^0.13.4" - checksum: 10/254985e146f369605456fa4ac5b25308567dffecb49b9d562e22a7e48856949b5f250243f35abb993328ff81bf429112d23b632d04c26feeb71355ca22cdff3c - languageName: node - linkType: hard - "@babel/runtime@npm:^7.14.8, @babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.19.0": version: 7.23.8 resolution: "@babel/runtime@npm:7.23.8" @@ -2524,7 +2514,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0": +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.4.0 resolution: "@eslint-community/eslint-utils@npm:4.4.0" dependencies: @@ -2535,16 +2525,16 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.4.0": - version: 4.5.1 - resolution: "@eslint-community/regexpp@npm:4.5.1" - checksum: 10/e31e456d44e9bf98d59c8ac445549098e1a6d9c4e22053cad58e86a9f78a1e64104ef7f7f46255c442e0c878fe0e566ffba287787d070196c83510ef30d1d197 +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1": + version: 4.10.0 + resolution: "@eslint-community/regexpp@npm:4.10.0" + checksum: 10/8c36169c815fc5d726078e8c71a5b592957ee60d08c6470f9ce0187c8046af1a00afbda0a065cc40ff18d5d83f82aed9793c6818f7304a74a7488dc9f3ecbd42 languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.0": - version: 2.1.0 - resolution: "@eslint/eslintrc@npm:2.1.0" +"@eslint/eslintrc@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/eslintrc@npm:2.1.4" dependencies: ajv: "npm:^6.12.4" debug: "npm:^4.3.2" @@ -2555,14 +2545,14 @@ __metadata: js-yaml: "npm:^4.1.0" minimatch: "npm:^3.1.2" strip-json-comments: "npm:^3.1.1" - checksum: 10/923adf0fbadbe1548b2cbf6d020cc135fcd3bafee073b937a4c2e15b971cff607d987cc82e076d19d86d660dc0b992f688e0f5cf5eabfb5045c8ecdc3e50bd63 + checksum: 10/7a3b14f4b40fc1a22624c3f84d9f467a3d9ea1ca6e9a372116cb92507e485260359465b58e25bcb6c9981b155416b98c9973ad9b796053fd7b3f776a6946bce8 languageName: node linkType: hard -"@eslint/js@npm:8.44.0": - version: 8.44.0 - resolution: "@eslint/js@npm:8.44.0" - checksum: 10/06adec291c023cf1415d5c8dc0b14608d770ffb42b29c65dcbf092051580e1f6080483979c87b2067580b4566e281c0f588efb571303a092b34bca911eca8fb9 +"@eslint/js@npm:8.57.0": + version: 8.57.0 + resolution: "@eslint/js@npm:8.57.0" + checksum: 10/3c501ce8a997cf6cbbaf4ed358af5492875e3550c19b9621413b82caa9ae5382c584b0efa79835639e6e0ddaa568caf3499318e5bdab68643ef4199dce5eb0a0 languageName: node linkType: hard @@ -2622,14 +2612,14 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.10": - version: 0.11.10 - resolution: "@humanwhocodes/config-array@npm:0.11.10" +"@humanwhocodes/config-array@npm:^0.11.14": + version: 0.11.14 + resolution: "@humanwhocodes/config-array@npm:0.11.14" dependencies: - "@humanwhocodes/object-schema": "npm:^1.2.1" - debug: "npm:^4.1.1" + "@humanwhocodes/object-schema": "npm:^2.0.2" + debug: "npm:^4.3.1" minimatch: "npm:^3.0.5" - checksum: 10/f93086ae6a340e739a6bb23d4575b69f52acc4e4e3d62968eaaf77a77db4ba69d6d3e50c0028ba19b634ef6b241553a9d9a13d91b797b3ea33d5d711bb3362fb + checksum: 10/3ffb24ecdfab64014a230e127118d50a1a04d11080cbb748bc21629393d100850496456bbcb4e8c438957fe0934430d731042f1264d6a167b62d32fc2863580a languageName: node linkType: hard @@ -2640,10 +2630,10 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^1.2.1": - version: 1.2.1 - resolution: "@humanwhocodes/object-schema@npm:1.2.1" - checksum: 10/b48a8f87fcd5fdc4ac60a31a8bf710d19cc64556050575e6a35a4a48a8543cf8cde1598a65640ff2cdfbfd165b38f9db4fa3782bea7848eb585cc3db824002e6 +"@humanwhocodes/object-schema@npm:^2.0.2": + version: 2.0.3 + resolution: "@humanwhocodes/object-schema@npm:2.0.3" + checksum: 10/05bb99ed06c16408a45a833f03a732f59bf6184795d4efadd33238ff8699190a8c871ad1121241bb6501589a9598dc83bf25b99dcbcf41e155cdf36e35e937a3 languageName: node linkType: hard @@ -3940,14 +3930,14 @@ __metadata: "@types/react-router": "npm:^5.1.20" "@types/react-router-dom": "npm:^5.3.3" "@types/webpack-env": "npm:^1.18.1" - "@typescript-eslint/eslint-plugin": "npm:^5.61.0" - "@typescript-eslint/parser": "npm:^5.61.0" + "@typescript-eslint/eslint-plugin": "npm:^7.8.0" + "@typescript-eslint/parser": "npm:^7.8.0" css-loader: "npm:^6.8.1" dotenv: "npm:^16.0.3" - eslint: "npm:^8.44.0" + eslint: "npm:^8.50.0" eslint-config-prettier: "npm:^8.8.0" - eslint-config-ts-react-important-stuff: "npm:^3.0.0" - eslint-plugin-prettier: "npm:^4.2.1" + eslint-plugin-prettier: "npm:^5.1.3" + eslint-plugin-react-hooks: "npm:^4.6.2" husky: "npm:^8.0.3" i18next: "npm:^23.2.8" i18next-parser: "npm:^8.0.0" @@ -3955,17 +3945,17 @@ __metadata: jest: "npm:^29.7.0" jest-cli: "npm:^29.7.0" jest-environment-jsdom: "npm:^29.7.0" + lint-staged: "npm:^15.2.2" lodash-es: "npm:^4.17.21" openmrs: "npm:next" prettier: "npm:^2.8.8" - pretty-quick: "npm:^3.1.3" react: "npm:^18.2.0" react-dom: "npm:^18.2.0" react-i18next: "npm:^11.18.6" react-router-dom: "npm:^6.14.1" rxjs: "npm:^6.6.7" swc-loader: "npm:^0.2.3" - turbo: "npm:^1.12.4" + turbo: "npm:^1.13.3" typescript: "npm:^4.9.5" webpack: "npm:^5.88.1" webpack-cli: "npm:^5.1.4" @@ -4026,6 +4016,13 @@ __metadata: languageName: node linkType: hard +"@pkgr/core@npm:^0.1.0": + version: 0.1.1 + resolution: "@pkgr/core@npm:0.1.1" + checksum: 10/6f25fd2e3008f259c77207ac9915b02f1628420403b2630c92a07ff963129238c9262afc9e84344c7a23b5cc1f3965e2cd17e3798219f5fd78a63d144d3cceba + languageName: node + linkType: hard + "@playwright/test@npm:^1.42.1": version: 1.42.1 resolution: "@playwright/test@npm:1.42.1" @@ -5744,6 +5741,13 @@ __metadata: languageName: node linkType: hard +"@types/json-schema@npm:^7.0.15": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 10/1a3c3e06236e4c4aab89499c428d585527ce50c24fe8259e8b3926d3df4cfbbbcf306cfc73ddfb66cbafc973116efd15967020b0f738f63e09e64c7d260519e7 + languageName: node + linkType: hard + "@types/keyv@npm:^3.1.4": version: 3.1.4 resolution: "@types/keyv@npm:3.1.4" @@ -5912,10 +5916,10 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^7.3.12": - version: 7.5.0 - resolution: "@types/semver@npm:7.5.0" - checksum: 10/8fbfbf79e9c14c3c20160a42145a146cba44d9763d0fac78358b394dc36e41bc2590bc4f0129c6fcbbc9b30f12ea1ba821bfe84b29dc80897f315cc7dd251393 +"@types/semver@npm:^7.5.8": + version: 7.5.8 + resolution: "@types/semver@npm:7.5.8" + checksum: 10/3496808818ddb36deabfe4974fd343a78101fa242c4690044ccdc3b95dcf8785b494f5d628f2f47f38a702f8db9c53c67f47d7818f2be1b79f2efb09692e1178 languageName: node linkType: hard @@ -6007,124 +6011,133 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^5.61.0": - version: 5.61.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.61.0" +"@typescript-eslint/eslint-plugin@npm:^7.8.0": + version: 7.8.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.8.0" dependencies: - "@eslint-community/regexpp": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:5.61.0" - "@typescript-eslint/type-utils": "npm:5.61.0" - "@typescript-eslint/utils": "npm:5.61.0" + "@eslint-community/regexpp": "npm:^4.10.0" + "@typescript-eslint/scope-manager": "npm:7.8.0" + "@typescript-eslint/type-utils": "npm:7.8.0" + "@typescript-eslint/utils": "npm:7.8.0" + "@typescript-eslint/visitor-keys": "npm:7.8.0" debug: "npm:^4.3.4" graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.0" - natural-compare-lite: "npm:^1.4.0" - semver: "npm:^7.3.7" - tsutils: "npm:^3.21.0" + ignore: "npm:^5.3.1" + natural-compare: "npm:^1.4.0" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^1.3.0" peerDependencies: - "@typescript-eslint/parser": ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + "@typescript-eslint/parser": ^7.0.0 + eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/22a578b2e76fbdd13ead5db8959b827a116596bff73a13d890233eb92281b91b915720c4fabab2b4f2eee5090a505a745caf281e331f1e4bae2bd28f28cd53fe + checksum: 10/0dc5f0933e1f1196bfc3d2545758d53981c9cd1b501f9795ebc82e471d88b008da3fa33712b60398c5ada7e0853805b3bcffe2ef8b94a25d0502b187663a0b6c languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.61.0": - version: 5.61.0 - resolution: "@typescript-eslint/parser@npm:5.61.0" +"@typescript-eslint/parser@npm:^7.8.0": + version: 7.8.0 + resolution: "@typescript-eslint/parser@npm:7.8.0" dependencies: - "@typescript-eslint/scope-manager": "npm:5.61.0" - "@typescript-eslint/types": "npm:5.61.0" - "@typescript-eslint/typescript-estree": "npm:5.61.0" + "@typescript-eslint/scope-manager": "npm:7.8.0" + "@typescript-eslint/types": "npm:7.8.0" + "@typescript-eslint/typescript-estree": "npm:7.8.0" + "@typescript-eslint/visitor-keys": "npm:7.8.0" debug: "npm:^4.3.4" peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/d07cbc5235082fc1325b25c207e56429798cafd3da325ed4f1ea29971d809a120f3f0f796218d8b72cf20f7587e2c170781b2c91e3b9dcec625b8c2074bd3f0c + checksum: 10/57b7918ec80484903e43e6877aabc37e7e1735fefc730c161777333b38d92cffb562fca9c91e622c0e58fe2fb0f7e47e5237bd0666189a70b3abc62e5c13eb7c languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.61.0": - version: 5.61.0 - resolution: "@typescript-eslint/scope-manager@npm:5.61.0" +"@typescript-eslint/scope-manager@npm:7.8.0": + version: 7.8.0 + resolution: "@typescript-eslint/scope-manager@npm:7.8.0" dependencies: - "@typescript-eslint/types": "npm:5.61.0" - "@typescript-eslint/visitor-keys": "npm:5.61.0" - checksum: 10/db940ad16c8f1eb556264c3e1714d52ad5afa78d33a6cc44adfb3b843917681a7486e9e4849f630d8b1bd9e38ac0c491fe304a3d2602257137a4465d6ecd5792 + "@typescript-eslint/types": "npm:7.8.0" + "@typescript-eslint/visitor-keys": "npm:7.8.0" + checksum: 10/4ebb16bb2aa9b9c7c38326405b97b037849b45a241ebdd6d2b8dfdbc4dbe73b3f4ea34888b2469244303037505d2f263b8bcf260f59fa7a8527d95e8989d260e languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.61.0": - version: 5.61.0 - resolution: "@typescript-eslint/type-utils@npm:5.61.0" +"@typescript-eslint/type-utils@npm:7.8.0": + version: 7.8.0 + resolution: "@typescript-eslint/type-utils@npm:7.8.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:5.61.0" - "@typescript-eslint/utils": "npm:5.61.0" + "@typescript-eslint/typescript-estree": "npm:7.8.0" + "@typescript-eslint/utils": "npm:7.8.0" debug: "npm:^4.3.4" - tsutils: "npm:^3.21.0" + ts-api-utils: "npm:^1.3.0" peerDependencies: - eslint: "*" + eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/7d85d7f246d6ea957e73717c1987de83529058da2cf256df6b577cb2fdc4de9ad4862fda68572d8f8aace11cbcadd427a0c1ddb4f8189f029ded9f67216d4668 + checksum: 10/3c2df3fda8200d04101e438d490ea8025f988774a62af4858bee2764f4bf26f676b2119a83af08a5b0b928634d489d77d783c3deebfe6c48da883f86c7260c41 languageName: node linkType: hard -"@typescript-eslint/types@npm:5.61.0": - version: 5.61.0 - resolution: "@typescript-eslint/types@npm:5.61.0" - checksum: 10/0b949416718f7ed7f15b8406557409cd59f4d44b8ac950a20a5af5fe800551432b40448736c3e48f7ed5eb337a2d62567c298892adb26a49ed3312c165753278 +"@typescript-eslint/types@npm:7.8.0": + version: 7.8.0 + resolution: "@typescript-eslint/types@npm:7.8.0" + checksum: 10/3c7100ecd251c54126c8e4cf00f353cd421a88bf23ac3dc48ff40b1b530596467b4b4fd7e1c91e61a561fe03a6f53eb11acd043fd9f30388d995f32399f43bee languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.61.0": - version: 5.61.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.61.0" +"@typescript-eslint/typescript-estree@npm:7.8.0": + version: 7.8.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.8.0" dependencies: - "@typescript-eslint/types": "npm:5.61.0" - "@typescript-eslint/visitor-keys": "npm:5.61.0" + "@typescript-eslint/types": "npm:7.8.0" + "@typescript-eslint/visitor-keys": "npm:7.8.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" - semver: "npm:^7.3.7" - tsutils: "npm:^3.21.0" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10/3de47b3d8189eeb1d39a90c4c75036582802368e8bc5f072cac7675a3567ea4a9b46c9a3f4802abc4850f434040300cb715405f2742cafb0b4dcffb0211a4e73 + checksum: 10/099a0cae4f6ddf07ccfa881f4c775013f6b2ba8aa5173df6c0a7051e1aa982b82672a21b2bdedd4c35b4e62f44c7db6bac98ed3122ddb0bbe5f62134d8462842 languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.61.0": - version: 5.61.0 - resolution: "@typescript-eslint/utils@npm:5.61.0" +"@typescript-eslint/utils@npm:7.8.0": + version: 7.8.0 + resolution: "@typescript-eslint/utils@npm:7.8.0" dependencies: - "@eslint-community/eslint-utils": "npm:^4.2.0" - "@types/json-schema": "npm:^7.0.9" - "@types/semver": "npm:^7.3.12" - "@typescript-eslint/scope-manager": "npm:5.61.0" - "@typescript-eslint/types": "npm:5.61.0" - "@typescript-eslint/typescript-estree": "npm:5.61.0" - eslint-scope: "npm:^5.1.1" - semver: "npm:^7.3.7" + "@eslint-community/eslint-utils": "npm:^4.4.0" + "@types/json-schema": "npm:^7.0.15" + "@types/semver": "npm:^7.5.8" + "@typescript-eslint/scope-manager": "npm:7.8.0" + "@typescript-eslint/types": "npm:7.8.0" + "@typescript-eslint/typescript-estree": "npm:7.8.0" + semver: "npm:^7.6.0" peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 10/08d177eea9f895ca7fa1840af9d0d07824dd51548ca65358bc09e0aca5d442fca77608105aaa0976d1b862d49d9536cb958e0e04b756b86c8269146a0054fc01 + eslint: ^8.56.0 + checksum: 10/49b7077e22e4456d41cd8fa71126ffd37b0eb325ba49af5495a6fddf3d8529960dd3aaa8d73a7a35f0c42ee4da0849b6cbc00ebefff50f2e3cb8330bbb788d91 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.61.0": - version: 5.61.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.61.0" +"@typescript-eslint/visitor-keys@npm:7.8.0": + version: 7.8.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.8.0" dependencies: - "@typescript-eslint/types": "npm:5.61.0" - eslint-visitor-keys: "npm:^3.3.0" - checksum: 10/cfa1e10331f6c80acdc89309e2e48635ca3944ac85ff222e8c507c6e448561197c0be81cf47852a313bb44ff6b3abd1ef60b6d9e28ba8c32fb9c9f94fd5140d6 + "@typescript-eslint/types": "npm:7.8.0" + eslint-visitor-keys: "npm:^3.4.3" + checksum: 10/1616a7d88ed91958f5fe97468b4c3d3b97119cfd8c9965dfc50140bb189d474d01b4a6dd608669db818380c05e15e4020ba55b8662ed3eda80963d74cdc70038 + languageName: node + linkType: hard + +"@ungap/structured-clone@npm:^1.2.0": + version: 1.2.0 + resolution: "@ungap/structured-clone@npm:1.2.0" + checksum: 10/c6fe89a505e513a7592e1438280db1c075764793a2397877ff1351721fe8792a966a5359769e30242b3cd023f2efb9e63ca2ca88019d73b564488cc20e3eab12 languageName: node linkType: hard @@ -6434,7 +6447,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.1.0, acorn@npm:^8.8.1": +"acorn@npm:^8.1.0, acorn@npm:^8.8.1, acorn@npm:^8.9.0": version: 8.11.3 resolution: "acorn@npm:8.11.3" bin: @@ -6452,15 +6465,6 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.9.0": - version: 8.10.0 - resolution: "acorn@npm:8.10.0" - bin: - acorn: bin/acorn - checksum: 10/522310c20fdc3c271caed3caf0f06c51d61cb42267279566edd1d58e83dbc12eebdafaab666a0f0be1b7ad04af9c6bc2a6f478690a9e6391c3c8b165ada917dd - languageName: node - linkType: hard - "agent-base@npm:6, agent-base@npm:^6.0.2": version: 6.0.2 resolution: "agent-base@npm:6.0.2" @@ -6525,7 +6529,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.12.2, ajv@npm:^6.12.4, ajv@npm:^6.12.5": +"ajv@npm:^6.12.2, ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -6558,6 +6562,13 @@ __metadata: languageName: node linkType: hard +"ansi-escapes@npm:^6.2.0": + version: 6.2.1 + resolution: "ansi-escapes@npm:6.2.1" + checksum: 10/3b064937dc8a0645ed8094bc8b09483ee718f3aa3139746280e6c2ea80e28c0a3ce66973d0f33e88e60021abbf67e5f877deabfc810e75edf8a19dfa128850be + languageName: node + linkType: hard + "ansi-html-community@npm:^0.0.8": version: 0.0.8 resolution: "ansi-html-community@npm:0.0.8" @@ -6574,6 +6585,13 @@ __metadata: languageName: node linkType: hard +"ansi-regex@npm:^6.0.1": + version: 6.0.1 + resolution: "ansi-regex@npm:6.0.1" + checksum: 10/1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 + languageName: node + linkType: hard + "ansi-styles@npm:^3.2.1": version: 3.2.1 resolution: "ansi-styles@npm:3.2.1" @@ -6599,6 +6617,13 @@ __metadata: languageName: node linkType: hard +"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.2.1": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: 10/70fdf883b704d17a5dfc9cde206e698c16bcd74e7f196ab821511651aee4f9f76c9514bdfa6ca3a27b5e49138b89cb222a28caf3afe4567570139577f991df32 + languageName: node + linkType: hard + "any-base@npm:^1.1.0": version: 1.1.0 resolution: "any-base@npm:1.1.0" @@ -6674,16 +6699,6 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:^4.2.2": - version: 4.2.2 - resolution: "aria-query@npm:4.2.2" - dependencies: - "@babel/runtime": "npm:^7.10.2" - "@babel/runtime-corejs3": "npm:^7.10.2" - checksum: 10/c9f0b85c1f948fe76c60bd1e08fc61a73c9d12cae046723d31b1dd0e029a1b23f8d3badea651453475fa3ff974c801fb96065ff58a1344d9bd7eef992096116e - languageName: node - linkType: hard - "aria-query@npm:^5.0.0": version: 5.0.0 resolution: "aria-query@npm:5.0.0" @@ -6691,13 +6706,6 @@ __metadata: languageName: node linkType: hard -"array-differ@npm:^3.0.0": - version: 3.0.0 - resolution: "array-differ@npm:3.0.0" - checksum: 10/117edd9df5c1530bd116c6e8eea891d4bd02850fd89b1b36e532b6540e47ca620a373b81feca1c62d1395d9ae601516ba538abe5e8172d41091da2c546b05fb7 - languageName: node - linkType: hard - "array-flatten@npm:1.1.1": version: 1.1.1 resolution: "array-flatten@npm:1.1.1" @@ -6712,19 +6720,6 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.4": - version: 3.1.5 - resolution: "array-includes@npm:3.1.5" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.1.4" - es-abstract: "npm:^1.19.5" - get-intrinsic: "npm:^1.1.1" - is-string: "npm:^1.0.7" - checksum: 10/006a776c24f4f6cfa7ef108d1703213aa52cee82161acb845c8f80862656019788c115c9f3a4469028fc220dd067a6884fe01107043611d8b3de69be8c1d9e9e - languageName: node - linkType: hard - "array-union@npm:^1.0.1": version: 1.0.2 resolution: "array-union@npm:1.0.2" @@ -6748,20 +6743,6 @@ __metadata: languageName: node linkType: hard -"arrify@npm:^2.0.1": - version: 2.0.1 - resolution: "arrify@npm:2.0.1" - checksum: 10/067c4c1afd182806a82e4c1cb8acee16ab8b5284fbca1ce29408e6e91281c36bb5b612f6ddfbd40a0f7a7e0c75bf2696eb94c027f6e328d6e9c52465c98e4209 - languageName: node - linkType: hard - -"ast-types-flow@npm:^0.0.7": - version: 0.0.7 - resolution: "ast-types-flow@npm:0.0.7" - checksum: 10/663b90e99b56ee2d7f736a6b6fff8b3c5404f28fa1860bb8d83ee5a9bff9e687520d0d6d9db6edff5a34fd4d3c0c11a3beb1cf75e43c9a880cca04371cc99808 - languageName: node - linkType: hard - "async@npm:^3.2.3": version: 3.2.4 resolution: "async@npm:3.2.4" @@ -6801,13 +6782,6 @@ __metadata: languageName: node linkType: hard -"axe-core@npm:^4.3.5": - version: 4.4.2 - resolution: "axe-core@npm:4.4.2" - checksum: 10/3282ce402138771d4202aed07d9412c184b242c81e42ee1069a3b79855e5ee6fe0b864e35bfcfe54201188c500b457e335fc82d13185187a1cf1255bec424a1a - languageName: node - linkType: hard - "axios@npm:^0.21.1": version: 0.21.4 resolution: "axios@npm:0.21.4" @@ -6817,13 +6791,6 @@ __metadata: languageName: node linkType: hard -"axobject-query@npm:^2.2.0": - version: 2.2.0 - resolution: "axobject-query@npm:2.2.0" - checksum: 10/25de4b5ba6b28f5856fab60d86ea20fea941586bc38f33c81b78d66cd7e9c5792a9b9a9e60a38407aa634e01fee6a34133fbbd1d1d3d24cc686de83c6bb1e634 - languageName: node - linkType: hard - "babel-jest@npm:^29.7.0": version: 29.7.0 resolution: "babel-jest@npm:29.7.0" @@ -7397,6 +7364,13 @@ __metadata: languageName: node linkType: hard +"chalk@npm:5.3.0": + version: 5.3.0 + resolution: "chalk@npm:5.3.0" + checksum: 10/6373caaab21bd64c405bfc4bd9672b145647fc9482657b5ea1d549b3b2765054e9d3d928870cdf764fb4aad67555f5061538ff247b8310f110c5c888d92397ea + languageName: node + linkType: hard + "chalk@npm:^2.0.0, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" @@ -7568,6 +7542,25 @@ __metadata: languageName: node linkType: hard +"cli-cursor@npm:^4.0.0": + version: 4.0.0 + resolution: "cli-cursor@npm:4.0.0" + dependencies: + restore-cursor: "npm:^4.0.0" + checksum: 10/ab3f3ea2076e2176a1da29f9d64f72ec3efad51c0960898b56c8a17671365c26e67b735920530eaf7328d61f8bd41c27f46b9cf6e4e10fe2fa44b5e8c0e392cc + languageName: node + linkType: hard + +"cli-truncate@npm:^4.0.0": + version: 4.0.0 + resolution: "cli-truncate@npm:4.0.0" + dependencies: + slice-ansi: "npm:^5.0.0" + string-width: "npm:^7.0.0" + checksum: 10/d5149175fd25ca985731bdeec46a55ec237475cf74c1a5e103baea696aceb45e372ac4acbaabf1316f06bd62e348123060f8191ffadfeedebd2a70a2a7fb199d + languageName: node + linkType: hard + "cli-width@npm:^3.0.0": version: 3.0.0 resolution: "cli-width@npm:3.0.0" @@ -7741,6 +7734,13 @@ __metadata: languageName: node linkType: hard +"colorette@npm:^2.0.20": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 10/0b8de48bfa5d10afc160b8eaa2b9938f34a892530b2f7d7897e0458d9535a066e3998b49da9d21161c78225b272df19ae3a64d6df28b4c9734c0e55bbd02406f + languageName: node + linkType: hard + "colors@npm:1.4.0": version: 1.4.0 resolution: "colors@npm:1.4.0" @@ -7757,6 +7757,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:11.1.0": + version: 11.1.0 + resolution: "commander@npm:11.1.0" + checksum: 10/66bd2d8a0547f6cb1d34022efb25f348e433b0e04ad76a65279b1b09da108f59a4d3001ca539c60a7a46ea38bcf399fc17d91adad76a8cf43845d8dcbaf5cda1 + languageName: node + linkType: hard + "commander@npm:2, commander@npm:^2.20.0": version: 2.20.3 resolution: "commander@npm:2.20.3" @@ -7968,13 +7975,6 @@ __metadata: languageName: node linkType: hard -"core-js-pure@npm:^3.20.2": - version: 3.23.1 - resolution: "core-js-pure@npm:3.23.1" - checksum: 10/b981ace6627d6c5cfc614208332c1faa0524f7c36a00e4ea964adb89e47bdf28ed20cb1068413f00439d5d532ecfdc3b7316de367459fdb003fb0dedb1a78fb9 - languageName: node - linkType: hard - "core-js-pure@npm:^3.36.0": version: 3.37.0 resolution: "core-js-pure@npm:3.37.0" @@ -8043,7 +8043,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": +"cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" dependencies: @@ -8697,13 +8697,6 @@ __metadata: languageName: node linkType: hard -"damerau-levenshtein@npm:^1.0.7": - version: 1.0.8 - resolution: "damerau-levenshtein@npm:1.0.8" - checksum: 10/f4eba1c90170f96be25d95fa3857141b5f81e254f7e4d530da929217b19990ea9a0390fc53d3c1cafac9152fda78e722ea4894f765cf6216be413b5af1fbf821 - languageName: node - linkType: hard - "data-urls@npm:^3.0.2": version: 3.0.2 resolution: "data-urls@npm:3.0.2" @@ -8752,7 +8745,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -9196,6 +9189,13 @@ __metadata: languageName: node linkType: hard +"emoji-regex@npm:^10.3.0": + version: 10.3.0 + resolution: "emoji-regex@npm:10.3.0" + checksum: 10/b9b084ebe904f13bb4b66ee4c29fb41a7a4a1165adcc33c1ce8056c0194b882cc91ebdc782f1a779b5d7ea7375c5064643a7734893d7c657b44c5c6b9d7bf1e7 + languageName: node + linkType: hard + "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -9203,13 +9203,6 @@ __metadata: languageName: node linkType: hard -"emoji-regex@npm:^9.2.2": - version: 9.2.2 - resolution: "emoji-regex@npm:9.2.2" - checksum: 10/915acf859cea7131dac1b2b5c9c8e35c4849e325a1d114c30adb8cd615970f6dca0e27f64f3a4949d7d6ed86ecd79a1c5c63f02e697513cddd7b5835c90948b8 - languageName: node - linkType: hard - "emojis-list@npm:^3.0.0": version: 3.0.0 resolution: "emojis-list@npm:3.0.0" @@ -9506,13 +9499,6 @@ __metadata: languageName: node linkType: hard -"eslint-config-important-stuff@npm:^1.1.0": - version: 1.1.0 - resolution: "eslint-config-important-stuff@npm:1.1.0" - checksum: 10/17986ec3fda91d9b2e08603817d2ff5aaba23651fb6c722e69df02290e31075f62349e16f4f03f1772f08c678904de51e82b735945f3a895f5d29aae7ef8b397 - languageName: node - linkType: hard - "eslint-config-prettier@npm:^8.8.0": version: 8.8.0 resolution: "eslint-config-prettier@npm:8.8.0" @@ -9524,73 +9510,36 @@ __metadata: languageName: node linkType: hard -"eslint-config-react-important-stuff@npm:^3.0.0": - version: 3.0.0 - resolution: "eslint-config-react-important-stuff@npm:3.0.0" - dependencies: - eslint-config-important-stuff: "npm:^1.1.0" - eslint-plugin-jsx-a11y: "npm:^6.3.1" - eslint-plugin-react-hooks: "npm:^4.0.8" - checksum: 10/542547f0be617d27d828cf8d55ac3c640fa928a18b223b5865d943c575999ec8905a2bc581d184fa59f7b633f8b7d14b362ba6d9d5686d4406f03a68c4d534b7 - languageName: node - linkType: hard - -"eslint-config-ts-react-important-stuff@npm:^3.0.0": - version: 3.0.0 - resolution: "eslint-config-ts-react-important-stuff@npm:3.0.0" - dependencies: - eslint-config-react-important-stuff: "npm:^3.0.0" - checksum: 10/47e60bd7352aa3c2d5d16af63204ec7b71681a8a61cefcb13165f0624f063030f5c5d98d6bc4704e9f7df1e104c868997727c3716eed3baeb2082d6801645efc - languageName: node - linkType: hard - -"eslint-plugin-jsx-a11y@npm:^6.3.1": - version: 6.5.1 - resolution: "eslint-plugin-jsx-a11y@npm:6.5.1" - dependencies: - "@babel/runtime": "npm:^7.16.3" - aria-query: "npm:^4.2.2" - array-includes: "npm:^3.1.4" - ast-types-flow: "npm:^0.0.7" - axe-core: "npm:^4.3.5" - axobject-query: "npm:^2.2.0" - damerau-levenshtein: "npm:^1.0.7" - emoji-regex: "npm:^9.2.2" - has: "npm:^1.0.3" - jsx-ast-utils: "npm:^3.2.1" - language-tags: "npm:^1.0.5" - minimatch: "npm:^3.0.4" - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: 10/b8639da5a0614ad998f5a8481705b6ace06ad1a2e2d522f15997b070dda39ca44afd37229aa8b3cf6c310043c3a2992a6de8a700f8522bcd3f86ddcea008fdf0 - languageName: node - linkType: hard - -"eslint-plugin-prettier@npm:^4.2.1": - version: 4.2.1 - resolution: "eslint-plugin-prettier@npm:4.2.1" +"eslint-plugin-prettier@npm:^5.1.3": + version: 5.1.3 + resolution: "eslint-plugin-prettier@npm:5.1.3" dependencies: prettier-linter-helpers: "npm:^1.0.0" + synckit: "npm:^0.8.6" peerDependencies: - eslint: ">=7.28.0" - prettier: ">=2.0.0" + "@types/eslint": ">=8.0.0" + eslint: ">=8.0.0" + eslint-config-prettier: "*" + prettier: ">=3.0.0" peerDependenciesMeta: + "@types/eslint": + optional: true eslint-config-prettier: optional: true - checksum: 10/d387f85dd1bfcb6bc6b794845fee6afb9ebb2375653de6bcde6e615892fb97f85121a7c012a4651b181fc09953bdf54c9bc70cab7ad297019d89ae87dd007e28 + checksum: 10/4f26a30444adc61ed692cdb5a9f7e8d9f5794f0917151051e66755ce032a08c3cc72c8b5d56101412e90f6d77035bd8194ea8731e9c16aacdd5ae345a8dae188 languageName: node linkType: hard -"eslint-plugin-react-hooks@npm:^4.0.8": - version: 4.6.0 - resolution: "eslint-plugin-react-hooks@npm:4.6.0" +"eslint-plugin-react-hooks@npm:^4.6.2": + version: 4.6.2 + resolution: "eslint-plugin-react-hooks@npm:4.6.2" peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 10/3c63134e056a6d98d66e2c475c81f904169db817e89316d14e36269919e31f4876a2588aa0e466ec8ef160465169c627fe823bfdaae7e213946584e4a165a3ac + checksum: 10/5a0680941f34e70cf505bcb6082df31a3e445d193ee95a88ff3483041eb944f4cefdaf7e81b0eb1feb4eeceee8c7c6ddb8a2a6e8c4c0388514a42e16ac7b7a69 languageName: node linkType: hard -"eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1": +"eslint-scope@npm:5.1.1": version: 5.1.1 resolution: "eslint-scope@npm:5.1.1" dependencies: @@ -9600,13 +9549,13 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.2.0": - version: 7.2.0 - resolution: "eslint-scope@npm:7.2.0" +"eslint-scope@npm:^7.2.2": + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" dependencies: esrecurse: "npm:^4.3.0" estraverse: "npm:^5.2.0" - checksum: 10/94d8942840b35bf5e6559bd0f0a8b10610d65b1e44e41295e66ed1fe82f83bc51756e7af607d611b75f435adf821122bd901aa565701596ca1a628db41c0cd87 + checksum: 10/5c660fb905d5883ad018a6fea2b49f3cb5b1cbf2cd4bd08e98646e9864f9bc2c74c0839bed2d292e90a4a328833accc197c8f0baed89cbe8d605d6f918465491 languageName: node linkType: hard @@ -9617,33 +9566,34 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.4.1": - version: 3.4.1 - resolution: "eslint-visitor-keys@npm:3.4.1" - checksum: 10/92641e7ccde470065aa2931161a6a053690a54aae35ae08f38e376ecfd7c012573c542b37a3baecf921eb951fd57943411392f464c2b8f3399adee4723a1369f +"eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 10/3f357c554a9ea794b094a09bd4187e5eacd1bc0d0653c3adeb87962c548e6a1ab8f982b86963ae1337f5d976004146536dcee5d0e2806665b193fbfbf1a9231b languageName: node linkType: hard -"eslint@npm:^8.44.0": - version: 8.44.0 - resolution: "eslint@npm:8.44.0" +"eslint@npm:^8.50.0": + version: 8.57.0 + resolution: "eslint@npm:8.57.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" - "@eslint-community/regexpp": "npm:^4.4.0" - "@eslint/eslintrc": "npm:^2.1.0" - "@eslint/js": "npm:8.44.0" - "@humanwhocodes/config-array": "npm:^0.11.10" + "@eslint-community/regexpp": "npm:^4.6.1" + "@eslint/eslintrc": "npm:^2.1.4" + "@eslint/js": "npm:8.57.0" + "@humanwhocodes/config-array": "npm:^0.11.14" "@humanwhocodes/module-importer": "npm:^1.0.1" "@nodelib/fs.walk": "npm:^1.2.8" - ajv: "npm:^6.10.0" + "@ungap/structured-clone": "npm:^1.2.0" + ajv: "npm:^6.12.4" chalk: "npm:^4.0.0" cross-spawn: "npm:^7.0.2" debug: "npm:^4.3.2" doctrine: "npm:^3.0.0" escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^7.2.0" - eslint-visitor-keys: "npm:^3.4.1" - espree: "npm:^9.6.0" + eslint-scope: "npm:^7.2.2" + eslint-visitor-keys: "npm:^3.4.3" + espree: "npm:^9.6.1" esquery: "npm:^1.4.2" esutils: "npm:^2.0.2" fast-deep-equal: "npm:^3.1.3" @@ -9653,7 +9603,6 @@ __metadata: globals: "npm:^13.19.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.2.0" - import-fresh: "npm:^3.0.0" imurmurhash: "npm:^0.1.4" is-glob: "npm:^4.0.0" is-path-inside: "npm:^3.0.3" @@ -9665,22 +9614,21 @@ __metadata: natural-compare: "npm:^1.4.0" optionator: "npm:^0.9.3" strip-ansi: "npm:^6.0.1" - strip-json-comments: "npm:^3.1.0" text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: 10/3dc7d7ca06aeff93e3b4e9ef4b1d700a6704d10541d41396a9cadebee43fb708fdfb8a2fef8dab89922ef26a9beffd97dcc97d3a6e1167fbc166bf9b48a36aef + checksum: 10/00496e218b23747a7a9817bf58b522276d0dc1f2e546dceb4eea49f9871574088f72f1f069a6b560ef537efa3a75261b8ef70e51ef19033da1cc4c86a755ef15 languageName: node linkType: hard -"espree@npm:^9.6.0": - version: 9.6.0 - resolution: "espree@npm:9.6.0" +"espree@npm:^9.6.0, espree@npm:^9.6.1": + version: 9.6.1 + resolution: "espree@npm:9.6.1" dependencies: acorn: "npm:^8.9.0" acorn-jsx: "npm:^5.3.2" eslint-visitor-keys: "npm:^3.4.1" - checksum: 10/870834c0ab188213ba56fae7003ff9fadbad2b9285dae941840c3d425cedbb2221ad3cffaabd217bc36b96eb80d651c2a2d9b0b1f3b9394b2358b27052c942e2 + checksum: 10/255ab260f0d711a54096bdeda93adff0eadf02a6f9b92f02b323e83a2b7fc258797919437ad331efec3930475feb0142c5ecaaf3cdab4befebd336d47d3f3134 languageName: node linkType: hard @@ -9754,6 +9702,13 @@ __metadata: languageName: node linkType: hard +"eventemitter3@npm:^5.0.1": + version: 5.0.1 + resolution: "eventemitter3@npm:5.0.1" + checksum: 10/ac6423ec31124629c84c7077eed1e6987f6d66c31cf43c6fcbf6c87791d56317ce808d9ead483652436df171b526fc7220eccdc9f3225df334e81582c3cf7dd5 + languageName: node + linkType: hard + "events@npm:^3.2.0": version: 3.3.0 resolution: "events@npm:3.3.0" @@ -9761,6 +9716,23 @@ __metadata: languageName: node linkType: hard +"execa@npm:8.0.1": + version: 8.0.1 + resolution: "execa@npm:8.0.1" + dependencies: + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^8.0.1" + human-signals: "npm:^5.0.0" + is-stream: "npm:^3.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^5.1.0" + onetime: "npm:^6.0.0" + signal-exit: "npm:^4.1.0" + strip-final-newline: "npm:^3.0.0" + checksum: 10/d2ab5fe1e2bb92b9788864d0713f1fce9a07c4594e272c0c97bc18c90569897ab262e4ea58d27a694d288227a2e24f16f5e2575b44224ad9983b799dc7f1098d + languageName: node + linkType: hard + "execa@npm:^0.7.0": version: 0.7.0 resolution: "execa@npm:0.7.0" @@ -9776,23 +9748,6 @@ __metadata: languageName: node linkType: hard -"execa@npm:^4.0.0": - version: 4.1.0 - resolution: "execa@npm:4.1.0" - dependencies: - cross-spawn: "npm:^7.0.0" - get-stream: "npm:^5.0.0" - human-signals: "npm:^1.1.1" - is-stream: "npm:^2.0.0" - merge-stream: "npm:^2.0.0" - npm-run-path: "npm:^4.0.0" - onetime: "npm:^5.1.0" - signal-exit: "npm:^3.0.2" - strip-final-newline: "npm:^2.0.0" - checksum: 10/ed58e41fe424797f3d837c8fb622548eeb72fa03324f2676af95f806568904eb55f196127a097f87d4517cab524c169ece13e6c9e201867de57b089584864b8f - languageName: node - linkType: hard - "execa@npm:^5.0.0": version: 5.1.1 resolution: "execa@npm:5.1.1" @@ -10141,12 +10096,13 @@ __metadata: linkType: hard "flat-cache@npm:^3.0.4": - version: 3.0.4 - resolution: "flat-cache@npm:3.0.4" + version: 3.2.0 + resolution: "flat-cache@npm:3.2.0" dependencies: - flatted: "npm:^3.1.0" + flatted: "npm:^3.2.9" + keyv: "npm:^4.5.3" rimraf: "npm:^3.0.2" - checksum: 10/9fe5d0cb97c988e3b25242e71346965fae22757674db3fca14206850af2efa3ca3b04a3ba0eba8d5e20fd8a3be80a2e14b1c2917e70ffe1acb98a8c3327e4c9f + checksum: 10/02381c6ece5e9fa5b826c9bbea481d7fd77645d96e4b0b1395238124d581d10e56f17f723d897b6d133970f7a57f0fab9148cbbb67237a0a0ffe794ba60c0c70 languageName: node linkType: hard @@ -10164,10 +10120,10 @@ __metadata: languageName: node linkType: hard -"flatted@npm:^3.1.0": - version: 3.2.5 - resolution: "flatted@npm:3.2.5" - checksum: 10/eed01f72ad0317561e4d6187f7408dc391f7849d9cd6700520ce06155d1859539b6899afdfefc815ce51ec48f97d1015350287c541b5302a49581cf25cec1cd2 +"flatted@npm:^3.2.9": + version: 3.3.1 + resolution: "flatted@npm:3.3.1" + checksum: 10/7b8376061d5be6e0d3658bbab8bde587647f68797cf6bfeae9dea0e5137d9f27547ab92aaff3512dd9d1299086a6d61be98e9d48a56d17531b634f77faadbc49 languageName: node linkType: hard @@ -10431,6 +10387,13 @@ __metadata: languageName: node linkType: hard +"get-east-asian-width@npm:^1.0.0": + version: 1.2.0 + resolution: "get-east-asian-width@npm:1.2.0" + checksum: 10/c9b280e7c7c67fb89fa17e867c4a9d1c9f1321aba2a9ee27bff37fb6ca9552bccda328c70a80c1f83a0e39ba1b7e3427e60f47823402d19e7a41b83417ec047a + languageName: node + linkType: hard + "get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.0, get-intrinsic@npm:^1.1.1": version: 1.1.2 resolution: "get-intrinsic@npm:1.1.2" @@ -10463,7 +10426,7 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:^5.0.0, get-stream@npm:^5.1.0": +"get-stream@npm:^5.1.0": version: 5.2.0 resolution: "get-stream@npm:5.2.0" dependencies: @@ -10479,6 +10442,13 @@ __metadata: languageName: node linkType: hard +"get-stream@npm:^8.0.1": + version: 8.0.1 + resolution: "get-stream@npm:8.0.1" + checksum: 10/dde5511e2e65a48e9af80fea64aff11b4921b14b6e874c6f8294c50975095af08f41bfb0b680c887f28b566dd6ec2cb2f960f9d36a323359be324ce98b766e9e + languageName: node + linkType: hard + "get-symbol-description@npm:^1.0.0": version: 1.0.0 resolution: "get-symbol-description@npm:1.0.0" @@ -10597,11 +10567,11 @@ __metadata: linkType: hard "globals@npm:^13.19.0": - version: 13.20.0 - resolution: "globals@npm:13.20.0" + version: 13.24.0 + resolution: "globals@npm:13.24.0" dependencies: type-fest: "npm:^0.20.2" - checksum: 10/9df85cde2f0dce6ac9b3a5e08bec109d2f3b38ddd055a83867e0672c55704866d53ce6a4265859fa630624baadd46f50ca38602a13607ad86be853a8c179d3e7 + checksum: 10/62c5b1997d06674fc7191d3e01e324d3eda4d65ac9cc4e78329fa3b5c4fd42a0e1c8722822497a6964eee075255ce21ccf1eec2d83f92ef3f06653af4d0ee28e languageName: node linkType: hard @@ -11036,13 +11006,6 @@ __metadata: languageName: node linkType: hard -"human-signals@npm:^1.1.1": - version: 1.1.1 - resolution: "human-signals@npm:1.1.1" - checksum: 10/6a58224dffcef5588910b1028bda8623c9a7053460a1fe3367e61921a6b5f6b93aba30f323868a958f968d7de3f5f78421f11d4d9f7e9563b1bd2b00ed9a4deb - languageName: node - linkType: hard - "human-signals@npm:^2.1.0": version: 2.1.0 resolution: "human-signals@npm:2.1.0" @@ -11050,6 +11013,13 @@ __metadata: languageName: node linkType: hard +"human-signals@npm:^5.0.0": + version: 5.0.0 + resolution: "human-signals@npm:5.0.0" + checksum: 10/30f8870d831cdcd2d6ec0486a7d35d49384996742052cee792854273fa9dd9e7d5db06bb7985d4953e337e10714e994e0302e90dc6848069171b05ec836d65b0 + languageName: node + linkType: hard + "humanize-ms@npm:^1.2.1": version: 1.2.1 resolution: "humanize-ms@npm:1.2.1" @@ -11193,13 +11163,20 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.1.4, ignore@npm:^5.2.0": +"ignore@npm:^5.2.0": version: 5.2.0 resolution: "ignore@npm:5.2.0" checksum: 10/30283f05fb7d867ee0e08faebb3e69caba2c6c55092042cd061eac1b37a3e78db72bfcfbb08b3598999344fba3d93a9c693b5401da5faaecc0fb7c2dce87beb4 languageName: node linkType: hard +"ignore@npm:^5.3.1": + version: 5.3.1 + resolution: "ignore@npm:5.3.1" + checksum: 10/0a884c2fbc8c316f0b9f92beaf84464253b73230a4d4d286697be45fca081199191ca33e1c2e82d9e5f851f5e9a48a78e25a35c951e7eb41e59f150db3530065 + languageName: node + linkType: hard + "image-q@npm:^4.0.0": version: 4.0.0 resolution: "image-q@npm:4.0.0" @@ -11216,7 +11193,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.1.0, import-fresh@npm:^3.2.1": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -11508,6 +11485,22 @@ __metadata: languageName: node linkType: hard +"is-fullwidth-code-point@npm:^4.0.0": + version: 4.0.0 + resolution: "is-fullwidth-code-point@npm:4.0.0" + checksum: 10/8ae89bf5057bdf4f57b346fb6c55e9c3dd2549983d54191d722d5c739397a903012cc41a04ee3403fd872e811243ef91a7c5196da7b5841dc6b6aae31a264a8d + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^5.0.0": + version: 5.0.0 + resolution: "is-fullwidth-code-point@npm:5.0.0" + dependencies: + get-east-asian-width: "npm:^1.0.0" + checksum: 10/8dfb2d2831b9e87983c136f5c335cd9d14c1402973e357a8ff057904612ed84b8cba196319fabedf9aefe4639e14fe3afe9d9966d1d006ebeb40fe1fed4babe5 + languageName: node + linkType: hard + "is-function@npm:^1.0.1": version: 1.0.2 resolution: "is-function@npm:1.0.2" @@ -11716,6 +11709,13 @@ __metadata: languageName: node linkType: hard +"is-stream@npm:^3.0.0": + version: 3.0.0 + resolution: "is-stream@npm:3.0.0" + checksum: 10/172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16 + languageName: node + linkType: hard + "is-string@npm:^1.0.5, is-string@npm:^1.0.7": version: 1.0.7 resolution: "is-string@npm:1.0.7" @@ -12584,16 +12584,6 @@ __metadata: languageName: node linkType: hard -"jsx-ast-utils@npm:^3.2.1": - version: 3.3.0 - resolution: "jsx-ast-utils@npm:3.3.0" - dependencies: - array-includes: "npm:^3.1.4" - object.assign: "npm:^4.1.2" - checksum: 10/e8765a041984fbb89cad7a6ef83f6928d6c2487fe1ae58e935c52cb6645d0d76cbaaa64c28d305c43db4f6da09926adae022d0ba6ccd65075c7c8de693269767 - languageName: node - linkType: hard - "keyv@npm:^4.0.0": version: 4.5.2 resolution: "keyv@npm:4.5.2" @@ -12603,6 +12593,15 @@ __metadata: languageName: node linkType: hard +"keyv@npm:^4.5.3": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: "npm:3.0.1" + checksum: 10/167eb6ef64cc84b6fa0780ee50c9de456b422a1e18802209234f7c2cf7eae648c7741f32e50d7e24ccb22b24c13154070b01563d642755b156c357431a191e75 + languageName: node + linkType: hard + "kind-of@npm:^6.0.2": version: 6.0.3 resolution: "kind-of@npm:6.0.3" @@ -12624,22 +12623,6 @@ __metadata: languageName: node linkType: hard -"language-subtag-registry@npm:~0.3.2": - version: 0.3.21 - resolution: "language-subtag-registry@npm:0.3.21" - checksum: 10/86168f7e90f1e3beb94174fcf82a8478688b5fb1b78016cd176e5296be563634c943bba847f3c0f590f411a5a0725b2a4a42242f7f8709278cffde34b7c10e85 - languageName: node - linkType: hard - -"language-tags@npm:^1.0.5": - version: 1.0.5 - resolution: "language-tags@npm:1.0.5" - dependencies: - language-subtag-registry: "npm:~0.3.2" - checksum: 10/2161292ddae73ff2f5a15fd2d753b21096b81324337dff4ad78d702c63210d5beb18892cd53a3455ee6e88065807c8e285e82c40503678951d2071d101a473b4 - languageName: node - linkType: hard - "lazystream@npm:^1.0.0": version: 1.0.1 resolution: "lazystream@npm:1.0.1" @@ -12685,6 +12668,13 @@ __metadata: languageName: node linkType: hard +"lilconfig@npm:3.0.0": + version: 3.0.0 + resolution: "lilconfig@npm:3.0.0" + checksum: 10/55f60f4f9f7b41358cc33875e3696919412683a35aec30c6c60c4f6ecb16fb6d11f7ac856b8458b9b82b21d5f4629649fbfca1de034e8d5b0cc7a70836266db6 + languageName: node + linkType: hard + "lilconfig@npm:^2.0.3": version: 2.0.6 resolution: "lilconfig@npm:2.0.6" @@ -12706,6 +12696,40 @@ __metadata: languageName: node linkType: hard +"lint-staged@npm:^15.2.2": + version: 15.2.2 + resolution: "lint-staged@npm:15.2.2" + dependencies: + chalk: "npm:5.3.0" + commander: "npm:11.1.0" + debug: "npm:4.3.4" + execa: "npm:8.0.1" + lilconfig: "npm:3.0.0" + listr2: "npm:8.0.1" + micromatch: "npm:4.0.5" + pidtree: "npm:0.6.0" + string-argv: "npm:0.3.2" + yaml: "npm:2.3.4" + bin: + lint-staged: bin/lint-staged.js + checksum: 10/5855ae7abf3ffdc2d66e8ad20759915e76544e7c4bcdfef78c82b5c126502284320d9fb0ecde554a6d07747311ab751d0bccbe3468aa5d5a7661774317cd7437 + languageName: node + linkType: hard + +"listr2@npm:8.0.1": + version: 8.0.1 + resolution: "listr2@npm:8.0.1" + dependencies: + cli-truncate: "npm:^4.0.0" + colorette: "npm:^2.0.20" + eventemitter3: "npm:^5.0.1" + log-update: "npm:^6.0.0" + rfdc: "npm:^1.3.0" + wrap-ansi: "npm:^9.0.0" + checksum: 10/3fa83e8b709306b7efab69884ac1af08de3e18449bccf0b4d81f78dc7235dc921a32a5875b1e7deea0650f0faef2bca2d8992f16377d858158eb5a57bbb0d025 + languageName: node + linkType: hard + "load-bmfont@npm:^1.3.1, load-bmfont@npm:^1.4.0": version: 1.4.1 resolution: "load-bmfont@npm:1.4.1" @@ -12835,6 +12859,19 @@ __metadata: languageName: node linkType: hard +"log-update@npm:^6.0.0": + version: 6.0.0 + resolution: "log-update@npm:6.0.0" + dependencies: + ansi-escapes: "npm:^6.2.0" + cli-cursor: "npm:^4.0.0" + slice-ansi: "npm:^7.0.0" + strip-ansi: "npm:^7.1.0" + wrap-ansi: "npm:^9.0.0" + checksum: 10/b345f392c356087290918f1bdaae84ee38699c89c9274fafbb6f4cee2fe6f89f9737000111279a40e651fbe0e9c08803b0457c2a4800d8a405752804f73058a8 + languageName: node + linkType: hard + "loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" @@ -13060,7 +13097,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.2, micromatch@npm:^4.0.4": +"micromatch@npm:4.0.5, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4": version: 4.0.5 resolution: "micromatch@npm:4.0.5" dependencies: @@ -13111,6 +13148,13 @@ __metadata: languageName: node linkType: hard +"mimic-fn@npm:^4.0.0": + version: 4.0.0 + resolution: "mimic-fn@npm:4.0.0" + checksum: 10/995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56 + languageName: node + linkType: hard + "mimic-response@npm:^1.0.0": version: 1.0.1 resolution: "mimic-response@npm:1.0.1" @@ -13177,7 +13221,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.3": +"minimatch@npm:^9.0.3, minimatch@npm:^9.0.4": version: 9.0.4 resolution: "minimatch@npm:9.0.4" dependencies: @@ -13340,13 +13384,6 @@ __metadata: languageName: node linkType: hard -"mri@npm:^1.1.5": - version: 1.2.0 - resolution: "mri@npm:1.2.0" - checksum: 10/6775a1d2228bb9d191ead4efc220bd6be64f943ad3afd4dcb3b3ac8fc7b87034443f666e38805df38e8d047b29f910c3cc7810da0109af83e42c82c73bd3f6bc - languageName: node - linkType: hard - "mrmime@npm:^1.0.0": version: 1.0.1 resolution: "mrmime@npm:1.0.1" @@ -13387,19 +13424,6 @@ __metadata: languageName: node linkType: hard -"multimatch@npm:^4.0.0": - version: 4.0.0 - resolution: "multimatch@npm:4.0.0" - dependencies: - "@types/minimatch": "npm:^3.0.3" - array-differ: "npm:^3.0.0" - array-union: "npm:^2.1.0" - arrify: "npm:^2.0.1" - minimatch: "npm:^3.0.4" - checksum: 10/bdb6a98dad4e919d9a1a2a0db872f44fa2337315f2fd5827d91ae005cf22f4425782bdfa97c10b80d567f0cb3c226c31f4e85f8f6a4a4be4facf9af0de1bb0c2 - languageName: node - linkType: hard - "mute-stream@npm:0.0.8": version: 0.0.8 resolution: "mute-stream@npm:0.0.8" @@ -13425,13 +13449,6 @@ __metadata: languageName: node linkType: hard -"natural-compare-lite@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare-lite@npm:1.4.0" - checksum: 10/5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 - languageName: node - linkType: hard - "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -13708,7 +13725,7 @@ __metadata: languageName: node linkType: hard -"npm-run-path@npm:^4.0.0, npm-run-path@npm:^4.0.1": +"npm-run-path@npm:^4.0.1": version: 4.0.1 resolution: "npm-run-path@npm:4.0.1" dependencies: @@ -13717,6 +13734,15 @@ __metadata: languageName: node linkType: hard +"npm-run-path@npm:^5.1.0": + version: 5.3.0 + resolution: "npm-run-path@npm:5.3.0" + dependencies: + path-key: "npm:^4.0.0" + checksum: 10/ae8e7a89da9594fb9c308f6555c73f618152340dcaae423e5fb3620026fefbec463618a8b761920382d666fa7a2d8d240b6fe320e8a6cdd54dc3687e2b659d25 + languageName: node + linkType: hard + "npmlog@npm:^6.0.0": version: 6.0.2 resolution: "npmlog@npm:6.0.2" @@ -13838,6 +13864,15 @@ __metadata: languageName: node linkType: hard +"onetime@npm:^6.0.0": + version: 6.0.0 + resolution: "onetime@npm:6.0.0" + dependencies: + mimic-fn: "npm:^4.0.0" + checksum: 10/0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788 + languageName: node + linkType: hard + "open@npm:^8.0.9": version: 8.4.0 resolution: "open@npm:8.4.0" @@ -14209,6 +14244,13 @@ __metadata: languageName: node linkType: hard +"path-key@npm:^4.0.0": + version: 4.0.0 + resolution: "path-key@npm:4.0.0" + checksum: 10/8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7 + languageName: node + linkType: hard + "path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" @@ -14272,6 +14314,15 @@ __metadata: languageName: node linkType: hard +"pidtree@npm:0.6.0": + version: 0.6.0 + resolution: "pidtree@npm:0.6.0" + bin: + pidtree: bin/pidtree.js + checksum: 10/ea67fb3159e170fd069020e0108ba7712df9f0fd13c8db9b2286762856ddce414fb33932e08df4bfe36e91fe860b51852aee49a6f56eb4714b69634343add5df + languageName: node + linkType: hard + "pify@npm:^2.0.0, pify@npm:^2.2.0": version: 2.3.0 resolution: "pify@npm:2.3.0" @@ -14858,24 +14909,6 @@ __metadata: languageName: node linkType: hard -"pretty-quick@npm:^3.1.3": - version: 3.1.3 - resolution: "pretty-quick@npm:3.1.3" - dependencies: - chalk: "npm:^3.0.0" - execa: "npm:^4.0.0" - find-up: "npm:^4.1.0" - ignore: "npm:^5.1.4" - mri: "npm:^1.1.5" - multimatch: "npm:^4.0.0" - peerDependencies: - prettier: ">=2.0.0" - bin: - pretty-quick: bin/pretty-quick.js - checksum: 10/95fb5df5a1b5168481c4723d9b4313e3632dcd5f5d45bbba1283005f44543e8b7fd32992d61d116116c83ff9745852f2bb6ea4eb92d8f979c877fffb0d50505a - languageName: node - linkType: hard - "proc-log@npm:^3.0.0": version: 3.0.0 resolution: "proc-log@npm:3.0.0" @@ -15662,6 +15695,16 @@ __metadata: languageName: node linkType: hard +"restore-cursor@npm:^4.0.0": + version: 4.0.0 + resolution: "restore-cursor@npm:4.0.0" + dependencies: + onetime: "npm:^5.1.0" + signal-exit: "npm:^3.0.2" + checksum: 10/5b675c5a59763bf26e604289eab35711525f11388d77f409453904e1e69c0d37ae5889295706b2c81d23bd780165084d040f9b68fffc32cc921519031c4fa4af + languageName: node + linkType: hard + "retry@npm:^0.12.0": version: 0.12.0 resolution: "retry@npm:0.12.0" @@ -15683,6 +15726,13 @@ __metadata: languageName: node linkType: hard +"rfdc@npm:^1.3.0": + version: 1.3.1 + resolution: "rfdc@npm:1.3.1" + checksum: 10/44cc6a82e2fe1db13b7d3c54e9ffd0b40ef070cbde69ffbfbb38dab8cee46bd68ba686784b96365ff08d04798bc121c3465663a0c91f2c421c90546c4366f4a6 + languageName: node + linkType: hard + "rimraf@npm:^2.5.4, rimraf@npm:^2.6.3": version: 2.7.1 resolution: "rimraf@npm:2.7.1" @@ -15994,7 +16044,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.3.7": +"semver@npm:^7.3.2, semver@npm:^7.3.5": version: 7.3.7 resolution: "semver@npm:7.3.7" dependencies: @@ -16016,7 +16066,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.5.3, semver@npm:^7.5.4": +"semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0": version: 7.6.0 resolution: "semver@npm:7.6.0" dependencies: @@ -16182,6 +16232,13 @@ __metadata: languageName: node linkType: hard +"signal-exit@npm:^4.1.0": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 10/c9fa63bbbd7431066174a48ba2dd9986dfd930c3a8b59de9c29d7b6854ec1c12a80d15310869ea5166d413b99f041bfa3dd80a7947bcd44ea8e6eb3ffeabfa1f + languageName: node + linkType: hard + "simple-swizzle@npm:^0.2.2": version: 0.2.2 resolution: "simple-swizzle@npm:0.2.2" @@ -16248,6 +16305,26 @@ __metadata: languageName: node linkType: hard +"slice-ansi@npm:^5.0.0": + version: 5.0.0 + resolution: "slice-ansi@npm:5.0.0" + dependencies: + ansi-styles: "npm:^6.0.0" + is-fullwidth-code-point: "npm:^4.0.0" + checksum: 10/7e600a2a55e333a21ef5214b987c8358fe28bfb03c2867ff2cbf919d62143d1812ac27b4297a077fdaf27a03da3678e49551c93e35f9498a3d90221908a1180e + languageName: node + linkType: hard + +"slice-ansi@npm:^7.0.0": + version: 7.1.0 + resolution: "slice-ansi@npm:7.1.0" + dependencies: + ansi-styles: "npm:^6.2.1" + is-fullwidth-code-point: "npm:^5.0.0" + checksum: 10/10313dd3cf7a2e4b265f527b1684c7c568210b09743fd1bd74f2194715ed13ffba653dc93a5fa79e3b1711518b8990a732cb7143aa01ddafe626e99dfa6474b2 + languageName: node + linkType: hard + "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" @@ -16518,6 +16595,13 @@ __metadata: languageName: node linkType: hard +"string-argv@npm:0.3.2": + version: 0.3.2 + resolution: "string-argv@npm:0.3.2" + checksum: 10/f9d3addf887026b4b5f997a271149e93bf71efc8692e7dc0816e8807f960b18bcb9787b45beedf0f97ff459575ee389af3f189d8b649834cac602f2e857e75af + languageName: node + linkType: hard + "string-length@npm:^4.0.1": version: 4.0.2 resolution: "string-length@npm:4.0.2" @@ -16539,6 +16623,17 @@ __metadata: languageName: node linkType: hard +"string-width@npm:^7.0.0": + version: 7.1.0 + resolution: "string-width@npm:7.1.0" + dependencies: + emoji-regex: "npm:^10.3.0" + get-east-asian-width: "npm:^1.0.0" + strip-ansi: "npm:^7.1.0" + checksum: 10/a183573fe7209e0d294f661846d33f8caf72aa86d983e5b48a0ed45ab15bcccb02c6f0344b58b571988871105457137b8207855ea536827dbc4a376a0f31bf8f + languageName: node + linkType: hard + "string.prototype.matchall@npm:^4.0.6": version: 4.0.7 resolution: "string.prototype.matchall@npm:4.0.7" @@ -16615,6 +16710,15 @@ __metadata: languageName: node linkType: hard +"strip-ansi@npm:^7.1.0": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: "npm:^6.0.1" + checksum: 10/475f53e9c44375d6e72807284024ac5d668ee1d06010740dec0b9744f2ddf47de8d7151f80e5f6190fc8f384e802fdf9504b76a7e9020c9faee7103623338be2 + languageName: node + linkType: hard + "strip-bom@npm:^4.0.0": version: 4.0.0 resolution: "strip-bom@npm:4.0.0" @@ -16643,6 +16747,13 @@ __metadata: languageName: node linkType: hard +"strip-final-newline@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-final-newline@npm:3.0.0" + checksum: 10/23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050 + languageName: node + linkType: hard + "strip-indent@npm:^3.0.0": version: 3.0.0 resolution: "strip-indent@npm:3.0.0" @@ -16652,7 +16763,7 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 10/492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 @@ -16784,6 +16895,16 @@ __metadata: languageName: node linkType: hard +"synckit@npm:^0.8.6": + version: 0.8.8 + resolution: "synckit@npm:0.8.8" + dependencies: + "@pkgr/core": "npm:^0.1.0" + tslib: "npm:^2.6.2" + checksum: 10/2864a5c3e689ad5b991bebbd8a583c5682c4fa08a4f39986b510b6b5d160c08fc3672444069f8f96ed6a9d12772879c674c1f61e728573eadfa90af40a765b74 + languageName: node + linkType: hard + "systemjs@npm:^6.8.3": version: 6.12.1 resolution: "systemjs@npm:6.12.1" @@ -17106,7 +17227,16 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^1.8.1, tslib@npm:^1.9.0": +"ts-api-utils@npm:^1.3.0": + version: 1.3.0 + resolution: "ts-api-utils@npm:1.3.0" + peerDependencies: + typescript: ">=4.2.0" + checksum: 10/3ee44faa24410cd649b5c864e068d438aa437ef64e9e4a66a41646a6d3024d3097a695eeb3fb26ee364705d3cb9653a65756d009e6a53badb6066a5f447bf7ed + languageName: node + linkType: hard + +"tslib@npm:^1.9.0": version: 1.14.1 resolution: "tslib@npm:1.14.1" checksum: 10/7dbf34e6f55c6492637adb81b555af5e3b4f9cc6b998fb440dac82d3b42bdc91560a35a5fb75e20e24a076c651438234da6743d139e4feabf0783f3cdfe1dddb @@ -17127,69 +17257,58 @@ __metadata: languageName: node linkType: hard -"tsutils@npm:^3.21.0": - version: 3.21.0 - resolution: "tsutils@npm:3.21.0" - dependencies: - tslib: "npm:^1.8.1" - peerDependencies: - typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - checksum: 10/ea036bec1dd024e309939ffd49fda7a351c0e87a1b8eb049570dd119d447250e2c56e0e6c00554e8205760e7417793fdebff752a46e573fbe07d4f375502a5b2 - languageName: node - linkType: hard - -"turbo-darwin-64@npm:1.12.4": - version: 1.12.4 - resolution: "turbo-darwin-64@npm:1.12.4" +"turbo-darwin-64@npm:1.13.3": + version: 1.13.3 + resolution: "turbo-darwin-64@npm:1.13.3" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"turbo-darwin-arm64@npm:1.12.4": - version: 1.12.4 - resolution: "turbo-darwin-arm64@npm:1.12.4" +"turbo-darwin-arm64@npm:1.13.3": + version: 1.13.3 + resolution: "turbo-darwin-arm64@npm:1.13.3" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"turbo-linux-64@npm:1.12.4": - version: 1.12.4 - resolution: "turbo-linux-64@npm:1.12.4" +"turbo-linux-64@npm:1.13.3": + version: 1.13.3 + resolution: "turbo-linux-64@npm:1.13.3" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"turbo-linux-arm64@npm:1.12.4": - version: 1.12.4 - resolution: "turbo-linux-arm64@npm:1.12.4" +"turbo-linux-arm64@npm:1.13.3": + version: 1.13.3 + resolution: "turbo-linux-arm64@npm:1.13.3" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"turbo-windows-64@npm:1.12.4": - version: 1.12.4 - resolution: "turbo-windows-64@npm:1.12.4" +"turbo-windows-64@npm:1.13.3": + version: 1.13.3 + resolution: "turbo-windows-64@npm:1.13.3" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"turbo-windows-arm64@npm:1.12.4": - version: 1.12.4 - resolution: "turbo-windows-arm64@npm:1.12.4" +"turbo-windows-arm64@npm:1.13.3": + version: 1.13.3 + resolution: "turbo-windows-arm64@npm:1.13.3" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"turbo@npm:^1.12.4": - version: 1.12.4 - resolution: "turbo@npm:1.12.4" +"turbo@npm:^1.13.3": + version: 1.13.3 + resolution: "turbo@npm:1.13.3" dependencies: - turbo-darwin-64: "npm:1.12.4" - turbo-darwin-arm64: "npm:1.12.4" - turbo-linux-64: "npm:1.12.4" - turbo-linux-arm64: "npm:1.12.4" - turbo-windows-64: "npm:1.12.4" - turbo-windows-arm64: "npm:1.12.4" + turbo-darwin-64: "npm:1.13.3" + turbo-darwin-arm64: "npm:1.13.3" + turbo-linux-64: "npm:1.13.3" + turbo-linux-arm64: "npm:1.13.3" + turbo-windows-64: "npm:1.13.3" + turbo-windows-arm64: "npm:1.13.3" dependenciesMeta: turbo-darwin-64: optional: true @@ -17205,7 +17324,7 @@ __metadata: optional: true bin: turbo: bin/turbo - checksum: 10/c58920f24aed084c59813543bcbd7617977798611a59e791595e965097f86bfad1014a2442ae04de59e363e45e48b2e0cc881f90dab5f97c40cc2f7b7db8bdee + checksum: 10/de96309b3c4c28b51d9436cdec57e3df452dea4ec4512e6c3b7f6596265d4b22d2c16b9c8a674cc1bafa3cc2eea9feb89a807526d6d820f9bca0522d8d86df12 languageName: node linkType: hard @@ -18579,6 +18698,17 @@ __metadata: languageName: node linkType: hard +"wrap-ansi@npm:^9.0.0": + version: 9.0.0 + resolution: "wrap-ansi@npm:9.0.0" + dependencies: + ansi-styles: "npm:^6.2.1" + string-width: "npm:^7.0.0" + strip-ansi: "npm:^7.1.0" + checksum: 10/b9d91564c091cf3978a7c18ca0f3e4d4606e83549dbe59cf76f5e77feefdd5ec91443155e8102630524d10a8c275efac8a7082c0f26fa43e6b989dc150d176ce + languageName: node + linkType: hard + "wrappy@npm:1": version: 1.0.2 resolution: "wrappy@npm:1.0.2" @@ -18726,6 +18856,13 @@ __metadata: languageName: node linkType: hard +"yaml@npm:2.3.4": + version: 2.3.4 + resolution: "yaml@npm:2.3.4" + checksum: 10/f8207ce43065a22268a2806ea6a0fa3974c6fde92b4b2fa0082357e487bc333e85dc518910007e7ac001b532c7c84bd3eccb6c7757e94182b564028b0008f44b + languageName: node + linkType: hard + "yaml@npm:^1.10.0, yaml@npm:^1.10.2, yaml@npm:^1.7.2": version: 1.10.2 resolution: "yaml@npm:1.10.2"