From 34ad8672311079be32184880c1568eb69e5fae54 Mon Sep 17 00:00:00 2001 From: Daniel Cousens <413395+dcousens@users.noreply.github.com> Date: Wed, 27 Sep 2023 09:36:33 +1000 Subject: [PATCH 01/24] rm eslint from workflows --- .github/workflows/tests_ci.yml | 3 --- examples/graphql-ts-gql/package.json | 6 +++--- package.json | 10 +--------- 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/.github/workflows/tests_ci.yml b/.github/workflows/tests_ci.yml index 0f72a698a23..9934169c014 100644 --- a/.github/workflows/tests_ci.yml +++ b/.github/workflows/tests_ci.yml @@ -25,9 +25,6 @@ jobs: - name: TypeScript run: pnpm lint:types - - name: ESLint - run: pnpm lint:eslint - - name: Preconstruct run: pnpm build diff --git a/examples/graphql-ts-gql/package.json b/examples/graphql-ts-gql/package.json index 1b0356a8634..bd9a83d7efe 100644 --- a/examples/graphql-ts-gql/package.json +++ b/examples/graphql-ts-gql/package.json @@ -14,13 +14,13 @@ "dependencies": { "@keystone-6/core": "^5.7.0", "@prisma/client": "^4.16.2", + "graphql": "^16.8.1" + }, + "devDependencies": { "@ts-gql/compiler": "^0.15.3", "@ts-gql/eslint-plugin": "^0.9.0", "@ts-gql/tag": "^0.7.0", "eslint": "^8.0.0", - "graphql": "^16.8.1" - }, - "devDependencies": { "prisma": "^4.16.2", "typescript": "~5.0.0" }, diff --git a/package.json b/package.json index 567dd3a247b..2341e2c7144 100644 --- a/package.json +++ b/package.json @@ -13,10 +13,9 @@ "format:file": "prettier --write", "format": "prettier --write \"**/*.{js,json,ts,tsx,md,mdx}\"", "ci:version-packages": "pnpm changeset version && cd docs && pnpm remove-conditionals", - "lint:eslint": "eslint . --ext ts,tsx,js", "lint:prettier": "prettier --check \"**/*.{js,json,ts,tsx,md,mdx}\"", "lint:types": "tsc", - "lint": "pnpm lint:prettier && pnpm lint:eslint && pnpm lint:types && pnpm lint:filters", + "lint": "pnpm lint:prettier && pnpm lint:types && pnpm lint:filters", "test": "jest", "test:debug": "node --inspect-brk ./node_modules/.bin/jest --runInBand", "test:admin-ui": "jest tests/admin-ui-tests", @@ -43,15 +42,8 @@ "@types/node-fetch": "^2.5.12", "@types/react": "^18.0.9", "@types/react-dom": "^18.0.4", - "@typescript-eslint/eslint-plugin": "^6.0.0", - "@typescript-eslint/parser": "^6.0.0", "esbuild": "^0.19.0", "esbuild-jest": "^0.5.0", - "eslint": "^8.0.0", - "eslint-plugin-import": "2.25.3", - "eslint-plugin-jest": "^26.0.0", - "eslint-plugin-react": "^7.27.0", - "eslint-plugin-react-hooks": "^4.3.0", "jest": "^29.0.0", "jest-environment-jsdom": "^29.0.0", "prettier": "^2.5.0", From 21461f0c11f51ce2f0d4d3218bf94a1301f47fb1 Mon Sep 17 00:00:00 2001 From: Daniel Cousens <413395+dcousens@users.noreply.github.com> Date: Wed, 27 Sep 2023 09:39:00 +1000 Subject: [PATCH 02/24] drop .eslint files --- .eslintignore | 10 ----- .eslintrc.js | 115 -------------------------------------------------- 2 files changed, 125 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.js diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 5f9da3887be..00000000000 --- a/.eslintignore +++ /dev/null @@ -1,10 +0,0 @@ -node_modules -coverage -dist -reports -docs/public/assets/ -examples/extend-graphql-schema-nexus/nexus-types.ts -examples/framework-remix/build/index.js -tests/test-projects/live-reloading/schemas/syntax-error.js -__generated__ - diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 168b40e5923..00000000000 --- a/.eslintrc.js +++ /dev/null @@ -1,115 +0,0 @@ -const reactComponentTypeMessage = { - message: - 'This type includes the children prop which is generally wrong, instead of using this type, type the props of the component', -}; - -module.exports = { - parser: '@typescript-eslint/parser', - env: { - browser: true, - es6: true, - node: true, - jest: true, - }, - plugins: ['react', 'react-hooks', 'jest', 'import', '@typescript-eslint'], - settings: { - react: { - version: 'detect', - }, - }, - rules: { - curly: ['error', 'multi-line'], - 'jsx-quotes': 'error', - 'no-trailing-spaces': 'error', - 'no-undef': 'error', - 'no-unused-expressions': 'error', - 'react-hooks/rules-of-hooks': 'error', - 'react-hooks/exhaustive-deps': 'error', - '@typescript-eslint/no-unused-vars': 'off', - 'import/no-extraneous-dependencies': [ - 'error', - { - devDependencies: [ - '**/__tests__/**/*', - '**/*test.*', - '**/tests/**/*', - '**/build/**/*', - `packages/fields/src/**/filterTests.*`, - '**/test-fixtures.*', - ], - }, - ], - 'import/no-unresolved': 'error', - 'import/order': 'error', - 'jest/valid-describe': 'off', - 'jest/valid-expect': 'off', - 'jest/no-conditional-expect': 'off', - 'jest/no-standalone-expect': 'off', - 'jest/expect-expect': 'off', - 'jest/no-export': 'off', - 'jest/valid-title': 'off', - 'jest/no-try-expect': 'off', - 'jest/no-disabled-tests': 'error', - 'object-curly-spacing': ['error', 'always'], - quotes: ['error', 'single', { avoidEscape: true, allowTemplateLiterals: true }], - 'react/jsx-boolean-value': 'error', - 'react/jsx-no-undef': 'error', - 'react/jsx-uses-react': 'error', - 'react/jsx-uses-vars': 'error', - 'react/jsx-wrap-multilines': 'error', - 'react/react-in-jsx-scope': 'error', - 'react/self-closing-comp': 'error', - semi: 'off', - strict: 'off', - 'no-restricted-syntax': [ - 'error', - { - // Curious why we have this rule? - // - Enums only work for a subset of use cases that unions of string literals + objects work for and learning one language feature is easier than learning two language features - // - Enums are a new language feature which have runtime semantics which means they change TypeScript from JS + types to JS + types + extra language features which is harder to teach without clear advantages for this specific feature - selector: 'TSEnumDeclaration', - message: 'Use a union of string literals instead of an enum', - }, - ], - '@typescript-eslint/ban-types': [ - 'error', - { - extendDefaults: false, - types: { - Function: - '`Function` types are unsafe. Use more specific function types instead. e.g. (arg: number) => string', - String: { - message: - 'The `String` type refers to the String object which is probably not what you want, you probably want `string` instead which refers to the string primitive type.', - fixWith: 'string', - }, - ComponentType: reactComponentTypeMessage, - FC: reactComponentTypeMessage, - SFC: reactComponentTypeMessage, - 'React.ComponentType': reactComponentTypeMessage, - 'React.FC': reactComponentTypeMessage, - 'React.SFC': reactComponentTypeMessage, - }, - }, - ], - }, - extends: ['plugin:jest/recommended'], - - // Disable some rules for (code blocks within) Markdown docs - overrides: [ - { - files: ['**/*.{ts,tsx}'], - rules: { - // TypeScript already checks for the following things and they conflict with TypeScript - 'import/no-unresolved': 'off', - 'no-undef': 'off', - }, - }, - { - files: ['packages/core/src/scripts/tests/fixtures/**/*.{ts,tsx}'], - rules: { - 'import/no-extraneous-dependencies': 'off', - }, - }, - ], -}; From 150ad95d60da907be44e29fbca7cac0a64120dc0 Mon Sep 17 00:00:00 2001 From: Daniel Cousens <413395+dcousens@users.noreply.github.com> Date: Tue, 14 Nov 2023 15:41:54 +1100 Subject: [PATCH 03/24] drop prettier --- design-system/packages/icons/build-icons.js | 1 - design-system/packages/icons/package.json | 1 - docs/STYLE_GUIDE.md | 174 ---- docs/package.json | 1 - package.json | 20 - packages/core/src/lib/schema-type-printer.tsx | 2 - pnpm-lock.yaml | 837 ++++-------------- prisma-utils/package.json | 3 +- tests/api-tests/access-control/utils.ts | 1 - tests/api-tests/db-enable-logging.test.ts | 1 - .../api-tests/default-value/defaults.test.ts | 1 - tests/api-tests/extend-express-app.test.ts | 1 - tests/api-tests/extend-http-server.test.ts | 1 - tests/api-tests/healthcheck.test.ts | 1 - 14 files changed, 169 insertions(+), 876 deletions(-) delete mode 100644 docs/STYLE_GUIDE.md diff --git a/design-system/packages/icons/build-icons.js b/design-system/packages/icons/build-icons.js index f63c59e31a1..79ee2751220 100644 --- a/design-system/packages/icons/build-icons.js +++ b/design-system/packages/icons/build-icons.js @@ -51,7 +51,6 @@ async function writeIcons() { plugins: [ // '@svgr/plugin-svgo', '@svgr/plugin-jsx', - '@svgr/plugin-prettier', ], }, { componentName: name } diff --git a/design-system/packages/icons/package.json b/design-system/packages/icons/package.json index 721a5d25bed..cb0274e2f5b 100644 --- a/design-system/packages/icons/package.json +++ b/design-system/packages/icons/package.json @@ -1161,7 +1161,6 @@ "devDependencies": { "@svgr/core": "^8.0.0", "@svgr/plugin-jsx": "^8.0.0", - "@svgr/plugin-prettier": "^8.0.0", "@svgr/plugin-svgo": "^8.0.0", "@types/react": "^18.0.9", "chalk": "^4.1.2", diff --git a/docs/STYLE_GUIDE.md b/docs/STYLE_GUIDE.md deleted file mode 100644 index 5ce6742496d..00000000000 --- a/docs/STYLE_GUIDE.md +++ /dev/null @@ -1,174 +0,0 @@ -# Documentation Style - -This document describes the conventions for formatting and style used throughout Keystone 6 docs. - -Many of these rules are enforced by the Prettier Markdown parser, -[Remark](https://github.com/remarkjs/remark/tree/master/packages/remark-parse), -which runs on `yarn format`. -Generally they also align with those suggested in Ciro Santilli's -[Markdown Style Guide](http://www.cirosantilli.com/markdown-style-guide), the de facto standard. -If Prettier doesn't have an opinion on something, and it's not covered here, go with Ciro's suggestion. - -The aim of these conventions is to ensure: - -- Consistency across project docs -- Readability when published as HTML (see especially the [URL Formulation Rules](#url-formulation-rules)) -- Readability as plain text -- Readability when being updated (ie. in diffs) - -## General - -- All docs should include an intro that describes their purpose and context within the project -- Write clearly and keep it factual -- If you must assume knowledge on the part of the reader, link to related docs on the topic -- Emoji can be used, sparingly please ✨ -- Ampersands should be avoided outside of headings - -Also, it should go without saying: - -- Ensure correct spelling; spell-check documents before committing. - (We _favour_ UK/Australian spelling.) -- Ensure correct capitalisation, inc. product names and acronyms (eg: JavaScript, URL, Node.js). - Note, _abbreviations_ like "etc.", "ie." and "eg." are not acronyms; - they should only be capitalised if at the start of a sentence. -- Ensure correct English grammar (or Miss Willings will come for you 👩🏼‍🏫). - This includes periods after abbreviations such as "etc.". - -If in doubt, Google it. - -## Tools - -We run our Markdown through Prettier which applies many of these rule for us. -The `yarn format` command will check and update all Markdown files (and all JS). -You can use `yarn format:file MyNewDoc.md` to "pretty" a specific document. - -If you're using Sublime Text, the following plugins may be of use: - -- [Markdown Extended](https://packagecontrol.io/packages/Markdown%20Extended) -- - Better syntax highlighting of Markdown documents -- [MarkdownPreview](https://packagecontrol.io/packages/MarkdownPreview) -- - Allows Markdown documents to be previewed by running them through the GitHub renderer - -_JM: Any tips for other editors? VS Code anyone?_ - -## Headings - -- We prefer the ["atx" style of headings](http://www.cirosantilli.com/markdown-style-guide/#option-header-atx). - Ie. `#`, `##`, `###`, etc. -- Each document should contain a single level 1 heading -- Headings at all levels use [Title Case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage) -- Try to keep all headings unique so they can be [linked to](#headings) reliably -- Emphasis (eg. **bold**) should not be used in place of headings -- Try to limit `code` use within headings - -## Text Blocks - -The sentences that form a paragraph should generally be separated with newlines. -Longer sentences, such as this one, constructed with multiple clauses, -will often require newline characters at punctuation boundaries. -Likewise, sentences will often require newlines characters when they include -[Markdown formatted links](https://www.markdownguide.org/basic-syntax#links). - -There's no hard limit on line length; Prettier does not enforce one by default. -As a rule of thumb, over 120 characters is too long. - -## Lists - -We'd _like_ to use different bullets styles for items at different levels but Prettier forces hyphens by default. -Let's just go with that. - -- Lists levels are indented with 2 spaces - - Like this - - And this -- Items should end in punctuation only if they contains multiple sentences. - In other cases they should not. - -Ordered lists have their own set of concerns. -It's worth noting that GitHub Markdown only cares which numbers you use for the _first item_; -it takes that as the initial value and counts up from there. -As such, there are two methods that work: - -1. Usually it's preferable to number all items with `1`. - This keeps diffs clean since inserting or removing an item doesn't re-number all subsequent items. -2. However, if the doc refers to the items _by number_ it makes sense to number them ordinarily within the Markdown. - The Prettier will _correct the order of items_ numbered in this way which is nice (but does cause more noise in the diffs). - -## Links - -Links should be used generously to reference related material both inside and outside the current document. -You can link to any section in a markdown document by lower-casing its heading, -replacing spaces with hyphens and prefixing with a hash, eg: the [Text Blocks section](#text-blocks). - -### URL Formulation Rules - -It's important to remember that the Markdown files within this project are used in several places: - -- As raw Markdown in a local dev environment (eg. in editor, search/grep'ing, etc.) -- Published on the [Keystone 6 website](https://keystonejs.com/) -- Published on the [GitHub repo](https://github.com/keystonejs/keystone) -- Published on NPM (only effects package `README.md` docs) - -For links to work across these mediums, certain rules for URLs formulation must be followed: - -- Links _within a file_ (ie. to headings) must not include the file name or path - - Eg. `See the secion on [Foo Config](#foo-config).` -- Links to _other files in the monorepo_ must use.. - - An absolute file path from the monorepo root - - Eg. `/docs/pages/guides/cli.mdx` (**not** `https://keystonejs.com/guides/cli` or `https://github.com/keystonejs/keystone/blob/main/docs/pages/guides/cli.mdx`, etc.) - - The full filename, include the extension - - Eg. `/docs/pages/guides/cli.mdx` (**not** `/docs/guides/cli`) -- Links to `README.md` files must be explicit; they cannot rely on the GitHub behaviour that uses `README.md` at a sort of "index" for a directory - - Eg. `/packages/core/README.md#CLI` (**not** `/packages/core#CLI`) -- Links to directories end in a slash (eg. `/packages/core/`) - - This as is convention for URLs (so as not to be confused with a files) - -## Code and Code Blocks - -Use `single backticks` only when referring to a specific tool or a single commands within a sentence. -Where possible, code blocks (using the triple backtick) should be used instead. -For example, even a small single shell commands should be given a block: - -```sh -node --version -``` - -All code blocks should specify the language they contain; -this produces syntax highlighting when published on GitHub. -A complete list of languages recognised by GitHub can be found in the -[`linguist` languages file](https://github.com/github/linguist/blob/master/lib/linguist/languages.yml). - -## Emphasis - -Emphasis should be used inline, to highlight specific points, -or to indicate notes and comments that aren't part of the document flow. - -- **Bold sections** are delineated with 2 asterisk (`**text**`) -- _Italics_ can be added with a pair of underscores (`_text_`) - -This differs slightly from Ciro's guide (which suggests `**` and `*`). -We believe our version is clearer to read in plain text. -It also aligns more closely with tools like Slack, which is handy. - -Remember, you can also ~~strikeout~~ text using tildes (`~~text~~`). - -## Tables - -Use tables if it helps with clarity. Prettier will re-space the values for you -so the information will remain readable as text. Avoid using code blocks as a -pre-formatted pseudo-table. For example: - -``` -Name Age ---------- ------- -Jimmy 41 -Janet 42 -``` - -Just use a table: - -| Name | Age | -| ----- | --: | -| Jimmy | 41 | -| Janet | 42 | - -Remember you can control the horizontal alignment of text within a column using the `:` char, as above. diff --git a/docs/package.json b/docs/package.json index f39ed7c5e85..dca847e3ac3 100644 --- a/docs/package.json +++ b/docs/package.json @@ -48,7 +48,6 @@ "markdown-it": "^13.0.1", "next": "^13.3.0", "next-compose-plugins": "^2.2.1", - "prettier": "^2.5.0", "prism-react-renderer": "^2.0.0", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/package.json b/package.json index 2341e2c7144..95996e826a0 100644 --- a/package.json +++ b/package.json @@ -10,12 +10,8 @@ "packageManager": "pnpm@8.10.4", "scripts": { "coverage": "jest --coverage", - "format:file": "prettier --write", - "format": "prettier --write \"**/*.{js,json,ts,tsx,md,mdx}\"", "ci:version-packages": "pnpm changeset version && cd docs && pnpm remove-conditionals", - "lint:prettier": "prettier --check \"**/*.{js,json,ts,tsx,md,mdx}\"", "lint:types": "tsc", - "lint": "pnpm lint:prettier && pnpm lint:types && pnpm lint:filters", "test": "jest", "test:debug": "node --inspect-brk ./node_modules/.bin/jest --runInBand", "test:admin-ui": "jest tests/admin-ui-tests", @@ -46,24 +42,8 @@ "esbuild-jest": "^0.5.0", "jest": "^29.0.0", "jest-environment-jsdom": "^29.0.0", - "prettier": "^2.5.0", "typescript": "~5.2.0" }, - "prettier": { - "proseWrap": "preserve", - "singleQuote": true, - "trailingComma": "es5", - "printWidth": 100, - "arrowParens": "avoid", - "overrides": [ - { - "files": "docs/**", - "options": { - "embeddedLanguageFormatting": "off" - } - } - ] - }, "preconstruct": { "packages": [ "packages/*", diff --git a/packages/core/src/lib/schema-type-printer.tsx b/packages/core/src/lib/schema-type-printer.tsx index 77788fdfcc7..e4f5f72a321 100644 --- a/packages/core/src/lib/schema-type-printer.tsx +++ b/packages/core/src/lib/schema-type-printer.tsx @@ -144,7 +144,6 @@ function printListTypeInfo( listKey: string, list: L ) { - // prettier-ignore const { whereInputName, whereUniqueInputName, @@ -154,7 +153,6 @@ function printListTypeInfo( } = list.graphql.names; const listTypeInfoName = `Lists.${listKey}.TypeInfo`; - // prettier-ignore return [ `export type ${listKey} = import('@keystone-6/core').ListConfig<${listTypeInfoName}>;`, `namespace ${listKey} {`, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2867e3ab781..c3301971c9c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,42 +56,18 @@ importers: '@types/react-dom': specifier: ^18.0.4 version: 18.2.15 - '@typescript-eslint/eslint-plugin': - specifier: ^6.0.0 - version: 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/parser': - specifier: ^6.0.0 - version: 6.10.0(eslint@8.53.0)(typescript@5.2.2) esbuild: specifier: ^0.19.0 version: 0.19.5 esbuild-jest: specifier: ^0.5.0 version: 0.5.0(esbuild@0.19.5) - eslint: - specifier: ^8.0.0 - version: 8.53.0 - eslint-plugin-import: - specifier: 2.25.3 - version: 2.25.3(@typescript-eslint/parser@6.10.0)(eslint@8.53.0) - eslint-plugin-jest: - specifier: ^26.0.0 - version: 26.9.0(@typescript-eslint/eslint-plugin@6.10.0)(eslint@8.53.0)(jest@29.7.0)(typescript@5.2.2) - eslint-plugin-react: - specifier: ^7.27.0 - version: 7.33.2(eslint@8.53.0) - eslint-plugin-react-hooks: - specifier: ^4.3.0 - version: 4.6.0(eslint@8.53.0) jest: specifier: ^29.0.0 version: 29.7.0(@types/node@20.9.0) jest-environment-jsdom: specifier: ^29.0.0 version: 29.7.0 - prettier: - specifier: ^2.5.0 - version: 2.8.8 typescript: specifier: ~5.2.0 version: 5.2.2 @@ -195,9 +171,6 @@ importers: '@svgr/plugin-jsx': specifier: ^8.0.0 version: 8.1.0(@svgr/core@8.1.0) - '@svgr/plugin-prettier': - specifier: ^8.0.0 - version: 8.1.0(@svgr/core@8.1.0) '@svgr/plugin-svgo': specifier: ^8.0.0 version: 8.1.0(@svgr/core@8.1.0)(typescript@5.2.2) @@ -592,9 +565,6 @@ importers: next-compose-plugins: specifier: ^2.2.1 version: 2.2.1 - prettier: - specifier: ^2.5.0 - version: 2.8.8 prism-react-renderer: specifier: ^2.0.0 version: 2.2.0(react@18.2.0) @@ -1541,6 +1511,10 @@ importers: '@prisma/client': specifier: ^4.16.2 version: 4.16.2(prisma@4.16.2) + graphql: + specifier: ^16.8.1 + version: 16.8.1 + devDependencies: '@ts-gql/compiler': specifier: ^0.15.3 version: 0.15.3(graphql@16.8.1) @@ -1553,10 +1527,6 @@ importers: eslint: specifier: ^8.0.0 version: 8.53.0 - graphql: - specifier: ^16.8.1 - version: 16.8.1 - devDependencies: prisma: specifier: ^4.16.2 version: 4.16.2 @@ -2277,9 +2247,6 @@ importers: fs-extra: specifier: ^11.0.0 version: 11.1.1 - prettier: - specifier: ^2.5.0 - version: 2.8.8 tsx: specifier: ^4.0.0 version: 4.1.1 @@ -2597,6 +2564,7 @@ packages: /@aashutoshrathi/word-wrap@1.2.6: resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} + dev: true /@ampproject/remapping@2.2.1: resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} @@ -2886,7 +2854,7 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: false + dev: true /@astrojs/compiler@1.8.2: resolution: {integrity: sha512-o/ObKgtMzl8SlpIdzaxFnt7SATKPxu4oIP/1NL+HDJRzxfJcAkOTAb/ZKMRyULbz4q+1t2/DAebs2Z1QairkZw==} @@ -3946,6 +3914,7 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 + dev: true /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.3): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} @@ -3996,6 +3965,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.3 + dev: true /@babel/helper-module-imports@7.22.15: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} @@ -4021,6 +3991,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.3 + dev: true /@babel/helper-plugin-utils@7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} @@ -4048,6 +4019,7 @@ packages: '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 + dev: true /@babel/helper-simple-access@7.22.5: resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} @@ -4060,6 +4032,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.23.3 + dev: true /@babel/helper-split-export-declaration@7.22.6: resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} @@ -4156,7 +4129,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 - dev: false + dev: true /@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.23.3): resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==} @@ -4171,7 +4144,7 @@ packages: '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.3) '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.3) - dev: false + dev: true /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.3): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} @@ -4207,6 +4180,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.3): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} @@ -4244,7 +4218,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 - dev: false + dev: true /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} @@ -4327,6 +4301,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} @@ -4374,6 +4349,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.3): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} @@ -4394,6 +4370,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-async-generator-functions@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-59GsVNavGxAXCDDbakWSMJhajASb4kBCqDjqJsv+p5nKdbz7istmZ3HrX3L2LuiI80+zsOADCvooqQH3qGCucQ==} @@ -4428,6 +4405,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-block-scoping@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-QPZxHrThbQia7UdvfpaRRlq/J9ciz1J4go0k+lPBXbgaNeY7IQrBj/9ceWjvMMI07/ZBzHl/F0R/2K0qH7jCVw==} @@ -4437,6 +4415,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} @@ -4477,6 +4456,7 @@ packages: '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 + dev: true /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} @@ -4487,6 +4467,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/template': 7.22.15 + dev: true /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} @@ -4496,6 +4477,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} @@ -4560,7 +4542,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-flow': 7.23.3(@babel/core@7.23.3) - dev: false + dev: true /@babel/plugin-transform-for-of@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==} @@ -4570,6 +4552,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} @@ -4581,6 +4564,7 @@ packages: '@babel/helper-compilation-targets': 7.22.15 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-json-strings@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-H9Ej2OiISIZowZHaBwF0tsJOih1PftXJtE8EWqlEIwpc7LMTGq0rPOrywKLQ4nefzx8/HMR0D3JGXoMHYvhi0A==} @@ -4601,6 +4585,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-logical-assignment-operators@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-+pD5ZbxofyOygEp+zZAfujY2ShNCXRpDRIPOiBmTO693hhyOEteZgl876Xs9SAHPQpcV0vz8LvA/T+w8AzyX8A==} @@ -4621,6 +4606,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} @@ -4643,6 +4629,7 @@ packages: '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 + dev: true /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} @@ -4734,6 +4721,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.3) + dev: true /@babel/plugin-transform-optional-catch-binding@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-LxYSb0iLjUamfm7f1D7GpiS4j0UAC8AOiehnsGAP8BEsIX8EOi3qV6bbctw8M7ZvLtcoZfZX5Z7rN9PlWk0m5A==} @@ -4766,6 +4754,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} @@ -4799,6 +4788,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-react-display-name@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==} @@ -4808,6 +4798,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.23.3): resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} @@ -4889,6 +4880,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} @@ -4899,6 +4891,7 @@ packages: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} @@ -4918,6 +4911,7 @@ packages: dependencies: '@babel/core': 7.23.3 '@babel/helper-plugin-utils': 7.22.5 + dev: true /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} @@ -4940,6 +4934,7 @@ packages: '@babel/helper-create-class-features-plugin': 7.22.15(@babel/core@7.23.3) '@babel/helper-plugin-utils': 7.22.5 '@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.3) + dev: true /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} @@ -5113,6 +5108,7 @@ packages: '@babel/plugin-syntax-jsx': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-typescript': 7.23.3(@babel/core@7.23.3) + dev: true /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} @@ -6366,10 +6362,12 @@ packages: dependencies: eslint: 8.53.0 eslint-visitor-keys: 3.4.3 + dev: true /@eslint-community/regexpp@4.10.0: resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true /@eslint/eslintrc@2.1.3: resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} @@ -6386,10 +6384,12 @@ packages: strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color + dev: true /@eslint/js@8.53.0: resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true /@fastify/busboy@2.1.0: resolution: {integrity: sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==} @@ -6429,7 +6429,7 @@ packages: import-from: 4.0.0 lodash: 4.17.21 tslib: 2.4.1 - dev: false + dev: true /@graphql-codegen/plugin-helpers@3.1.2(graphql@16.8.1): resolution: {integrity: sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==} @@ -6443,7 +6443,7 @@ packages: import-from: 4.0.0 lodash: 4.17.21 tslib: 2.4.1 - dev: false + dev: true /@graphql-codegen/schema-ast@2.6.1(graphql@16.8.1): resolution: {integrity: sha512-5TNW3b1IHJjCh07D2yQNGDQzUpUl2AD+GVe1Dzjqyx/d2Fn0TPMxLsHsKPS4Plg4saO8FK/QO70wLsP7fdbQ1w==} @@ -6454,7 +6454,7 @@ packages: '@graphql-tools/utils': 9.2.1(graphql@16.8.1) graphql: 16.8.1 tslib: 2.4.1 - dev: false + dev: true /@graphql-codegen/typescript-operations@2.5.13(graphql@16.8.1): resolution: {integrity: sha512-3vfR6Rx6iZU0JRt29GBkFlrSNTM6t+MSLF86ChvL4d/Jfo/JYAGuB3zNzPhirHYzJPCvLOAx2gy9ID1ltrpYiw==} @@ -6470,7 +6470,7 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: false + dev: true /@graphql-codegen/typescript@2.8.8(graphql@16.8.1): resolution: {integrity: sha512-A0oUi3Oy6+DormOlrTC4orxT9OBZkIglhbJBcDmk34jAKKUgesukXRd4yOhmTrnbchpXz2T8IAOFB3FWIaK4Rw==} @@ -6486,7 +6486,7 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: false + dev: true /@graphql-codegen/visitor-plugin-common@2.13.8(graphql@16.8.1): resolution: {integrity: sha512-IQWu99YV4wt8hGxIbBQPtqRuaWZhkQRG2IZKbMoSvh0vGeWb3dB0n0hSgKaOOxDY+tljtOf9MTcUYvJslQucMQ==} @@ -6507,7 +6507,7 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: false + dev: true /@graphql-tools/executor@0.0.18(graphql@16.8.1): resolution: {integrity: sha512-xZC0C+/npXoSHBB5bsJdwxDLgtl1Gu4fL9J2TPQmXoZC3L2N506KJoppf9LgWdHU/xK04luJrhP6WjhfkIN0pQ==} @@ -6539,7 +6539,7 @@ packages: dependencies: graphql: 16.8.1 tslib: 2.4.1 - dev: false + dev: true /@graphql-tools/relay-operation-optimizer@6.5.18(graphql@16.8.1): resolution: {integrity: sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg==} @@ -6553,7 +6553,7 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: false + dev: true /@graphql-tools/schema@9.0.19(graphql@16.8.1): resolution: {integrity: sha512-oBRPoNBtCkk0zbUsyP4GaIzCt8C0aCI4ycIRUL67KK5pOHljKLBBtGT+Jr6hkzA74C8Gco8bpZPe7aWFjiaK2w==} @@ -6574,7 +6574,7 @@ packages: dependencies: graphql: 16.8.1 tslib: 2.4.1 - dev: false + dev: true /@graphql-tools/utils@9.2.1(graphql@16.8.1): resolution: {integrity: sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==} @@ -6584,7 +6584,6 @@ packages: '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) graphql: 16.8.1 tslib: 2.6.2 - dev: false /@graphql-ts/extend@1.0.0(@graphql-ts/schema@0.6.0)(graphql@16.8.1): resolution: {integrity: sha512-KdBgOEcTp08h86IVNZR6+DRrmqX8uRplB6qpcB3Jq9cC6tzjtGifIrkQOSx/GivuiWeE0kt8r+uxA+U86nERjw==} @@ -6685,13 +6684,16 @@ packages: minimatch: 3.1.2 transitivePeerDependencies: - supports-color + dev: true /@humanwhocodes/module-importer@1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} + dev: true /@humanwhocodes/object-schema@2.0.1: resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + dev: true /@istanbuljs/load-nyc-config@1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} @@ -8473,17 +8475,6 @@ packages: - supports-color dev: true - /@svgr/plugin-prettier@8.1.0(@svgr/core@8.1.0): - resolution: {integrity: sha512-o4/uFI8G64tAjBZ4E7gJfH+VP7Qi3T0+M4WnIsP91iFnGPqs5WvPDkpZALXPiyWEtzfYs1Rmwy1Zdfu8qoZuKw==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' - dependencies: - '@svgr/core': 8.1.0(typescript@5.2.2) - deepmerge: 4.3.1 - prettier: 2.8.8 - dev: true - /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.2.2): resolution: {integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==} engines: {node: '>=14'} @@ -8595,7 +8586,7 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: false + dev: true /@ts-gql/config@0.9.1(graphql@16.8.1): resolution: {integrity: sha512-u0Sj+nmwRHpj208b4gWwa1avBizHy8yxE8CZOH1iYlGQPNRE0Onx5ZRzjwZMvNV7Ki5A7J9INaQc6wQa3avbeg==} @@ -8609,7 +8600,7 @@ packages: superstruct: 0.10.13 transitivePeerDependencies: - supports-color - dev: false + dev: true /@ts-gql/eslint-plugin@0.9.0(eslint@8.53.0)(graphql@16.8.1)(typescript@5.0.4): resolution: {integrity: sha512-VHhxNhrgXbCVbg6+0eXggwfV3+ahLi4yGevOROH0SJ7ZyBK3ak9ijBl76Vci4WLX7PimBYMOT7zLqm2nJKivQw==} @@ -8626,7 +8617,7 @@ packages: - eslint - supports-color - typescript - dev: false + dev: true /@ts-gql/tag@0.7.0(graphql@16.8.1): resolution: {integrity: sha512-DofrBf01J9ZX6L8KhpTL1JrFGOuVkwFfACDNzdqrH855KYCANOGcvQTZn5LK0rY22DWISnuQrOF8ytBTVIahrw==} @@ -8636,7 +8627,7 @@ packages: '@graphql-typed-document-node/core': 3.2.0(graphql@16.8.1) graphql: 16.8.1 graphql-tag: 2.12.6(graphql@16.8.1) - dev: false + dev: true /@types/acorn@4.0.6: resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} @@ -8669,7 +8660,7 @@ packages: /@types/babel__code-frame@7.0.6: resolution: {integrity: sha512-Anitqkl3+KrzcW2k77lRlg/GfLZLWXBuNgbEcIOU6M92yw42vsd3xV/Z/yAHEj8m+KUjL6bWOVOFqX8PFPJ4LA==} - dev: false + dev: true /@types/babel__core@7.20.4: resolution: {integrity: sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==} @@ -8830,6 +8821,7 @@ packages: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: '@types/node': 20.9.0 + dev: true /@types/gtag.js@0.0.18: resolution: {integrity: sha512-GJxnIvuXuVhKaHfsOdzGipoOoXq72y3mdcncc9h6i6E7nlz89zBEj2wrLM7bqO5Xk9Lm2B94MwdQsSwRlaPSWw==} @@ -8849,7 +8841,7 @@ packages: /@types/invariant@2.2.37: resolution: {integrity: sha512-IwpIMieE55oGWiXkQPSBY1nw1nFs6bsKXTFskNY8sdS17K24vyEBRQZEwlRS7ZmXCWnJcQtbxWzly+cODWGs2A==} - dev: false + dev: true /@types/is-ci@3.0.4: resolution: {integrity: sha512-AkCYCmwlXeuH89DagDCzvCAyltI2v9lh3U3DqSg/GrBYoReAaWwxfXCqMx9UV5MajLZ4ZFwZzV4cABGIxk2XRw==} @@ -8897,9 +8889,6 @@ packages: /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - - /@types/json5@0.0.29: - resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true /@types/json5@0.0.30: @@ -9017,7 +9006,6 @@ packages: /@types/parse-json@4.0.2: resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - dev: false /@types/parse5@6.0.3: resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} @@ -9106,6 +9094,7 @@ packages: /@types/semver@7.5.5: resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} + dev: true /@types/send@0.17.4: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -9187,119 +9176,17 @@ packages: '@types/yargs-parser': 21.0.3 dev: true - /@typescript-eslint/eslint-plugin@6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 6.10.0 - '@typescript-eslint/type-utils': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.10.0 - debug: 4.3.4 - eslint: 8.53.0 - graphemer: 1.4.0 - ignore: 5.2.4 - natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.2.2) - typescript: 5.2.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser@6.10.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 6.10.0 - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.10.0 - debug: 4.3.4 - eslint: 8.53.0 - typescript: 5.2.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/scope-manager@5.62.0: - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - dev: true - /@typescript-eslint/scope-manager@6.10.0: resolution: {integrity: sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: '@typescript-eslint/types': 6.10.0 '@typescript-eslint/visitor-keys': 6.10.0 - - /@typescript-eslint/type-utils@6.10.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-wYpPs3hgTFblMYwbYWPT3eZtaDOjbLyIYuqpwuLBBqhLiuvJ+9sEp2gNRJEtR5N/c9G1uTtQQL5AhV0fEPJYcg==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.2.2) - '@typescript-eslint/utils': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - debug: 4.3.4 - eslint: 8.53.0 - ts-api-utils: 1.0.3(typescript@5.2.2) - typescript: 5.2.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/types@5.62.0: - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true /@typescript-eslint/types@6.10.0: resolution: {integrity: sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==} engines: {node: ^16.0.0 || >=18.0.0} - - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.2.2): - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.4 - tsutils: 3.21.0(typescript@5.2.2) - typescript: 5.2.2 - transitivePeerDependencies: - - supports-color dev: true /@typescript-eslint/typescript-estree@6.10.0(typescript@5.0.4): @@ -9321,47 +9208,6 @@ packages: typescript: 5.0.4 transitivePeerDependencies: - supports-color - dev: false - - /@typescript-eslint/typescript-estree@6.10.0(typescript@5.2.2): - resolution: {integrity: sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/visitor-keys': 6.10.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.2.2) - typescript: 5.2.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/utils@5.62.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.5 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.2.2) - eslint: 8.53.0 - eslint-scope: 5.1.1 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - - typescript dev: true /@typescript-eslint/utils@6.10.0(eslint@8.53.0)(typescript@5.0.4): @@ -9381,33 +9227,6 @@ packages: transitivePeerDependencies: - supports-color - typescript - dev: false - - /@typescript-eslint/utils@6.10.0(eslint@8.53.0)(typescript@5.2.2): - resolution: {integrity: sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.5 - '@typescript-eslint/scope-manager': 6.10.0 - '@typescript-eslint/types': 6.10.0 - '@typescript-eslint/typescript-estree': 6.10.0(typescript@5.2.2) - eslint: 8.53.0 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/visitor-keys@5.62.0: - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 dev: true /@typescript-eslint/visitor-keys@6.10.0: @@ -9416,9 +9235,11 @@ packages: dependencies: '@typescript-eslint/types': 6.10.0 eslint-visitor-keys: 3.4.3 + dev: true /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + dev: true /@vanilla-extract/babel-plugin-debug-ids@1.0.3: resolution: {integrity: sha512-vm4jYu1xhSa6ofQ9AhIpR3DkAp4c+eoR1Rpm8/TQI4DmWbmGbOjYRcqV0aWsfaIlNhN4kFuxFMKBNN9oG6iRzA==} @@ -9589,6 +9410,7 @@ packages: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.11.2 + dev: true /acorn-walk@8.3.0: resolution: {integrity: sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==} @@ -9641,6 +9463,7 @@ packages: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 + dev: true /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} @@ -9818,17 +9641,6 @@ packages: /array-flatten@1.1.1: resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-string: 1.0.7 - dev: true - /array-iterate@2.0.1: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} dev: false @@ -9852,37 +9664,17 @@ packages: es-shim-unscopables: 1.0.2 dev: true - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} engines: {node: '>= 0.4'} dependencies: + array-buffer-byte-length: 1.0.0 call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - es-shim-unscopables: 1.0.2 - dev: true - - /array.prototype.tosorted@1.1.2: - resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 - dev: true - - /arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-array-buffer: 3.0.2 - is-shared-array-buffer: 1.0.2 + get-intrinsic: 1.2.2 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 /arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} @@ -9890,6 +9682,7 @@ packages: /asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + dev: true /asn1js@3.0.5: resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} @@ -10021,12 +9814,6 @@ packages: /async@3.2.5: resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} - /asynciterator.prototype@1.0.0: - resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} - dependencies: - has-symbols: 1.0.3 - dev: true - /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -10049,7 +9836,7 @@ packages: /auto-bind@4.0.0: resolution: {integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==} engines: {node: '>=8'} - dev: false + dev: true /available-typed-arrays@1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} @@ -10140,7 +9927,7 @@ packages: '@babel/runtime': 7.23.2 cosmiconfig: 6.0.0 resolve: 1.22.8 - dev: false + dev: true /babel-plugin-macros@3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} @@ -10189,7 +9976,7 @@ packages: /babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: resolution: {integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==} - dev: false + dev: true /babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.3): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} @@ -10244,7 +10031,7 @@ packages: '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.3) '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.3) babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 - dev: false + dev: true /babel-preset-jest@26.6.2(@babel/core@7.23.3): resolution: {integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==} @@ -10486,6 +10273,7 @@ packages: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: node-int64: 0.4.0 + dev: true /bson@4.7.2: resolution: {integrity: sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==} @@ -10656,7 +10444,7 @@ packages: dependencies: pascal-case: 3.1.2 tslib: 2.4.1 - dev: false + dev: true /camelcase-keys@6.2.2: resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} @@ -10687,7 +10475,7 @@ packages: no-case: 3.0.4 tslib: 2.4.1 upper-case-first: 2.0.2 - dev: false + dev: true /capture-exit@2.0.0: resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} @@ -10737,7 +10525,7 @@ packages: title-case: 3.0.3 upper-case: 2.0.2 upper-case-first: 2.0.2 - dev: false + dev: true /change-case-all@1.0.15: resolution: {integrity: sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==} @@ -10752,7 +10540,7 @@ packages: title-case: 3.0.3 upper-case: 2.0.2 upper-case-first: 2.0.2 - dev: false + dev: true /change-case@4.1.2: resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} @@ -10769,7 +10557,7 @@ packages: sentence-case: 3.0.4 snake-case: 3.0.4 tslib: 2.4.1 - dev: false + dev: true /char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} @@ -10930,6 +10718,7 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 + dev: true /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} @@ -11042,7 +10831,7 @@ packages: /common-tags@1.8.2: resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} engines: {node: '>=4.0.0'} - dev: false + dev: true /commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -11129,7 +10918,7 @@ packages: no-case: 3.0.4 tslib: 2.4.1 upper-case: 2.0.2 - dev: false + dev: true /content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} @@ -11206,7 +10995,7 @@ packages: parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 - dev: false + dev: true /cosmiconfig@7.1.0: resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} @@ -11272,7 +11061,6 @@ packages: node-fetch: 2.7.0 transitivePeerDependencies: - encoding - dev: false /cross-fetch@4.0.0: resolution: {integrity: sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==} @@ -11476,17 +11264,6 @@ packages: dependencies: ms: 2.0.0 - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.3 - dev: true - /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -11575,6 +11352,7 @@ packages: /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + dev: true /deep-object-diff@1.1.9: resolution: {integrity: sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==} @@ -11703,7 +11481,7 @@ packages: /dependency-graph@0.11.0: resolution: {integrity: sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==} engines: {node: '>= 0.6.0'} - dev: false + dev: true /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} @@ -11762,18 +11540,12 @@ packages: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} dev: false - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - dependencies: - esutils: 2.0.3 - dev: true - /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 + dev: true /dom-accessibility-api@0.5.16: resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} @@ -11825,6 +11597,7 @@ packages: dependencies: no-case: 3.0.4 tslib: 2.6.2 + dev: true /dot-prop@6.0.1: resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} @@ -12034,25 +11807,6 @@ packages: stop-iteration-iterator: 1.0.0 dev: true - /es-iterator-helpers@1.0.15: - resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} - dependencies: - asynciterator.prototype: 1.0.0 - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-set-tostringtag: 2.0.2 - function-bind: 1.1.2 - get-intrinsic: 1.2.2 - globalthis: 1.0.3 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.6 - iterator.prototype: 1.1.2 - safe-array-concat: 1.0.1 - dev: true - /es-module-lexer@1.4.1: resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} dev: false @@ -12258,150 +12012,18 @@ packages: source-map: 0.6.1 dev: true - /eslint-import-resolver-node@0.3.9: - resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - dependencies: - debug: 3.2.7 - is-core-module: 2.13.1 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.9)(eslint@8.53.0): - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - dependencies: - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - debug: 3.2.7 - eslint: 8.53.0 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - dev: true - - /eslint-plugin-import@2.25.3(@typescript-eslint/parser@6.10.0)(eslint@8.53.0): - resolution: {integrity: sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - dependencies: - '@typescript-eslint/parser': 6.10.0(eslint@8.53.0)(typescript@5.2.2) - array-includes: 3.1.7 - array.prototype.flat: 1.3.2 - debug: 2.6.9 - doctrine: 2.1.0 - eslint: 8.53.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.10.0)(eslint-import-resolver-node@0.3.9)(eslint@8.53.0) - has: 1.0.4 - is-core-module: 2.13.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.values: 1.1.7 - resolve: 1.22.8 - tsconfig-paths: 3.14.2 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - - /eslint-plugin-jest@26.9.0(@typescript-eslint/eslint-plugin@6.10.0)(eslint@8.53.0)(jest@29.7.0)(typescript@5.2.2): - resolution: {integrity: sha512-TWJxWGp1J628gxh2KhaH1H1paEdgE2J61BBF1I59c6xWeL5+D1BzMxGDN/nXAfX+aSkR5u80K+XhskK6Gwq9ng==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - jest: '*' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - jest: - optional: true - dependencies: - '@typescript-eslint/eslint-plugin': 6.10.0(@typescript-eslint/parser@6.10.0)(eslint@8.53.0)(typescript@5.2.2) - '@typescript-eslint/utils': 5.62.0(eslint@8.53.0)(typescript@5.2.2) - eslint: 8.53.0 - jest: 29.7.0(@types/node@20.9.0) - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /eslint-plugin-react-hooks@4.6.0(eslint@8.53.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 8.53.0 - dev: true - - /eslint-plugin-react@7.33.2(eslint@8.53.0): - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - array-includes: 3.1.7 - array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.2 - doctrine: 2.1.0 - es-iterator-helpers: 1.0.15 - eslint: 8.53.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - object.hasown: 1.1.3 - object.values: 1.1.7 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.10 - dev: true - - /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true - /eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 + dev: true /eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true /eslint@8.53.0: resolution: {integrity: sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==} @@ -12448,6 +12070,7 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - supports-color + dev: true /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} @@ -12456,6 +12079,7 @@ packages: acorn: 8.11.2 acorn-jsx: 5.3.2(acorn@8.11.2) eslint-visitor-keys: 3.4.3 + dev: true /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -12467,21 +12091,19 @@ packages: engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 + dev: true /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 - - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} dev: true /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} + dev: true /estree-util-attach-comments@2.1.1: resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==} @@ -12540,6 +12162,7 @@ packages: /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + dev: true /etag@1.8.1: resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} @@ -12803,9 +12426,11 @@ packages: /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true /fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + dev: true /fast-querystring@1.1.2: resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} @@ -12848,10 +12473,11 @@ packages: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} dependencies: bser: 2.1.1 + dev: true /fbjs-css-vars@1.0.2: resolution: {integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==} - dev: false + dev: true /fbjs@3.0.5: resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==} @@ -12865,7 +12491,7 @@ packages: ua-parser-js: 1.0.37 transitivePeerDependencies: - encoding - dev: false + dev: true /feather-icons@4.29.1: resolution: {integrity: sha512-P1we61haGTds6lKWe6CCVPsNULb8tHr1y6S9gXEpU+lNR1Ja7GdV0A1l2hTNmzXv+0Stix/3YMWMAn7n1Qtd6A==} @@ -12890,6 +12516,7 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.1.1 + dev: true /file-type@18.7.0: resolution: {integrity: sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw==} @@ -12952,7 +12579,7 @@ packages: find-up: 4.1.0 transitivePeerDependencies: - supports-color - dev: false + dev: true /find-root@1.1.0: resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} @@ -12992,9 +12619,11 @@ packages: flatted: 3.2.9 keyv: 4.5.4 rimraf: 3.0.2 + dev: true /flatted@3.2.9: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + dev: true /focus-lock@1.0.0: resolution: {integrity: sha512-a8Ge6cdKh9za/GZR/qtigTAk7SrGore56EFcoMshClsh7FLk1zwszc/ltuMfKhx56qeuyL/jWQ4J4axou0iJ9w==} @@ -13201,6 +12830,7 @@ packages: /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + dev: true /get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} @@ -13314,6 +12944,7 @@ packages: engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 + dev: true /glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} @@ -13353,6 +12984,7 @@ packages: engines: {node: '>=8'} dependencies: type-fest: 0.20.2 + dev: true /globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} @@ -13446,6 +13078,7 @@ packages: /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + dev: true /graphql-request@5.2.0(graphql@16.8.1): resolution: {integrity: sha512-pLhKIvnMyBERL0dtFI3medKqWOz/RhHdcgbZ+hMMIb32mEPa5MJSzS4AuXxfI4sRAu6JVVk5tvXuGfCWl9JYWQ==} @@ -13627,11 +13260,6 @@ packages: engines: {node: '>=8'} dev: false - /has@1.0.4: - resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} - engines: {node: '>= 0.4.0'} - dev: true - /hash-it@6.0.0: resolution: {integrity: sha512-KHzmSFx1KwyMPw0kXeeUD752q/Kfbzhy6dAZrjXV9kAIXGqzGvv8vhkUqj+2MGZldTo0IBpw6v7iWE7uxsvH0w==} dev: false @@ -13750,7 +13378,7 @@ packages: dependencies: capital-case: 1.0.4 tslib: 2.4.1 - dev: false + dev: true /hex-rgb@4.3.0: resolution: {integrity: sha512-Ox1pJVrDCyGHMG9CFg1tmrRUMRPRsAWYc/PinY0XzJU4K7y7vjNoLKIQ7BR5UJMCxNN8EM1MNDmHWA/B3aZUuw==} @@ -13947,7 +13575,7 @@ packages: /immutable@3.7.6: resolution: {integrity: sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==} engines: {node: '>=0.8.0'} - dev: false + dev: true /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -13959,7 +13587,7 @@ packages: /import-from@4.0.0: resolution: {integrity: sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==} engines: {node: '>=12.2'} - dev: false + dev: true /import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} @@ -13977,6 +13605,7 @@ packages: /imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + dev: true /indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} @@ -14049,7 +13678,6 @@ packages: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} dependencies: loose-envify: 1.4.0 - dev: false /io-ts-excess@1.0.1(fp-ts@2.16.1): resolution: {integrity: sha512-yJQ+pGztBMIQmfsKfSAeQ1w7UJywvj37NIFriMAZ2tMLTpp1IngUvtxqI+QlW+RlXDn7cthMxrpJ0CnOx6Dn+w==} @@ -14085,7 +13713,7 @@ packages: dependencies: is-relative: 1.0.0 is-windows: 1.0.2 - dev: false + dev: true /is-accessor-descriptor@1.0.1: resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} @@ -14133,13 +13761,6 @@ packages: /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - /is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: @@ -14274,12 +13895,6 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - /is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} - dependencies: - call-bind: 1.0.5 - dev: true - /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -14350,7 +13965,7 @@ packages: resolution: {integrity: sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==} dependencies: tslib: 2.4.1 - dev: false + dev: true /is-map@2.0.2: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} @@ -14451,7 +14066,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-unc-path: 1.0.0 - dev: false + dev: true /is-set@2.0.2: resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} @@ -14510,7 +14125,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: unc-path-regex: 0.1.2 - dev: false + dev: true /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} @@ -14525,7 +14140,7 @@ packages: resolution: {integrity: sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==} dependencies: tslib: 2.4.1 - dev: false + dev: true /is-weakmap@2.0.1: resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} @@ -14646,16 +14261,6 @@ packages: resolution: {integrity: sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==} dev: false - /iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} - dependencies: - define-properties: 1.2.1 - get-intrinsic: 1.2.2 - has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.4 - set-function-name: 2.0.1 - dev: true - /javascript-stringify@2.1.0: resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==} dev: true @@ -15255,12 +14860,14 @@ packages: /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -15272,12 +14879,6 @@ packages: /json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - dependencies: - minimist: 1.2.8 dev: true /json5@2.2.3: @@ -15320,16 +14921,6 @@ packages: semver: 7.5.4 dev: false - /jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - dependencies: - array-includes: 3.1.7 - array.prototype.flat: 1.3.2 - object.assign: 4.1.4 - object.values: 1.1.7 - dev: true - /jwa@1.4.1: resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} dependencies: @@ -15375,6 +14966,7 @@ packages: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: json-buffer: 3.0.1 + dev: true /kind-of@3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} @@ -15411,7 +15003,7 @@ packages: resolution: {integrity: sha512-MSksx43fU15VGBNhyWtgCITiMVCkzy4Z59KFTUxsf3vLTxm6RlldTV3/Mud7yi6aIZd6LU/w3xCuIK4o2ClvUg==} dependencies: babel-plugin-macros: 2.8.0 - dev: false + dev: true /lazystream@1.0.1: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} @@ -15430,6 +15022,7 @@ packages: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 + dev: true /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} @@ -15545,6 +15138,7 @@ packages: /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true /lodash.once@4.1.1: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} @@ -15615,12 +15209,13 @@ packages: resolution: {integrity: sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==} dependencies: tslib: 2.4.1 - dev: false + dev: true /lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: tslib: 2.4.1 + dev: true /lowercase-keys@1.0.1: resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} @@ -15693,6 +15288,7 @@ packages: /map-cache@0.2.2: resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} engines: {node: '>=0.10.0'} + dev: true /map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} @@ -16777,6 +16373,7 @@ packages: /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + dev: true /negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} @@ -16905,6 +16502,7 @@ packages: dependencies: lower-case: 2.0.2 tslib: 2.6.2 + dev: true /node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==} @@ -16940,6 +16538,7 @@ packages: /node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + dev: true /node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} @@ -17052,7 +16651,7 @@ packages: /nullthrows@1.1.1: resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} - dev: false + dev: true /nwsapi@2.2.7: resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} @@ -17119,31 +16718,6 @@ packages: has-symbols: 1.0.3 object-keys: 1.1.1 - /object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /object.hasown@1.1.3: - resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} - dependencies: - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - /object.pick@1.3.0: resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} engines: {node: '>=0.10.0'} @@ -17151,15 +16725,6 @@ packages: isobject: 3.0.1 dev: true - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - /oidc-token-hash@5.0.3: resolution: {integrity: sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==} engines: {node: ^10.13.0 || >=12.0.0} @@ -17251,6 +16816,7 @@ packages: levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 + dev: true /ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} @@ -17421,7 +16987,7 @@ packages: dependencies: dot-case: 3.0.4 tslib: 2.4.1 - dev: false + dev: true /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} @@ -17467,7 +17033,7 @@ packages: is-absolute: 1.0.0 map-cache: 0.2.2 path-root: 0.1.1 - dev: false + dev: true /parse-github-url@1.0.2: resolution: {integrity: sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==} @@ -17526,7 +17092,7 @@ packages: dependencies: no-case: 3.0.4 tslib: 2.4.1 - dev: false + dev: true /pascalcase@0.1.1: resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} @@ -17538,7 +17104,7 @@ packages: dependencies: dot-case: 3.0.4 tslib: 2.4.1 - dev: false + dev: true /path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} @@ -17573,14 +17139,14 @@ packages: /path-root-regex@0.1.2: resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} engines: {node: '>=0.10.0'} - dev: false + dev: true /path-root@0.1.1: resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} engines: {node: '>=0.10.0'} dependencies: path-root-regex: 0.1.2 - dev: false + dev: true /path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} @@ -17900,6 +17466,7 @@ packages: /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + dev: true /prepend-http@2.0.0: resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} @@ -17998,7 +17565,7 @@ packages: resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} dependencies: asap: 2.0.6 - dev: false + dev: true /prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} @@ -18475,18 +18042,6 @@ packages: indent-string: 4.0.0 strip-indent: 3.0.0 - /reflect.getprototypeof@1.0.4: - resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - globalthis: 1.0.3 - which-builtin-type: 1.1.3 - dev: true - /regenerate-unicode-properties@10.1.1: resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} engines: {node: '>=4'} @@ -18598,7 +18153,7 @@ packages: invariant: 2.2.4 transitivePeerDependencies: - encoding - dev: false + dev: true /remark-frontmatter@4.0.1: resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} @@ -18690,6 +18245,7 @@ packages: /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + dev: true /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} @@ -18702,6 +18258,7 @@ packages: /require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + dev: true /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} @@ -18756,15 +18313,6 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - /resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - /response-iterator@0.2.6: resolution: {integrity: sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==} engines: {node: '>=0.8'} @@ -19075,7 +18623,7 @@ packages: no-case: 3.0.4 tslib: 2.4.1 upper-case-first: 2.0.2 - dev: false + dev: true /serve-static@1.15.0: resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} @@ -19094,6 +18642,7 @@ packages: /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + dev: true /set-cookie-parser@2.6.0: resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} @@ -19127,7 +18676,7 @@ packages: /setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - dev: false + dev: true /setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -19191,7 +18740,7 @@ packages: /signedsource@1.0.0: resolution: {integrity: sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==} - dev: false + dev: true /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -19289,6 +18838,7 @@ packages: dependencies: dot-case: 3.0.4 tslib: 2.6.2 + dev: true /snapdragon-node@2.1.1: resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} @@ -19468,7 +19018,7 @@ packages: resolution: {integrity: sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==} dependencies: tslib: 2.4.1 - dev: false + dev: true /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -19602,20 +19152,6 @@ packages: resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} dev: false - /string.prototype.matchall@4.0.10: - resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - has-symbols: 1.0.3 - internal-slot: 1.0.6 - regexp.prototype.flags: 1.5.1 - set-function-name: 2.0.1 - side-channel: 1.0.4 - dev: true - /string.prototype.trim@1.2.8: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} @@ -19712,6 +19248,7 @@ packages: /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + dev: true /strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} @@ -19778,7 +19315,7 @@ packages: /superstruct@0.10.13: resolution: {integrity: sha512-W4SitSZ9MOyMPbHreoZVEneSZyPEeNGbdfJo/7FkJyRs/M3wQRFzq+t3S/NBwlrFSWdx1ONLjLb9pB+UKe4IqQ==} - dev: false + dev: true /supertest@6.3.3: resolution: {integrity: sha512-EMCG6G8gDu5qEqRQ3JjjPs6+FYT1a7Hv5ApHvtSghmOFJYtsU5S+pSb6Y2EUeCEY3CmEL3mmQ8YWlPOzQomabA==} @@ -19841,7 +19378,7 @@ packages: resolution: {integrity: sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==} dependencies: tslib: 2.4.1 - dev: false + dev: true /symbol-observable@4.0.0: resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} @@ -19984,6 +19521,7 @@ packages: /text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true /through2@0.4.2: resolution: {integrity: sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==} @@ -20021,7 +19559,7 @@ packages: resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} dependencies: tslib: 2.4.1 - dev: false + dev: true /titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} @@ -20164,15 +19702,6 @@ packages: typescript: '>=4.2.0' dependencies: typescript: 5.0.4 - dev: false - - /ts-api-utils@1.0.3(typescript@5.2.2): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} - peerDependencies: - typescript: '>=4.2.0' - dependencies: - typescript: 5.2.2 dev: true /ts-invariant@0.10.3: @@ -20184,15 +19713,6 @@ packages: /ts-pattern@4.3.0: resolution: {integrity: sha512-pefrkcd4lmIVR0LA49Imjf9DYLK8vtWhqBPA3Ya1ir8xCW0O2yjL9dsCVvI7pCodLC5q7smNpEtDR2yVulQxOg==} - /tsconfig-paths@3.14.2: - resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.8 - strip-bom: 3.0.0 - dev: true - /tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} @@ -20215,23 +19735,15 @@ packages: /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: false /tslib@2.4.1: resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + dev: true /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsutils@3.21.0(typescript@5.2.2): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - 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' - dependencies: - tslib: 1.14.1 - typescript: 5.2.2 - dev: true - /tsx@3.14.0: resolution: {integrity: sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==} hasBin: true @@ -20274,6 +19786,7 @@ packages: engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 + dev: true /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} @@ -20296,6 +19809,7 @@ packages: /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} + dev: true /type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} @@ -20374,7 +19888,7 @@ packages: /ua-parser-js@1.0.37: resolution: {integrity: sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==} - dev: false + dev: true /uc.micro@1.0.6: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} @@ -20395,7 +19909,7 @@ packages: /unc-path-regex@0.1.2: resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} engines: {node: '>=0.10.0'} - dev: false + dev: true /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} @@ -20608,13 +20122,13 @@ packages: resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} dependencies: tslib: 2.4.1 - dev: false + dev: true /upper-case@2.0.2: resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} dependencies: tslib: 2.4.1 - dev: false + dev: true /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -21086,24 +20600,6 @@ packages: is-string: 1.0.7 is-symbol: 1.0.4 - /which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} - engines: {node: '>= 0.4'} - dependencies: - function.prototype.name: 1.1.6 - has-tostringtag: 1.0.0 - is-async-function: 2.0.0 - is-date-object: 1.0.5 - is-finalizationregistry: 1.0.2 - is-generator-function: 1.0.10 - is-regex: 1.1.4 - is-weakref: 1.0.2 - isarray: 2.0.5 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.13 - dev: true - /which-collection@1.0.1: resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} dependencies: @@ -21115,6 +20611,7 @@ packages: /which-module@2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + dev: true /which-pm-runs@1.1.0: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} @@ -21294,6 +20791,7 @@ packages: /y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + dev: true /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} @@ -21313,7 +20811,6 @@ packages: /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} - dev: false /yaml@2.3.4: resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} @@ -21326,6 +20823,7 @@ packages: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 + dev: true /yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} @@ -21351,6 +20849,7 @@ packages: which-module: 2.0.1 y18n: 4.0.3 yargs-parser: 18.1.3 + dev: true /yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} diff --git a/prisma-utils/package.json b/prisma-utils/package.json index bc79b3ed888..3ecd1e90c18 100644 --- a/prisma-utils/package.json +++ b/prisma-utils/package.json @@ -6,8 +6,7 @@ "@prisma/generator-helper": "^4.16.2", "@prisma/internals": "^4.16.2", "fs-extra": "^11.0.0", - "tsx": "^4.0.0", - "prettier": "^2.5.0" + "tsx": "^4.0.0" }, "scripts": { "generate": "tsx main.ts", diff --git a/tests/api-tests/access-control/utils.ts b/tests/api-tests/access-control/utils.ts index 6f7035047e5..35bf7104232 100644 --- a/tests/api-tests/access-control/utils.ts +++ b/tests/api-tests/access-control/utils.ts @@ -14,7 +14,6 @@ const yesNo = (truthy: boolean | undefined) => (truthy ? 'Yes' : 'No'); type BooleanAccess = { create: boolean; query: boolean; update: boolean; delete?: boolean }; const getPrefix = (access: BooleanAccess) => { - // prettier-ignore let prefix = `${yesNo(access.create)}Create${yesNo(access.query)}Query${yesNo(access.update)}Update`; if (Object.prototype.hasOwnProperty.call(access, 'delete')) { prefix = `${prefix}${yesNo(access.delete)}Delete`; diff --git a/tests/api-tests/db-enable-logging.test.ts b/tests/api-tests/db-enable-logging.test.ts index 7e6f9c4f00d..593ff849da2 100644 --- a/tests/api-tests/db-enable-logging.test.ts +++ b/tests/api-tests/db-enable-logging.test.ts @@ -9,7 +9,6 @@ const runner = (enableLogging: boolean) => config: testConfig({ db: { enableLogging }, lists: { - // prettier-ignore User: list({ access: allowAll, fields: { diff --git a/tests/api-tests/default-value/defaults.test.ts b/tests/api-tests/default-value/defaults.test.ts index 9c583d21c74..7b9eb3917f5 100644 --- a/tests/api-tests/default-value/defaults.test.ts +++ b/tests/api-tests/default-value/defaults.test.ts @@ -9,7 +9,6 @@ const setupList = (fields: BaseFields) => setupTestRunner({ config: testConfig({ lists: { - // prettier-ignore User: list({ access: allowAll, fields, diff --git a/tests/api-tests/extend-express-app.test.ts b/tests/api-tests/extend-express-app.test.ts index da1b9592293..f7f13cb0d1d 100644 --- a/tests/api-tests/extend-express-app.test.ts +++ b/tests/api-tests/extend-express-app.test.ts @@ -10,7 +10,6 @@ const runner = withServer( setupTestRunner({ config: testConfig({ lists: { - // prettier-ignore User: list({ access: allowAll, fields: { diff --git a/tests/api-tests/extend-http-server.test.ts b/tests/api-tests/extend-http-server.test.ts index 8211c2a7121..882ec77561f 100644 --- a/tests/api-tests/extend-http-server.test.ts +++ b/tests/api-tests/extend-http-server.test.ts @@ -11,7 +11,6 @@ const runner = withServer( setupTestRunner({ config: testConfig({ lists: { - // prettier-ignore User: list({ access: allowAll, fields: { diff --git a/tests/api-tests/healthcheck.test.ts b/tests/api-tests/healthcheck.test.ts index a9227e51a3c..b1e6db8bbe3 100644 --- a/tests/api-tests/healthcheck.test.ts +++ b/tests/api-tests/healthcheck.test.ts @@ -11,7 +11,6 @@ const makeRunner = (healthCheck: any) => setupTestRunner({ config: testConfig({ lists: { - // prettier-ignore User: list({ access: allowAll, fields: { From b257b7af951756bdd41f3a6664f7cbe68bbf73be Mon Sep 17 00:00:00 2001 From: Daniel Cousens <413395+dcousens@users.noreply.github.com> Date: Tue, 14 Nov 2023 16:03:46 +1100 Subject: [PATCH 04/24] rm .remarkignore --- .remarkignore | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .remarkignore diff --git a/.remarkignore b/.remarkignore deleted file mode 100644 index 83b694704ba..00000000000 --- a/.remarkignore +++ /dev/null @@ -1 +0,0 @@ -CHANGELOG.md \ No newline at end of file From 7de4225559f44a289042e7f7bf3c561181f56bec Mon Sep 17 00:00:00 2001 From: Daniel Cousens <413395+dcousens@users.noreply.github.com> Date: Tue, 14 Nov 2023 16:03:17 +1100 Subject: [PATCH 05/24] rm .prettierignore --- .prettierignore | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 .prettierignore diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index e80b48597de..00000000000 --- a/.prettierignore +++ /dev/null @@ -1,18 +0,0 @@ -**/.keystone -**/.next -**/__generated__ -**/dist -**/*.graphql -*.vscode -.changeset/**/* -.keystone/tests -docs/**/*.md -docs/public/assets/*.js -examples/custom-output-paths/my-types.ts -examples/extend-graphql-schema-nexus/keystone-types.ts -examples/extend-graphql-schema-nexus/nexus-types.ts -nexus-typegen.ts -packages/icons/icons/* -pnpm-lock.yaml -prisma-utils/src/generated -tests/test-projects/live-reloading/schemas/syntax-error.js From be619aa935880382ea04e5d87ebc598176c6575d Mon Sep 17 00:00:00 2001 From: Daniel Cousens <413395+dcousens@users.noreply.github.com> Date: Tue, 14 Nov 2023 16:03:58 +1100 Subject: [PATCH 06/24] rm packageRules from renovate.json --- renovate.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/renovate.json b/renovate.json index e7977e03a47..af43e091c6f 100644 --- a/renovate.json +++ b/renovate.json @@ -6,12 +6,6 @@ "prConcurrentLimit": 0, "prHourlyLimit": 3, "baseBranches": ["main"], - "packageRules": [ - { - "packagePatterns": ["remark", "react-day-picker", "^slate"], - "enabled": false - } - ], "rangeStrategy": "replace", "schedule": ["before 7am on Tuesday", "before 7am on Wednesday"], "timezone": "Australia/Sydney", From 9596afa52ba94e15b4a1686537426f1707f7af47 Mon Sep 17 00:00:00 2001 From: Daniel Cousens <413395+dcousens@users.noreply.github.com> Date: Tue, 14 Nov 2023 16:07:51 +1100 Subject: [PATCH 07/24] update Contributor Covenant Code of Conduct to version 2.1 --- CODE-OF-CONDUCT.md | 150 +++++++++++++++++++++++++++++++-------------- 1 file changed, 104 insertions(+), 46 deletions(-) diff --git a/CODE-OF-CONDUCT.md b/CODE-OF-CONDUCT.md index a976a5d4269..26db7e00297 100644 --- a/CODE-OF-CONDUCT.md +++ b/CODE-OF-CONDUCT.md @@ -2,75 +2,133 @@ ## Our Pledge -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, sex characteristics, gender identity and expression, -level of experience, education, socio-economic status, nationality, personal -appearance, race, religion, or sexual identity and orientation. +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. ## Our Standards -Examples of behavior that contributes to creating a positive environment -include: +Examples of behavior that contributes to a positive environment for our +community include: -- Using welcoming and inclusive language -- Being respectful of other people -- Gracefully accepting constructive criticism -- Focusing on what is best for the community -- Showing empathy towards other community members +- Demonstrating empathy and kindness toward other people +- Being respectful of differing opinions, viewpoints, and experiences +- Giving and gracefully accepting constructive feedback +- Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +- Focusing on what is best not just for us as individuals, but for the overall + community -Examples of unacceptable behavior by participants include: +Examples of unacceptable behavior include: -- The use of sexualized language or imagery and unwelcome sexual attention or - advances -- Trolling, insulting/derogatory comments, and personal or political attacks +- The use of sexualized language or imagery, and sexual attention or advances of + any kind +- Trolling, insulting or derogatory comments, and personal or political attacks - Public or private harassment -- Publishing others' private information, such as a physical or electronic - address, without explicit permission +- Publishing others' private information, such as a physical or email address, + without their explicit permission - Other conduct which could reasonably be considered inappropriate in a professional setting -## Our Responsibilities +## Enforcement Responsibilities -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. -Project maintainers have the right and responsibility to remove, edit, or -reject comments, commits, code, wiki edits, issues, and other contributions -that are not aligned to this Code of Conduct, or to ban temporarily or -permanently any contributor for other behaviors that they deem inappropriate, -threatening, offensive, or harmful. +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. ## Scope -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at `codeofconduct@keystonejs.com`. All -complaints will be reviewed and investigated and will result in a response that -is deemed necessary and appropriate to the circumstances. The project team is -obligated to maintain confidentiality with regard to the reporter of an incident. -Further details of specific enforcement policies may be posted separately. +reported to the community leaders responsible for enforcement at +[community@keystonejs.com](mailto:community@keystonejs.com). + +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning -Project maintainers who do not follow or enforce the Code of Conduct in good -faith may face temporary or permanent repercussions as determined by other -members of the project's leadership. +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. ## Attribution -This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, -available at +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. [homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations -For answers to common questions about this code of conduct, see - From 5d82ff6d5fa61ef1c4f34157c27aafcfa4e5200e Mon Sep 17 00:00:00 2001 From: Daniel Cousens <413395+dcousens@users.noreply.github.com> Date: Tue, 14 Nov 2023 16:13:18 +1100 Subject: [PATCH 08/24] .nvmrc --- .nvmrc | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .nvmrc diff --git a/.nvmrc b/.nvmrc deleted file mode 100644 index 209e3ef4b62..00000000000 --- a/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -20 From 4f952f5757fa93ddd302328d15fad8e137315cf5 Mon Sep 17 00:00:00 2001 From: Daniel Cousens <413395+dcousens@users.noreply.github.com> Date: Tue, 14 Nov 2023 16:14:33 +1100 Subject: [PATCH 09/24] rm comments from tsconfig --- tsconfig.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index e297ec1b6ec..2f075eca13c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,19 +1,19 @@ { "compilerOptions": { "declaration": true, - "declarationMap": true, // Enables 'Go to Definition' - "esModuleInterop": true, // Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports' - "forceConsistentCasingInFileNames": true, // Disallow inconsistently-cased references to the same file - "isolatedModules": true, // Transpile each file as a separate module (similar to 'ts.transpileModule') - "jsx": "react", // Specify JSX code generation: 'preserve', 'react-native', or 'react' - "module": "esnext", // Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext' - "moduleResolution": "node", // Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6) - "noEmit": true, // Do not emit outputs + "declarationMap": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "isolatedModules": true, + "jsx": "react", + "module": "esnext", + "moduleResolution": "node", + "noEmit": true, "noUnusedLocals": true, "resolveJsonModule": true, "skipLibCheck": true, - "strict": true, // Enable all strict type-checking options. - "target": "esnext" // Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT' + "strict": true, + "target": "esnext" }, "include": ["**/*"], "exclude": ["**/node_modules/**/*"] From 7200d74d4eea775252fc69398d6c26315e962e23 Mon Sep 17 00:00:00 2001 From: Daniel Cousens <413395+dcousens@users.noreply.github.com> Date: Tue, 14 Nov 2023 16:15:22 +1100 Subject: [PATCH 10/24] tidy up .gitignore --- .gitignore | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index c8e97b28dbe..2041cee6710 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,11 @@ -.env -.next -.keystone +.keystone/ dist/ node_modules/ - -# sqlite databases *.db # ts-gql __generated__ -# OS +# system .DS_Store *.vscode From 1ca37e102019d4a5542b7afeea87edf6bd739fbd Mon Sep 17 00:00:00 2001 From: Daniel Cousens <413395+dcousens@users.noreply.github.com> Date: Tue, 14 Nov 2023 16:18:59 +1100 Subject: [PATCH 11/24] rm prettier from workflows --- .github/workflows/tests_ci.yml | 5 +---- .github/workflows/tests_ci_windows.yml | 10 ---------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/.github/workflows/tests_ci.yml b/.github/workflows/tests_ci.yml index 9934169c014..bf03b346736 100644 --- a/.github/workflows/tests_ci.yml +++ b/.github/workflows/tests_ci.yml @@ -19,11 +19,8 @@ jobs: - uses: actions/checkout@main - uses: ./.github/actions/ci-setup - - name: Prettier - run: pnpm lint:prettier - - name: TypeScript - run: pnpm lint:types + run: pnpm test:types - name: Preconstruct run: pnpm build diff --git a/.github/workflows/tests_ci_windows.yml b/.github/workflows/tests_ci_windows.yml index bd162778fa7..07b932dc82b 100644 --- a/.github/workflows/tests_ci_windows.yml +++ b/.github/workflows/tests_ci_windows.yml @@ -8,16 +8,6 @@ concurrency: cancel-in-progress: true jobs: - linting: - name: Linting - runs-on: windows-latest - steps: - - uses: actions/checkout@main - - uses: ./.github/actions/ci-setup - - - name: TypeScript - run: pnpm lint:types - unit_tests: name: Package Unit Tests runs-on: windows-latest From 8fbfbdbfd331183c3249391da8fc38c2486a3075 Mon Sep 17 00:00:00 2001 From: Daniel Cousens <413395+dcousens@users.noreply.github.com> Date: Tue, 14 Nov 2023 16:19:09 +1100 Subject: [PATCH 12/24] rm unused workspace scripts --- .github/workflows/tests_ci.yml | 2 +- package.json | 9 +++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/tests_ci.yml b/.github/workflows/tests_ci.yml index bf03b346736..f6ae1ff633c 100644 --- a/.github/workflows/tests_ci.yml +++ b/.github/workflows/tests_ci.yml @@ -26,7 +26,7 @@ jobs: run: pnpm build - name: Prisma Filters - run: pnpm lint:filters + run: pnpm test:filters unit_tests: name: Package Unit Tests diff --git a/package.json b/package.json index 95996e826a0..918e5ca6a0a 100644 --- a/package.json +++ b/package.json @@ -10,16 +10,13 @@ "packageManager": "pnpm@8.10.4", "scripts": { "coverage": "jest --coverage", - "ci:version-packages": "pnpm changeset version && cd docs && pnpm remove-conditionals", - "lint:types": "tsc", "test": "jest", + "test:filters": "cd prisma-utils && pnpm verify", + "test:types": "tsc", "test:debug": "node --inspect-brk ./node_modules/.bin/jest --runInBand", "test:admin-ui": "jest tests/admin-ui-tests", "build": "preconstruct build", - "prepare": "preconstruct dev", - "update-schemas": "pnpm --filter @keystone-6/example-* --filter @keystone-6/test-project* exec keystone build --no-ui", - "generate-filters": "cd prisma-utils && pnpm generate", - "lint:filters": "cd prisma-utils && pnpm verify" + "prepare": "preconstruct dev" }, "devDependencies": { "@babel/core": "^7.21.0", From d55921b641ecceba9bffebb4ab9ebf284ca9922b Mon Sep 17 00:00:00 2001 From: Daniel Cousens <413395+dcousens@users.noreply.github.com> Date: Tue, 14 Nov 2023 16:59:47 +1100 Subject: [PATCH 13/24] add eslint --- .eslintignore | 3 + package.json | 5 +- pnpm-lock.yaml | 151 ++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 157 insertions(+), 2 deletions(-) create mode 100644 .eslintignore diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000000..3871e24b96c --- /dev/null +++ b/.eslintignore @@ -0,0 +1,3 @@ +dist/ +node_modules/ +syntax-error.js diff --git a/package.json b/package.json index 918e5ca6a0a..551a624ded2 100644 --- a/package.json +++ b/package.json @@ -35,11 +35,14 @@ "@types/node-fetch": "^2.5.12", "@types/react": "^18.0.9", "@types/react-dom": "^18.0.4", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", "esbuild": "^0.19.0", "esbuild-jest": "^0.5.0", + "eslint": "^8.53.0", "jest": "^29.0.0", "jest-environment-jsdom": "^29.0.0", - "typescript": "~5.2.0" + "typescript": "~5.2.2" }, "preconstruct": { "packages": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c3301971c9c..3e05a468641 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,12 +56,21 @@ importers: '@types/react-dom': specifier: ^18.0.4 version: 18.2.15 + '@typescript-eslint/eslint-plugin': + specifier: ^6.11.0 + version: 6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': + specifier: ^6.11.0 + version: 6.11.0(eslint@8.53.0)(typescript@5.2.2) esbuild: specifier: ^0.19.0 version: 0.19.5 esbuild-jest: specifier: ^0.5.0 version: 0.5.0(esbuild@0.19.5) + eslint: + specifier: ^8.53.0 + version: 8.53.0 jest: specifier: ^29.0.0 version: 29.7.0(@types/node@20.9.0) @@ -69,7 +78,7 @@ importers: specifier: ^29.0.0 version: 29.7.0 typescript: - specifier: ~5.2.0 + specifier: ~5.2.2 version: 5.2.2 design-system/packages/button: @@ -9176,6 +9185,56 @@ packages: '@types/yargs-parser': 21.0.3 dev: true + /@typescript-eslint/eslint-plugin@6.11.0(@typescript-eslint/parser@6.11.0)(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.11.0 + '@typescript-eslint/type-utils': 6.11.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.11.0 + debug: 4.3.4 + eslint: 8.53.0 + graphemer: 1.4.0 + ignore: 5.2.4 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.11.0 + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.11.0 + debug: 4.3.4 + eslint: 8.53.0 + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/scope-manager@6.10.0: resolution: {integrity: sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg==} engines: {node: ^16.0.0 || >=18.0.0} @@ -9184,11 +9243,44 @@ packages: '@typescript-eslint/visitor-keys': 6.10.0 dev: true + /@typescript-eslint/scope-manager@6.11.0: + resolution: {integrity: sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/visitor-keys': 6.11.0 + dev: true + + /@typescript-eslint/type-utils@6.11.0(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.11.0(eslint@8.53.0)(typescript@5.2.2) + debug: 4.3.4 + eslint: 8.53.0 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/types@6.10.0: resolution: {integrity: sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg==} engines: {node: ^16.0.0 || >=18.0.0} dev: true + /@typescript-eslint/types@6.11.0: + resolution: {integrity: sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + /@typescript-eslint/typescript-estree@6.10.0(typescript@5.0.4): resolution: {integrity: sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg==} engines: {node: ^16.0.0 || >=18.0.0} @@ -9210,6 +9302,27 @@ packages: - supports-color dev: true + /@typescript-eslint/typescript-estree@6.11.0(typescript@5.2.2): + resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/visitor-keys': 6.11.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/utils@6.10.0(eslint@8.53.0)(typescript@5.0.4): resolution: {integrity: sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg==} engines: {node: ^16.0.0 || >=18.0.0} @@ -9229,6 +9342,25 @@ packages: - typescript dev: true + /@typescript-eslint/utils@6.11.0(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.5 + '@typescript-eslint/scope-manager': 6.11.0 + '@typescript-eslint/types': 6.11.0 + '@typescript-eslint/typescript-estree': 6.11.0(typescript@5.2.2) + eslint: 8.53.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/visitor-keys@6.10.0: resolution: {integrity: sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg==} engines: {node: ^16.0.0 || >=18.0.0} @@ -9237,6 +9369,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@typescript-eslint/visitor-keys@6.11.0: + resolution: {integrity: sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.11.0 + eslint-visitor-keys: 3.4.3 + dev: true + /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true @@ -19704,6 +19844,15 @@ packages: typescript: 5.0.4 dev: true + /ts-api-utils@1.0.3(typescript@5.2.2): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.2.2 + dev: true + /ts-invariant@0.10.3: resolution: {integrity: sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==} engines: {node: '>=8'} From fc7f167cc85a1f9f8062ff96589e830ea37ae83c Mon Sep 17 00:00:00 2001 From: Daniel Cousens <413395+dcousens@users.noreply.github.com> Date: Tue, 14 Nov 2023 17:09:36 +1100 Subject: [PATCH 14/24] add eslintrc (empty) --- .eslintrc.js | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .eslintrc.js diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000000..ef18a41879b --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,11 @@ +/* eslint-env node */ +module.exports = { + parser: '@typescript-eslint/parser', + plugins: ['@typescript-eslint'], + root: true, + overrides: [{ + files: ['*.js', '*.jsx', '*.ts', '*.tsx'], + }], + rules: { + } +} From 552a340dc535257a69324951a491aaada456ec1d Mon Sep 17 00:00:00 2001 From: Daniel Cousens <413395+dcousens@users.noreply.github.com> Date: Tue, 14 Nov 2023 17:41:51 +1100 Subject: [PATCH 15/24] apply semi: never --- .eslintrc.js | 2 + design-system/packages/button/src/Button.tsx | 24 +- design-system/packages/button/src/context.tsx | 18 +- .../packages/button/src/hooks/button.ts | 48 +- design-system/packages/button/src/index.ts | 6 +- .../packages/core/src/a11y/VisuallyHidden.tsx | 12 +- .../packages/core/src/components/Box.tsx | 90 +-- .../packages/core/src/components/Center.tsx | 12 +- .../packages/core/src/components/Core.tsx | 22 +- .../packages/core/src/components/Divider.tsx | 24 +- .../packages/core/src/components/Heading.tsx | 48 +- .../packages/core/src/components/Inline.tsx | 28 +- .../packages/core/src/components/Link.tsx | 14 +- .../packages/core/src/components/Stack.tsx | 38 +- .../packages/core/src/components/Text.tsx | 24 +- design-system/packages/core/src/emotion.ts | 2 +- .../core/src/hooks/useManagedState.ts | 24 +- .../packages/core/src/hooks/useMediaQuery.ts | 30 +- design-system/packages/core/src/index.ts | 34 +- design-system/packages/core/src/normalize.ts | 4 +- design-system/packages/core/src/theme.tsx | 18 +- .../packages/core/src/themes/colors.ts | 2 +- .../packages/core/src/themes/colors_old.ts | 2 +- .../packages/core/src/themes/default.ts | 60 +- design-system/packages/core/src/types.ts | 6 +- design-system/packages/core/src/utils.ts | 68 +- .../packages/fields/src/Checkbox.tsx | 30 +- .../fields/src/DatePicker/Calendar.tsx | 30 +- .../src/DatePicker/components/Adornments.tsx | 34 +- .../src/DatePicker/components/InputButton.tsx | 34 +- .../packages/fields/src/DatePicker/index.tsx | 68 +- .../src/DatePicker/utils/getContrastText.ts | 8 +- .../fields/src/DatePicker/utils/hexToRgb.ts | 26 +- .../packages/fields/src/FieldContainer.tsx | 6 +- .../packages/fields/src/FieldDescription.tsx | 12 +- .../packages/fields/src/FieldLabel.tsx | 12 +- .../packages/fields/src/FieldLegend.tsx | 12 +- design-system/packages/fields/src/Radio.tsx | 30 +- design-system/packages/fields/src/Select.tsx | 58 +- design-system/packages/fields/src/Switch.tsx | 38 +- .../packages/fields/src/TextArea.tsx | 20 +- .../packages/fields/src/TextInput.tsx | 22 +- .../fields/src/components/ControlLabel.tsx | 16 +- .../packages/fields/src/components/Icons.tsx | 20 +- .../packages/fields/src/hooks/indicators.ts | 24 +- .../packages/fields/src/hooks/inputs.ts | 26 +- design-system/packages/fields/src/index.ts | 28 +- design-system/packages/fields/src/types.ts | 8 +- .../fields/src/utils/dateFormatters.ts | 26 +- .../packages/fields/src/utils/isDate.ts | 8 +- design-system/packages/icons/build-icons.js | 78 +-- design-system/packages/icons/src/Icon.tsx | 20 +- .../packages/icons/src/icons/ActivityIcon.tsx | 6 +- .../packages/icons/src/icons/AirplayIcon.tsx | 6 +- .../icons/src/icons/AlertCircleIcon.tsx | 6 +- .../icons/src/icons/AlertOctagonIcon.tsx | 6 +- .../icons/src/icons/AlertTriangleIcon.tsx | 6 +- .../icons/src/icons/AlignCenterIcon.tsx | 6 +- .../icons/src/icons/AlignJustifyIcon.tsx | 6 +- .../icons/src/icons/AlignLeftIcon.tsx | 6 +- .../icons/src/icons/AlignRightIcon.tsx | 6 +- .../packages/icons/src/icons/AnchorIcon.tsx | 6 +- .../packages/icons/src/icons/ApertureIcon.tsx | 6 +- .../packages/icons/src/icons/ArchiveIcon.tsx | 6 +- .../icons/src/icons/ArrowDownCircleIcon.tsx | 6 +- .../icons/src/icons/ArrowDownIcon.tsx | 6 +- .../icons/src/icons/ArrowDownLeftIcon.tsx | 6 +- .../icons/src/icons/ArrowDownRightIcon.tsx | 6 +- .../icons/src/icons/ArrowLeftCircleIcon.tsx | 6 +- .../icons/src/icons/ArrowLeftIcon.tsx | 6 +- .../icons/src/icons/ArrowRightCircleIcon.tsx | 6 +- .../icons/src/icons/ArrowRightIcon.tsx | 6 +- .../icons/src/icons/ArrowUpCircleIcon.tsx | 6 +- .../packages/icons/src/icons/ArrowUpIcon.tsx | 6 +- .../icons/src/icons/ArrowUpLeftIcon.tsx | 6 +- .../icons/src/icons/ArrowUpRightIcon.tsx | 6 +- .../packages/icons/src/icons/AtSignIcon.tsx | 6 +- .../packages/icons/src/icons/AwardIcon.tsx | 6 +- .../icons/src/icons/BarChart2Icon.tsx | 6 +- .../packages/icons/src/icons/BarChartIcon.tsx | 6 +- .../icons/src/icons/BatteryChargingIcon.tsx | 6 +- .../packages/icons/src/icons/BatteryIcon.tsx | 6 +- .../packages/icons/src/icons/BellIcon.tsx | 6 +- .../packages/icons/src/icons/BellOffIcon.tsx | 6 +- .../icons/src/icons/BluetoothIcon.tsx | 6 +- .../packages/icons/src/icons/BoldIcon.tsx | 6 +- .../packages/icons/src/icons/BookIcon.tsx | 6 +- .../packages/icons/src/icons/BookOpenIcon.tsx | 6 +- .../packages/icons/src/icons/BookmarkIcon.tsx | 6 +- .../packages/icons/src/icons/BoxIcon.tsx | 6 +- .../icons/src/icons/BriefcaseIcon.tsx | 6 +- .../packages/icons/src/icons/CalendarIcon.tsx | 6 +- .../packages/icons/src/icons/CameraIcon.tsx | 6 +- .../icons/src/icons/CameraOffIcon.tsx | 6 +- .../packages/icons/src/icons/CastIcon.tsx | 6 +- .../icons/src/icons/CheckCircleIcon.tsx | 6 +- .../packages/icons/src/icons/CheckIcon.tsx | 6 +- .../icons/src/icons/CheckSquareIcon.tsx | 6 +- .../icons/src/icons/ChevronDownIcon.tsx | 6 +- .../icons/src/icons/ChevronLeftIcon.tsx | 6 +- .../icons/src/icons/ChevronRightIcon.tsx | 6 +- .../icons/src/icons/ChevronUpIcon.tsx | 6 +- .../icons/src/icons/ChevronsDownIcon.tsx | 6 +- .../icons/src/icons/ChevronsLeftIcon.tsx | 6 +- .../icons/src/icons/ChevronsRightIcon.tsx | 6 +- .../icons/src/icons/ChevronsUpIcon.tsx | 6 +- .../packages/icons/src/icons/ChromeIcon.tsx | 6 +- .../packages/icons/src/icons/CircleIcon.tsx | 6 +- .../icons/src/icons/ClipboardIcon.tsx | 6 +- .../packages/icons/src/icons/ClockIcon.tsx | 6 +- .../icons/src/icons/CloudDrizzleIcon.tsx | 6 +- .../packages/icons/src/icons/CloudIcon.tsx | 6 +- .../icons/src/icons/CloudLightningIcon.tsx | 6 +- .../packages/icons/src/icons/CloudOffIcon.tsx | 6 +- .../icons/src/icons/CloudRainIcon.tsx | 6 +- .../icons/src/icons/CloudSnowIcon.tsx | 6 +- .../packages/icons/src/icons/CodeIcon.tsx | 6 +- .../packages/icons/src/icons/CodepenIcon.tsx | 6 +- .../icons/src/icons/CodesandboxIcon.tsx | 6 +- .../packages/icons/src/icons/CoffeeIcon.tsx | 6 +- .../packages/icons/src/icons/ColumnsIcon.tsx | 6 +- .../packages/icons/src/icons/CommandIcon.tsx | 6 +- .../packages/icons/src/icons/CompassIcon.tsx | 6 +- .../packages/icons/src/icons/CopyIcon.tsx | 6 +- .../icons/src/icons/CornerDownLeftIcon.tsx | 6 +- .../icons/src/icons/CornerDownRightIcon.tsx | 6 +- .../icons/src/icons/CornerLeftDownIcon.tsx | 6 +- .../icons/src/icons/CornerLeftUpIcon.tsx | 6 +- .../icons/src/icons/CornerRightDownIcon.tsx | 6 +- .../icons/src/icons/CornerRightUpIcon.tsx | 6 +- .../icons/src/icons/CornerUpLeftIcon.tsx | 6 +- .../icons/src/icons/CornerUpRightIcon.tsx | 6 +- .../packages/icons/src/icons/CpuIcon.tsx | 6 +- .../icons/src/icons/CreditCardIcon.tsx | 6 +- .../packages/icons/src/icons/CropIcon.tsx | 6 +- .../icons/src/icons/CrosshairIcon.tsx | 6 +- .../packages/icons/src/icons/DatabaseIcon.tsx | 6 +- .../packages/icons/src/icons/DeleteIcon.tsx | 6 +- .../packages/icons/src/icons/DiscIcon.tsx | 6 +- .../icons/src/icons/DivideCircleIcon.tsx | 6 +- .../packages/icons/src/icons/DivideIcon.tsx | 6 +- .../icons/src/icons/DivideSquareIcon.tsx | 6 +- .../icons/src/icons/DollarSignIcon.tsx | 6 +- .../icons/src/icons/DownloadCloudIcon.tsx | 6 +- .../packages/icons/src/icons/DownloadIcon.tsx | 6 +- .../packages/icons/src/icons/DribbbleIcon.tsx | 6 +- .../packages/icons/src/icons/DropletIcon.tsx | 6 +- .../packages/icons/src/icons/Edit2Icon.tsx | 6 +- .../packages/icons/src/icons/Edit3Icon.tsx | 6 +- .../packages/icons/src/icons/EditIcon.tsx | 6 +- .../icons/src/icons/ExternalLinkIcon.tsx | 6 +- .../packages/icons/src/icons/EyeIcon.tsx | 6 +- .../packages/icons/src/icons/EyeOffIcon.tsx | 6 +- .../packages/icons/src/icons/FacebookIcon.tsx | 6 +- .../icons/src/icons/FastForwardIcon.tsx | 6 +- .../packages/icons/src/icons/FeatherIcon.tsx | 6 +- .../packages/icons/src/icons/FigmaIcon.tsx | 6 +- .../packages/icons/src/icons/FileIcon.tsx | 6 +- .../icons/src/icons/FileMinusIcon.tsx | 6 +- .../packages/icons/src/icons/FilePlusIcon.tsx | 6 +- .../packages/icons/src/icons/FileTextIcon.tsx | 6 +- .../packages/icons/src/icons/FilmIcon.tsx | 6 +- .../packages/icons/src/icons/FilterIcon.tsx | 6 +- .../packages/icons/src/icons/FlagIcon.tsx | 6 +- .../packages/icons/src/icons/FolderIcon.tsx | 6 +- .../icons/src/icons/FolderMinusIcon.tsx | 6 +- .../icons/src/icons/FolderPlusIcon.tsx | 6 +- .../packages/icons/src/icons/FramerIcon.tsx | 6 +- .../packages/icons/src/icons/FrownIcon.tsx | 6 +- .../packages/icons/src/icons/GiftIcon.tsx | 6 +- .../icons/src/icons/GitBranchIcon.tsx | 6 +- .../icons/src/icons/GitCommitIcon.tsx | 6 +- .../packages/icons/src/icons/GitMergeIcon.tsx | 6 +- .../icons/src/icons/GitPullRequestIcon.tsx | 6 +- .../packages/icons/src/icons/GithubIcon.tsx | 6 +- .../packages/icons/src/icons/GitlabIcon.tsx | 6 +- .../packages/icons/src/icons/GlobeIcon.tsx | 6 +- .../packages/icons/src/icons/GridIcon.tsx | 6 +- .../icons/src/icons/HardDriveIcon.tsx | 6 +- .../packages/icons/src/icons/HashIcon.tsx | 6 +- .../icons/src/icons/HeadphonesIcon.tsx | 6 +- .../packages/icons/src/icons/HeartIcon.tsx | 6 +- .../icons/src/icons/HelpCircleIcon.tsx | 6 +- .../packages/icons/src/icons/HexagonIcon.tsx | 6 +- .../packages/icons/src/icons/HomeIcon.tsx | 6 +- .../packages/icons/src/icons/ImageIcon.tsx | 6 +- .../packages/icons/src/icons/InboxIcon.tsx | 6 +- .../packages/icons/src/icons/InfoIcon.tsx | 6 +- .../icons/src/icons/InstagramIcon.tsx | 6 +- .../packages/icons/src/icons/ItalicIcon.tsx | 6 +- .../packages/icons/src/icons/KeyIcon.tsx | 6 +- .../packages/icons/src/icons/LayersIcon.tsx | 6 +- .../packages/icons/src/icons/LayoutIcon.tsx | 6 +- .../packages/icons/src/icons/LifeBuoyIcon.tsx | 6 +- .../packages/icons/src/icons/Link2Icon.tsx | 6 +- .../packages/icons/src/icons/LinkIcon.tsx | 6 +- .../packages/icons/src/icons/LinkedinIcon.tsx | 6 +- .../packages/icons/src/icons/ListIcon.tsx | 6 +- .../packages/icons/src/icons/LoaderIcon.tsx | 6 +- .../packages/icons/src/icons/LockIcon.tsx | 6 +- .../packages/icons/src/icons/LogInIcon.tsx | 6 +- .../packages/icons/src/icons/LogOutIcon.tsx | 6 +- .../packages/icons/src/icons/MailIcon.tsx | 6 +- .../packages/icons/src/icons/MapIcon.tsx | 6 +- .../packages/icons/src/icons/MapPinIcon.tsx | 6 +- .../icons/src/icons/Maximize2Icon.tsx | 6 +- .../packages/icons/src/icons/MaximizeIcon.tsx | 6 +- .../packages/icons/src/icons/MehIcon.tsx | 6 +- .../packages/icons/src/icons/MenuIcon.tsx | 6 +- .../icons/src/icons/MessageCircleIcon.tsx | 6 +- .../icons/src/icons/MessageSquareIcon.tsx | 6 +- .../packages/icons/src/icons/MicIcon.tsx | 6 +- .../packages/icons/src/icons/MicOffIcon.tsx | 6 +- .../icons/src/icons/Minimize2Icon.tsx | 6 +- .../packages/icons/src/icons/MinimizeIcon.tsx | 6 +- .../icons/src/icons/MinusCircleIcon.tsx | 6 +- .../packages/icons/src/icons/MinusIcon.tsx | 6 +- .../icons/src/icons/MinusSquareIcon.tsx | 6 +- .../packages/icons/src/icons/MonitorIcon.tsx | 6 +- .../packages/icons/src/icons/MoonIcon.tsx | 6 +- .../icons/src/icons/MoreHorizontalIcon.tsx | 6 +- .../icons/src/icons/MoreVerticalIcon.tsx | 6 +- .../icons/src/icons/MousePointerIcon.tsx | 6 +- .../packages/icons/src/icons/MoveIcon.tsx | 6 +- .../packages/icons/src/icons/MusicIcon.tsx | 6 +- .../icons/src/icons/Navigation2Icon.tsx | 6 +- .../icons/src/icons/NavigationIcon.tsx | 6 +- .../packages/icons/src/icons/OctagonIcon.tsx | 6 +- .../packages/icons/src/icons/PackageIcon.tsx | 6 +- .../icons/src/icons/PaperclipIcon.tsx | 6 +- .../icons/src/icons/PauseCircleIcon.tsx | 6 +- .../packages/icons/src/icons/PauseIcon.tsx | 6 +- .../packages/icons/src/icons/PenToolIcon.tsx | 6 +- .../packages/icons/src/icons/PercentIcon.tsx | 6 +- .../icons/src/icons/PhoneCallIcon.tsx | 6 +- .../icons/src/icons/PhoneForwardedIcon.tsx | 6 +- .../packages/icons/src/icons/PhoneIcon.tsx | 6 +- .../icons/src/icons/PhoneIncomingIcon.tsx | 6 +- .../icons/src/icons/PhoneMissedIcon.tsx | 6 +- .../packages/icons/src/icons/PhoneOffIcon.tsx | 6 +- .../icons/src/icons/PhoneOutgoingIcon.tsx | 6 +- .../packages/icons/src/icons/PieChartIcon.tsx | 6 +- .../icons/src/icons/PlayCircleIcon.tsx | 6 +- .../packages/icons/src/icons/PlayIcon.tsx | 6 +- .../icons/src/icons/PlusCircleIcon.tsx | 6 +- .../packages/icons/src/icons/PlusIcon.tsx | 6 +- .../icons/src/icons/PlusSquareIcon.tsx | 6 +- .../packages/icons/src/icons/PocketIcon.tsx | 6 +- .../packages/icons/src/icons/PowerIcon.tsx | 6 +- .../packages/icons/src/icons/PrinterIcon.tsx | 6 +- .../packages/icons/src/icons/RadioIcon.tsx | 6 +- .../icons/src/icons/RefreshCcwIcon.tsx | 6 +- .../icons/src/icons/RefreshCwIcon.tsx | 6 +- .../packages/icons/src/icons/RepeatIcon.tsx | 6 +- .../packages/icons/src/icons/RewindIcon.tsx | 6 +- .../icons/src/icons/RotateCcwIcon.tsx | 6 +- .../packages/icons/src/icons/RotateCwIcon.tsx | 6 +- .../packages/icons/src/icons/RssIcon.tsx | 6 +- .../packages/icons/src/icons/SaveIcon.tsx | 6 +- .../packages/icons/src/icons/ScissorsIcon.tsx | 6 +- .../packages/icons/src/icons/SearchIcon.tsx | 6 +- .../packages/icons/src/icons/SendIcon.tsx | 6 +- .../packages/icons/src/icons/ServerIcon.tsx | 6 +- .../packages/icons/src/icons/SettingsIcon.tsx | 6 +- .../packages/icons/src/icons/Share2Icon.tsx | 6 +- .../packages/icons/src/icons/ShareIcon.tsx | 6 +- .../packages/icons/src/icons/ShieldIcon.tsx | 6 +- .../icons/src/icons/ShieldOffIcon.tsx | 6 +- .../icons/src/icons/ShoppingBagIcon.tsx | 6 +- .../icons/src/icons/ShoppingCartIcon.tsx | 6 +- .../packages/icons/src/icons/ShuffleIcon.tsx | 6 +- .../packages/icons/src/icons/SidebarIcon.tsx | 6 +- .../packages/icons/src/icons/SkipBackIcon.tsx | 6 +- .../icons/src/icons/SkipForwardIcon.tsx | 6 +- .../packages/icons/src/icons/SlackIcon.tsx | 6 +- .../packages/icons/src/icons/SlashIcon.tsx | 6 +- .../packages/icons/src/icons/SlidersIcon.tsx | 6 +- .../icons/src/icons/SmartphoneIcon.tsx | 6 +- .../packages/icons/src/icons/SmileIcon.tsx | 6 +- .../packages/icons/src/icons/SpeakerIcon.tsx | 6 +- .../packages/icons/src/icons/SquareIcon.tsx | 6 +- .../packages/icons/src/icons/StarIcon.tsx | 6 +- .../icons/src/icons/StopCircleIcon.tsx | 6 +- .../packages/icons/src/icons/SunIcon.tsx | 6 +- .../packages/icons/src/icons/SunriseIcon.tsx | 6 +- .../packages/icons/src/icons/SunsetIcon.tsx | 6 +- .../packages/icons/src/icons/TabletIcon.tsx | 6 +- .../packages/icons/src/icons/TagIcon.tsx | 6 +- .../packages/icons/src/icons/TargetIcon.tsx | 6 +- .../packages/icons/src/icons/TerminalIcon.tsx | 6 +- .../icons/src/icons/ThermometerIcon.tsx | 6 +- .../icons/src/icons/ThumbsDownIcon.tsx | 6 +- .../packages/icons/src/icons/ThumbsUpIcon.tsx | 6 +- .../icons/src/icons/ToggleLeftIcon.tsx | 6 +- .../icons/src/icons/ToggleRightIcon.tsx | 6 +- .../packages/icons/src/icons/ToolIcon.tsx | 6 +- .../packages/icons/src/icons/Trash2Icon.tsx | 6 +- .../packages/icons/src/icons/TrashIcon.tsx | 6 +- .../packages/icons/src/icons/TrelloIcon.tsx | 6 +- .../icons/src/icons/TrendingDownIcon.tsx | 6 +- .../icons/src/icons/TrendingUpIcon.tsx | 6 +- .../packages/icons/src/icons/TriangleIcon.tsx | 6 +- .../packages/icons/src/icons/TruckIcon.tsx | 6 +- .../packages/icons/src/icons/TvIcon.tsx | 6 +- .../packages/icons/src/icons/TwitchIcon.tsx | 6 +- .../packages/icons/src/icons/TwitterIcon.tsx | 6 +- .../packages/icons/src/icons/TypeIcon.tsx | 6 +- .../packages/icons/src/icons/UmbrellaIcon.tsx | 6 +- .../icons/src/icons/UnderlineIcon.tsx | 6 +- .../packages/icons/src/icons/UnlockIcon.tsx | 6 +- .../icons/src/icons/UploadCloudIcon.tsx | 6 +- .../packages/icons/src/icons/UploadIcon.tsx | 6 +- .../icons/src/icons/UserCheckIcon.tsx | 6 +- .../packages/icons/src/icons/UserIcon.tsx | 6 +- .../icons/src/icons/UserMinusIcon.tsx | 6 +- .../packages/icons/src/icons/UserPlusIcon.tsx | 6 +- .../packages/icons/src/icons/UserXIcon.tsx | 6 +- .../packages/icons/src/icons/UsersIcon.tsx | 6 +- .../packages/icons/src/icons/VideoIcon.tsx | 6 +- .../packages/icons/src/icons/VideoOffIcon.tsx | 6 +- .../icons/src/icons/VoicemailIcon.tsx | 6 +- .../packages/icons/src/icons/Volume1Icon.tsx | 6 +- .../packages/icons/src/icons/Volume2Icon.tsx | 6 +- .../packages/icons/src/icons/VolumeIcon.tsx | 6 +- .../packages/icons/src/icons/VolumeXIcon.tsx | 6 +- .../packages/icons/src/icons/WatchIcon.tsx | 6 +- .../packages/icons/src/icons/WifiIcon.tsx | 6 +- .../packages/icons/src/icons/WifiOffIcon.tsx | 6 +- .../packages/icons/src/icons/WindIcon.tsx | 6 +- .../packages/icons/src/icons/XCircleIcon.tsx | 6 +- .../packages/icons/src/icons/XIcon.tsx | 6 +- .../packages/icons/src/icons/XOctagonIcon.tsx | 6 +- .../packages/icons/src/icons/XSquareIcon.tsx | 6 +- .../packages/icons/src/icons/YoutubeIcon.tsx | 6 +- .../packages/icons/src/icons/ZapIcon.tsx | 6 +- .../packages/icons/src/icons/ZapOffIcon.tsx | 6 +- .../packages/icons/src/icons/ZoomInIcon.tsx | 6 +- .../packages/icons/src/icons/ZoomOutIcon.tsx | 6 +- design-system/packages/icons/src/index.tsx | 574 ++++++++-------- .../packages/loading/src/Loading.tsx | 30 +- design-system/packages/loading/src/index.ts | 2 +- .../packages/modals/src/AlertDialog.tsx | 28 +- design-system/packages/modals/src/Blanket.tsx | 12 +- .../packages/modals/src/DialogBase.tsx | 28 +- design-system/packages/modals/src/Drawer.tsx | 30 +- .../packages/modals/src/DrawerBase.tsx | 72 +- .../packages/modals/src/DrawerController.tsx | 24 +- .../packages/modals/src/drawer-context.tsx | 44 +- design-system/packages/modals/src/index.tsx | 10 +- design-system/packages/modals/src/types.ts | 6 +- design-system/packages/notice/src/Notice.tsx | 44 +- .../packages/notice/src/hooks/button.ts | 22 +- .../packages/notice/src/hooks/notice.ts | 30 +- design-system/packages/notice/src/index.ts | 4 +- design-system/packages/options/src/index.tsx | 40 +- design-system/packages/pill/src/index.tsx | 34 +- .../packages/popover/src/Popover.tsx | 146 ++-- design-system/packages/popover/src/index.ts | 6 +- .../src/SegmentedControl.tsx | 106 +-- .../src/hooks/segmentedControl.ts | 26 +- .../packages/segmented-control/src/index.ts | 2 +- design-system/packages/toast/src/Toast.tsx | 82 +-- design-system/packages/toast/src/context.tsx | 12 +- design-system/packages/toast/src/index.tsx | 4 +- design-system/packages/toast/src/types.ts | 10 +- .../packages/tooltip/src/Tooltip.tsx | 58 +- design-system/packages/tooltip/src/index.ts | 2 +- design-system/website/components/Code.tsx | 10 +- .../website/components/Navigation.tsx | 36 +- design-system/website/components/Page.tsx | 26 +- .../website/components/ReadableColor.tsx | 16 +- design-system/website/next.config.js | 4 +- design-system/website/pages/_app.tsx | 12 +- .../website/pages/components/button.tsx | 20 +- .../website/pages/components/fields.tsx | 38 +- .../website/pages/components/loading.tsx | 12 +- .../website/pages/components/modals.tsx | 24 +- .../website/pages/components/notice.tsx | 12 +- .../website/pages/components/options.tsx | 18 +- .../website/pages/components/pill.tsx | 10 +- .../website/pages/components/popover.tsx | 10 +- .../website/pages/components/toast.tsx | 20 +- .../website/pages/components/tooltip.tsx | 10 +- .../website/pages/core/alias-tokens.tsx | 40 +- .../website/pages/core/global-tokens.tsx | 24 +- design-system/website/pages/core/theme.tsx | 6 +- design-system/website/pages/index.tsx | 6 +- design-system/website/pages/layout/box.tsx | 10 +- design-system/website/pages/layout/center.tsx | 10 +- design-system/website/pages/layout/stack.tsx | 8 +- design-system/website/utils.ts | 6 +- docs/components/Announce.tsx | 10 +- docs/components/Breadcrumbs.tsx | 24 +- docs/components/ContactForm.tsx | 64 +- docs/components/Footer.tsx | 32 +- docs/components/Header.tsx | 198 +++--- docs/components/Markdoc.tsx | 76 +-- docs/components/MobileMenu.tsx | 46 +- docs/components/Page.tsx | 62 +- docs/components/RelatedContent.tsx | 10 +- docs/components/SkipLinks.tsx | 18 +- docs/components/Socials.tsx | 10 +- docs/components/SubscribeForm.tsx | 58 +- docs/components/Theme.tsx | 6 +- docs/components/ThemeToggle.tsx | 36 +- docs/components/content/AdvancedReactCta.tsx | 24 +- docs/components/content/CodeBox.tsx | 28 +- docs/components/content/CodeWindow.tsx | 22 +- docs/components/content/CommunityCta.tsx | 24 +- docs/components/content/CustomerCard.tsx | 12 +- docs/components/content/EndCta.tsx | 26 +- docs/components/content/Intro.tsx | 12 +- docs/components/content/MWrapper.tsx | 12 +- docs/components/content/Pill.tsx | 8 +- docs/components/content/PillCta.tsx | 12 +- docs/components/content/Quote.tsx | 18 +- docs/components/content/Section.tsx | 16 +- docs/components/content/TweetBox.tsx | 12 +- docs/components/docs/ComingSoon.tsx | 6 +- docs/components/docs/CommunitySlackCTA.tsx | 10 +- docs/components/docs/CopyToClipboard.tsx | 6 +- docs/components/docs/DocsFooter.tsx | 8 +- docs/components/docs/DocumentEditorDemo.tsx | 90 +-- docs/components/docs/ExamplesList.tsx | 12 +- docs/components/docs/GitHubExamplesCTA.tsx | 10 +- docs/components/docs/Heading.tsx | 40 +- docs/components/docs/Keystone5DocsCTA.tsx | 6 +- docs/components/docs/Navigation.tsx | 96 +-- docs/components/docs/Sidebar.tsx | 14 +- docs/components/docs/TableOfContents.tsx | 50 +- docs/components/docs/WalkthroughsList.tsx | 12 +- docs/components/icons/ArrowR.tsx | 6 +- docs/components/icons/Automated.tsx | 6 +- docs/components/icons/Bulb.tsx | 6 +- docs/components/icons/Cli.tsx | 6 +- docs/components/icons/ClientLogos.tsx | 6 +- docs/components/icons/Close.tsx | 6 +- docs/components/icons/Code.tsx | 6 +- docs/components/icons/Content.tsx | 6 +- docs/components/icons/Copy.tsx | 6 +- docs/components/icons/Custom.tsx | 6 +- docs/components/icons/DFATLogo.tsx | 6 +- docs/components/icons/DarkMode.tsx | 6 +- docs/components/icons/Docs.tsx | 6 +- docs/components/icons/Download.tsx | 6 +- docs/components/icons/Edit.tsx | 6 +- docs/components/icons/Editor.tsx | 6 +- docs/components/icons/EnliticLogo.tsx | 6 +- docs/components/icons/Filter.tsx | 6 +- docs/components/icons/FrontEndLogos.tsx | 6 +- docs/components/icons/GitHub.tsx | 6 +- docs/components/icons/GraphQl.tsx | 6 +- docs/components/icons/Hamburger.tsx | 6 +- docs/components/icons/Keystone.tsx | 6 +- docs/components/icons/Lab.tsx | 6 +- docs/components/icons/LightMode.tsx | 6 +- docs/components/icons/Link.tsx | 6 +- docs/components/icons/Migration.tsx | 6 +- docs/components/icons/Nextjs.tsx | 6 +- docs/components/icons/Nope.tsx | 6 +- docs/components/icons/Organization.tsx | 6 +- docs/components/icons/PJohnsonLogo.tsx | 6 +- docs/components/icons/Postgres.tsx | 6 +- docs/components/icons/PrintBarLogo.tsx | 6 +- docs/components/icons/Prisma.tsx | 6 +- docs/components/icons/Profile.tsx | 6 +- docs/components/icons/Question.tsx | 6 +- docs/components/icons/Quote.tsx | 6 +- docs/components/icons/Relational.tsx | 6 +- docs/components/icons/Relationship.tsx | 6 +- docs/components/icons/Roadmap.tsx | 6 +- docs/components/icons/RugbyAuLogo.tsx | 6 +- docs/components/icons/Search.tsx | 6 +- docs/components/icons/SearchKeys.tsx | 6 +- docs/components/icons/Shield.tsx | 6 +- docs/components/icons/Slack.tsx | 6 +- docs/components/icons/Thinkmill.tsx | 6 +- docs/components/icons/Tick.tsx | 6 +- docs/components/icons/Twitter.tsx | 6 +- docs/components/icons/Typescript.tsx | 6 +- docs/components/icons/Updates.tsx | 6 +- docs/components/icons/Video.tsx | 6 +- docs/components/icons/VocalLogo.tsx | 6 +- docs/components/icons/Watch.tsx | 6 +- docs/components/icons/Welcome.tsx | 6 +- docs/components/icons/WestpacLogo.tsx | 6 +- docs/components/icons/WhyKeystone.tsx | 6 +- docs/components/icons/YouTube.tsx | 6 +- docs/components/icons/index.ts | 94 +-- docs/components/icons/util.tsx | 10 +- docs/components/primitives/Alert.tsx | 12 +- docs/components/primitives/Badge.tsx | 10 +- docs/components/primitives/Button.tsx | 34 +- docs/components/primitives/Code.tsx | 96 +-- docs/components/primitives/EditButton.tsx | 16 +- docs/components/primitives/Emoji.tsx | 20 +- docs/components/primitives/Field.tsx | 20 +- docs/components/primitives/GitHubButton.tsx | 24 +- docs/components/primitives/Gradient.tsx | 10 +- docs/components/primitives/Highlight.tsx | 10 +- docs/components/primitives/Loading.tsx | 12 +- docs/components/primitives/SearchField.tsx | 16 +- docs/components/primitives/Stack.tsx | 16 +- docs/components/primitives/Status.tsx | 10 +- docs/components/primitives/Type.tsx | 20 +- docs/components/primitives/Well.tsx | 16 +- docs/components/primitives/Wrapper.tsx | 12 +- docs/components/primitives/YouTubeEmbed.tsx | 6 +- docs/components/useOutsideClick.ts | 18 +- docs/lib/TOKENS.ts | 8 +- docs/lib/algoliaStyles.ts | 4 +- docs/lib/forwardRefWithAs.ts | 12 +- docs/lib/initialDocumentDemoContent.ts | 2 +- docs/lib/media.ts | 18 +- docs/lib/og-util.ts | 18 +- docs/lib/prism-theme.ts | 6 +- docs/lib/prose-lite.ts | 2 +- docs/markdoc/config.ts | 98 +-- docs/markdoc/index.test.ts | 52 +- docs/markdoc/index.ts | 126 ++-- docs/markdoc/isTag.ts | 4 +- docs/markdoc/load-all.ts | 12 +- docs/markdoc/show-next-release.ts | 2 +- docs/next-sitemap.config.js | 2 +- docs/pages/404.tsx | 20 +- docs/pages/_app.tsx | 18 +- docs/pages/_document.tsx | 20 +- docs/pages/api/hero-image.tsx | 46 +- docs/pages/blog/[post].tsx | 50 +- docs/pages/blog/index.tsx | 60 +- docs/pages/branding.tsx | 34 +- docs/pages/docs/[...rest].tsx | 30 +- docs/pages/docs/config/overview.tsx | 16 +- docs/pages/docs/examples.tsx | 18 +- .../pages/docs/guides/document-field-demo.tsx | 18 +- docs/pages/docs/guides/overview.tsx | 16 +- docs/pages/docs/index.tsx | 42 +- docs/pages/docs/walkthroughs/index.tsx | 22 +- docs/pages/ds.tsx | 60 +- docs/pages/enterprise.tsx | 44 +- docs/pages/for-content-management.tsx | 46 +- docs/pages/for-developers.tsx | 64 +- docs/pages/for-organisations.tsx | 42 +- docs/pages/index.tsx | 82 +-- docs/pages/updates/index.tsx | 34 +- docs/pages/updates/roadmap.tsx | 58 +- docs/pages/why-keystone.tsx | 72 +- docs/public/assets/focus-visible-polyfill.js | 2 +- .../public/assets/resize-observer-polyfill.js | 2 +- .../replace-show-next-release/index.ts | 38 +- .../replace-show-next-release/markdoc.test.ts | 20 +- .../replace-show-next-release/markdoc.ts | 14 +- docs/scripts/rss.ts | 48 +- docs/scripts/validate-links.ts | 38 +- examples/assets-local/keystone.ts | 8 +- examples/assets-local/schema.ts | 8 +- examples/assets-s3/keystone.ts | 12 +- examples/assets-s3/schema.ts | 8 +- examples/auth/keystone.ts | 20 +- examples/auth/schema.ts | 32 +- examples/cloudinary/keystone.ts | 10 +- examples/cloudinary/schema.ts | 10 +- .../admin/components/CustomLogo.tsx | 8 +- .../custom-admin-ui-logo/admin/config.tsx | 6 +- examples/custom-admin-ui-logo/keystone.ts | 8 +- examples/custom-admin-ui-logo/schema.ts | 10 +- .../admin/components/CustomNavigation.tsx | 8 +- .../admin/config.ts | 6 +- .../custom-admin-ui-navigation/keystone.ts | 8 +- examples/custom-admin-ui-navigation/schema.ts | 10 +- .../admin/components/CustomNavigation.tsx | 8 +- .../custom-admin-ui-pages/admin/config.ts | 6 +- .../admin/pages/custom-page.tsx | 8 +- examples/custom-admin-ui-pages/keystone.ts | 8 +- examples/custom-admin-ui-pages/schema.ts | 10 +- .../fields/related-links/components.tsx | 78 +-- examples/custom-field-view/keystone.ts | 8 +- examples/custom-field-view/schema.ts | 10 +- examples/custom-field/1-text-field/index.ts | 14 +- examples/custom-field/1-text-field/views.tsx | 34 +- examples/custom-field/2-stars-field/index.ts | 24 +- .../2-stars-field/stars-input.tsx | 20 +- examples/custom-field/2-stars-field/views.tsx | 32 +- .../custom-field/3-pair-field-json/index.ts | 46 +- .../custom-field/3-pair-field-json/views.tsx | 38 +- .../custom-field/3-pair-field-nested/index.ts | 44 +- .../3-pair-field-nested/views.tsx | 38 +- examples/custom-field/3-pair-field/index.ts | 48 +- examples/custom-field/3-pair-field/views.tsx | 34 +- .../4-conditional-field/index.tsx | 14 +- .../4-conditional-field/views.tsx | 44 +- examples/custom-field/keystone.ts | 10 +- examples/custom-field/schema.ts | 34 +- examples/custom-id/keystone.ts | 8 +- examples/custom-id/schema.ts | 16 +- examples/custom-id/seed-data.tsx | 32 +- examples/custom-output-paths/keystone.ts | 6 +- examples/custom-output-paths/schema.ts | 14 +- .../custom-session-invalidation/keystone.ts | 32 +- .../custom-session-invalidation/schema.ts | 22 +- examples/custom-session-jwt/keystone.ts | 58 +- examples/custom-session-jwt/schema.ts | 24 +- .../admin/pages/api/auth/[...nextauth].ts | 6 +- examples/custom-session-next-auth/keystone.ts | 16 +- examples/custom-session-next-auth/schema.ts | 14 +- examples/custom-session-next-auth/session.ts | 66 +- examples/custom-session-redis/keystone.ts | 34 +- examples/custom-session-redis/schema.ts | 18 +- examples/custom-session/keystone.ts | 26 +- examples/custom-session/schema.ts | 24 +- examples/default-values/keystone.ts | 8 +- examples/default-values/schema.ts | 32 +- .../keystone-server/keystone.ts | 18 +- .../src/component-blocks/callout.tsx | 38 +- .../src/component-blocks/carousel.tsx | 10 +- .../src/component-blocks/hero.tsx | 8 +- .../src/component-blocks/index.tsx | 14 +- .../src/component-blocks/quote.tsx | 8 +- .../src/component-blocks/tweet.tsx | 20 +- .../src/component-blocks/youtube-video.tsx | 20 +- .../keystone-server/src/schema.ts | 16 +- .../keystone-server/src/seed/index.ts | 44 +- .../nextjs-frontend/next.config.js | 4 +- .../src/components/Callout/Callout.tsx | 46 +- .../src/components/Carousel/Carousel.tsx | 10 +- .../CustomRenderer/CustomRenderer.tsx | 46 +- .../src/components/Hero/Hero.tsx | 8 +- .../src/components/Quote/Quote.tsx | 8 +- .../src/components/Tweet/Tweet.tsx | 18 +- .../components/YouTubeVideo/YouTubeVideo.tsx | 22 +- .../nextjs-frontend/src/graphql.ts | 10 +- .../nextjs-frontend/src/pages/_app.tsx | 10 +- .../nextjs-frontend/src/pages/blog/[slug].tsx | 42 +- .../nextjs-frontend/src/pages/index.tsx | 32 +- examples/document-field/keystone.ts | 8 +- examples/document-field/next.config.js | 4 +- examples/document-field/schema.ts | 10 +- .../document-field/src/pages/author/[id].tsx | 20 +- examples/document-field/src/pages/index.tsx | 16 +- .../document-field/src/pages/post/[slug].tsx | 32 +- examples/document-field/src/utils.tsx | 8 +- examples/example-data.ts | 10 +- examples/example-utils.ts | 2 +- examples/extend-express-app/keystone.ts | 20 +- examples/extend-express-app/routes/tasks.ts | 14 +- examples/extend-express-app/schema.ts | 12 +- examples/extend-express-app/seed-data.tsx | 42 +- .../keystone.ts | 8 +- .../schema.ts | 38 +- .../keystone.ts | 8 +- .../schema.ts | 34 +- .../extend-graphql-schema-nexus/keystone.ts | 8 +- .../nexus-types.ts | 16 +- .../extend-graphql-schema-nexus/schema.ts | 38 +- .../admin/components/CustomNavigation.tsx | 8 +- .../admin/config.ts | 6 +- .../admin/pages/subscriptions.tsx | 50 +- .../extend-graphql-subscriptions/keystone.ts | 10 +- .../extend-graphql-subscriptions/schema.ts | 30 +- .../extend-graphql-subscriptions/websocket.ts | 36 +- examples/extend-prisma-schema/keystone.ts | 10 +- examples/extend-prisma-schema/schema.ts | 14 +- examples/field-groups/keystone.ts | 10 +- examples/field-groups/schema.ts | 14 +- examples/framework-astro/keystone.ts | 6 +- .../framework-astro/src/keystone/context.ts | 12 +- .../framework-astro/src/keystone/schema.ts | 16 +- .../keystone.ts | 12 +- .../src/app/DocumentRender.tsx | 12 +- .../src/app/layout.tsx | 6 +- .../src/app/page.tsx | 14 +- .../src/keystone/context.ts | 12 +- .../src/keystone/schema.ts | 12 +- .../src/keystone/seed.ts | 6 +- .../src/pages/api/graphql.ts | 10 +- .../src/util/request.ts | 4 +- .../keystone.ts | 12 +- .../next.config.js | 4 +- .../src/keystone/context.ts | 12 +- .../src/keystone/schema.ts | 10 +- .../src/keystone/seed.ts | 6 +- .../src/pages/_app.tsx | 10 +- .../src/pages/api/graphql.ts | 10 +- .../src/pages/index.tsx | 42 +- .../src/util/request.ts | 4 +- .../keystone-server/keystone.ts | 18 +- .../keystone-server/src/schema.ts | 14 +- .../keystone-server/src/seed/index.ts | 44 +- .../nextjs-frontend/next.config.js | 4 +- .../nextjs-frontend/src/graphql.ts | 10 +- .../nextjs-frontend/src/pages/_app.tsx | 10 +- .../nextjs-frontend/src/pages/blog/[slug].tsx | 42 +- .../nextjs-frontend/src/pages/index.tsx | 32 +- examples/framework-remix/app/root.tsx | 10 +- examples/framework-remix/app/routes/index.tsx | 22 +- .../app/utils/keystone.server.ts | 12 +- examples/framework-remix/keystone.ts | 12 +- examples/framework-remix/remix.config.js | 2 +- examples/graphql-ts-gql/keystone.ts | 8 +- examples/graphql-ts-gql/schema.ts | 46 +- examples/hooks/keystone.ts | 10 +- examples/hooks/schema.ts | 50 +- examples/limits/keystone.ts | 8 +- examples/limits/schema.ts | 8 +- examples/limits/seed-data.ts | 18 +- examples/omit/keystone.ts | 22 +- examples/omit/schema.ts | 10 +- examples/reuse/keystone.ts | 8 +- examples/reuse/schema.ts | 40 +- examples/script/keystone.ts | 16 +- examples/script/script.ts | 20 +- examples/singleton/keystone.ts | 8 +- examples/singleton/schema.ts | 8 +- examples/singleton/seed-data.tsx | 28 +- examples/testing/example-test.ts | 66 +- examples/testing/keystone.ts | 18 +- examples/testing/schema.ts | 18 +- examples/usecase-blog-moderated/keystone.ts | 26 +- examples/usecase-blog-moderated/schema.ts | 60 +- examples/usecase-blog/keystone.ts | 10 +- examples/usecase-blog/schema.ts | 12 +- examples/usecase-blog/seed-data.ts | 30 +- .../usecase-relationship-union/keystone.ts | 10 +- examples/usecase-relationship-union/schema.ts | 46 +- examples/usecase-roles/access.ts | 34 +- examples/usecase-roles/keystone.ts | 16 +- examples/usecase-roles/schema.ts | 24 +- examples/usecase-todo/keystone.ts | 8 +- examples/usecase-todo/schema.ts | 12 +- examples/usecase-todo/seed-data.ts | 42 +- examples/usecase-versioning/keystone.ts | 10 +- examples/usecase-versioning/schema.ts | 16 +- examples/usecase-versioning/seed-data.ts | 22 +- examples/virtual-field/keystone.ts | 8 +- examples/virtual-field/schema.ts | 26 +- packages/auth/src/components/Icons.tsx | 12 +- .../auth/src/components/SigninContainer.tsx | 14 +- packages/auth/src/gql/getBaseAuthSchema.ts | 46 +- .../auth/src/gql/getInitFirstItemSchema.ts | 30 +- .../auth/src/gql/getMagicAuthLinkSchema.ts | 56 +- .../auth/src/gql/getPasswordResetSchema.ts | 62 +- packages/auth/src/index.ts | 122 ++-- packages/auth/src/lib/createAuthToken.ts | 10 +- packages/auth/src/lib/emailHeuristics.ts | 8 +- packages/auth/src/lib/getErrorMessage.ts | 8 +- packages/auth/src/lib/useFromRedirect.ts | 4 +- packages/auth/src/lib/validateAuthToken.ts | 30 +- packages/auth/src/lib/validateSecret.ts | 14 +- packages/auth/src/pages/InitPage.tsx | 154 ++--- packages/auth/src/pages/SigninPage.tsx | 86 +-- packages/auth/src/schema.ts | 54 +- packages/auth/src/templates/init.ts | 10 +- packages/auth/src/templates/signin.ts | 6 +- packages/auth/src/types.ts | 16 +- packages/cloudinary/src/index.ts | 70 +- packages/cloudinary/src/test-fixtures.skip.ts | 54 +- packages/cloudinary/src/views/Field.tsx | 64 +- packages/cloudinary/src/views/index.tsx | 48 +- packages/core/bin/cli.js | 2 +- .../admin-ui/id-field-view.tsx | 44 +- .../admin-ui/pages/App/index.tsx | 20 +- .../admin-ui/pages/CreateItemPage/index.tsx | 42 +- .../admin-ui/pages/HomePage/index.tsx | 56 +- .../admin-ui/pages/ItemPage/common.tsx | 24 +- .../admin-ui/pages/ItemPage/index.tsx | 216 +++--- .../pages/ListPage/FieldSelection.tsx | 54 +- .../admin-ui/pages/ListPage/FilterAdd.tsx | 108 +-- .../admin-ui/pages/ListPage/FilterList.tsx | 50 +- .../admin-ui/pages/ListPage/SortSelection.tsx | 48 +- .../admin-ui/pages/ListPage/index.tsx | 332 +++++----- .../admin-ui/pages/ListPage/useFilters.tsx | 48 +- .../pages/ListPage/useSelectedFields.tsx | 20 +- .../admin-ui/pages/ListPage/useSort.tsx | 26 +- .../admin-ui/pages/NoAccessPage/index.tsx | 16 +- .../artifacts.ts | 4 +- packages/core/src/access.ts | 12 +- .../core/src/admin-ui/admin-meta-graphql.ts | 16 +- packages/core/src/admin-ui/apollo.tsx | 2 +- .../src/admin-ui/components/CellContainer.tsx | 10 +- .../core/src/admin-ui/components/CellLink.tsx | 10 +- .../src/admin-ui/components/Container.tsx | 8 +- .../admin-ui/components/CreateButtonLink.tsx | 10 +- .../admin-ui/components/CreateItemDrawer.tsx | 28 +- .../core/src/admin-ui/components/Errors.tsx | 34 +- .../components/GraphQLErrorNotice.tsx | 16 +- .../core/src/admin-ui/components/Logo.tsx | 16 +- .../src/admin-ui/components/Navigation.tsx | 92 +-- .../src/admin-ui/components/PageContainer.tsx | 38 +- .../src/admin-ui/components/Pagination.tsx | 66 +- .../src/admin-ui/components/SignoutButton.tsx | 22 +- .../core/src/admin-ui/components/index.ts | 18 +- packages/core/src/admin-ui/context.tsx | 80 +-- packages/core/src/admin-ui/image.tsx | 4 +- packages/core/src/admin-ui/index.tsx | 2 +- packages/core/src/admin-ui/router.tsx | 16 +- .../src/admin-ui/system/generateAdminUI.ts | 110 +-- packages/core/src/admin-ui/system/index.ts | 2 +- packages/core/src/admin-ui/templates/app.ts | 66 +- .../src/admin-ui/templates/create-item.ts | 2 +- packages/core/src/admin-ui/templates/home.ts | 2 +- packages/core/src/admin-ui/templates/index.ts | 28 +- packages/core/src/admin-ui/templates/item.tsx | 2 +- packages/core/src/admin-ui/templates/list.tsx | 2 +- .../src/admin-ui/templates/next-config.ts | 2 +- .../core/src/admin-ui/templates/no-access.ts | 4 +- packages/core/src/admin-ui/utils/Fields.tsx | 94 +-- .../core/src/admin-ui/utils/dataGetter.ts | 36 +- ...getRootGraphQLFieldsFromFieldController.ts | 24 +- packages/core/src/admin-ui/utils/index.ts | 12 +- packages/core/src/admin-ui/utils/item-form.ts | 46 +- .../core/src/admin-ui/utils/serialization.tsx | 46 +- .../admin-ui/utils/serializePathForImport.ts | 4 +- .../core/src/admin-ui/utils/useAdminMeta.tsx | 104 +-- .../core/src/admin-ui/utils/useCreateItem.ts | 100 +-- .../src/admin-ui/utils/useInvalidFields.ts | 22 +- .../src/admin-ui/utils/useLazyMetadata.tsx | 66 +- .../admin-ui/utils/usePreventNavigation.tsx | 26 +- packages/core/src/artifacts.ts | 136 ++-- packages/core/src/context.ts | 12 +- .../core/src/fields/filters/enum-filter.ts | 16 +- packages/core/src/fields/filters/index.ts | 2 +- packages/core/src/fields/filters/internal.ts | 36 +- .../src/fields/filters/providers/mysql.ts | 82 +-- .../fields/filters/providers/postgresql.ts | 84 +-- .../src/fields/filters/providers/sqlite.ts | 82 +-- packages/core/src/fields/index.ts | 64 +- packages/core/src/fields/non-null-graphql.ts | 14 +- .../core/src/fields/types/bigInt/index.ts | 58 +- .../src/fields/types/bigInt/views/index.tsx | 106 +-- .../src/fields/types/calendarDay/index.ts | 76 +-- .../fields/types/calendarDay/views/index.tsx | 64 +- .../core/src/fields/types/checkbox/index.ts | 28 +- .../src/fields/types/checkbox/views/index.tsx | 44 +- .../core/src/fields/types/decimal/index.ts | 76 +-- .../src/fields/types/decimal/views/index.tsx | 118 ++-- packages/core/src/fields/types/file/index.ts | 42 +- .../src/fields/types/file/views/Field.tsx | 46 +- .../src/fields/types/file/views/index.tsx | 48 +- packages/core/src/fields/types/float/index.ts | 48 +- .../src/fields/types/float/views/index.tsx | 102 +-- packages/core/src/fields/types/image/index.ts | 54 +- packages/core/src/fields/types/image/utils.ts | 2 +- .../src/fields/types/image/views/Field.tsx | 96 +-- .../src/fields/types/image/views/index.tsx | 48 +- .../core/src/fields/types/integer/index.ts | 62 +- .../src/fields/types/integer/views/index.tsx | 100 +-- .../src/fields/types/integer/views/utils.tsx | 42 +- packages/core/src/fields/types/json/index.ts | 14 +- .../src/fields/types/json/views/index.tsx | 50 +- .../src/fields/types/multiselect/index.ts | 86 +-- .../fields/types/multiselect/views/index.tsx | 58 +- .../core/src/fields/types/password/index.ts | 80 +-- .../src/fields/types/password/views/index.tsx | 116 ++-- .../src/fields/types/relationship/index.ts | 106 +-- .../relationship/views/RelationshipSelect.tsx | 148 ++--- .../relationship/views/cards/InlineCreate.tsx | 76 +-- .../relationship/views/cards/InlineEdit.tsx | 68 +- .../types/relationship/views/cards/index.tsx | 178 ++--- .../relationship/views/cards/useItemState.tsx | 86 +-- .../fields/types/relationship/views/index.tsx | 222 +++---- .../core/src/fields/types/select/index.ts | 70 +- .../src/fields/types/select/views/index.tsx | 104 +-- packages/core/src/fields/types/text/index.ts | 58 +- .../src/fields/types/text/views/index.tsx | 96 +-- .../core/src/fields/types/timestamp/index.ts | 48 +- .../types/timestamp/views/__tests__/index.tsx | 64 +- .../types/timestamp/views/__tests__/utils.tsx | 22 +- .../fields/types/timestamp/views/index.tsx | 102 +-- .../src/fields/types/timestamp/views/utils.ts | 34 +- .../core/src/fields/types/virtual/index.ts | 24 +- .../fields/types/virtual/views/PrettyData.tsx | 24 +- .../src/fields/types/virtual/views/index.tsx | 26 +- packages/core/src/index.ts | 6 +- packages/core/src/lib/admin-meta-resolver.ts | 118 ++-- .../core/src/lib/assets/createFilesContext.ts | 48 +- .../src/lib/assets/createImagesContext.ts | 56 +- packages/core/src/lib/assets/local.ts | 52 +- packages/core/src/lib/assets/s3.ts | 70 +- packages/core/src/lib/assets/types.ts | 8 +- packages/core/src/lib/assets/utils.ts | 8 +- .../lib/coerceAndValidateForGraphQLInput.ts | 18 +- packages/core/src/lib/config.ts | 24 +- packages/core/src/lib/context/api.ts | 52 +- .../core/src/lib/context/createContext.ts | 74 +-- .../context/executeGraphQLFieldToRootVal.ts | 70 +- .../executeGraphQLFieldWithSelection.ts | 40 +- packages/core/src/lib/core/access-control.ts | 72 +- .../core/src/lib/core/field-assertions.ts | 52 +- .../core/src/lib/core/filter-order-access.ts | 40 +- packages/core/src/lib/core/graphql-errors.ts | 46 +- .../core/src/lib/core/initialise-lists.ts | 316 ++++----- .../src/lib/core/mutations/access-control.ts | 108 +-- .../src/lib/core/mutations/create-update.ts | 226 +++---- .../core/src/lib/core/mutations/delete.ts | 60 +- packages/core/src/lib/core/mutations/hooks.ts | 28 +- packages/core/src/lib/core/mutations/index.ts | 46 +- .../nested-mutation-many-input-resolvers.ts | 68 +- .../nested-mutation-one-input-resolvers.ts | 38 +- .../core/src/lib/core/mutations/validation.ts | 54 +- .../src/lib/core/prisma-schema-printer.ts | 124 ++-- packages/core/src/lib/core/queries/index.ts | 22 +- .../core/src/lib/core/queries/output-field.ts | 118 ++-- .../core/src/lib/core/queries/resolvers.ts | 148 ++--- .../src/lib/core/resolve-relationships.ts | 122 ++-- packages/core/src/lib/core/utils.ts | 102 +-- packages/core/src/lib/core/where-inputs.ts | 74 +-- packages/core/src/lib/create-admin-meta.ts | 112 ++-- packages/core/src/lib/createGraphQLSchema.ts | 66 +- packages/core/src/lib/createSystem.ts | 78 +-- packages/core/src/lib/defaults.ts | 4 +- packages/core/src/lib/esbuild.ts | 8 +- packages/core/src/lib/id-field.ts | 104 +-- packages/core/src/lib/migrations.ts | 190 +++--- packages/core/src/lib/prompts.ts | 14 +- packages/core/src/lib/schema-type-printer.tsx | 86 +-- .../core/src/lib/server/addHealthCheck.ts | 18 +- .../src/lib/server/createAdminUIMiddleware.ts | 64 +- .../src/lib/server/createExpressServer.ts | 84 +-- packages/core/src/lib/telemetry.ts | 206 +++--- packages/core/src/lib/types.d.ts | 2 +- packages/core/src/lib/utils.ts | 6 +- packages/core/src/pkg-dir.ts | 4 +- packages/core/src/schema.ts | 14 +- packages/core/src/scripts/build.ts | 42 +- packages/core/src/scripts/cli.ts | 50 +- packages/core/src/scripts/dev.ts | 338 +++++----- packages/core/src/scripts/index.ts | 18 +- packages/core/src/scripts/prisma.ts | 36 +- packages/core/src/scripts/start.ts | 82 +-- packages/core/src/scripts/telemetry.ts | 24 +- packages/core/src/scripts/utils.ts | 6 +- packages/core/src/session/index.ts | 64 +- packages/core/src/system.ts | 20 +- packages/core/src/testing.ts | 14 +- packages/core/src/types/admin-meta.ts | 42 +- .../core/src/types/config/access-control.ts | 40 +- packages/core/src/types/config/fields.ts | 20 +- packages/core/src/types/config/hooks.ts | 30 +- packages/core/src/types/config/index.ts | 68 +- packages/core/src/types/config/lists.ts | 32 +- packages/core/src/types/context.ts | 44 +- packages/core/src/types/core.ts | 10 +- packages/core/src/types/index.ts | 18 +- .../json-field-type-polyfill-for-sqlite.ts | 40 +- packages/core/src/types/next-fields.ts | 98 +-- .../src/types/schema/graphql-ts-schema.ts | 160 ++--- packages/core/src/types/schema/index.ts | 2 +- .../types/schema/schema-api-with-context.d.ts | 8 +- .../types/schema/schema-api-with-context.js | 2 +- packages/core/src/types/session.ts | 10 +- packages/core/src/types/telemetry.ts | 12 +- packages/core/src/types/type-info.ts | 12 +- packages/core/src/types/type-tests.ts | 18 +- packages/core/src/types/utils.ts | 10 +- packages/core/tests/telemetry.test.ts | 270 ++++---- packages/core/tests/utils.test.ts | 36 +- packages/document-renderer/src/index.tsx | 100 +-- .../src/DocumentEditor/Toolbar.tsx | 186 +++--- .../src/DocumentEditor/alignment.tsx | 64 +- .../block-markdown-shortcuts.ts | 94 +-- .../src/DocumentEditor/blockquote.test.tsx | 36 +- .../src/DocumentEditor/blockquote.tsx | 84 +-- .../src/DocumentEditor/code-block.test.tsx | 58 +- .../src/DocumentEditor/code-block.tsx | 66 +- .../DocumentEditor/component-blocks/api.tsx | 178 ++--- .../component-blocks/array-field.test.tsx | 60 +- ...ld-field-in-recursive-array-field.test.tsx | 24 +- .../component-blocks/chromeful-element.tsx | 60 +- .../component-blocks/chromeless-element.tsx | 30 +- .../component-block-render.tsx | 62 +- .../document-features-normalization.test.tsx | 76 +-- .../component-blocks/field-assertions.test.ts | 108 +-- .../component-blocks/field-assertions.ts | 60 +- .../component-blocks/form-from-preview.tsx | 112 ++-- .../component-blocks/get-value.ts | 60 +- .../DocumentEditor/component-blocks/index.tsx | 106 +-- .../component-blocks/initial-values.ts | 108 +-- .../insert-break-and-delete.test.tsx | 46 +- .../insertion-and-preview-props.test.tsx | 146 ++-- .../multi-child-field-in-array-field.test.tsx | 26 +- .../nested-array-field.test.tsx | 36 +- .../component-blocks/normalization.test.tsx | 110 +-- .../component-blocks/preview-props.test.ts | 120 ++-- .../component-blocks/preview-props.tsx | 166 ++--- .../component-blocks/update-element.ts | 130 ++-- .../component-blocks/utils.test.ts | 40 +- .../DocumentEditor/component-blocks/utils.ts | 194 +++--- .../with-component-blocks.tsx | 354 +++++----- .../src/DocumentEditor/divider.test.tsx | 10 +- .../src/DocumentEditor/divider.tsx | 40 +- .../document-features-normalization.ts | 74 +-- .../src/DocumentEditor/heading.test.tsx | 34 +- .../src/DocumentEditor/heading.tsx | 42 +- .../src/DocumentEditor/index.tsx | 296 ++++----- .../src/DocumentEditor/insert-menu.test.tsx | 98 +-- .../src/DocumentEditor/insert-menu.tsx | 204 +++--- .../src/DocumentEditor/isValidURL.ts | 4 +- .../src/DocumentEditor/layouts.test.tsx | 62 +- .../src/DocumentEditor/layouts.tsx | 136 ++-- .../src/DocumentEditor/leaf.tsx | 48 +- .../src/DocumentEditor/link.test.tsx | 24 +- .../src/DocumentEditor/link.tsx | 210 +++--- .../src/DocumentEditor/lists.test.tsx | 204 +++--- .../src/DocumentEditor/lists.tsx | 148 ++--- .../markdown-link-shortcut.test.tsx | 98 +-- .../src/DocumentEditor/marks.test.tsx | 166 ++--- .../src/DocumentEditor/marks.tsx | 102 +-- .../src/DocumentEditor/paragraphs.ts | 20 +- .../DocumentEditor/pasting/data-transfer.ts | 30 +- .../pasting/html-from-other-editors.test.tsx | 18 +- .../src/DocumentEditor/pasting/html.ts | 158 ++--- .../src/DocumentEditor/pasting/index.ts | 78 +-- .../src/DocumentEditor/pasting/links.test.tsx | 36 +- .../DocumentEditor/pasting/markdown.test.tsx | 56 +- .../src/DocumentEditor/pasting/markdown.ts | 66 +- .../pasting-from-other-slate-editor.test.tsx | 44 +- .../pasting/random-html.test.tsx | 26 +- .../src/DocumentEditor/pasting/test-utils.tsx | 14 +- .../src/DocumentEditor/pasting/utils.ts | 56 +- .../src/DocumentEditor/primitives/index.tsx | 6 +- .../primitives/inline-dialog.tsx | 18 +- .../DocumentEditor/primitives/orderable.tsx | 68 +- .../src/DocumentEditor/primitives/toolbar.tsx | 54 +- .../src/DocumentEditor/relationship.tsx | 72 +- .../src/DocumentEditor/render-element.tsx | 62 +- .../src/DocumentEditor/shortcuts.test.tsx | 26 +- .../src/DocumentEditor/shortcuts.ts | 30 +- .../src/DocumentEditor/slate-types.ts | 30 +- .../src/DocumentEditor/soft-breaks.test.tsx | 22 +- .../src/DocumentEditor/soft-breaks.tsx | 8 +- .../src/DocumentEditor/tests/jsx/impl.ts | 12 +- .../DocumentEditor/tests/jsx/namespace.d.ts | 16 +- .../src/DocumentEditor/tests/jsx/namespace.js | 2 +- .../DocumentEditor/tests/test-utils.test.tsx | 68 +- .../src/DocumentEditor/tests/utils.tsx | 180 ++--- .../src/DocumentEditor/toolbar-state.tsx | 88 +-- .../src/DocumentEditor/utils.ts | 126 ++-- .../fields-document/src/component-blocks.tsx | 4 +- packages/fields-document/src/index.ts | 80 +-- packages/fields-document/src/primitives.ts | 2 +- .../fields-document/src/relationship-data.tsx | 90 +-- .../src/structure-graphql-input.tsx | 218 +++--- .../src/structure-graphql-output.tsx | 82 +-- .../src/structure-validation.ts | 80 +-- .../fields-document/src/structure-views.tsx | 74 +-- packages/fields-document/src/structure.ts | 58 +- .../fields-document/src/validation.test.tsx | 98 +-- packages/fields-document/src/validation.ts | 102 +-- packages/fields-document/src/views.tsx | 100 +-- prisma-utils/main.ts | 104 +-- scripts/prepare-release.js | 172 ++--- tests/admin-ui-tests/filters.test.ts | 108 +-- tests/admin-ui-tests/init.test.ts | 86 +-- tests/admin-ui-tests/list-view-crud.test.ts | 102 +-- tests/admin-ui-tests/live-reloading.test.ts | 112 ++-- tests/admin-ui-tests/navigation.test.ts | 106 +-- tests/admin-ui-tests/relations.test.ts | 38 +- tests/admin-ui-tests/utils.ts | 120 ++-- .../access-control/authed-user.test.ts | 20 +- .../access-control/field-access.test.ts | 144 ++-- .../filter-coercion-and-validation.test.ts | 32 +- .../access-control/list-access.test.ts | 520 +++++++-------- .../access-control/mutations-field.test.ts | 132 ++-- .../mutations-list-filter.test.ts | 80 +-- .../mutations-list-item.test.ts | 172 ++--- .../mutations-list-operation.test.ts | 72 +- tests/api-tests/access-control/schema.test.ts | 116 ++-- tests/api-tests/access-control/utils.ts | 68 +- tests/api-tests/admin-meta.test.ts | 42 +- tests/api-tests/auth-header.test.ts | 144 ++-- tests/api-tests/auth.test.ts | 436 ++++++------ tests/api-tests/body-parser.test.ts | 60 +- tests/api-tests/db-enable-logging.test.ts | 44 +- tests/api-tests/db-map.test.ts | 32 +- .../api-tests/default-value/defaults.test.ts | 28 +- tests/api-tests/extend-express-app.test.ts | 26 +- .../extend-graphql-schema.test.ts | 58 +- tests/api-tests/extend-http-server.test.ts | 26 +- tests/api-tests/field-groups.test.ts | 18 +- tests/api-tests/fields/crud.test.ts | 152 ++--- tests/api-tests/fields/files.test.ts | 132 ++-- .../fields/images.crud.test.disabled.ts | 142 ++-- tests/api-tests/fields/non-null.test.ts | 92 +-- tests/api-tests/fields/required.test.ts | 86 +-- tests/api-tests/fields/types/Virtual.test.ts | 56 +- tests/api-tests/fields/types/bigInt.test.ts | 14 +- .../fields/types/calendarDay.test.ts | 16 +- tests/api-tests/fields/types/checkbox.test.ts | 16 +- tests/api-tests/fields/types/decimal.test.ts | 18 +- tests/api-tests/fields/types/document.test.ts | 118 ++-- .../fixtures/bigInt/non-null/test-fixtures.ts | 26 +- .../types/fixtures/bigInt/test-fixtures.ts | 26 +- .../calendarDay/non-null/test-fixtures.ts | 26 +- .../fixtures/calendarDay/test-fixtures.ts | 26 +- .../types/fixtures/checkbox/test-fixtures.ts | 30 +- .../decimal/non-null/test-fixtures.ts | 28 +- .../types/fixtures/decimal/test-fixtures.ts | 60 +- .../types/fixtures/document/test-fixtures.ts | 32 +- .../types/fixtures/file/test-fixtures.ts | 68 +- .../fixtures/float/non-null/test-fixtures.ts | 26 +- .../types/fixtures/float/test-fixtures.ts | 26 +- .../fields/types/fixtures/id/test-fixtures.ts | 104 +-- .../fixtures/image/test-fixtures-skip.ts | 68 +- .../integer/non-null/test-fixtures.ts | 26 +- .../types/fixtures/integer/test-fixtures.ts | 26 +- .../types/fixtures/json/test-fixtures.ts | 28 +- .../fixtures/multiselect/test-fixtures.ts | 52 +- .../password/non-null/test-fixtures.ts | 30 +- .../types/fixtures/password/test-fixtures.ts | 46 +- .../fixtures/select/non-null/test-fixtures.ts | 36 +- .../types/fixtures/select/test-fixtures.ts | 48 +- .../fixtures/text/nullable/test-fixtures.ts | 26 +- .../types/fixtures/text/test-fixtures.ts | 28 +- .../timestamp/non-null/test-fixtures.ts | 26 +- .../types/fixtures/timestamp/test-fixtures.ts | 36 +- tests/api-tests/fields/types/float.test.ts | 14 +- tests/api-tests/fields/types/integer.test.ts | 14 +- tests/api-tests/fields/types/password.test.ts | 12 +- .../fields/types/relationship.test.ts | 92 +-- tests/api-tests/fields/types/select.test.ts | 18 +- tests/api-tests/fields/types/text.test.ts | 48 +- .../api-tests/fields/types/timestamp.test.ts | 14 +- tests/api-tests/fields/types/utils.ts | 90 +-- tests/api-tests/fields/unique.test.ts | 88 +-- tests/api-tests/fields/unsupported.test.ts | 52 +- tests/api-tests/healthcheck.test.ts | 44 +- tests/api-tests/hooks/hook-errors.test.ts | 202 +++--- tests/api-tests/hooks/list-hooks.test.ts | 44 +- tests/api-tests/hooks/validation.test.ts | 138 ++-- tests/api-tests/id-field.test.ts | 148 ++--- tests/api-tests/indexes.test.ts | 36 +- tests/api-tests/new-interfaces.test.ts | 18 +- tests/api-tests/parallel.test.ts | 48 +- tests/api-tests/queries/cache-hints.test.ts | 142 ++-- .../queries/cursor-pagination.test.ts | 178 ++--- tests/api-tests/queries/filters.test.ts | 262 ++++---- tests/api-tests/queries/limits.test.ts | 122 ++-- tests/api-tests/queries/orderBy.test.ts | 298 ++++----- tests/api-tests/queries/relationships.test.ts | 198 +++--- tests/api-tests/queries/singletons.test.ts | 134 ++-- tests/api-tests/queries/validation.ts | 136 ++-- .../many-to-many-one-sided.test.ts | 214 +++--- .../crud-self-ref/many-to-many.test.ts | 280 ++++---- .../one-to-many-one-sided.test.ts | 324 ++++----- .../crud-self-ref/one-to-many.test.ts | 306 ++++----- .../crud-self-ref/one-to-one.test.ts | 322 ++++----- .../crud/many-to-many-one-sided.test.ts | 250 +++---- .../relationships/crud/many-to-many.test.ts | 316 ++++----- .../crud/one-to-many-one-sided.test.ts | 326 ++++----- .../relationships/crud/one-to-many.test.ts | 342 +++++----- .../relationships/crud/one-to-one.test.ts | 624 +++++++++--------- .../filtering/access-control.test.ts | 56 +- .../relationships/filtering/filtering.test.ts | 152 ++--- .../relationships/filtering/nested.test.ts | 136 ++-- .../relationships/foreign-key.test.ts | 46 +- .../label-search-field-validation.test.ts | 36 +- .../relationships/many-to-one-to-one.test.ts | 92 +-- .../nested-mutations/connect-many.test.ts | 202 +++--- .../nested-mutations/connect-singular.test.ts | 156 ++--- .../create-and-connect-many.test.ts | 108 +-- .../create-and-connect-singular.test.ts | 34 +- .../nested-mutations/create-many.test.ts | 162 ++--- .../nested-mutations/create-singular.test.ts | 138 ++-- .../nested-mutations/disconnect-many.test.ts | 80 +-- .../disconnect-singular.test.ts | 78 +-- .../reconnect-many-to-one.test.ts | 60 +- .../nested-mutations/set-many.test.ts | 90 +-- .../two-way-backreference/to-many.test.ts | 308 ++++----- .../to-one-required.test.ts | 32 +- .../relationships/relation-name.test.ts | 34 +- .../relationships/shared-names.test.ts | 36 +- .../to-one-query-batching.test.ts | 46 +- tests/api-tests/test-runner.ts | 118 ++-- tests/api-tests/utils.ts | 152 ++--- tests/api-tests/with-server.ts | 32 +- tests/benchmarks/fixtures/create-related.js | 70 +- tests/benchmarks/fixtures/create.js | 46 +- tests/benchmarks/fixtures/index.js | 4 +- tests/benchmarks/fixtures/query.js | 118 ++-- tests/benchmarks/lib/utils.js | 44 +- tests/cli-tests/artifacts.test.ts | 58 +- tests/cli-tests/build.test.ts | 54 +- .../fixtures/basic-project/keystone.ts | 8 +- tests/cli-tests/fixtures/basic-with-no-ui.ts | 8 +- .../custom-prisma-project/keystone.ts | 8 +- tests/cli-tests/fixtures/log-node-env.ts | 12 +- .../fixtures/no-fields-with-migrations.ts | 6 +- tests/cli-tests/fixtures/no-fields.ts | 6 +- .../fixtures/one-field-with-migrations.ts | 8 +- .../fixtures/two-fields-with-migrations.ts | 8 +- tests/cli-tests/fixtures/with-ts.ts | 10 +- tests/cli-tests/migrations.test.ts | 386 +++++------ tests/cli-tests/prisma.test.ts | 24 +- tests/cli-tests/utils.ts | 148 ++--- tests/examples-smoke-tests/auth.test.ts | 42 +- .../custom-admin-ui-logo.test.ts | 28 +- .../custom-admin-ui-navigation.test.ts | 56 +- .../custom-admin-ui-pages.test.ts | 32 +- .../custom-field-view.test.ts | 28 +- .../examples-smoke-tests/custom-field.test.ts | 28 +- .../default-values.test.ts | 28 +- .../document-field.test.ts | 28 +- .../extend-express-app.test.ts | 36 +- ...xtend-graphql-schema-graphql-tools.test.ts | 28 +- .../extend-graphql-schema-graphql-ts.test.ts | 28 +- .../extend-graphql-schema-nexus.test.ts | 28 +- tests/examples-smoke-tests/testing.test.ts | 24 +- .../examples-smoke-tests/usecase-blog.test.ts | 28 +- .../usecase-roles.test.ts | 24 +- .../examples-smoke-tests/usecase-todo.test.ts | 28 +- tests/examples-smoke-tests/utils.ts | 118 ++-- .../virtual-field.test.ts | 28 +- tests/sandbox/component-blocks.tsx | 100 +-- ...d-item-to-relationship-in-hook-cards-ui.ts | 14 +- .../configs/7591-body-parser-options.ts | 32 +- tests/sandbox/configs/all-the-things.ts | 26 +- tests/sandbox/keystone.ts | 2 +- tests/sandbox/structure-nested.tsx | 6 +- tests/sandbox/structure-relationships.tsx | 6 +- tests/sandbox/structure.tsx | 6 +- tests/sandbox/utils.ts | 12 +- tests/test-projects/basic/keystone.ts | 8 +- tests/test-projects/basic/schema.ts | 10 +- .../crud-notifications/keystone.ts | 8 +- .../crud-notifications/schema.ts | 14 +- .../test-projects/live-reloading/keystone.ts | 8 +- tests/test-projects/live-reloading/schema.ts | 12 +- .../schemas/changed-prisma-schema.ts | 12 +- .../live-reloading/schemas/initial.ts | 12 +- .../live-reloading/schemas/runtime-error.ts | 6 +- .../live-reloading/schemas/second.ts | 14 +- 1231 files changed, 23592 insertions(+), 23590 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index ef18a41879b..ba0bb2a053f 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -7,5 +7,7 @@ module.exports = { files: ['*.js', '*.jsx', '*.ts', '*.tsx'], }], rules: { + semi: ['error', 'never'], + '@typescript-eslint/semi': ['error', 'never'], } } diff --git a/design-system/packages/button/src/Button.tsx b/design-system/packages/button/src/Button.tsx index 47449de6abb..980fdf8c1e0 100644 --- a/design-system/packages/button/src/Button.tsx +++ b/design-system/packages/button/src/Button.tsx @@ -1,12 +1,12 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { ReactNode, useContext } from 'react'; -import { forwardRefWithAs, jsx } from '@keystone-ui/core'; -import { LoadingDots } from '@keystone-ui/loading'; +import { ReactNode, useContext } from 'react' +import { forwardRefWithAs, jsx } from '@keystone-ui/core' +import { LoadingDots } from '@keystone-ui/loading' -import { ButtonContext } from './context'; -import type { WeightKey, ToneKey, SizeKey } from './hooks/button'; +import { ButtonContext } from './context' +import type { WeightKey, ToneKey, SizeKey } from './hooks/button' type ButtonProps = { /** The Button label content. */ @@ -23,29 +23,29 @@ type ButtonProps = { tone?: ToneKey; /** The weight of the Button. */ weight?: WeightKey; -}; +} const loadingContainerStyles = { left: '50%', position: 'absolute', transform: 'translateX(-50%)', -} as const; +} as const export const Button = forwardRefWithAs<'button', ButtonProps>( ( { as: Tag = 'button', children, isDisabled, isLoading, size, tone, weight, ...otherProps }, ref ) => { - const { useButtonStyles, useButtonTokens, defaults } = useContext(ButtonContext); + const { useButtonStyles, useButtonTokens, defaults } = useContext(ButtonContext) const tokens = useButtonTokens({ size: size || defaults.size, tone: tone || defaults.tone, weight: weight || defaults.weight, - }); + }) const styles = useButtonStyles({ isDisabled, tokens, - }); + }) return ( @@ -56,6 +56,6 @@ export const Button = forwardRefWithAs<'button', ButtonProps>( )} - ); + ) } -); +) diff --git a/design-system/packages/button/src/context.tsx b/design-system/packages/button/src/context.tsx index 9785e91447b..4b4ca80d044 100644 --- a/design-system/packages/button/src/context.tsx +++ b/design-system/packages/button/src/context.tsx @@ -1,4 +1,4 @@ -import React, { ReactNode, createContext, useContext, useMemo } from 'react'; +import React, { ReactNode, createContext, useContext, useMemo } from 'react' import { buttonPropDefaults, @@ -7,7 +7,7 @@ import { SizeKey, ToneKey, WeightKey, -} from './hooks/button'; +} from './hooks/button' export const ButtonContext = createContext<{ defaults: { @@ -21,19 +21,19 @@ export const ButtonContext = createContext<{ defaults: buttonPropDefaults, useButtonStyles, useButtonTokens, -}); +}) // Note hooks are optional for the provider value, but not in the context created above; this is // because they will be merged with the existing context and always exist in the value type ProviderHooksProp = { useButtonStyles?: typeof useButtonStyles; useButtonTokens?: typeof useButtonTokens; -}; +} type ProviderDefaultsProp = { size?: SizeKey; tone?: ToneKey; weight?: WeightKey; -}; +} export const ButtonProvider = ({ defaults, hooks, @@ -43,7 +43,7 @@ export const ButtonProvider = ({ hooks?: ProviderHooksProp; children: ReactNode; }) => { - const parentContext = useContext(ButtonContext); + const parentContext = useContext(ButtonContext) const newContext = useMemo( () => ({ ...parentContext, @@ -54,6 +54,6 @@ export const ButtonProvider = ({ }, }), [parentContext, hooks, defaults] - ); - return {children}; -}; + ) + return {children} +} diff --git a/design-system/packages/button/src/hooks/button.ts b/design-system/packages/button/src/hooks/button.ts index d1c01bac213..4d9e1df568c 100644 --- a/design-system/packages/button/src/hooks/button.ts +++ b/design-system/packages/button/src/hooks/button.ts @@ -1,9 +1,9 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { useTheme } from '@keystone-ui/core'; +import { useTheme } from '@keystone-ui/core' -export const buttonSizeValues = ['large', 'medium', 'small'] as const; +export const buttonSizeValues = ['large', 'medium', 'small'] as const export const buttonToneValues = [ 'active', 'passive', @@ -11,36 +11,36 @@ export const buttonToneValues = [ 'warning', 'negative', 'help', -] as const; -export const buttonWeightValues = ['bold', 'light', 'none', 'link'] as const; +] as const +export const buttonWeightValues = ['bold', 'light', 'none', 'link'] as const -export type SizeKey = (typeof buttonSizeValues)[number]; -export type ToneKey = (typeof buttonToneValues)[number]; -export type WeightKey = (typeof buttonWeightValues)[number]; +export type SizeKey = (typeof buttonSizeValues)[number] +export type ToneKey = (typeof buttonToneValues)[number] +export type WeightKey = (typeof buttonWeightValues)[number] export type ButtonPropDefaults = { size: SizeKey; tone: ToneKey; weight: WeightKey; -}; +} export const buttonPropDefaults = { size: 'medium', tone: 'passive', weight: 'light', -} as const; +} as const type ButtonTokensProps = { size: SizeKey; tone: ToneKey; weight: WeightKey; -}; +} type ButtonStateTokens = { background?: string; borderColor?: string; foreground?: string; shadow?: string; textDecoration?: string; -}; +} export type ButtonTokens = { borderRadius?: number; borderWidth?: number; @@ -53,18 +53,18 @@ export type ButtonTokens = { focus: ButtonStateTokens; hover: ButtonStateTokens; pressed: ButtonStateTokens; -} & ButtonStateTokens; +} & ButtonStateTokens -type Weight = ButtonStateTokens & Pick; +type Weight = ButtonStateTokens & Pick export function useButtonTokens({ tone: toneKey, size: sizeKey, weight: weightKey, }: ButtonTokensProps): ButtonTokens { - const { animation, colors, tones, typography, controlSizes, opacity } = useTheme(); - const tone = tones[toneKey]; - const size = controlSizes[sizeKey]; + const { animation, colors, tones, typography, controlSizes, opacity } = useTheme() + const tone = tones[toneKey] + const size = controlSizes[sizeKey] const weights: { [key in WeightKey]: Weight } = { bold: { @@ -125,9 +125,9 @@ export function useButtonTokens({ textDecoration: 'underline', }, }, - }; + } - const weight = weights[weightKey]; + const weight = weights[weightKey] const tokens: ButtonTokens = { borderRadius: size.borderRadius, @@ -144,16 +144,16 @@ export function useButtonTokens({ opacity ${animation.duration100}, `, ...weight, - }; + } - return tokens; + return tokens } type ButtonStylesProps = { isDisabled?: boolean; isBlock?: boolean; tokens: ButtonTokens; -}; +} export function useButtonStyles({ isDisabled, isBlock, tokens }: ButtonStylesProps) { const baseStyles = { @@ -172,7 +172,7 @@ export function useButtonStyles({ isDisabled, isBlock, tokens }: ButtonStylesPro userSelect: 'none', whiteSpace: 'nowrap', width: isBlock ? '100%' : undefined, - } as const; + } as const const tokenStyles = { backgroundColor: tokens.background || 'transparent', @@ -209,7 +209,7 @@ export function useButtonStyles({ isDisabled, isBlock, tokens }: ButtonStylesPro color: tokens.pressed.foreground, textDecoration: tokens.pressed.textDecoration, }, - }; + } - return { ...baseStyles, ...tokenStyles }; + return { ...baseStyles, ...tokenStyles } } diff --git a/design-system/packages/button/src/index.ts b/design-system/packages/button/src/index.ts index 52deb61bb86..51cfb43c647 100644 --- a/design-system/packages/button/src/index.ts +++ b/design-system/packages/button/src/index.ts @@ -1,3 +1,3 @@ -export * from './Button'; -export * from './context'; -export * from './hooks/button'; +export * from './Button' +export * from './context' +export * from './hooks/button' diff --git a/design-system/packages/core/src/a11y/VisuallyHidden.tsx b/design-system/packages/core/src/a11y/VisuallyHidden.tsx index c7899890941..589e384aebc 100644 --- a/design-system/packages/core/src/a11y/VisuallyHidden.tsx +++ b/design-system/packages/core/src/a11y/VisuallyHidden.tsx @@ -1,5 +1,5 @@ -import React, { ReactNode } from 'react'; -import { forwardRefWithAs } from '../utils'; +import React, { ReactNode } from 'react' +import { forwardRefWithAs } from '../utils' // Only display content to screen readers // ------------------------------ @@ -7,13 +7,13 @@ import { forwardRefWithAs } from '../utils'; type Props = { children?: ReactNode; -}; +} export const VisuallyHidden = forwardRefWithAs<'span', Props>( ({ as: Tag = 'span', ...props }, ref) => { - return ; + return } -); +) export const visuallyHiddenStyles = { border: 0, @@ -24,4 +24,4 @@ export const visuallyHiddenStyles = { position: 'absolute', whiteSpace: 'nowrap', width: 1, -} as const; +} as const diff --git a/design-system/packages/core/src/components/Box.tsx b/design-system/packages/core/src/components/Box.tsx index 5ef4d7e44a0..354870dd353 100644 --- a/design-system/packages/core/src/components/Box.tsx +++ b/design-system/packages/core/src/components/Box.tsx @@ -1,30 +1,30 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { jsx } from '../emotion'; +import { jsx } from '../emotion' -import { useTheme } from '../theme'; -import { useMediaQuery } from '../hooks/useMediaQuery'; -import { forwardRefWithAs, mapResponsiveProp } from '../utils'; -import { ResponsiveProp, Theme } from '../types'; +import { useTheme } from '../theme' +import { useMediaQuery } from '../hooks/useMediaQuery' +import { forwardRefWithAs, mapResponsiveProp } from '../utils' +import { ResponsiveProp, Theme } from '../types' // Types // ----- -type DimensionType = number | string; +type DimensionType = number | string -type TextAlign = 'left' | 'right' | 'center' | 'justify' | 'start' | 'end'; -type TextAlignment = ResponsiveProp; +type TextAlign = 'left' | 'right' | 'center' | 'justify' | 'start' | 'end' +type TextAlignment = ResponsiveProp -type ColorType = ResponsiveProp; +type ColorType = ResponsiveProp export type ColorProps = { /** background-color */ background?: ColorType; /** color */ foreground?: ColorType; -}; +} -type RadiiType = ResponsiveProp; +type RadiiType = ResponsiveProp export type RadiiProps = { /** border-radius */ rounding?: RadiiType; @@ -36,9 +36,9 @@ export type RadiiProps = { roundingRight?: RadiiType; /** border-bottom-left-radius and border-bottom-right-radius */ roundingTop?: RadiiType; -}; +} -type SpacingType = ResponsiveProp; +type SpacingType = ResponsiveProp export type MarginProps = { /** margin */ margin?: SpacingType; @@ -54,7 +54,7 @@ export type MarginProps = { marginY?: SpacingType; /** margin-left and margin-right */ marginX?: SpacingType; -}; +} export type PaddingProps = { /** padding */ @@ -71,7 +71,7 @@ export type PaddingProps = { paddingY?: SpacingType; /** padding-left and padding-right */ paddingX?: SpacingType; -}; +} type BaseBoxProps = { /** text-align */ @@ -80,9 +80,9 @@ type BaseBoxProps = { height?: ResponsiveProp; /** width */ width?: ResponsiveProp; -}; +} -export type BoxProps = ColorProps & RadiiProps & MarginProps & PaddingProps & BaseBoxProps; +export type BoxProps = ColorProps & RadiiProps & MarginProps & PaddingProps & BaseBoxProps // Style Functions // --------------- @@ -113,8 +113,8 @@ export const useBoxStyles = ({ textAlign, width, }: BoxProps) => { - const theme = useTheme(); - const { mq } = useMediaQuery(); + const theme = useTheme() + const { mq } = useMediaQuery() const resolvedColors = useColors( { @@ -122,7 +122,7 @@ export const useBoxStyles = ({ foreground, }, theme - ); + ) const resolvedMargin = useMargin( { @@ -135,7 +135,7 @@ export const useBoxStyles = ({ marginX, }, theme - ); + ) const resolvedPadding = usePadding( { @@ -148,12 +148,12 @@ export const useBoxStyles = ({ paddingX, }, theme - ); + ) const resolvedRounding = useRadii( { rounding, roundingTop, roundingRight, roundingBottom, roundingLeft }, theme - ); + ) return mq({ ...resolvedColors, @@ -164,8 +164,8 @@ export const useBoxStyles = ({ height: height, textAlign: textAlign, width: width, - }); -}; + }) +} // Utils // ------------------------------ @@ -174,17 +174,17 @@ function useColors({ background, foreground }: ColorProps, { palette }: Theme) { return { backgroundColor: background && mapResponsiveProp(background, palette), color: foreground && mapResponsiveProp(foreground, palette), - }; + } } function useRadii( { rounding, roundingTop, roundingRight, roundingBottom, roundingLeft }: RadiiProps, { radii }: Theme ) { - let borderBottomLeftRadius = roundingBottom || roundingLeft || rounding; - let borderBottomRightRadius = roundingBottom || roundingRight || rounding; - let borderTopLeftRadius = roundingTop || roundingLeft || rounding; - let borderTopRightRadius = roundingTop || roundingRight || rounding; + let borderBottomLeftRadius = roundingBottom || roundingLeft || rounding + let borderBottomRightRadius = roundingBottom || roundingRight || rounding + let borderTopLeftRadius = roundingTop || roundingLeft || rounding + let borderTopRightRadius = roundingTop || roundingRight || rounding return { borderBottomLeftRadius: @@ -193,7 +193,7 @@ function useRadii( borderBottomRightRadius && mapResponsiveProp(borderBottomRightRadius, radii), borderTopLeftRadius: borderTopLeftRadius && mapResponsiveProp(borderTopLeftRadius, radii), borderTopRightRadius: borderTopRightRadius && mapResponsiveProp(borderTopRightRadius, radii), - }; + } } function usePadding( @@ -208,34 +208,34 @@ function usePadding( }: PaddingProps, { spacing }: Theme ) { - let pb = paddingBottom || paddingY || padding; - let pt = paddingTop || paddingY || padding; - let pl = paddingLeft || paddingX || padding; - let pr = paddingRight || paddingX || padding; + let pb = paddingBottom || paddingY || padding + let pt = paddingTop || paddingY || padding + let pl = paddingLeft || paddingX || padding + let pr = paddingRight || paddingX || padding return { paddingBottom: pb && mapResponsiveProp(pb, spacing), paddingTop: pt && mapResponsiveProp(pt, spacing), paddingLeft: pl && mapResponsiveProp(pl, spacing), paddingRight: pr && mapResponsiveProp(pr, spacing), - }; + } } function useMargin( { margin, marginTop, marginRight, marginBottom, marginLeft, marginY, marginX }: MarginProps, { spacing }: Theme ) { - let mb = marginBottom || marginY || margin; - let mt = marginTop || marginY || margin; - let ml = marginLeft || marginX || margin; - let mr = marginRight || marginX || margin; + let mb = marginBottom || marginY || margin + let mt = marginTop || marginY || margin + let ml = marginLeft || marginX || margin + let mr = marginRight || marginX || margin return { marginBottom: mb && mapResponsiveProp(mb, spacing), marginTop: mt && mapResponsiveProp(mt, spacing), marginLeft: ml && mapResponsiveProp(ml, spacing), marginRight: mr && mapResponsiveProp(mr, spacing), - }; + } } // Box Component @@ -268,7 +268,7 @@ export const Box = forwardRefWithAs<'div', BoxProps>(({ as: Tag = 'div', ...prop textAlign, width, ...attrs - } = props; + } = props const boxStyles = useBoxStyles({ background, @@ -295,7 +295,7 @@ export const Box = forwardRefWithAs<'div', BoxProps>(({ as: Tag = 'div', ...prop roundingTop, textAlign, width, - }); + }) - return ; -}); + return +}) diff --git a/design-system/packages/core/src/components/Center.tsx b/design-system/packages/core/src/components/Center.tsx index 9ccbf66b9ea..59e7998c8a5 100644 --- a/design-system/packages/core/src/components/Center.tsx +++ b/design-system/packages/core/src/components/Center.tsx @@ -1,14 +1,14 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { jsx } from '../emotion'; +import { jsx } from '../emotion' -import { forwardRefWithAs } from '../utils'; -import { Box, BoxProps } from './Box'; +import { forwardRefWithAs } from '../utils' +import { Box, BoxProps } from './Box' type CenterProps = { fillView?: boolean; -} & BoxProps; +} & BoxProps export const Center = forwardRefWithAs<'div', CenterProps>( ({ fillView = false, ...props }, ref) => { @@ -24,6 +24,6 @@ export const Center = forwardRefWithAs<'div', CenterProps>( }} {...props} /> - ); + ) } -); +) diff --git a/design-system/packages/core/src/components/Core.tsx b/design-system/packages/core/src/components/Core.tsx index b24296eff34..b4553edb8be 100644 --- a/design-system/packages/core/src/components/Core.tsx +++ b/design-system/packages/core/src/components/Core.tsx @@ -1,11 +1,11 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { Fragment, ReactNode } from 'react'; -import { jsx, Global } from '../emotion'; +import { Fragment, ReactNode } from 'react' +import { jsx, Global } from '../emotion' -import { normalize } from '../normalize'; -import { useTheme } from '../theme'; +import { normalize } from '../normalize' +import { useTheme } from '../theme' type CoreProps = { /** The app content. */ @@ -14,7 +14,7 @@ type CoreProps = { includeNormalize?: boolean; /** Optimize text rendering with CSS. */ optimizeLegibility?: boolean; -}; +} export const Core = ({ children, @@ -26,16 +26,16 @@ export const Core = ({ {children} - ); -}; + ) +} // Base CSS // ------------------------------ -type BaseCSSProps = Omit; +type BaseCSSProps = Omit const BaseCSS = ({ includeNormalize, optimizeLegibility }: BaseCSSProps) => { - const { typography, colors } = useTheme(); + const { typography, colors } = useTheme() return ( @@ -81,5 +81,5 @@ const BaseCSS = ({ includeNormalize, optimizeLegibility }: BaseCSSProps) => { }} /> - ); -}; + ) +} diff --git a/design-system/packages/core/src/components/Divider.tsx b/design-system/packages/core/src/components/Divider.tsx index 5e477e735e4..03a77567bbb 100644 --- a/design-system/packages/core/src/components/Divider.tsx +++ b/design-system/packages/core/src/components/Divider.tsx @@ -1,37 +1,37 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { jsx } from '../emotion'; +import { jsx } from '../emotion' -import { useTheme } from '../theme'; -import { ResponsiveProp, Theme } from '../types'; -import { Box, MarginProps } from './Box'; +import { useTheme } from '../theme' +import { ResponsiveProp, Theme } from '../types' +import { Box, MarginProps } from './Box' -type ColorType = ResponsiveProp; +type ColorType = ResponsiveProp const orientationMap = { horizontal: 'width', vertical: 'height', -}; +} type DividerProps = { children?: never; color?: ColorType; orientation?: keyof typeof orientationMap; className?: string; -} & MarginProps; +} & MarginProps export const Divider = ({ orientation = 'vertical', color, ...props }: DividerProps) => { - const { colors } = useTheme(); + const { colors } = useTheme() - const dimension = orientationMap[orientation]; + const dimension = orientationMap[orientation] const styles = { // default the background color to the theme border color backgroundColor: color ? undefined : colors.border, flexShrink: 0, [dimension]: 1, - }; + } // if the color prop is defined, pass it as the background to the box - return ; -}; + return +} diff --git a/design-system/packages/core/src/components/Heading.tsx b/design-system/packages/core/src/components/Heading.tsx index 63b022d7469..f0711f61ef1 100644 --- a/design-system/packages/core/src/components/Heading.tsx +++ b/design-system/packages/core/src/components/Heading.tsx @@ -1,24 +1,24 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { jsx } from '../emotion'; +import { jsx } from '../emotion' -import { forwardRefWithAs } from '../utils'; -import { useTheme } from '../theme'; -import { Box, BoxProps } from './Box'; +import { forwardRefWithAs } from '../utils' +import { useTheme } from '../theme' +import { Box, BoxProps } from './Box' -export const HeadingTypes = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] as const; -type HeadingType = (typeof HeadingTypes)[number]; +export const HeadingTypes = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] as const +type HeadingType = (typeof HeadingTypes)[number] type HeadingProps = { /** The type of heading. */ type?: HeadingType; -} & BoxProps; +} & BoxProps export const Heading = forwardRefWithAs<'h1', HeadingProps>( ({ as = 'h1', type = 'h1', ...props }, ref) => { - const { headingStyles } = useTheme(); - const headingStyle = headingStyles[type]; + const { headingStyles } = useTheme() + const headingStyle = headingStyles[type] const styles = { color: headingStyle.color, fontFamily: headingStyle.family, @@ -26,31 +26,31 @@ export const Heading = forwardRefWithAs<'h1', HeadingProps>( fontWeight: headingStyle.weight, textTransform: headingStyle.transform, margin: 0, - } as const; - return ; + } as const + return } -); +) export const H1 = forwardRefWithAs<'h1', BoxProps>(({ as = 'h1', ...props }, ref) => { - return ; -}); + return +}) export const H2 = forwardRefWithAs<'h2', BoxProps>(({ as = 'h2', ...props }, ref) => { - return ; -}); + return +}) export const H3 = forwardRefWithAs<'h3', BoxProps>(({ as = 'h3', ...props }, ref) => { - return ; -}); + return +}) export const H4 = forwardRefWithAs<'h4', BoxProps>(({ as = 'h4', ...props }, ref) => { - return ; -}); + return +}) export const H5 = forwardRefWithAs<'h5', BoxProps>(({ as = 'h5', ...props }, ref) => { - return ; -}); + return +}) export const H6 = forwardRefWithAs<'h6', BoxProps>(({ as = 'h6', ...props }, ref) => { - return ; -}); + return +}) diff --git a/design-system/packages/core/src/components/Inline.tsx b/design-system/packages/core/src/components/Inline.tsx index 4b5a9cdaa67..10696291362 100644 --- a/design-system/packages/core/src/components/Inline.tsx +++ b/design-system/packages/core/src/components/Inline.tsx @@ -1,20 +1,20 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { Children, ReactNode } from 'react'; -import { jsx } from '../emotion'; +import { Children, ReactNode } from 'react' +import { jsx } from '../emotion' -import { forwardRefWithAs, getChildTag } from '../utils'; -import { Theme } from '../types'; -import { useTheme } from '../theme'; -import { Box, BoxProps } from './Box'; +import { forwardRefWithAs, getChildTag } from '../utils' +import { Theme } from '../types' +import { useTheme } from '../theme' +import { Box, BoxProps } from './Box' const alignment = { center: 'center', end: 'flex-end', start: 'flex-start', stretch: 'stretch', -}; +} type InlineProps = { /** The value of the "align-items" property. */ @@ -23,14 +23,14 @@ type InlineProps = { children: ReactNode; /** The size of the gap between each item. */ gap?: keyof Theme['spacing']; -} & BoxProps; +} & BoxProps export const Inline = forwardRefWithAs<'div', InlineProps>( ({ align = 'start', children, gap = 'none', ...props }, ref) => { - const { spacing } = useTheme(); - const resolvedAlign = alignment[align]; - const resolvedGap = spacing[gap]; - const ChildWrapper = getChildTag(props.as); + const { spacing } = useTheme() + const resolvedAlign = alignment[align] + const resolvedGap = spacing[gap] + const ChildWrapper = getChildTag(props.as) return ( ( ) : null )} - ); + ) } -); +) diff --git a/design-system/packages/core/src/components/Link.tsx b/design-system/packages/core/src/components/Link.tsx index 0f7b5e22b44..df3321ffb89 100644 --- a/design-system/packages/core/src/components/Link.tsx +++ b/design-system/packages/core/src/components/Link.tsx @@ -1,12 +1,12 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { jsx } from '../emotion'; -import { useTheme } from '../theme'; -import { forwardRefWithAs } from '../utils'; +import { jsx } from '../emotion' +import { useTheme } from '../theme' +import { forwardRefWithAs } from '../utils' export const Link = forwardRefWithAs<'a', {}>(({ as: Tag = 'a', ...props }, ref) => { - const { typography, colors } = useTheme(); + const { typography, colors } = useTheme() const styles = { color: colors.linkColor, @@ -18,7 +18,7 @@ export const Link = forwardRefWithAs<'a', {}>(({ as: Tag = 'a', ...props }, ref) color: colors.linkHoverColor, textDecoration: 'underline', }, - }; + } - return ; -}); + return +}) diff --git a/design-system/packages/core/src/components/Stack.tsx b/design-system/packages/core/src/components/Stack.tsx index ae06186d42a..ac6d6a8ba27 100644 --- a/design-system/packages/core/src/components/Stack.tsx +++ b/design-system/packages/core/src/components/Stack.tsx @@ -1,23 +1,23 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { Children, Fragment, ReactNode, isValidElement } from 'react'; +import { Children, Fragment, ReactNode, isValidElement } from 'react' -import { jsx } from '../emotion'; -import { useMediaQuery } from '../hooks/useMediaQuery'; -import { useTheme } from '../theme'; -import { Theme } from '../types'; -import { forwardRefWithAs, mapResponsiveProp, getChildTag } from '../utils'; +import { jsx } from '../emotion' +import { useMediaQuery } from '../hooks/useMediaQuery' +import { useTheme } from '../theme' +import { Theme } from '../types' +import { forwardRefWithAs, mapResponsiveProp, getChildTag } from '../utils' -import { Box, BoxProps } from './Box'; -import { Divider } from './Divider'; +import { Box, BoxProps } from './Box' +import { Divider } from './Divider' const alignment = { center: 'center', end: 'flex-end', start: 'flex-start', stretch: 'stretch', -}; +} const orientationMap = { horizontal: { @@ -30,7 +30,7 @@ const orientationMap = { marginProperty: 'marginTop', dimension: 'height', }, -} as const; +} as const export type StackProps = { /** The value of the "align-items" property. */ @@ -43,16 +43,16 @@ export type StackProps = { dividers?: 'none' | 'around' | 'between' | 'start' | 'end'; /** The size of the gap between each element in the stack. */ gap?: keyof Theme['spacing']; -} & BoxProps; +} & BoxProps export const Stack = forwardRefWithAs<'div', StackProps>( ({ across, align = 'stretch', children, dividers = 'none', gap = 'none', ...props }, ref) => { - const { spacing } = useTheme(); - const { mq } = useMediaQuery(); + const { spacing } = useTheme() + const { mq } = useMediaQuery() - const orientation = across ? 'horizontal' : 'vertical'; - const { dimension, flexDirection, marginProperty } = orientationMap[orientation]; - const ChildWrapper = getChildTag(props.as); + const orientation = across ? 'horizontal' : 'vertical' + const { dimension, flexDirection, marginProperty } = orientationMap[orientation] + const ChildWrapper = getChildTag(props.as) return ( ( {/* wrap the child to avoid unwanted or unexpected "stretch" on things like buttons */} {child} - ); + ) })} {['around', 'end'].includes(dividers) && } - ); + ) } -); +) diff --git a/design-system/packages/core/src/components/Text.tsx b/design-system/packages/core/src/components/Text.tsx index 58eeb9bf126..a2dbb4c71cd 100644 --- a/design-system/packages/core/src/components/Text.tsx +++ b/design-system/packages/core/src/components/Text.tsx @@ -1,13 +1,13 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { jsx } from '../emotion'; +import { jsx } from '../emotion' -import { Theme } from '../types'; -import { forwardRefWithAs } from '../utils'; -import { useMediaQuery } from '../hooks/useMediaQuery'; -import { useTheme } from '../theme'; -import { Box, BoxProps } from './Box'; +import { Theme } from '../types' +import { forwardRefWithAs } from '../utils' +import { useMediaQuery } from '../hooks/useMediaQuery' +import { useTheme } from '../theme' +import { Box, BoxProps } from './Box' type TextProps = { /** The leading of the text. */ @@ -20,16 +20,16 @@ type TextProps = { color?: keyof Theme['palette']; /** The font-weight of the text. */ weight?: keyof Theme['typography']['fontWeight']; -} & BoxProps; +} & BoxProps export const Text = forwardRefWithAs<'div', TextProps>( ( { color, leading = 'base', size = 'medium', tracking = 'base', weight = 'regular', ...props }, ref ) => { - const { palette, typography } = useTheme(); + const { palette, typography } = useTheme() - const { mq } = useMediaQuery(); + const { mq } = useMediaQuery() const styles = mq({ color: color ? palette[color] : undefined, @@ -37,8 +37,8 @@ export const Text = forwardRefWithAs<'div', TextProps>( fontWeight: typography.fontWeight[weight], letterSpacing: typography.tracking[tracking], lineHeight: typography.leading[leading], - }); + }) - return ; + return } -); +) diff --git a/design-system/packages/core/src/emotion.ts b/design-system/packages/core/src/emotion.ts index 68ea6ecf5d4..5bb7522d5a6 100644 --- a/design-system/packages/core/src/emotion.ts +++ b/design-system/packages/core/src/emotion.ts @@ -1 +1 @@ -export { css, jsx, keyframes, Global, ClassNames } from '@emotion/react'; // ensure the same version of emotion +export { css, jsx, keyframes, Global, ClassNames } from '@emotion/react' // ensure the same version of emotion diff --git a/design-system/packages/core/src/hooks/useManagedState.ts b/design-system/packages/core/src/hooks/useManagedState.ts index 70c8fed2d5c..ffd3d3ae97c 100644 --- a/design-system/packages/core/src/hooks/useManagedState.ts +++ b/design-system/packages/core/src/hooks/useManagedState.ts @@ -1,38 +1,38 @@ -import { ChangeEvent, useRef, useState } from 'react'; +import { ChangeEvent, useRef, useState } from 'react' -import { devWarning } from '../utils'; +import { devWarning } from '../utils' -export type ManagedChangeHandler = (value: V, event: E) => void; +export type ManagedChangeHandler = (value: V, event: E) => void export function useManagedState( controlledValue: V | undefined, defaultValue: V, onChange: ManagedChangeHandler | undefined ): [V, ManagedChangeHandler] { - const { current: isControlled } = useRef(controlledValue !== undefined); - const [internalValue, setInternalValue] = useState(defaultValue); + const { current: isControlled } = useRef(controlledValue !== undefined) + const [internalValue, setInternalValue] = useState(defaultValue) // warn consumers when their component is switching from controlled to uncontrolled and vice versa devWarning( isControlled && controlledValue === undefined, 'A component is changing from controlled to uncontrolled. Check the `value` prop being passed in.' - ); + ) devWarning( !isControlled && controlledValue !== undefined, 'A component is changing from uncontrolled to controlled. Check the `value` prop being passed in.' - ); + ) // handle value changes (both internal, and controlled) const setValue = (v: V, e: E) => { if (typeof onChange === 'function') { - onChange(v, e); + onChange(v, e) } - setInternalValue(v); - }; + setInternalValue(v) + } // determine which value to pass on - const value = controlledValue !== undefined ? controlledValue : internalValue; + const value = controlledValue !== undefined ? controlledValue : internalValue - return [value, setValue]; + return [value, setValue] } diff --git a/design-system/packages/core/src/hooks/useMediaQuery.ts b/design-system/packages/core/src/hooks/useMediaQuery.ts index 97445b2813e..97e583d45b2 100644 --- a/design-system/packages/core/src/hooks/useMediaQuery.ts +++ b/design-system/packages/core/src/hooks/useMediaQuery.ts @@ -1,10 +1,10 @@ -import facepaint from 'facepaint'; +import facepaint from 'facepaint' -import { Theme } from '../types'; -import { useTheme } from '../theme'; +import { Theme } from '../types' +import { useTheme } from '../theme' -type BreakPoints = Theme['breakpoints']; -type BreakPoint = keyof BreakPoints; +type BreakPoints = Theme['breakpoints'] +type BreakPoint = keyof BreakPoints /* Facepaint lets you write properties as arrays e.g. @@ -14,28 +14,28 @@ type BreakPoint = keyof BreakPoints; More here: https://github.com/emotion-js/facepaint */ const makeMq = (breakpoints: BreakPoints) => - facepaint(Object.values(breakpoints).map(w => `@media (min-width: ${w}px)`)); + facepaint(Object.values(breakpoints).map(w => `@media (min-width: ${w}px)`)) // helper if array property declaration isn't appropriate const makeMinBreak = (breakpoints: BreakPoints) => (key: BreakPoint) => { - const width = breakpoints[key]; - return `@media (min-width: ${width}px)`; -}; + const width = breakpoints[key] + return `@media (min-width: ${width}px)` +} // the breakpoints are designed to go up i.e. min-width // if a max-width is necessary (hopefully rare) it's nice to provide a helper const makeMaxBreak = (breakpoints: BreakPoints) => (key: BreakPoint) => { - const width = breakpoints[key]; - return `@media (max-width: ${width - 1}px)`; -}; + const width = breakpoints[key] + return `@media (max-width: ${width - 1}px)` +} // FIXME: // Should this even be a hook? I think we can just export these utilities... export const useMediaQuery = () => { - const { breakpoints } = useTheme(); + const { breakpoints } = useTheme() return { mq: makeMq(breakpoints), maxBreak: makeMaxBreak(breakpoints), minBreak: makeMinBreak(breakpoints), - }; -}; + } +} diff --git a/design-system/packages/core/src/index.ts b/design-system/packages/core/src/index.ts index fabf4dfc241..3955c3bc283 100644 --- a/design-system/packages/core/src/index.ts +++ b/design-system/packages/core/src/index.ts @@ -1,17 +1,17 @@ -export * from './emotion'; -export { VisuallyHidden } from './a11y/VisuallyHidden'; -export { Box } from './components/Box'; -export type { BoxProps, ColorProps, RadiiProps, MarginProps, PaddingProps } from './components/Box'; -export { Core } from './components/Core'; -export { Center } from './components/Center'; -export { Divider } from './components/Divider'; -export { Heading, H1, H2, H3, H4, H5, H6 } from './components/Heading'; -export { Inline } from './components/Inline'; -export { Link } from './components/Link'; -export { Stack } from './components/Stack'; -export { Text } from './components/Text'; -export * from './hooks/useMediaQuery'; -export * from './hooks/useManagedState'; -export * from './theme'; -export * from './utils'; -export * from './types'; +export * from './emotion' +export { VisuallyHidden } from './a11y/VisuallyHidden' +export { Box } from './components/Box' +export type { BoxProps, ColorProps, RadiiProps, MarginProps, PaddingProps } from './components/Box' +export { Core } from './components/Core' +export { Center } from './components/Center' +export { Divider } from './components/Divider' +export { Heading, H1, H2, H3, H4, H5, H6 } from './components/Heading' +export { Inline } from './components/Inline' +export { Link } from './components/Link' +export { Stack } from './components/Stack' +export { Text } from './components/Text' +export * from './hooks/useMediaQuery' +export * from './hooks/useManagedState' +export * from './theme' +export * from './utils' +export * from './types' diff --git a/design-system/packages/core/src/normalize.ts b/design-system/packages/core/src/normalize.ts index 6aa108379dc..183ce2b7360 100644 --- a/design-system/packages/core/src/normalize.ts +++ b/design-system/packages/core/src/normalize.ts @@ -1,4 +1,4 @@ -import { css } from './emotion'; +import { css } from './emotion' export const normalize = css` /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ @@ -156,4 +156,4 @@ export const normalize = css` [hidden] { display: none; } -`; +` diff --git a/design-system/packages/core/src/theme.tsx b/design-system/packages/core/src/theme.tsx index 9887b4ca8b1..1c43fffe32e 100644 --- a/design-system/packages/core/src/theme.tsx +++ b/design-system/packages/core/src/theme.tsx @@ -1,20 +1,20 @@ -import React, { ReactNode, createContext, useContext } from 'react'; +import React, { ReactNode, createContext, useContext } from 'react' -import type { Theme } from './types'; -import { theme } from './themes/default'; +import type { Theme } from './types' +import { theme } from './themes/default' export const ThemeContext = createContext<{ theme: Theme; }>({ theme, -}); +}) export const ThemeProvider = ({ theme, children }: { theme: Theme; children: ReactNode }) => { - return {children}; -}; + return {children} +} // TODO: return type required by pnpm :( export const useTheme = (): Theme => { - const { theme } = useContext(ThemeContext); - return theme; -}; + const { theme } = useContext(ThemeContext) + return theme +} diff --git a/design-system/packages/core/src/themes/colors.ts b/design-system/packages/core/src/themes/colors.ts index 97167b042d2..a3608a8aa59 100644 --- a/design-system/packages/core/src/themes/colors.ts +++ b/design-system/packages/core/src/themes/colors.ts @@ -224,4 +224,4 @@ export const palette = { // blueGray700: '#334155', // blueGray800: '#1e293b', // blueGray900: '#0f172a', -} as const; +} as const diff --git a/design-system/packages/core/src/themes/colors_old.ts b/design-system/packages/core/src/themes/colors_old.ts index ba4fb2bf386..2b8d5bb30d2 100644 --- a/design-system/packages/core/src/themes/colors_old.ts +++ b/design-system/packages/core/src/themes/colors_old.ts @@ -347,4 +347,4 @@ export const palette = { orange700: '#aa4709', orange800: '#7a3305', orange900: '#4b1d00', -}; +} diff --git a/design-system/packages/core/src/themes/default.ts b/design-system/packages/core/src/themes/default.ts index 082c39cd237..3519732de6c 100644 --- a/design-system/packages/core/src/themes/default.ts +++ b/design-system/packages/core/src/themes/default.ts @@ -1,6 +1,6 @@ -import { CSSObject } from '@emotion/react'; -import { identityType } from '../utils'; -import { palette as basePalette } from './colors'; +import { CSSObject } from '@emotion/react' +import { identityType } from '../utils' +import { palette as basePalette } from './colors' /** * Global Tokens @@ -49,7 +49,7 @@ const typography = { loose: '0.01em', looser: '0.02em', }, -}; +} const palette = { black: '#000000', @@ -68,14 +68,14 @@ const palette = { neutral900: '#111827', ...basePalette, -}; +} const breakpoints = { small: 576, medium: 768, large: 992, xlarge: 1200, -}; +} const elevation = { e100: 100, // Cards @@ -83,7 +83,7 @@ const elevation = { e300: 300, // Tooltip e400: 400, // Modals e500: 500, // Toasts (notifications) -}; +} const radii = { none: 0, @@ -92,7 +92,7 @@ const radii = { medium: 8, large: 12, full: 9999, -}; +} const sizing = { xxsmall: 16, @@ -102,7 +102,7 @@ const sizing = { large: 38, xlarge: 42, xxlarge: 48, -}; +} const spacing = { none: 0, @@ -113,7 +113,7 @@ const spacing = { large: 16, xlarge: 24, xxlarge: 32, -}; +} const shadow = { s100: `0px 1px 2px rgba(0, 0, 0, 0.2)`, // Cards @@ -121,7 +121,7 @@ const shadow = { s300: `0px 2px 8px rgba(0, 0, 0, 0.2)`, // Tooltip s400: `0px 4px 16px rgba(0, 0, 0, 0.2)`, // Modals s500: `-8px 8px 32px rgba(0, 0, 0, 0.2)`, // Toasts (notifications) -}; +} const animation = { duration0: '0ms', @@ -141,13 +141,13 @@ const animation = { easeIn: `cubic-bezier(0.2, 0, 0, 1)`, easeOut: `cubic-bezier(0.165, 0.840, 0.440, 1)`, linear: 'cubic-bezier(0, 0, 1, 1)', -}; +} const opacity = { full: 1, none: 0, disabled: 0.65, -}; +} /** * Alias Tokens @@ -159,7 +159,7 @@ type HeadingStyle = { size: string; transform: Extract; weight: number; -}; +} const headingStyles: { [key: string]: HeadingStyle } = { h1: { @@ -204,7 +204,7 @@ const headingStyles: { [key: string]: HeadingStyle } = { transform: 'uppercase', weight: typography.fontWeight.bold, }, -}; +} type ControlSize = { borderRadius: number; @@ -217,7 +217,7 @@ type ControlSize = { fontSize: number | string; indicatorBoxSize: number | string; indicatorFontSize: number | string; -}; +} const controlSizes: { [key: string]: ControlSize } = { small: { @@ -256,7 +256,7 @@ const controlSizes: { [key: string]: ControlSize } = { indicatorBoxSize: sizing.medium, indicatorFontSize: typography.fontSize.small, }, -}; +} const colors = { background: 'white', @@ -276,7 +276,7 @@ const colors = { overlayBackground: 'rgba(18,18,18, 0.3)', // blanket behind modal dialogs loaderDark: palette.neutral500, loaderLight: palette.neutral200, -}; +} /** @@ -291,7 +291,7 @@ Tones have 2 foregrounds that should work on these backgrounds: */ -type ToneColor = [string, string, string]; +type ToneColor = [string, string, string] type Tone = { focusRing: string; border: ToneColor; @@ -299,7 +299,7 @@ type Tone = { tint: ToneColor; foreground: ToneColor; fillForeground: ToneColor; -}; +} const tones = identityType<{ [key: string]: Tone }>()({ active: { @@ -350,7 +350,7 @@ const tones = identityType<{ [key: string]: Tone }>()({ foreground: [palette.purple600, palette.purple700, palette.purple800], fillForeground: [palette.white, palette.white, palette.white], }, -}); +}) type SelectableColor = { border: string; @@ -358,7 +358,7 @@ type SelectableColor = { fillForeground: string; foreground: string; tint: string; -}; +} const selectableColors = identityType<{ [key: string]: SelectableColor }>()({ silver: { @@ -403,20 +403,20 @@ const selectableColors = identityType<{ [key: string]: SelectableColor }>()({ foreground: palette.purple600, tint: palette.purple200, }, -}); +}) type SharedFieldStateTokens = { labelColor?: string; legendColor?: string; shadow?: string; -}; +} type ControlFieldStateTokens = { controlBackground?: string; controlBorderColor?: string; controlBorderRadius?: number | string; controlForeground?: string; -}; +} type InputFieldStateTokens = { inputBackground?: string; @@ -424,9 +424,9 @@ type InputFieldStateTokens = { inputBorderRadius?: number | string; inputForeground?: string; iconColor?: string; -}; +} -type FieldStateTokens = SharedFieldStateTokens & ControlFieldStateTokens & InputFieldStateTokens; +type FieldStateTokens = SharedFieldStateTokens & ControlFieldStateTokens & InputFieldStateTokens type FieldTokens = FieldStateTokens & { controlBorderWidth?: number | string; @@ -438,7 +438,7 @@ type FieldTokens = FieldStateTokens & { hover: FieldStateTokens; invalid: FieldStateTokens; selected: SharedFieldStateTokens & ControlFieldStateTokens; -}; +} const fields: FieldTokens = { controlBackground: 'white', @@ -486,7 +486,7 @@ const fields: FieldTokens = { controlBorderColor: palette.blue500, controlForeground: 'white', }, -}; +} /** * Export @@ -512,4 +512,4 @@ export const theme = { tones, selectableColors, fields, -}; +} diff --git a/design-system/packages/core/src/types.ts b/design-system/packages/core/src/types.ts index 15f37151b88..f24cb3b1681 100644 --- a/design-system/packages/core/src/types.ts +++ b/design-system/packages/core/src/types.ts @@ -1,7 +1,7 @@ -import { theme } from './themes/default'; +import { theme } from './themes/default' // Theme Types -export type Theme = typeof theme; +export type Theme = typeof theme -export type ResponsiveProp = T | readonly (T | null)[]; +export type ResponsiveProp = T | readonly (T | null)[] diff --git a/design-system/packages/core/src/utils.ts b/design-system/packages/core/src/utils.ts index ce54fe04bf8..b590f8a8552 100644 --- a/design-system/packages/core/src/utils.ts +++ b/design-system/packages/core/src/utils.ts @@ -8,8 +8,8 @@ import { useEffect, useLayoutEffect, useState, -} from 'react'; -import { createPortal } from 'react-dom'; +} from 'react' +import { createPortal } from 'react-dom' /* Simple switch to return a child tag from a parent tag argument. @@ -19,20 +19,20 @@ export const getChildTag = (parentTag?: ElementType) => { switch (parentTag) { case 'ul': case 'ol': - return 'li'; + return 'li' default: - return 'div'; + return 'div' } -}; +} /* @johannes' one weird trick for fixing TypeScript autocomplete */ export function identityType() { function inner(u: U): U { - return u; + return u } - return inner; + return inner } /* @@ -41,10 +41,10 @@ export function identityType() { export const devWarning = (condition: boolean, message: string) => { if (process.env.NODE_ENV !== 'production') { if (condition) { - console.error(message); + console.error(message) } } -}; +} /* forwardRefWithAs lets us forward refs while keeping the correct component type, @@ -52,7 +52,7 @@ export const devWarning = (condition: boolean, message: string) => { */ type ElementTagNameMap = HTMLElementTagNameMap & - Pick>; + Pick> type AsProp = { as?: Comp; @@ -63,13 +63,13 @@ type AsProp = { ? InstanceType : undefined >; -} & Omit, 'as' | keyof Props>; +} & Omit, 'as' | keyof Props> type CompWithAsProp = < Comp extends ElementType = DefaultElementType >( props: AsProp & Props -) => ReactElement; +) => ReactElement export const forwardRefWithAs = ( render: ( @@ -78,14 +78,14 @@ export const forwardRefWithAs = Exclude ): CompWithAsProp => { // @ts-ignore - return forwardRef(render); -}; + return forwardRef(render) +} /* A helper for making valid IDs from a set of inputs */ export function makeId(...args: (string | number | null | undefined)[]) { - return args.filter(val => val != null).join('--'); + return args.filter(val => val != null).join('--') } /* @@ -103,11 +103,11 @@ export const mapResponsiveProp = < valueMap: Map ) => { if (Array.isArray(value)) { - return value.map(k => (k == null ? null : valueMap[k])); + return value.map(k => (k == null ? null : valueMap[k])) } // @ts-ignore - return valueMap[value]; -}; + return valueMap[value] +} /** * Utils below are ported with thanks from @reach-ui @@ -116,41 +116,41 @@ export const mapResponsiveProp = < // Autogenerate IDs to facilitate WAI-ARIA and server rendering. For reasoning, see // https://github.com/reach/reach-ui/blob/develop/packages/auto-id/src/index.tsx -let serverHandoffComplete = false; -let id = 0; -const genId = () => ++id; +let serverHandoffComplete = false +let id = 0 +const genId = () => ++id export const useId = (idFromProps?: string | null) => { - const initialId = idFromProps || (serverHandoffComplete ? genId() : null); + const initialId = idFromProps || (serverHandoffComplete ? genId() : null) - const [id, setId] = useState(initialId); + const [id, setId] = useState(initialId) useSafeLayoutEffect(() => { if (id === null) { - setId(genId()); + setId(genId()) } // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); + }, []) useEffect(() => { if (serverHandoffComplete === false) { - serverHandoffComplete = true; + serverHandoffComplete = true } - }, []); - return id != null ? String(id) : undefined; -}; + }, []) + return id != null ? String(id) : undefined +} // Works around useLayoutEffect throwing a warning when used in SSR -export const useSafeLayoutEffect = typeof window === 'undefined' ? () => {} : useLayoutEffect; +export const useSafeLayoutEffect = typeof window === 'undefined' ? () => {} : useLayoutEffect type Props = { children: ReactElement; -}; +} export const Portal = ({ children }: Props): React.ReactPortal | null => { if (typeof document === 'undefined') { - return null; + return null } - return createPortal(children, document.body); -}; + return createPortal(children, document.body) +} diff --git a/design-system/packages/fields/src/Checkbox.tsx b/design-system/packages/fields/src/Checkbox.tsx index 9a0625c90e0..4f7be3a80b4 100644 --- a/design-system/packages/fields/src/Checkbox.tsx +++ b/design-system/packages/fields/src/Checkbox.tsx @@ -1,18 +1,18 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { Fragment, InputHTMLAttributes, ReactNode, forwardRef } from 'react'; -import { jsx, VisuallyHidden } from '@keystone-ui/core'; +import { Fragment, InputHTMLAttributes, ReactNode, forwardRef } from 'react' +import { jsx, VisuallyHidden } from '@keystone-ui/core' -import { ControlLabel } from './components/ControlLabel'; -import { CheckIcon } from './components/Icons'; -import { useIndicatorStyles, useIndicatorTokens } from './hooks/indicators'; -import type { SizeType } from './types'; +import { ControlLabel } from './components/ControlLabel' +import { CheckIcon } from './components/Icons' +import { useIndicatorStyles, useIndicatorTokens } from './hooks/indicators' +import type { SizeType } from './types' type CheckboxProps = { /** The checkbox label content. */ children: ReactNode; -} & CheckboxControlProps; +} & CheckboxControlProps export const Checkbox = forwardRef( ({ children, className, size, ...props }, ref) => { @@ -24,9 +24,9 @@ export const Checkbox = forwardRef( > {children} - ); + ) } -); +) type CheckboxControlProps = { /** When true, the checkbox will be checked. */ @@ -37,7 +37,7 @@ type CheckboxControlProps = { size?: SizeType; /** The value of the Checkbox. */ value?: string; -} & Omit, 'size'>; +} & Omit, 'size'> export const CheckboxControl = forwardRef( ({ className, size, ...props }, ref) => ( @@ -48,7 +48,7 @@ export const CheckboxControl = forwardRef ) -); +) const Indicator = ({ className, @@ -59,7 +59,7 @@ const Indicator = ({ children?: ReactNode; className?: string; }) => { - const tokens = useIndicatorTokens({ type: 'checkbox', size: size || 'medium' }); - const styles = useIndicatorStyles({ tokens }); - return
; -}; + const tokens = useIndicatorTokens({ type: 'checkbox', size: size || 'medium' }) + const styles = useIndicatorStyles({ tokens }) + return
+} diff --git a/design-system/packages/fields/src/DatePicker/Calendar.tsx b/design-system/packages/fields/src/DatePicker/Calendar.tsx index 2bae98cb515..166de27cb6e 100644 --- a/design-system/packages/fields/src/DatePicker/Calendar.tsx +++ b/design-system/packages/fields/src/DatePicker/Calendar.tsx @@ -1,31 +1,31 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { DayPicker, DayPickerProps } from 'react-day-picker'; -import { jsx, useTheme } from '@keystone-ui/core'; -import { getContrastText } from './utils/getContrastText'; -import { hexToRgb } from './utils/hexToRgb'; +import { DayPicker, DayPickerProps } from 'react-day-picker' +import { jsx, useTheme } from '@keystone-ui/core' +import { getContrastText } from './utils/getContrastText' +import { hexToRgb } from './utils/hexToRgb' export const Calendar = ({ modifiers, ...props }: DayPickerProps) => { - const styles = useCalendarStyles(); - const indexOfMonday = 1; + const styles = useCalendarStyles() + const indexOfMonday = 1 return (
- ); -}; + ) +} // Styles // ------------------------------ const useCalendarStyles = () => { - const { colors, palette } = useTheme(); - const cellSize = 40; // theme.sizing.base; - const navButtonSize = 24; // theme.sizing.xsmall; - const interactionColor = '#007AFF'; //theme.palette.actions.active; - const rangeBetweenColor = hexToRgb('#007AFF', 0.2); //hexToRgb(interactionColor, 0.2); + const { colors, palette } = useTheme() + const cellSize = 40 // theme.sizing.base; + const navButtonSize = 24 // theme.sizing.xsmall; + const interactionColor = '#007AFF' //theme.palette.actions.active; + const rangeBetweenColor = hexToRgb('#007AFF', 0.2) //hexToRgb(interactionColor, 0.2); return { padding: 8, //theme.spacing.small, @@ -254,5 +254,5 @@ const useCalendarStyles = () => { background: `linear-gradient(to right, ${rangeBetweenColor}, ${colors.overlayBackground})`, }, }, - } as const; -}; + } as const +} diff --git a/design-system/packages/fields/src/DatePicker/components/Adornments.tsx b/design-system/packages/fields/src/DatePicker/components/Adornments.tsx index ae90d451375..c9b6a6df01f 100644 --- a/design-system/packages/fields/src/DatePicker/components/Adornments.tsx +++ b/design-system/packages/fields/src/DatePicker/components/Adornments.tsx @@ -1,12 +1,12 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { ElementType, ReactNode, createContext, useContext } from 'react'; -import { jsx, forwardRefWithAs, useTheme } from '@keystone-ui/core'; +import { ElementType, ReactNode, createContext, useContext } from 'react' +import { jsx, forwardRefWithAs, useTheme } from '@keystone-ui/core' // todo - these also exist at ../../types -export type SizeType = 'small' | 'medium'; -export type ShapeType = 'square' | 'round'; +export type SizeType = 'small' | 'medium' +export type ShapeType = 'square' | 'round' /** * What is this thing? @@ -19,8 +19,8 @@ export type ShapeType = 'square' | 'round'; const AdornmentContext = createContext<{ shape: ShapeType; size: SizeType }>({ shape: 'square', size: 'medium', -}); -const useAdornmentContext = () => useContext(AdornmentContext); +}) +const useAdornmentContext = () => useContext(AdornmentContext) // Adornment Wrapper // ------------------------------ @@ -29,7 +29,7 @@ export type AdornmentWrapperProps = { children: ReactNode; shape: ShapeType; size: SizeType; -}; +} export const AdornmentWrapper = ({ children, shape, size }: AdornmentWrapperProps) => { return ( @@ -45,8 +45,8 @@ export const AdornmentWrapper = ({ children, shape, size }: AdornmentWrapperProp {children}
- ); -}; + ) +} // Adornment Element // ------------------------------ @@ -54,18 +54,18 @@ export const AdornmentWrapper = ({ children, shape, size }: AdornmentWrapperProp const alignmentPaddingMap = { left: 'marginLeft', right: 'marginRight', -}; +} type AdornmentProps = { align: 'left' | 'right'; as?: ElementType; -}; +} export const Adornment = forwardRefWithAs<'div', AdornmentProps>( ({ align, as: Tag = 'div', ...props }, ref) => { - const { shape, size } = useAdornmentContext(); - const { controlSizes } = useTheme(); + const { shape, size } = useAdornmentContext() + const { controlSizes } = useTheme() - const { indicatorBoxSize, paddingX } = controlSizes[size]; + const { indicatorBoxSize, paddingX } = controlSizes[size] // optical alignment shifts towards the middle of the container with the large // border radius on "round" inputs. use padding rather than margin to optimise @@ -75,7 +75,7 @@ export const Adornment = forwardRefWithAs<'div', AdornmentProps>( ? { [alignmentPaddingMap[align]]: paddingX / 4, } - : null; + : null return ( ( }} {...props} /> - ); + ) } -); +) diff --git a/design-system/packages/fields/src/DatePicker/components/InputButton.tsx b/design-system/packages/fields/src/DatePicker/components/InputButton.tsx index b185cc6dfca..4a58d32eab7 100644 --- a/design-system/packages/fields/src/DatePicker/components/InputButton.tsx +++ b/design-system/packages/fields/src/DatePicker/components/InputButton.tsx @@ -1,38 +1,38 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { ButtonHTMLAttributes, forwardRef } from 'react'; -import { jsx, useTheme, VisuallyHidden } from '@keystone-ui/core'; -import { XIcon } from '@keystone-ui/icons/icons/XIcon'; -import { CalendarIcon } from '@keystone-ui/icons/icons/CalendarIcon'; -import { useInputTokens, useInputStyles } from '../..'; -import { Adornment, AdornmentWrapper } from './Adornments'; +import { ButtonHTMLAttributes, forwardRef } from 'react' +import { jsx, useTheme, VisuallyHidden } from '@keystone-ui/core' +import { XIcon } from '@keystone-ui/icons/icons/XIcon' +import { CalendarIcon } from '@keystone-ui/icons/icons/CalendarIcon' +import { useInputTokens, useInputStyles } from '../..' +import { Adornment, AdornmentWrapper } from './Adornments' type ButtonProps = { invalid?: boolean; isSelected?: boolean; onClear?: () => void; -} & ButtonHTMLAttributes; +} & ButtonHTMLAttributes export const InputButton = forwardRef( ({ invalid = false, isSelected, onClear, ...props }, ref) => { - const { spacing } = useTheme(); - const inputTokens = useInputTokens({ size: 'medium' }); - const inputStyles = useInputStyles({ invalid, tokens: inputTokens }); + const { spacing } = useTheme() + const inputTokens = useInputTokens({ size: 'medium' }) + const inputStyles = useInputStyles({ invalid, tokens: inputTokens }) const focusStyles = isSelected ? { ...inputStyles[':focus'], ':hover': inputStyles[':focus'], ':focus': inputStyles[':focus'], } - : null; + : null const buttonStyles = { ...inputStyles, ...focusStyles, cursor: 'pointer', lineHeight: 'initial', // let the button vertically align its text; the have different native behaviour to inputs textAlign: 'left', - } as const; + } as const return ( @@ -42,12 +42,12 @@ export const InputButton = forwardRef( - ); + ) } -); +) const ClearButton = (props: ButtonHTMLAttributes) => { - const { colors } = useTheme(); + const { colors } = useTheme() return ( ) => { clear date value - ); -}; + ) +} diff --git a/design-system/packages/fields/src/DatePicker/index.tsx b/design-system/packages/fields/src/DatePicker/index.tsx index 74cc357c59b..c2a64fc804e 100644 --- a/design-system/packages/fields/src/DatePicker/index.tsx +++ b/design-system/packages/fields/src/DatePicker/index.tsx @@ -1,39 +1,39 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { Fragment, useCallback, useEffect, useRef, useState } from 'react'; -import FocusLock from 'react-focus-lock'; -import { jsx } from '@keystone-ui/core'; -import { PopoverDialog, useControlledPopover } from '@keystone-ui/popover'; +import { Fragment, useCallback, useEffect, useRef, useState } from 'react' +import FocusLock from 'react-focus-lock' +import { jsx } from '@keystone-ui/core' +import { PopoverDialog, useControlledPopover } from '@keystone-ui/popover' import { deserializeDate, formatDate, formatDateType, dateFormatPlaceholder, -} from '../utils/dateFormatters'; -import { DateType } from '../types'; -import { Calendar } from './Calendar'; -import { InputButton } from './components/InputButton'; +} from '../utils/dateFormatters' +import { DateType } from '../types' +import { Calendar } from './Calendar' +import { InputButton } from './components/InputButton' -export type DateInputValue = string | undefined; +export type DateInputValue = string | undefined export type DatePickerProps = { onUpdate: (value: DateType) => void; onClear: () => void; onBlur?: () => void; value: DateType; -}; +} export function useEventCallback any>(callback: Func): Func { - const callbackRef = useRef(callback); + const callbackRef = useRef(callback) const cb = useCallback((...args: any[]) => { - return callbackRef.current(...args); - }, []); + return callbackRef.current(...args) + }, []) useEffect(() => { - callbackRef.current = callback; - }); - return cb as any; + callbackRef.current = callback + }) + return cb as any } export const DatePicker = ({ @@ -43,24 +43,24 @@ export const DatePicker = ({ onBlur: _onBlur, ...props }: DatePickerProps) => { - const [isOpen, _setOpen] = useState(false); + const [isOpen, _setOpen] = useState(false) const onBlur = useEventCallback(() => { - _onBlur?.(); - }); + _onBlur?.() + }) const setOpen = useCallback( (val: boolean) => { - _setOpen(val); + _setOpen(val) if (!val) { - onBlur?.(); + onBlur?.() } }, [onBlur] - ); + ) const { dialog, trigger, arrow } = useControlledPopover( { isOpen, onClose: useCallback(() => { - setOpen(false); + setOpen(false) }, [setOpen]), }, { @@ -74,24 +74,24 @@ export const DatePicker = ({ }, ], } - ); + ) const handleDayClick = useCallback( (day: Date) => { - onUpdate(formatDateType(day)); + onUpdate(formatDateType(day)) // wait a moment so the user has time to see the day become selected setTimeout(() => { - setOpen(false); - }, 300); + setOpen(false) + }, 300) }, [onUpdate, setOpen] - ); + ) // We **can** memoize this, but its a trivial operation // and in the opinion of the author not really something to do // before other more important performance optimisations - const selectedDay = deserializeDate(value); - const formattedDate: DateInputValue = value ? formatDate(selectedDay) : undefined; + const selectedDay = deserializeDate(value) + const formattedDate: DateInputValue = value ? formatDate(selectedDay) : undefined return ( @@ -101,8 +101,8 @@ export const DatePicker = ({ onClear={ value ? () => { - onClear(); - onBlur?.(); + onClear() + onBlur?.() } : undefined } @@ -123,5 +123,5 @@ export const DatePicker = ({ )} - ); -}; + ) +} diff --git a/design-system/packages/fields/src/DatePicker/utils/getContrastText.ts b/design-system/packages/fields/src/DatePicker/utils/getContrastText.ts index ddfcbe385af..89cf5c257e2 100644 --- a/design-system/packages/fields/src/DatePicker/utils/getContrastText.ts +++ b/design-system/packages/fields/src/DatePicker/utils/getContrastText.ts @@ -1,10 +1,10 @@ -import { hexToTriplet } from './hexToRgb'; +import { hexToTriplet } from './hexToRgb' export function getContrastText(color: string) { - const [r, g, b] = hexToTriplet(color); + const [r, g, b] = hexToTriplet(color) // calculate contrast against grayscale - var contrast = (Math.round(r * 299) + Math.round(g * 587) + Math.round(b * 114)) / 1000; + var contrast = (Math.round(r * 299) + Math.round(g * 587) + Math.round(b * 114)) / 1000 - return contrast >= 128 ? 'black' : 'white'; + return contrast >= 128 ? 'black' : 'white' } diff --git a/design-system/packages/fields/src/DatePicker/utils/hexToRgb.ts b/design-system/packages/fields/src/DatePicker/utils/hexToRgb.ts index 21cb5761b30..ce7c49ede07 100644 --- a/design-system/packages/fields/src/DatePicker/utils/hexToRgb.ts +++ b/design-system/packages/fields/src/DatePicker/utils/hexToRgb.ts @@ -1,39 +1,39 @@ function parseHex(hex: string) { - let result = hex; + let result = hex // remove hash symbol if (result.startsWith('#')) { - result = result.slice(1); + result = result.slice(1) } // resolve hex shortcuts if (result.length === 3) { - result = result[0].repeat(2) + result[1].repeat(2) + result[2].repeat(2); + result = result[0].repeat(2) + result[1].repeat(2) + result[2].repeat(2) } - return result; + return result } // eslint-disable-next-line @typescript-eslint/no-unused-vars export function hexToTriplet(dirtyHex: string, alpha?: number) { - const cleanHex = parseHex(dirtyHex); + const cleanHex = parseHex(dirtyHex) - const r = parseInt(cleanHex.slice(0, 2), 16); - const g = parseInt(cleanHex.slice(2, 4), 16); - const b = parseInt(cleanHex.slice(4, 6), 16); + const r = parseInt(cleanHex.slice(0, 2), 16) + const g = parseInt(cleanHex.slice(2, 4), 16) + const b = parseInt(cleanHex.slice(4, 6), 16) - return [r, g, b]; + return [r, g, b] } // values taken from contrast algorithms from w3 // https://www.w3.org/TR/AERT/#color-contrast export function hexToRgb(dirtyHex: string, alpha?: number) { - const [r, g, b] = hexToTriplet(dirtyHex); - const value = `${r}, ${g}, ${b}`; + const [r, g, b] = hexToTriplet(dirtyHex) + const value = `${r}, ${g}, ${b}` if (alpha) { - return `rgba(${value}, ${alpha})`; + return `rgba(${value}, ${alpha})` } - return `rgb(${value})`; + return `rgb(${value})` } diff --git a/design-system/packages/fields/src/FieldContainer.tsx b/design-system/packages/fields/src/FieldContainer.tsx index 1341139129c..a14e34b4061 100644 --- a/design-system/packages/fields/src/FieldContainer.tsx +++ b/design-system/packages/fields/src/FieldContainer.tsx @@ -1,7 +1,7 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { jsx, forwardRefWithAs } from '@keystone-ui/core'; +import { jsx, forwardRefWithAs } from '@keystone-ui/core' export const FieldContainer = forwardRefWithAs<'div', {}>(({ as: Tag = 'div', ...props }, ref) => { - return ; -}); + return +}) diff --git a/design-system/packages/fields/src/FieldDescription.tsx b/design-system/packages/fields/src/FieldDescription.tsx index 7335d2007fd..25c23759a4a 100644 --- a/design-system/packages/fields/src/FieldDescription.tsx +++ b/design-system/packages/fields/src/FieldDescription.tsx @@ -1,17 +1,17 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { jsx, useTheme } from '@keystone-ui/core'; +import { jsx, useTheme } from '@keystone-ui/core' type FieldDescriptionProps = { id: string; children: string | null; -}; +} export const FieldDescription = (props: FieldDescriptionProps) => { - const { spacing, palette } = useTheme(); + const { spacing, palette } = useTheme() if (props.children === null) { - return null; + return null } return (
{ }} {...props} /> - ); -}; + ) +} diff --git a/design-system/packages/fields/src/FieldLabel.tsx b/design-system/packages/fields/src/FieldLabel.tsx index 32a6a78b230..b8a64b9c3ac 100644 --- a/design-system/packages/fields/src/FieldLabel.tsx +++ b/design-system/packages/fields/src/FieldLabel.tsx @@ -1,16 +1,16 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { forwardRefWithAs, jsx, useTheme } from '@keystone-ui/core'; -import type { ReactNode } from 'react'; +import { forwardRefWithAs, jsx, useTheme } from '@keystone-ui/core' +import type { ReactNode } from 'react' type FieldLabelProps = { children: ReactNode; -}; +} export const FieldLabel = forwardRefWithAs<'label', FieldLabelProps>( ({ as: Tag = 'label', children, ...props }, ref) => { - const { typography, fields, spacing } = useTheme(); + const { typography, fields, spacing } = useTheme() return ( ( > {children} - ); + ) } -); +) diff --git a/design-system/packages/fields/src/FieldLegend.tsx b/design-system/packages/fields/src/FieldLegend.tsx index 3c8fd7d5a71..4ad84cadeda 100644 --- a/design-system/packages/fields/src/FieldLegend.tsx +++ b/design-system/packages/fields/src/FieldLegend.tsx @@ -1,13 +1,13 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { jsx, useTheme } from '@keystone-ui/core'; -import type { HTMLAttributes } from 'react'; +import { jsx, useTheme } from '@keystone-ui/core' +import type { HTMLAttributes } from 'react' -type FieldLegendProps = HTMLAttributes; +type FieldLegendProps = HTMLAttributes export const FieldLegend = (props: FieldLegendProps) => { - const { typography, fields, spacing } = useTheme(); + const { typography, fields, spacing } = useTheme() return ( { }} {...props} /> - ); -}; + ) +} diff --git a/design-system/packages/fields/src/Radio.tsx b/design-system/packages/fields/src/Radio.tsx index ec953acc128..4907ae10e26 100644 --- a/design-system/packages/fields/src/Radio.tsx +++ b/design-system/packages/fields/src/Radio.tsx @@ -1,18 +1,18 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { Fragment, InputHTMLAttributes, ReactNode, forwardRef } from 'react'; -import { jsx, VisuallyHidden } from '@keystone-ui/core'; +import { Fragment, InputHTMLAttributes, ReactNode, forwardRef } from 'react' +import { jsx, VisuallyHidden } from '@keystone-ui/core' -import { ControlLabel } from './components/ControlLabel'; -import { DotIcon } from './components/Icons'; -import { useIndicatorStyles, useIndicatorTokens } from './hooks/indicators'; -import type { SizeType } from './types'; +import { ControlLabel } from './components/ControlLabel' +import { DotIcon } from './components/Icons' +import { useIndicatorStyles, useIndicatorTokens } from './hooks/indicators' +import type { SizeType } from './types' type RadioProps = { /** The radio label content. */ children: ReactNode; -} & RadioControlProps; +} & RadioControlProps export const Radio = forwardRef( ({ children, className, size, ...props }, ref) => { @@ -24,9 +24,9 @@ export const Radio = forwardRef( > {children} - ); + ) } -); +) type RadioControlProps = { /** When true, the radio will be checked. */ @@ -37,7 +37,7 @@ type RadioControlProps = { size?: SizeType; /** The value of the Radio. */ value?: string; -} & Omit, 'size'>; +} & Omit, 'size'> export const RadioControl = forwardRef( ({ size, ...props }, ref) => ( @@ -48,10 +48,10 @@ export const RadioControl = forwardRef( ) -); +) const Indicator = ({ size, ...props }: { size?: SizeType; children?: ReactNode }) => { - const tokens = useIndicatorTokens({ type: 'radio', size: size || 'medium' }); - const styles = useIndicatorStyles({ tokens }); - return
; -}; + const tokens = useIndicatorTokens({ type: 'radio', size: size || 'medium' }) + const styles = useIndicatorStyles({ tokens }) + return
+} diff --git a/design-system/packages/fields/src/Select.tsx b/design-system/packages/fields/src/Select.tsx index 5776fa56cb3..884be77d345 100644 --- a/design-system/packages/fields/src/Select.tsx +++ b/design-system/packages/fields/src/Select.tsx @@ -1,23 +1,23 @@ /** @jsxRuntime classic */ /** @jsx jsx */ -import { jsx, useTheme } from '@keystone-ui/core'; -import ReactSelect, { Options, mergeStyles, Props } from 'react-select'; -import { useInputTokens } from './hooks/inputs'; -import { WidthType } from './types'; +import { jsx, useTheme } from '@keystone-ui/core' +import ReactSelect, { Options, mergeStyles, Props } from 'react-select' +import { useInputTokens } from './hooks/inputs' +import { WidthType } from './types' -type Option = { label: string; value: string; isDisabled?: boolean }; +type Option = { label: string; value: string; isDisabled?: boolean } type BaseSelectProps = Omit< Props, 'value' | 'onChange' | 'isMulti' | 'isOptionDisabled' -> & { width?: WidthType }; +> & { width?: WidthType } -export { components as selectComponents } from 'react-select'; +export { components as selectComponents } from 'react-select' type ControlState = { isDisabled?: boolean; isFocused: boolean; -}; +} const useStyles = ({ tokens, @@ -26,14 +26,14 @@ const useStyles = ({ tokens: ReturnType; multi?: boolean; }) => { - const { palette } = useTheme(); + const { palette } = useTheme() const indicatorStyles = (provided: any, state: ControlState) => ({ ...provided, color: state.isFocused ? palette.neutral600 : palette.neutral500, ':hover': { color: state.isFocused ? palette.neutral800 : palette.neutral700, }, - }); + }) return { control: (provided: any, state: ControlState) => { const base = { @@ -45,7 +45,7 @@ const useStyles = ({ fontSize: tokens.fontSize, boxShadow: tokens.shadow, transition: tokens.transition, - }; + } const variant = state.isDisabled ? { backgroundColor: tokens.disabled.background || tokens.background, @@ -67,8 +67,8 @@ const useStyles = ({ boxShadow: tokens.hover.shadow, color: tokens.hover.foreground, }, - }; - return { ...provided, ...base, ...variant }; + } + return { ...provided, ...base, ...variant } }, clearIndicator: indicatorStyles, dropdownIndicator: indicatorStyles, @@ -102,10 +102,10 @@ const useStyles = ({ ...provided, padding: multi ? `0 4px` : `0 6px`, }), - }; -}; + } +} -const portalTarget = typeof document !== 'undefined' ? document.body : undefined; +const portalTarget = typeof document !== 'undefined' ? document.body : undefined export function Select({ id, @@ -120,9 +120,9 @@ export function Select({ portalMenu?: true; onChange(value: Option | null): void; }) { - const tokens = useInputTokens({ width: widthKey }); - const defaultStyles = useStyles({ tokens }); - const composedStyles = styles ? mergeStyles(defaultStyles, styles) : defaultStyles; + const tokens = useInputTokens({ width: widthKey }) + const defaultStyles = useStyles({ tokens }) + const composedStyles = styles ? mergeStyles(defaultStyles, styles) : defaultStyles return ( { if (!value) { - onChange(null); + onChange(null) } else { - onChange(value as any); + onChange(value as any) } }} {...props} isMulti={false} menuPortalTarget={portalMenu && portalTarget} /> - ); + ) } export function MultiSelect({ @@ -157,9 +157,9 @@ export function MultiSelect({ portalMenu?: true; onChange(value: Options