diff --git a/.changeset/chilled-rivers-prove.md b/.changeset/chilled-rivers-prove.md index 31eda5ac21d..39b567f06dd 100644 --- a/.changeset/chilled-rivers-prove.md +++ b/.changeset/chilled-rivers-prove.md @@ -4,26 +4,33 @@ 1. graphql plugin can now we be specified as - ```js - plugins: { '@graphql-eslint': graphqlPlugin } - ``` + ```diff + plugins: { + - '@graphql-eslint': { + - graphqlPlugin.rules + - } + + '@graphql-eslint': graphqlPlugin + } + ``` 1. Config rules should now be accessed through the `rules` property - ```diff - rules: { - - ...graphqlESLint.configs['flat/operations-recommended'] - + ...graphqlESLint.configs['flat/operations-recommended'].rules - ``` + ```diff + rules: { + - ...graphqlESLint.configs['flat/operations-recommended'] + + ...graphqlESLint.configs['flat/operations-recommended'].rules + ``` 1. processor can now be specified with accessing `processor` property - ```js - processor: graphqlPlugin.processor - ``` + ```diff + - processor: graphql.processors.graphql + + processor: graphqlPlugin.processor + ``` 1. The plugin can now be imported using a default import - ```js - import graphqlPlugin from '@graphql-eslint/eslint-plugin' - ``` + ```diff + - import * as graphql from '@graphql-eslint/eslint-plugin' + + import graphqlPlugin from '@graphql-eslint/eslint-plugin' + ``` diff --git a/.changeset/metal-wasps-type.md b/.changeset/metal-wasps-type.md new file mode 100644 index 00000000000..9ce0ac508a5 --- /dev/null +++ b/.changeset/metal-wasps-type.md @@ -0,0 +1,5 @@ +--- +'@graphql-eslint/eslint-plugin': patch +--- + +fix some issues on Windows by running tests with matrix on github CI diff --git a/.eslintrc.cjs b/.eslintrc.cjs index c33e75b9d5b..2572e2becd9 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -8,7 +8,6 @@ module.exports = { ], rules: { 'unicorn/prefer-array-some': 'error', - 'unicorn/better-regex': 'error', 'prefer-destructuring': ['error', { VariableDeclarator: { object: true } }], quotes: ['error', 'single', { avoidEscape: true }], // Matches Prettier, but also replaces backticks }, @@ -28,9 +27,6 @@ module.exports = { '@typescript-eslint/array-type': ['error', { readonly: 'generic' }], '@typescript-eslint/consistent-type-imports': ['error', { prefer: 'no-type-imports' }], }, - parserOptions: { - project: ['tsconfig.json', 'website/tsconfig.json', 'tsconfig.eslint.json'], - }, }, { files: ['**/rules/*.ts'], @@ -99,7 +95,12 @@ module.exports = { 'error', { // TODO: figure out why there is an error only on CI - whitelist: ['nextra-scrollbar'], + whitelist: [ + 'nextra-scrollbar', + '_text-primary-600', + '_underline', + '_decoration-from-font', + ], }, ], 'react/no-unknown-property': ['error', { ignore: ['jsx', 'global'] }], @@ -110,5 +111,13 @@ module.exports = { }, }, }, + { + files: ['website/**/*.mdx'], + rules: { + // TODO: remove `# {frontMatter.title}` and this override + '@typescript-eslint/no-unused-expressions': 'off', + 'no-undef': 'off', + }, + }, ], }; diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8a45b6f430a..6008a782ecd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,18 +17,27 @@ jobs: githubToken: ${{ secrets.GITHUB_TOKEN }} typecheck: - name: typecheck / graphql v${{matrix.graphql_version}} - runs-on: ubuntu-latest + name: typecheck / graphql v${{matrix.graphql_version}} (${{matrix.os}}) + runs-on: ${{ matrix.os }} strategy: matrix: + os: [ubuntu-latest] graphql_version: [16] steps: - - name: Checkout Master + - name: Checkout out code uses: actions/checkout@v4 with: fetch-depth: 0 + - name: Cache turbo build setup + uses: actions/cache@v4 + with: + path: .turbo + key: ${{ runner.os }}-turbo-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-turbo- + - name: Setup ENV uses: the-guild-org/shared-config/setup@main with: @@ -39,13 +48,16 @@ jobs: run: pnpm build test: - name: Node.js v${{matrix.node_version}} / GraphQL v${{matrix.graphql_version}} / ESLint v9 + name: + Node.js v${{matrix.node_version}} / GraphQL v${{matrix.graphql_version}} / ESLint v9 + (${{matrix.os}}) timeout-minutes: 60 - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} needs: [typecheck] strategy: matrix: - node_version: [18, 20, 22] + os: [ubuntu-latest, windows-latest] + node_version: [22] graphql_version: [16] steps: @@ -54,6 +66,14 @@ jobs: with: fetch-depth: 0 + - name: Cache turbo build setup + uses: actions/cache@v4 + with: + path: .turbo + key: ${{ runner.os }}-turbo-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-turbo- + - name: Setup ENV uses: the-guild-org/shared-config/setup@main with: diff --git a/.prettierrc.cjs b/.prettierrc.cjs deleted file mode 100644 index ad32ccb4251..00000000000 --- a/.prettierrc.cjs +++ /dev/null @@ -1,7 +0,0 @@ -const { plugins, ...prettierConfig } = require('@theguild/prettier-config'); - -module.exports = { - ...prettierConfig, - plugins: [...plugins, 'prettier-plugin-tailwindcss'], - tailwindConfig: './website/tailwind.config.ts', -}; diff --git a/examples/prettier/.eslintrc.cjs b/examples/prettier/.eslintrc.cjs index ac0c7cc37d6..a636851bc26 100644 --- a/examples/prettier/.eslintrc.cjs +++ b/examples/prettier/.eslintrc.cjs @@ -12,6 +12,9 @@ module.exports = { env: { es6: true, }, + parserOptions: { + sourceType: 'module', + }, }, { files: ['*.graphql'], diff --git a/examples/prettier/prettier.config.js b/examples/prettier/prettier.config.js new file mode 100644 index 00000000000..2ccd84e2446 --- /dev/null +++ b/examples/prettier/prettier.config.js @@ -0,0 +1,4 @@ +export default { + endOfLine: 'auto', + singleQuote: true, +}; diff --git a/package.json b/package.json index d22de20036d..7719f30ceca 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ }, "scripts": { "build": "turbo run build --filter=!website && attw --pack packages/plugin/dist", - "ci:lint": "ESLINT_USE_FLAT_CONFIG=false eslint --ignore-path .gitignore --output-file eslint_report.json --format json .", + "ci:lint": "pnpm lint --output-file eslint_report.json --format json", "create-rule": "tsx scripts/create-rule.ts", "generate:configs": "tsx scripts/generate-configs.ts", "lint": "ESLINT_USE_FLAT_CONFIG=false eslint --ignore-path .gitignore --cache .", @@ -30,7 +30,7 @@ "@changesets/cli": "2.27.9", "@graphql-tools/utils": "10.5.6", "@theguild/eslint-config": "0.13.0", - "@theguild/prettier-config": "2.0.7", + "@theguild/prettier-config": "3.0.0", "@types/dedent": "0.7.2", "@types/node": "22.9.0", "chalk": "5.3.0", diff --git a/packages/plugin/__tests__/examples.spec.ts b/packages/plugin/__tests__/examples.spec.ts index 1923454213b..acc4973d7d0 100644 --- a/packages/plugin/__tests__/examples.spec.ts +++ b/packages/plugin/__tests__/examples.spec.ts @@ -1,9 +1,10 @@ import { spawnSync } from 'node:child_process'; -import { join, relative } from 'node:path'; +import os from 'node:os'; +import path from 'node:path'; import { ESLint } from 'eslint'; -import { CWD as PROJECT_CWD } from '../src/utils.js'; +import { CWD as PROJECT_CWD, slash } from '../src/utils.js'; -const CWD = join(PROJECT_CWD, '..', '..'); +const CWD = path.join(PROJECT_CWD, '..', '..'); function countErrors(results: ESLint.LintResult[]): number { return results.reduce((acc, curr: ESLint.LintResult & { fatalErrorCount: number }) => { @@ -18,7 +19,11 @@ ${results.map(result => result.messages.map(m => m.message)).join('\n\n')} } function getFlatESLintOutput(cwd: string): ESLint.LintResult[] { - const { stdout, stderr } = spawnSync('eslint', ['--format', 'json', '.'], { cwd }); + const { stdout, stderr } = spawnSync('eslint', ['--format', 'json', '.'], { + cwd, + // For Windows, otherwise `stdout` and `stderr` are `null` + shell: os.platform() === 'win32', + }); return parseESLintOutput({ stdout, stderr }); } @@ -30,6 +35,8 @@ function getLegacyESLintOutput(cwd: string): ESLint.LintResult[] { { cwd, env: { ...process.env, ESLINT_USE_FLAT_CONFIG: 'false' }, + // For Windows, otherwise `stdout` and `stderr` are `null` + shell: os.platform() === 'win32', }, ); @@ -46,10 +53,15 @@ function parseESLintOutput({ const errorOutput = stderr .toString() .replace( - /\(node:\d{4,7}\) \[DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead./, + /\(node:\d+\) \[DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead./, + '', + ) + .replace( + /\(node:\d+\) ESLintRCWarning: You are using an eslintrc configuration file, which is deprecated and support will be removed in v10.0.0. Please migrate to an eslint.config.js file. See https:\/\/eslint.org\/docs\/latest\/use\/configure\/migration-guide for details./, '', ) .replace('(Use `node --trace-deprecation ...` to show where the warning was created)', '') + .replace('(Use `node --trace-warnings ...` to show where the warning was created)', '') .trimEnd(); if (errorOutput) { throw new Error(errorOutput); @@ -63,7 +75,7 @@ function parseESLintOutput({ function normalizeResults(results: ESLint.LintResult[]) { return results .map(result => ({ - filePath: relative(CWD, result.filePath), + filePath: slash(path.relative(CWD, result.filePath)), messages: result.messages, })) .filter(result => result.messages.length > 0); @@ -71,52 +83,54 @@ function normalizeResults(results: ESLint.LintResult[]) { describe('Examples', () => { it('should work programmatically', () => { - const cwd = join(CWD, 'examples/programmatic'); + const cwd = path.join(CWD, 'examples', 'programmatic'); testESLintOutput(cwd, 6); }); it('should work on `.js` files', () => { - const cwd = join(CWD, 'examples/code-file'); + const cwd = path.join(CWD, 'examples', 'code-file'); testESLintOutput(cwd, 4); }); it('should work with `graphql-config`', () => { - const cwd = join(CWD, 'examples/graphql-config'); + const cwd = path.join(CWD, 'examples', 'graphql-config'); testESLintOutput(cwd, 2); }); it('should work with `eslint-plugin-prettier`', () => { - const cwd = join(CWD, 'examples/prettier'); + const cwd = path.join(CWD, 'examples', 'prettier'); testESLintOutput(cwd, 23); }); it('should work in monorepo', () => { - const cwd = join(CWD, 'examples/monorepo'); + const cwd = path.join(CWD, 'examples', 'monorepo'); testESLintOutput(cwd, 11); }); it('should work in svelte', () => { - const cwd = join(CWD, 'examples/svelte-code-file'); + const cwd = path.join(CWD, 'examples', 'svelte-code-file'); testESLintOutput(cwd, 2); }); it('should work in vue', () => { - const cwd = join(CWD, 'examples/vue-code-file'); + const cwd = path.join(CWD, 'examples', 'vue-code-file'); testESLintOutput(cwd, 2); }); it('should work in multiple projects', () => { - const cwd = join(CWD, 'examples/multiple-projects-graphql-config'); + const cwd = path.join(CWD, 'examples', 'multiple-projects-graphql-config'); testESLintOutput(cwd, 4); }); }); function testESLintOutput(cwd: string, errorCount: number): void { const flatResults = getFlatESLintOutput(cwd); - expect(countErrors(flatResults)).toBe(errorCount); - expect(normalizeResults(flatResults)).toMatchSnapshot(); - const results = getLegacyESLintOutput(cwd); + // Windows has some offset for `range`, I think due \r\n handling + if (os.platform() !== 'win32') { + expect(normalizeResults(flatResults)).toMatchSnapshot(); + expect(normalizeResults(results)).toMatchSnapshot(); + } + expect(countErrors(flatResults)).toBe(errorCount); expect(countErrors(results)).toBe(errorCount); - expect(normalizeResults(results)).toMatchSnapshot(); } diff --git a/packages/plugin/__tests__/schema.spec.ts b/packages/plugin/__tests__/schema.spec.ts index 915230cb449..cbc086b67e8 100644 --- a/packages/plugin/__tests__/schema.spec.ts +++ b/packages/plugin/__tests__/schema.spec.ts @@ -1,5 +1,6 @@ import { ChildProcessWithoutNullStreams, spawn } from 'node:child_process'; import { readFile } from 'node:fs/promises'; +import os from 'node:os'; import path from 'node:path'; import { GraphQLSchema, printSchema } from 'graphql'; import { loadGraphQLConfig } from '../src/graphql-config.js'; @@ -19,7 +20,7 @@ describe('schema', async () => { const sdlString = printSchema(graphQLSchema as GraphQLSchema); - expect(sdlString.trim()).toBe(schemaOnDisk.trim()); + expect(sdlString.trim()).toBe(schemaOnDisk.replaceAll('\r\n', '\n').trim()); }; describe('GraphQLFileLoader', () => { @@ -40,37 +41,39 @@ describe('schema', async () => { }); }); - describe('UrlLoader', () => { + const isWindows = os.platform() === 'win32'; + const describeOrSkip = isWindows ? describe.skip : describe; + + describeOrSkip('UrlLoader', () => { let local: ChildProcessWithoutNullStreams; let url: string; - beforeAll( - () => - new Promise(resolve => { - const tsNodeCommand = path.resolve(CWD, '..', '..', 'node_modules', '.bin', 'tsx'); - const serverPath = path.resolve(__dirname, 'mocks/graphql-server.ts'); - - // Import `TestGraphQLServer` and run it in this file will don't work - // because `@graphql-tools/url-loader` under the hood uses `sync-fetch` package that uses - // `child_process.execFileSync` that block Node.js event loop - local = spawn(tsNodeCommand, [serverPath]); - local.stdout.on('data', chunk => { - url = chunk.toString().trimEnd(); - resolve(); - }); - local.stderr.on('data', chunk => { - throw new Error(chunk.toString().trimEnd()); - }); - }), - ); - - afterAll( - () => - new Promise(done => { - local.on('close', () => done()); - local.kill(); - }), - ); + beforeAll(() => { + const { promise, resolve, reject } = Promise.withResolvers(); + + const tsxCommand = path.resolve(CWD, '..', '..', 'node_modules', '.bin', 'tsx'); + const serverPath = path.resolve(__dirname, 'mocks', 'graphql-server.ts'); + + // Import `TestGraphQLServer` and run it in this file will don't work + // because `@graphql-tools/url-loader` under the hood uses `sync-fetch` package that uses + // `child_process.execFileSync` that block Node.js event loop + local = spawn(tsxCommand, [serverPath]); + local.stdout.on('data', chunk => { + url = chunk.toString().trimEnd(); + resolve(); + }); + local.stderr.on('data', chunk => { + reject(chunk.toString().trimEnd()); + }); + return promise; + }); + + afterAll(() => { + const { promise, resolve } = Promise.withResolvers(); + local.on('close', resolve); + local.kill(); + return promise; + }); it('should load schema from URL', () => { testSchema(url); diff --git a/packages/plugin/src/rules/require-deprecation-date/index.ts b/packages/plugin/src/rules/require-deprecation-date/index.ts index 31e0fb84163..2fb0df1b358 100644 --- a/packages/plugin/src/rules/require-deprecation-date/index.ts +++ b/packages/plugin/src/rules/require-deprecation-date/index.ts @@ -4,7 +4,6 @@ import { GraphQLESTreeNode, valueFromNode } from '../../estree-converter/index.j import { GraphQLESLintRule } from '../../types.js'; import { getNodeName } from '../../utils.js'; -// eslint-disable-next-line unicorn/better-regex const DATE_REGEX = /^\d{2}\/\d{2}\/\d{4}$/; const MESSAGE_REQUIRE_DATE = 'MESSAGE_REQUIRE_DATE'; diff --git a/packages/plugin/src/rules/require-import-fragment/index.test.ts b/packages/plugin/src/rules/require-import-fragment/index.test.ts index 6a744d3975f..426c096520e 100644 --- a/packages/plugin/src/rules/require-import-fragment/index.test.ts +++ b/packages/plugin/src/rules/require-import-fragment/index.test.ts @@ -7,13 +7,13 @@ function withMocks({ name, filename, errors }: { name: string; filename: string; return { name, filename, - code: ruleTester.fromMockFile(filename.split('/mocks')[1]), + code: ruleTester.fromMockFile(filename.split('mocks')[1]), parserOptions: { graphQLConfig: { documents: [ filename, - join(CWD, '__tests__/mocks/import-fragments/foo-fragment.gql'), - join(CWD, '__tests__/mocks/import-fragments/bar-fragment.gql'), + join(CWD, '__tests__', 'mocks', 'import-fragments', 'foo-fragment.gql'), + join(CWD, '__tests__', 'mocks', 'import-fragments', 'bar-fragment.gql'), ], }, } satisfies ParserOptionsForTests, @@ -25,31 +25,31 @@ ruleTester.run('require-import-fragment', rule, { valid: [ withMocks({ name: 'should not report with named import', - filename: join(CWD, '__tests__/mocks/import-fragments/valid-query.gql'), + filename: join(CWD, '__tests__', 'mocks', 'import-fragments', 'valid-query.gql'), }), withMocks({ name: 'should not report with default import', - filename: join(CWD, '__tests__/mocks/import-fragments/valid-query-default.gql'), + filename: join(CWD, '__tests__', 'mocks', 'import-fragments', 'valid-query-default.gql'), }), withMocks({ name: 'should not report fragments from the same file', - filename: join(CWD, '__tests__/mocks/import-fragments/same-file.gql'), + filename: join(CWD, '__tests__', 'mocks', 'import-fragments', 'same-file.gql'), }), ], invalid: [ withMocks({ name: 'should report with named import', - filename: join(CWD, '__tests__/mocks/import-fragments/invalid-query.gql'), + filename: join(CWD, '__tests__', 'mocks', 'import-fragments', 'invalid-query.gql'), errors: [{ message: 'Expected "FooFields" fragment to be imported.' }], }), withMocks({ name: 'should report with default import', - filename: join(CWD, '__tests__/mocks/import-fragments/invalid-query-default.gql'), + filename: join(CWD, '__tests__', 'mocks', 'import-fragments', 'invalid-query-default.gql'), errors: [{ message: 'Expected "FooFields" fragment to be imported.' }], }), withMocks({ name: 'should report fragments when there are no import expressions', - filename: join(CWD, '__tests__/mocks/import-fragments/missing-import.gql'), + filename: join(CWD, '__tests__', 'mocks', 'import-fragments', 'missing-import.gql'), errors: [{ message: 'Expected "FooFields" fragment to be imported.' }], }), ], diff --git a/packages/plugin/src/rules/require-import-fragment/index.ts b/packages/plugin/src/rules/require-import-fragment/index.ts index 592e6c21b68..f9710845578 100644 --- a/packages/plugin/src/rules/require-import-fragment/index.ts +++ b/packages/plugin/src/rules/require-import-fragment/index.ts @@ -77,7 +77,6 @@ export const rule: GraphQLESLintRule = { 'FragmentSpread > .name'(node: GraphQLESTreeNode) { const fragmentName = node.value; const fragmentsFromSiblings = siblings.getFragment(fragmentName); - for (const comment of comments) { if (comment.type !== 'Line') continue; diff --git a/packages/plugin/src/rules/unique-fragment-name/index.test.ts b/packages/plugin/src/rules/unique-fragment-name/index.test.ts index 6111e436782..bb5a5144a34 100644 --- a/packages/plugin/src/rules/unique-fragment-name/index.test.ts +++ b/packages/plugin/src/rules/unique-fragment-name/index.test.ts @@ -26,16 +26,16 @@ ruleTester.run('unique-fragment-name', rule, { { // Assert `skipGraphQLImport` is set to true ...SIBLING_FRAGMENTS( - join(CWD, '__tests__/mocks/user-fields.graphql'), - join(CWD, '__tests__/mocks/user.graphql'), + join(CWD, '__tests__', 'mocks', 'user-fields.graphql'), + join(CWD, '__tests__', 'mocks', 'user.graphql'), ), - filename: join(CWD, '__tests__/mocks/user-fields.graphql'), + filename: join(CWD, '__tests__', 'mocks', 'user-fields.graphql'), code: ruleTester.fromMockFile('user-fields.graphql'), }, { // Compare filepath of code as real instead of virtual with siblings - ...SIBLING_FRAGMENTS(join(CWD, '__tests__/mocks/unique-fragment.js')), - filename: join(CWD, '__tests__/mocks/unique-fragment.js/0_document.graphql'), + ...SIBLING_FRAGMENTS(join(CWD, '__tests__', 'mocks', 'unique-fragment.js')), + filename: join(CWD, '__tests__', 'mocks', 'unique-fragment.js', '0_document.graphql'), code: /* GraphQL */ ` fragment UserFields on User { id diff --git a/packages/plugin/src/rules/unique-fragment-name/index.ts b/packages/plugin/src/rules/unique-fragment-name/index.ts index 1946ffcdb6d..d8fbec4969e 100644 --- a/packages/plugin/src/rules/unique-fragment-name/index.ts +++ b/packages/plugin/src/rules/unique-fragment-name/index.ts @@ -3,12 +3,7 @@ import { ExecutableDefinitionNode, Kind } from 'graphql'; import { GraphQLESTreeNode } from '../../estree-converter/index.js'; import { FragmentSource, OperationSource } from '../../siblings.js'; import { GraphQLESLintRule, GraphQLESLintRuleContext } from '../../types.js'; -import { - CWD, - normalizePath, - requireSiblingsOperations, - VIRTUAL_DOCUMENT_REGEX, -} from '../../utils.js'; +import { CWD, requireSiblingsOperations, slash, VIRTUAL_DOCUMENT_REGEX } from '../../utils.js'; const RULE_ID = 'unique-fragment-name'; @@ -27,7 +22,7 @@ export const checkNode = ( const conflictingDocuments = siblingDocuments.filter(f => { const isSameName = f.document.name?.value === documentName; - const isSamePath = normalizePath(f.filePath) === normalizePath(filepath); + const isSamePath = slash(f.filePath) === slash(filepath); return isSameName && !isSamePath; }); diff --git a/packages/plugin/src/types.ts b/packages/plugin/src/types.ts index 24551c70ae9..3d781b91e6d 100644 --- a/packages/plugin/src/types.ts +++ b/packages/plugin/src/types.ts @@ -75,7 +75,6 @@ export type GraphQLESLintRule = T[keyof T]; -// eslint-disable-next-line @typescript-eslint/ban-types -- Cosmetic use only, makes the tooltips expand the type can be removed type Id = { [P in keyof T]: T[P] } & {}; type OmitDistributive = T extends object ? Id> : T; diff --git a/packages/plugin/src/utils.ts b/packages/plugin/src/utils.ts index 20fc4870888..bbf63523b4d 100644 --- a/packages/plugin/src/utils.ts +++ b/packages/plugin/src/utils.ts @@ -46,9 +46,11 @@ export const logger = { console.warn(chalk.yellow('warning'), '[graphql-eslint]', ...args), }; -export const normalizePath = (path: string): string => (path || '').replace(/\\/g, '/'); +export const slash = (path: string): string => path.replaceAll('\\', '/'); -export const VIRTUAL_DOCUMENT_REGEX = /\/\d+_document.graphql$/; +// Match slash or backslash for Windows +// eslint-disable-next-line no-useless-escape +export const VIRTUAL_DOCUMENT_REGEX = /[\/\\]\d+_document.graphql$/; export const CWD = process.cwd(); diff --git a/packages/plugin/tsup.config.ts b/packages/plugin/tsup.config.ts index 68190591cf1..e05104ce45f 100644 --- a/packages/plugin/tsup.config.ts +++ b/packages/plugin/tsup.config.ts @@ -1,11 +1,13 @@ import fs from 'node:fs/promises'; import path from 'node:path'; import { defineConfig, Options } from 'tsup'; +import { CWD } from '@/utils.js'; import packageJson from './package.json'; const opts: Options = { entry: ['src/**/*.ts', '!src/index.browser.ts', '!src/**/*.test.ts'], clean: true, + splitting: true, bundle: false, dts: true, env: { @@ -20,7 +22,6 @@ const opts: Options = { }, }; -const CWD = process.cwd(); export default defineConfig([ { ...opts, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4c84ce2ded1..f4a957d70c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,8 +32,8 @@ importers: specifier: 0.13.0 version: 0.13.0(eslint@9.14.0(patch_hash=t64n7kxodazs6lnwu42sgf5voe)(jiti@2.4.0))(typescript@5.6.3) '@theguild/prettier-config': - specifier: 2.0.7 - version: 2.0.7(@vue/compiler-sfc@3.5.12)(prettier@3.3.3) + specifier: 3.0.0 + version: 3.0.0(@vue/compiler-sfc@3.5.12)(prettier@3.3.3) '@types/dedent': specifier: 0.7.2 version: 0.7.2 @@ -72,7 +72,7 @@ importers: version: 3.3.3 prettier-plugin-tailwindcss: specifier: 0.6.8 - version: 0.6.8(@ianvs/prettier-plugin-sort-imports@4.3.1(@vue/compiler-sfc@3.5.12)(prettier@3.3.3))(prettier@3.3.3) + version: 0.6.8(@ianvs/prettier-plugin-sort-imports@4.4.0(@vue/compiler-sfc@3.5.12)(prettier@3.3.3))(prettier@3.3.3) rimraf: specifier: 6.0.1 version: 6.0.1 @@ -90,7 +90,7 @@ importers: version: 5.6.3 vitest: specifier: 2.0.5 - version: 2.0.5(@types/node@22.9.0)(terser@5.36.0) + version: 2.0.5(@types/node@22.9.0)(lightningcss@1.28.1)(terser@5.36.0) examples/code-file: dependencies: @@ -294,7 +294,7 @@ importers: version: 3.1.1 vite-tsconfig-paths: specifier: ^5.0.0 - version: 5.1.2(typescript@5.6.3)(vite@5.4.10(@types/node@22.9.0)(terser@5.36.0)) + version: 5.1.2(typescript@5.6.3)(vite@5.4.10(@types/node@22.9.0)(lightningcss@1.28.1)(terser@5.36.0)) publishDirectory: dist packages/rule-tester: @@ -328,8 +328,8 @@ importers: specifier: ^2.0.0 version: 2.1.2(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@theguild/components': - specifier: 7.1.0 - version: 7.1.0(@types/react@18.3.12)(acorn@8.14.0)(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(webpack@5.96.1(esbuild@0.24.0)) + specifier: 7.2.5 + version: 7.2.5(@theguild/tailwind-config@0.6.0(postcss-import@16.1.0(postcss@8.4.48))(postcss-lightningcss@1.0.1(postcss@8.4.48))(tailwindcss@3.4.14))(@types/react@18.3.12)(acorn@8.14.0)(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(webpack@5.96.1(esbuild@0.24.0)) clsx: specifier: ^2.0.0 version: 2.1.1 @@ -365,8 +365,8 @@ importers: specifier: ^8.1.0 version: 8.1.0(typescript@5.6.3) '@theguild/tailwind-config': - specifier: 0.5.0 - version: 0.5.0 + specifier: 0.6.0 + version: 0.6.0(postcss-import@16.1.0(postcss@8.4.48))(postcss-lightningcss@1.0.1(postcss@8.4.48))(tailwindcss@3.4.14) '@types/lodash.debounce': specifier: 4.0.9 version: 4.0.9 @@ -1813,8 +1813,8 @@ packages: resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} engines: {node: '>=18.18'} - '@ianvs/prettier-plugin-sort-imports@4.3.1': - resolution: {integrity: sha512-ZHwbyjkANZOjaBm3ZosADD2OUYGFzQGxfy67HmGZU94mHqe7g1LCMA7YYKB1Cq+UTPCBqlAYapY0KXAjKEw8Sg==} + '@ianvs/prettier-plugin-sort-imports@4.4.0': + resolution: {integrity: sha512-f4/e+/ANGk3tHuwRW0uh2YuBR50I4h1ZjGQ+5uD8sWfinHTivQsnieR5cz24t8M6Vx4rYvZ5v/IEKZhYpzQm9Q==} peerDependencies: '@vue/compiler-sfc': 2.7.x || 3.x prettier: 2 || 3 @@ -2085,8 +2085,8 @@ packages: resolution: {integrity: sha512-jMxvwzkKzd3cXo2EB9GM2ic0eYo2rP/BS6gJt6HnWbsDO1O8GSD4k7o2Cpr2YERtMpGF/MGcDfsfj2EbQPtrXw==} engines: {node: '>= 10'} - '@next/bundle-analyzer@15.0.1': - resolution: {integrity: sha512-i/nCRBGBEkESPDpXJc+6SPLFDItnvTTJSaxiOvuNqHmQjQognRl3BANkKb3nWYy0V5rgzygxu++X349Z4dhs4Q==} + '@next/bundle-analyzer@15.0.3': + resolution: {integrity: sha512-x7ZNvpoQPO0C5ZG//qVp21Qs3v6+C8LBJmdu9DKj4/NmjlnwoQ7dqRZ/nKZcwVhkFT7BHf+Qd5FaeHq9IDJvDQ==} '@next/env@13.5.7': resolution: {integrity: sha512-uVuRqoj28Ys/AI/5gVEgRAISd0KWI0HRjOO1CTpNgmX3ZsHb5mdn14Y59yk0IxizXdo7ZjsI2S7qbWnO+GNBcA==} @@ -2715,6 +2715,11 @@ packages: '@swc/helpers@0.5.13': resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==} + '@tailwindcss/container-queries@0.1.1': + resolution: {integrity: sha512-p18dswChx6WnTSaJCSGx6lTmrGzNNvm2FtXmiO6AuA1V4U5REyoqwmT6kgAsIMdjo07QdAfYXHJ4hnMtfHzWgA==} + peerDependencies: + tailwindcss: '>=3.2.0' + '@tanstack/react-virtual@3.10.9': resolution: {integrity: sha512-OXO2uBjFqA4Ibr2O3y0YMnkrRWGVNqcvHQXmGvMu6IK8chZl3PrDxFXdGZ2iZkSrKh3/qUYoFqYe+Rx23RoU0g==} peerDependencies: @@ -2724,9 +2729,10 @@ packages: '@tanstack/virtual-core@3.10.9': resolution: {integrity: sha512-kBknKOKzmeR7lN+vSadaKWXaLS0SZZG+oqpQ/k80Q6g9REn6zRHS/ZYdrIzHnpHgy/eWs00SujveUN/GJT2qTw==} - '@theguild/components@7.1.0': - resolution: {integrity: sha512-jrCVgsEU9RUoDz5kosJPEfNyXeZC8muDuBJCRi8YM7+acB55NfHU+geI8H49sTU9T3ZthNNh5uHrpaPJVcnvbw==} + '@theguild/components@7.2.5': + resolution: {integrity: sha512-GSJ5h5/IUEzZd1UYMG3b9AYD4CF64eeNWqqmVVPfwO7ClmY3VHZ/TNq1RiNJ+PzWzVYUAbsUt4ht4kjdUK514g==} peerDependencies: + '@theguild/tailwind-config': 0.6.0 next: ^13 || ^14 || ^15.0.0 react: ^18.2.0 react-dom: ^18.2.0 @@ -2737,8 +2743,8 @@ packages: eslint: ^8 || ^9 typescript: ^5 - '@theguild/prettier-config@2.0.7': - resolution: {integrity: sha512-FqpgGAaAFbYHFQmkWEZjIhqmk+Oow82/t+0k408qoBd9RsB4QTwSQSDDbNSgFa/K7c8Dcwau5z3XbHUR/ksKqw==} + '@theguild/prettier-config@3.0.0': + resolution: {integrity: sha512-8ABWdMnCoCKKXb+lS337ZVnCJFuKumhK7RhZkAvaTMLi4Z+3c6UUYk1ZAM4KEHEki9bL9yQbtqTlqZVlVSGvhg==} peerDependencies: prettier: ^3 @@ -2750,8 +2756,12 @@ packages: '@theguild/remark-npm2yarn@0.3.3': resolution: {integrity: sha512-ma6DvR03gdbvwqfKx1omqhg9May/VYGdMHvTzB4VuxkyS7KzfZ/lzrj43hmcsggpMje0x7SADA/pcMph0ejRnA==} - '@theguild/tailwind-config@0.5.0': - resolution: {integrity: sha512-TZTB1kOtnipBxePHCDEwX4G31PWuGiI9+Vim0rryP2t0210wTuz02dN17kz6ClQ/bnNPFaO+X2esy+acfh346A==} + '@theguild/tailwind-config@0.6.0': + resolution: {integrity: sha512-tweCBr9MfMbakKQSd0dC7AsgZ3WhE/2U4f9TyOs1yTZXuTLUWGiDK4g++hjokyEIIEGtFC9SB0ux+V2gy8psTw==} + peerDependencies: + postcss-import: ^16.1.0 + postcss-lightningcss: ^1.0.1 + tailwindcss: ^3.4.14 '@trysound/sax@0.2.0': resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} @@ -3315,13 +3325,6 @@ packages: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true - autoprefixer@10.4.20: - resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} @@ -3430,9 +3433,6 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - caniuse-lite@1.0.30001680: resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==} @@ -3568,9 +3568,6 @@ packages: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} - colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -3646,12 +3643,6 @@ packages: resolution: {integrity: sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==} engines: {node: '>= 8'} - css-declaration-sorter@7.2.0: - resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.0.9 - css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} @@ -3672,24 +3663,6 @@ packages: engines: {node: '>=4'} hasBin: true - cssnano-preset-default@7.0.6: - resolution: {integrity: sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - cssnano-utils@5.0.0: - resolution: {integrity: sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - cssnano@7.0.6: - resolution: {integrity: sha512-54woqx8SCbp8HwvNZYn68ZFAepuouZW4lTwiMVnBErM3VkO7/Sd4oTOt3Zz3bPx3kxQ36aISppyXj2Md4lg8bw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} @@ -3945,6 +3918,11 @@ packages: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} @@ -4554,9 +4532,6 @@ packages: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} - fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -5224,6 +5199,70 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lightningcss-darwin-arm64@1.28.1: + resolution: {integrity: sha512-VG3vvzM0m/rguCdm76DdobNeNJnHK+jWcdkNLFWHLh9YCotRvbRIt45JxwcHlIF8TDqWStVLTdghq5NaigVCBQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.28.1: + resolution: {integrity: sha512-O7ORdislvKfMohFl4Iq7fxKqdJOuuxArcglVI3amuFO5DJ0wfV3Gxgi1JRo49slfr7OVzJQEHLG4muTWYM5cTQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.28.1: + resolution: {integrity: sha512-b7sF89B31kYYijxVcFO7l5u6UNA862YstNu+3YbLl/IQKzveL4a5cwR5cdpG+OOhErg/c2u9WCmzZoX2I5GBvw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.28.1: + resolution: {integrity: sha512-p61kXwvhUDLLzkWHjzSFfUBW/F0iy3jr3CWi3k8SKULtJEsJXTI9DqRm9EixxMSe2AMBQBt4auTYiQL4B1N51A==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.28.1: + resolution: {integrity: sha512-iO+fN9hOMmzfwqcG2/BgUtMKD48H2JO/SXU44fyIwpY2veb65QF5xiRrQ9l1FwIxbGK3231KBYCtAqv+xf+NsQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.28.1: + resolution: {integrity: sha512-dnMHeXEmCUzHHZjaDpQBYuBKcN9nPC3nPFKl70bcj5Bkn5EmkcgEqm5p035LKOgvAwk1XwLpQCML6pXmCwz0NQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.28.1: + resolution: {integrity: sha512-7vWDISaMUn+oo2TwRdf2hl/BLdPxvywv9JKEqNZB/0K7bXwV4XE9wN/C2sAp1gGuh6QBA8lpjF4JIPt3HNlCHA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.28.1: + resolution: {integrity: sha512-IHCu9tVGP+x5BCpA2rF3D04DBokcBza/a8AuHQU+1AiMKubuMegPwcL7RatBgK4ztFHeYnnD5NdhwhRfYMAtNA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.28.1: + resolution: {integrity: sha512-Erm72kHmMg/3h350PTseskz+eEGBM17Fuu79WW2Qqt0BfWSF1jHHc12lkJCWMYl5jcBHPs5yZdgNHtJ7IJS3Uw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.28.1: + resolution: {integrity: sha512-ZPQtvx+uQBzrSdHH8p4H3M9Alue+x369TPZAA3b4K3d92FPhpZCuBG04+HQzspam9sVeID9mI6f3VRAs2ezaEA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.28.1: + resolution: {integrity: sha512-KRDkHlLlNj3DWh79CDt93fPlRJh2W1AuHV0ZSZAMMuN7lqlsZTV5842idfS1urWG8q9tc17velp1gCXhY7sLnQ==} + engines: {node: '>= 12.0.0'} + lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -5290,9 +5329,6 @@ packages: lodash.lowercase@4.3.0: resolution: {integrity: sha512-UcvP1IZYyDKyEL64mmrwoA1AbFu5ahojhTtkOUr1K9dbuxzS9ev8i4TxMMGCqRC9TE8uDaSoufNAXxRPNTseVA==} - lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} @@ -5302,9 +5338,6 @@ packages: lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - lodash.uniqwith@4.5.0: resolution: {integrity: sha512-7lYL8bLopMoy4CTICbxygAUq6CdRJ36vFc80DucPueUee+d5NBRxz3FdT9Pes/HEx5mPoT9jwnsEJWz1N7uq7Q==} @@ -5664,11 +5697,11 @@ packages: peerDependencies: next: '*' - next-themes@0.3.0: - resolution: {integrity: sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==} + next-themes@0.4.3: + resolution: {integrity: sha512-nG84VPkTdUHR2YeD89YchvV4I9RbiMAql3GiLEQlPvq1ioaqPaIReK+yMRdg/zgiXws620qS1rU30TiWmmG9lA==} peerDependencies: - react: ^16.8 || ^17 || ^18 - react-dom: ^16.8 || ^17 || ^18 + react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc next-videos@1.5.0: resolution: {integrity: sha512-U6HY68UDxsDMMRgjABYq1S2EIStqZNp8FFtL8LKXJrhGFIO1nM2a3Afy0jw3JI2nK1HSXq4s4anQ96Yn4ukceA==} @@ -5694,16 +5727,16 @@ packages: sass: optional: true - nextra-theme-docs@3.1.0: - resolution: {integrity: sha512-2zAC+xnqLzl/kLYCaoVfdupyA6pD5OgF+4iR3zQiPOzfnwJikPQePnr3SCT+tPPgYVuoqSDA5GNc9DvvAHtefQ==} + nextra-theme-docs@3.2.3: + resolution: {integrity: sha512-kRhnLxbAbD3FgR93yLbu6Iz6XvErka3I5CcVo3VobLuV1mefbZ1T6DfiY6q0KJoHLGRrJESsFSarIqPjKOx00g==} peerDependencies: next: '>=13' - nextra: 3.1.0 + nextra: 3.2.3 react: '>=18' react-dom: '>=18' - nextra@3.1.0: - resolution: {integrity: sha512-IvG8Q/yLAqSju1zwRPUqC/6WpzAgfmNo6gDw6CIBZJ+3RKdJDsirM/v3BNeN6vx3tSjLFybytOt3spNXHFy/WQ==} + nextra@3.2.3: + resolution: {integrity: sha512-MyNA2kPvDyJK1trjFkwpTdMOKJu/MIueENHtmLoxPnyOi3fxtk9H5k6b5WdMGBibsyFeXqTz9REnz7d1/xL9Hg==} engines: {node: '>=18'} peerDependencies: next: '>=13' @@ -5752,10 +5785,6 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - npm-install-checks@6.3.0: resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6011,48 +6040,6 @@ packages: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - postcss-calc@10.0.2: - resolution: {integrity: sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==} - engines: {node: ^18.12 || ^20.9 || >=22.0} - peerDependencies: - postcss: ^8.4.38 - - postcss-colormin@7.0.2: - resolution: {integrity: sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-convert-values@7.0.4: - resolution: {integrity: sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-comments@7.0.3: - resolution: {integrity: sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-duplicates@7.0.1: - resolution: {integrity: sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-empty@7.0.0: - resolution: {integrity: sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-discard-overridden@7.0.0: - resolution: {integrity: sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - postcss-import@15.1.0: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} @@ -6071,6 +6058,12 @@ packages: peerDependencies: postcss: ^8.4.21 + postcss-lightningcss@1.0.1: + resolution: {integrity: sha512-9IrtZVt2HQ92iZJTkO43Qipx7E3PM+lLzZM8aGwMmMjNQHcir5jNC42U33p3Gh2lj1nES/ireYWEbMrJNiRBoQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >= 21} + peerDependencies: + postcss: ^8.0.0 + postcss-load-config@4.0.2: resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} @@ -6101,120 +6094,12 @@ packages: yaml: optional: true - postcss-merge-longhand@7.0.4: - resolution: {integrity: sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-merge-rules@7.0.4: - resolution: {integrity: sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-font-values@7.0.0: - resolution: {integrity: sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-gradients@7.0.0: - resolution: {integrity: sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-params@7.0.2: - resolution: {integrity: sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-minify-selectors@7.0.4: - resolution: {integrity: sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - postcss-nested@6.2.0: resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 - postcss-normalize-charset@7.0.0: - resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-display-values@7.0.0: - resolution: {integrity: sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-positions@7.0.0: - resolution: {integrity: sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-repeat-style@7.0.0: - resolution: {integrity: sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-string@7.0.0: - resolution: {integrity: sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-timing-functions@7.0.0: - resolution: {integrity: sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-unicode@7.0.2: - resolution: {integrity: sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-url@7.0.0: - resolution: {integrity: sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-normalize-whitespace@7.0.0: - resolution: {integrity: sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-ordered-values@7.0.1: - resolution: {integrity: sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-reduce-initial@7.0.2: - resolution: {integrity: sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - - postcss-reduce-transforms@7.0.0: - resolution: {integrity: sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - postcss-scss@4.0.9: resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} engines: {node: '>=12.0'} @@ -6225,18 +6110,6 @@ packages: resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} - postcss-svgo@7.0.1: - resolution: {integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==} - engines: {node: ^18.12.0 || ^20.9.0 || >= 18} - peerDependencies: - postcss: ^8.4.31 - - postcss-unique-selectors@7.0.3: - resolution: {integrity: sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -6922,12 +6795,6 @@ packages: babel-plugin-macros: optional: true - stylehacks@7.0.4: - resolution: {integrity: sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==} - engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} - peerDependencies: - postcss: ^8.4.31 - stylis@4.3.4: resolution: {integrity: sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==} @@ -9977,9 +9844,8 @@ snapshots: '@humanwhocodes/retry@0.4.1': {} - '@ianvs/prettier-plugin-sort-imports@4.3.1(@vue/compiler-sfc@3.5.12)(prettier@3.3.3)': + '@ianvs/prettier-plugin-sort-imports@4.4.0(@vue/compiler-sfc@3.5.12)(prettier@3.3.3)': dependencies: - '@babel/core': 7.26.0 '@babel/generator': 7.26.2 '@babel/parser': 7.26.2 '@babel/traverse': 7.25.9 @@ -10246,7 +10112,7 @@ snapshots: '@napi-rs/simple-git-win32-arm64-msvc': 0.1.19 '@napi-rs/simple-git-win32-x64-msvc': 0.1.19 - '@next/bundle-analyzer@15.0.1': + '@next/bundle-analyzer@15.0.3': dependencies: webpack-bundle-analyzer: 4.10.1 transitivePeerDependencies: @@ -10836,6 +10702,10 @@ snapshots: dependencies: tslib: 2.8.1 + '@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.14)': + dependencies: + tailwindcss: 3.4.14 + '@tanstack/react-virtual@3.10.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@tanstack/virtual-core': 3.10.9 @@ -10844,18 +10714,18 @@ snapshots: '@tanstack/virtual-core@3.10.9': {} - '@theguild/components@7.1.0(@types/react@18.3.12)(acorn@8.14.0)(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(webpack@5.96.1(esbuild@0.24.0))': + '@theguild/components@7.2.5(@theguild/tailwind-config@0.6.0(postcss-import@16.1.0(postcss@8.4.48))(postcss-lightningcss@1.0.1(postcss@8.4.48))(tailwindcss@3.4.14))(@types/react@18.3.12)(acorn@8.14.0)(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3)(webpack@5.96.1(esbuild@0.24.0))': dependencies: '@giscus/react': 3.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@next/bundle-analyzer': 15.0.1 + '@next/bundle-analyzer': 15.0.3 '@radix-ui/react-navigation-menu': 1.2.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@theguild/tailwind-config': 0.5.0 + '@theguild/tailwind-config': 0.6.0(postcss-import@16.1.0(postcss@8.4.48))(postcss-lightningcss@1.0.1(postcss@8.4.48))(tailwindcss@3.4.14) clsx: 2.1.1 fuzzy: 0.1.3 next: 15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-videos: 1.5.0(webpack@5.96.1(esbuild@0.24.0)) - nextra: 3.1.0(@types/react@18.3.12)(acorn@8.14.0)(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) - nextra-theme-docs: 3.1.0(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.1.0(@types/react@18.3.12)(acorn@8.14.0)(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + nextra: 3.2.3(@types/react@18.3.12)(acorn@8.14.0)(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + nextra-theme-docs: 3.2.3(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.2.3(@types/react@18.3.12)(acorn@8.14.0)(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-paginate: 8.2.0(react@18.3.1) @@ -10869,7 +10739,6 @@ snapshots: - acorn - bufferutil - supports-color - - ts-node - typescript - utf-8-validate - webpack @@ -10901,9 +10770,9 @@ snapshots: - eslint-plugin-import-x - supports-color - '@theguild/prettier-config@2.0.7(@vue/compiler-sfc@3.5.12)(prettier@3.3.3)': + '@theguild/prettier-config@3.0.0(@vue/compiler-sfc@3.5.12)(prettier@3.3.3)': dependencies: - '@ianvs/prettier-plugin-sort-imports': 4.3.1(@vue/compiler-sfc@3.5.12)(prettier@3.3.3) + '@ianvs/prettier-plugin-sort-imports': 4.4.0(@vue/compiler-sfc@3.5.12)(prettier@3.3.3) prettier: 3.3.3 prettier-plugin-pkg: 0.18.1(prettier@3.3.3) prettier-plugin-sh: 0.14.0(prettier@3.3.3) @@ -10924,15 +10793,12 @@ snapshots: npm-to-yarn: 3.0.0 unist-util-visit: 5.0.0 - '@theguild/tailwind-config@0.5.0': + '@theguild/tailwind-config@0.6.0(postcss-import@16.1.0(postcss@8.4.48))(postcss-lightningcss@1.0.1(postcss@8.4.48))(tailwindcss@3.4.14)': dependencies: - autoprefixer: 10.4.20(postcss@8.4.48) - cssnano: 7.0.6(postcss@8.4.48) - postcss: 8.4.48 + '@tailwindcss/container-queries': 0.1.1(tailwindcss@3.4.14) postcss-import: 16.1.0(postcss@8.4.48) + postcss-lightningcss: 1.0.1(postcss@8.4.48) tailwindcss: 3.4.14 - transitivePeerDependencies: - - ts-node '@trysound/sax@0.2.0': {} @@ -11640,16 +11506,6 @@ snapshots: astring@1.9.0: {} - autoprefixer@10.4.20(postcss@8.4.48): - dependencies: - browserslist: 4.24.2 - caniuse-lite: 1.0.30001680 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.1.1 - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 @@ -11776,13 +11632,6 @@ snapshots: camelcase@6.3.0: {} - caniuse-api@3.0.0: - dependencies: - browserslist: 4.24.2 - caniuse-lite: 1.0.30001680 - lodash.memoize: 4.1.2 - lodash.uniq: 4.5.0 - caniuse-lite@1.0.30001680: {} ccount@2.0.1: {} @@ -11926,8 +11775,6 @@ snapshots: color-string: 1.9.1 optional: true - colord@2.9.3: {} - comma-separated-tokens@2.0.3: {} commander@10.0.1: {} @@ -11996,10 +11843,6 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-declaration-sorter@7.2.0(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - css-select@5.1.0: dependencies: boolbase: 1.0.0 @@ -12022,50 +11865,6 @@ snapshots: cssesc@3.0.0: {} - cssnano-preset-default@7.0.6(postcss@8.4.48): - dependencies: - browserslist: 4.24.2 - css-declaration-sorter: 7.2.0(postcss@8.4.48) - cssnano-utils: 5.0.0(postcss@8.4.48) - postcss: 8.4.48 - postcss-calc: 10.0.2(postcss@8.4.48) - postcss-colormin: 7.0.2(postcss@8.4.48) - postcss-convert-values: 7.0.4(postcss@8.4.48) - postcss-discard-comments: 7.0.3(postcss@8.4.48) - postcss-discard-duplicates: 7.0.1(postcss@8.4.48) - postcss-discard-empty: 7.0.0(postcss@8.4.48) - postcss-discard-overridden: 7.0.0(postcss@8.4.48) - postcss-merge-longhand: 7.0.4(postcss@8.4.48) - postcss-merge-rules: 7.0.4(postcss@8.4.48) - postcss-minify-font-values: 7.0.0(postcss@8.4.48) - postcss-minify-gradients: 7.0.0(postcss@8.4.48) - postcss-minify-params: 7.0.2(postcss@8.4.48) - postcss-minify-selectors: 7.0.4(postcss@8.4.48) - postcss-normalize-charset: 7.0.0(postcss@8.4.48) - postcss-normalize-display-values: 7.0.0(postcss@8.4.48) - postcss-normalize-positions: 7.0.0(postcss@8.4.48) - postcss-normalize-repeat-style: 7.0.0(postcss@8.4.48) - postcss-normalize-string: 7.0.0(postcss@8.4.48) - postcss-normalize-timing-functions: 7.0.0(postcss@8.4.48) - postcss-normalize-unicode: 7.0.2(postcss@8.4.48) - postcss-normalize-url: 7.0.0(postcss@8.4.48) - postcss-normalize-whitespace: 7.0.0(postcss@8.4.48) - postcss-ordered-values: 7.0.1(postcss@8.4.48) - postcss-reduce-initial: 7.0.2(postcss@8.4.48) - postcss-reduce-transforms: 7.0.0(postcss@8.4.48) - postcss-svgo: 7.0.1(postcss@8.4.48) - postcss-unique-selectors: 7.0.3(postcss@8.4.48) - - cssnano-utils@5.0.0(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - - cssnano@7.0.6(postcss@8.4.48): - dependencies: - cssnano-preset-default: 7.0.6(postcss@8.4.48) - lilconfig: 3.1.2 - postcss: 8.4.48 - csso@5.0.5: dependencies: css-tree: 2.2.1 @@ -12347,6 +12146,8 @@ snapshots: detect-indent@6.1.0: {} + detect-libc@1.0.3: {} + detect-libc@2.0.3: optional: true @@ -13317,8 +13118,6 @@ snapshots: format@0.2.2: {} - fraction.js@4.3.7: {} - fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -14023,6 +13822,51 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lightningcss-darwin-arm64@1.28.1: + optional: true + + lightningcss-darwin-x64@1.28.1: + optional: true + + lightningcss-freebsd-x64@1.28.1: + optional: true + + lightningcss-linux-arm-gnueabihf@1.28.1: + optional: true + + lightningcss-linux-arm64-gnu@1.28.1: + optional: true + + lightningcss-linux-arm64-musl@1.28.1: + optional: true + + lightningcss-linux-x64-gnu@1.28.1: + optional: true + + lightningcss-linux-x64-musl@1.28.1: + optional: true + + lightningcss-win32-arm64-msvc@1.28.1: + optional: true + + lightningcss-win32-x64-msvc@1.28.1: + optional: true + + lightningcss@1.28.1: + dependencies: + detect-libc: 1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.28.1 + lightningcss-darwin-x64: 1.28.1 + lightningcss-freebsd-x64: 1.28.1 + lightningcss-linux-arm-gnueabihf: 1.28.1 + lightningcss-linux-arm64-gnu: 1.28.1 + lightningcss-linux-arm64-musl: 1.28.1 + lightningcss-linux-x64-gnu: 1.28.1 + lightningcss-linux-x64-musl: 1.28.1 + lightningcss-win32-arm64-msvc: 1.28.1 + lightningcss-win32-x64-msvc: 1.28.1 + lilconfig@2.1.0: {} lilconfig@3.1.2: {} @@ -14087,16 +13931,12 @@ snapshots: lodash.lowercase@4.3.0: {} - lodash.memoize@4.1.2: {} - lodash.merge@4.6.2: {} lodash.sortby@4.7.0: {} lodash.startcase@4.4.0: {} - lodash.uniq@4.5.0: {} - lodash.uniqwith@4.5.0: {} lodash@4.17.21: {} @@ -14765,7 +14605,7 @@ snapshots: minimist: 1.2.8 next: 15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next-themes@0.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -14801,21 +14641,21 @@ snapshots: - '@babel/core' - babel-plugin-macros - nextra-theme-docs@3.1.0(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.1.0(@types/react@18.3.12)(acorn@8.14.0)(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + nextra-theme-docs@3.2.3(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.2.3(@types/react@18.3.12)(acorn@8.14.0)(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@headlessui/react': 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) clsx: 2.1.1 escape-string-regexp: 5.0.0 flexsearch: 0.7.43 next: 15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - next-themes: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - nextra: 3.1.0(@types/react@18.3.12)(acorn@8.14.0)(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) + next-themes: 0.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + nextra: 3.2.3(@types/react@18.3.12)(acorn@8.14.0)(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) scroll-into-view-if-needed: 3.1.0 zod: 3.23.8 - nextra@3.1.0(@types/react@18.3.12)(acorn@8.14.0)(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3): + nextra@3.2.3(@types/react@18.3.12)(acorn@8.14.0)(next@15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.6.3): dependencies: '@formatjs/intl-localematcher': 0.5.7 '@headlessui/react': 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -14834,6 +14674,9 @@ snapshots: gray-matter: 4.0.3 hast-util-to-estree: 3.1.0 katex: 0.16.11 + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm: 3.0.0 + mdast-util-to-hast: 13.2.0 negotiator: 1.0.0 next: 15.0.3(@babel/core@7.26.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) p-limit: 6.1.0 @@ -14906,8 +14749,6 @@ snapshots: normalize-path@3.0.0: {} - normalize-range@0.1.2: {} - npm-install-checks@6.3.0: dependencies: semver: 7.6.3 @@ -15168,43 +15009,6 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-calc@10.0.2(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - postcss-selector-parser: 6.1.2 - postcss-value-parser: 4.2.0 - - postcss-colormin@7.0.2(postcss@8.4.48): - dependencies: - browserslist: 4.24.2 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - - postcss-convert-values@7.0.4(postcss@8.4.48): - dependencies: - browserslist: 4.24.2 - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - - postcss-discard-comments@7.0.3(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - postcss-selector-parser: 6.1.2 - - postcss-discard-duplicates@7.0.1(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - - postcss-discard-empty@7.0.0(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - - postcss-discard-overridden@7.0.0(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - postcss-import@15.1.0(postcss@8.4.48): dependencies: postcss: 8.4.48 @@ -15224,6 +15028,12 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.4.48 + postcss-lightningcss@1.0.1(postcss@8.4.48): + dependencies: + browserslist: 4.24.2 + lightningcss: 1.28.1 + postcss: 8.4.48 + postcss-load-config@4.0.2(postcss@8.4.48): dependencies: lilconfig: 3.1.2 @@ -15240,112 +15050,11 @@ snapshots: tsx: 4.19.2 yaml: 2.6.0 - postcss-merge-longhand@7.0.4(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - stylehacks: 7.0.4(postcss@8.4.48) - - postcss-merge-rules@7.0.4(postcss@8.4.48): - dependencies: - browserslist: 4.24.2 - caniuse-api: 3.0.0 - cssnano-utils: 5.0.0(postcss@8.4.48) - postcss: 8.4.48 - postcss-selector-parser: 6.1.2 - - postcss-minify-font-values@7.0.0(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - - postcss-minify-gradients@7.0.0(postcss@8.4.48): - dependencies: - colord: 2.9.3 - cssnano-utils: 5.0.0(postcss@8.4.48) - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - - postcss-minify-params@7.0.2(postcss@8.4.48): - dependencies: - browserslist: 4.24.2 - cssnano-utils: 5.0.0(postcss@8.4.48) - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - - postcss-minify-selectors@7.0.4(postcss@8.4.48): - dependencies: - cssesc: 3.0.0 - postcss: 8.4.48 - postcss-selector-parser: 6.1.2 - postcss-nested@6.2.0(postcss@8.4.48): dependencies: postcss: 8.4.48 postcss-selector-parser: 6.1.2 - postcss-normalize-charset@7.0.0(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - - postcss-normalize-display-values@7.0.0(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - - postcss-normalize-positions@7.0.0(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - - postcss-normalize-repeat-style@7.0.0(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - - postcss-normalize-string@7.0.0(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - - postcss-normalize-timing-functions@7.0.0(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - - postcss-normalize-unicode@7.0.2(postcss@8.4.48): - dependencies: - browserslist: 4.24.2 - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - - postcss-normalize-url@7.0.0(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - - postcss-normalize-whitespace@7.0.0(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - - postcss-ordered-values@7.0.1(postcss@8.4.48): - dependencies: - cssnano-utils: 5.0.0(postcss@8.4.48) - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - - postcss-reduce-initial@7.0.2(postcss@8.4.48): - dependencies: - browserslist: 4.24.2 - caniuse-api: 3.0.0 - postcss: 8.4.48 - - postcss-reduce-transforms@7.0.0(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - postcss-scss@4.0.9(postcss@8.4.48): dependencies: postcss: 8.4.48 @@ -15355,17 +15064,6 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-svgo@7.0.1(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - postcss-value-parser: 4.2.0 - svgo: 3.3.2 - - postcss-unique-selectors@7.0.3(postcss@8.4.48): - dependencies: - postcss: 8.4.48 - postcss-selector-parser: 6.1.2 - postcss-value-parser@4.2.0: {} postcss@8.4.31: @@ -15396,11 +15094,11 @@ snapshots: prettier: 3.3.3 sh-syntax: 0.4.2 - prettier-plugin-tailwindcss@0.6.8(@ianvs/prettier-plugin-sort-imports@4.3.1(@vue/compiler-sfc@3.5.12)(prettier@3.3.3))(prettier@3.3.3): + prettier-plugin-tailwindcss@0.6.8(@ianvs/prettier-plugin-sort-imports@4.4.0(@vue/compiler-sfc@3.5.12)(prettier@3.3.3))(prettier@3.3.3): dependencies: prettier: 3.3.3 optionalDependencies: - '@ianvs/prettier-plugin-sort-imports': 4.3.1(@vue/compiler-sfc@3.5.12)(prettier@3.3.3) + '@ianvs/prettier-plugin-sort-imports': 4.4.0(@vue/compiler-sfc@3.5.12)(prettier@3.3.3) prettier@2.8.8: {} @@ -16173,12 +15871,6 @@ snapshots: optionalDependencies: '@babel/core': 7.26.0 - stylehacks@7.0.4(postcss@8.4.48): - dependencies: - browserslist: 4.24.2 - postcss: 8.4.48 - postcss-selector-parser: 6.1.2 - stylis@4.3.4: {} sucrase@3.35.0: @@ -16795,13 +16487,13 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@2.0.5(@types/node@22.9.0)(terser@5.36.0): + vite-node@2.0.5(@types/node@22.9.0)(lightningcss@1.28.1)(terser@5.36.0): dependencies: cac: 6.7.14 debug: 4.3.7 pathe: 1.1.2 tinyrainbow: 1.2.0 - vite: 5.4.10(@types/node@22.9.0)(terser@5.36.0) + vite: 5.4.10(@types/node@22.9.0)(lightningcss@1.28.1)(terser@5.36.0) transitivePeerDependencies: - '@types/node' - less @@ -16813,18 +16505,18 @@ snapshots: - supports-color - terser - vite-tsconfig-paths@5.1.2(typescript@5.6.3)(vite@5.4.10(@types/node@22.9.0)(terser@5.36.0)): + vite-tsconfig-paths@5.1.2(typescript@5.6.3)(vite@5.4.10(@types/node@22.9.0)(lightningcss@1.28.1)(terser@5.36.0)): dependencies: debug: 4.3.7 globrex: 0.1.2 tsconfck: 3.1.4(typescript@5.6.3) optionalDependencies: - vite: 5.4.10(@types/node@22.9.0)(terser@5.36.0) + vite: 5.4.10(@types/node@22.9.0)(lightningcss@1.28.1)(terser@5.36.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.10(@types/node@22.9.0)(terser@5.36.0): + vite@5.4.10(@types/node@22.9.0)(lightningcss@1.28.1)(terser@5.36.0): dependencies: esbuild: 0.21.5 postcss: 8.4.48 @@ -16832,9 +16524,10 @@ snapshots: optionalDependencies: '@types/node': 22.9.0 fsevents: 2.3.3 + lightningcss: 1.28.1 terser: 5.36.0 - vitest@2.0.5(@types/node@22.9.0)(terser@5.36.0): + vitest@2.0.5(@types/node@22.9.0)(lightningcss@1.28.1)(terser@5.36.0): dependencies: '@ampproject/remapping': 2.3.0 '@vitest/expect': 2.0.5 @@ -16852,8 +16545,8 @@ snapshots: tinybench: 2.9.0 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.4.10(@types/node@22.9.0)(terser@5.36.0) - vite-node: 2.0.5(@types/node@22.9.0)(terser@5.36.0) + vite: 5.4.10(@types/node@22.9.0)(lightningcss@1.28.1)(terser@5.36.0) + vite-node: 2.0.5(@types/node@22.9.0)(lightningcss@1.28.1)(terser@5.36.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.9.0 diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 00000000000..a2fdd540364 --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,7 @@ +import prettierConfig from '@theguild/prettier-config'; + +export default { + ...prettierConfig, + plugins: [...prettierConfig.plugins, 'prettier-plugin-tailwindcss'], + tailwindConfig: './website/tailwind.config.ts', +}; diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json deleted file mode 100644 index 323152af616..00000000000 --- a/tsconfig.eslint.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - // https://typescript-eslint.io/docs/linting/typed-linting/monorepos/#one-root-tsconfigjson - // extend your base config to share compilerOptions, etc - "extends": "./tsconfig.json", - "compilerOptions": { - // ensure that nobody can accidentally use this config for a build - "noEmit": true - }, - "include": [ - "scripts/*.ts", - "packages/plugin/__tests__/**/*.ts", - "vite.config.ts", - "serializer.ts" - ], - "exclude": [] -} diff --git a/tsconfig.json b/tsconfig.json index fe20e9c0ce5..24d1e1ca3fe 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,8 +3,6 @@ "incremental": true, "baseUrl": ".", "strict": true, - "outDir": "dist", - "rootDir": "packages", "esModuleInterop": true, "allowSyntheticDefaultImports": true, "importHelpers": true, @@ -23,5 +21,5 @@ "resolveJsonModule": true, "skipLibCheck": true }, - "include": ["packages"] + "include": ["scripts"] } diff --git a/website/next-env.d.ts b/website/next-env.d.ts index 4f11a03dc6c..a4a7b3f5cfa 100644 --- a/website/next-env.d.ts +++ b/website/next-env.d.ts @@ -2,4 +2,4 @@ /// // NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. +// see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information. diff --git a/website/next.config.js b/website/next.config.js index ae09154d50b..346977bc6cf 100644 --- a/website/next.config.js +++ b/website/next.config.js @@ -11,12 +11,13 @@ const ALLOWED_SVG_REGEX = new RegExp(`src${sep}icons${sep}.+\\.svg$`); /** @type {import("next").Config} */ export default withGuildDocs({ + cleanDistDir: true, output: 'export', redirects: () => Object.entries({ '/': '/docs', // TODO: add landing page later - '/docs/getting-started/parser': '/', - '/docs/getting-started/parser-options': '/', + '/docs/getting-started/parser': '/docs/parser', + '/docs/getting-started/parser-options': '/docs/parser-options', }).map(([from, to]) => ({ source: from, destination: to, @@ -28,10 +29,10 @@ export default withGuildDocs({ // fixes TypeError: esquery.parse is not a function in browser esquery: require.resolve('esquery'), // fixes for @eslint/eslintrc TypeError: __webpack_require__(...).pathToFileURL is not a function - eslint: require.resolve('eslint').replace('lib/api.js', 'lib/linter/index.js'), + eslint: require.resolve('eslint').replace(/api\.js$/, `linter${path.sep}index.js`), '@graphql-eslint/eslint-plugin': require .resolve('@graphql-eslint/eslint-plugin') - .replace('cjs/index.js', 'index.browser.js'), + .replace(`cjs${path.sep}index.js`, 'index.browser.js'), // fixes Cannot use GraphQLNonNull "Boolean!" from another module or realm. 'graphql/utilities/valueFromASTUntyped.js': require.resolve( diff --git a/website/package.json b/website/package.json index ace14eb5d83..0a07259cbd6 100644 --- a/website/package.json +++ b/website/package.json @@ -15,7 +15,7 @@ "@monaco-editor/react": "^4.6.0", "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-select": "^2.0.0", - "@theguild/components": "7.1.0", + "@theguild/components": "7.2.5", "clsx": "^2.0.0", "graphql": "^16.9.0", "lodash.debounce": "^4.0.8", @@ -29,7 +29,7 @@ }, "devDependencies": { "@svgr/webpack": "^8.1.0", - "@theguild/tailwind-config": "0.5.0", + "@theguild/tailwind-config": "0.6.0", "@types/lodash.debounce": "4.0.9", "@types/lodash.uniqwith": "4.5.9", "@types/node": "22.9.0", diff --git a/website/postcss.config.cjs b/website/postcss.config.cjs deleted file mode 100644 index 204207501e9..00000000000 --- a/website/postcss.config.cjs +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('@theguild/tailwind-config/postcss.config'); diff --git a/website/postcss.config.js b/website/postcss.config.js new file mode 100644 index 00000000000..41ed60f81dd --- /dev/null +++ b/website/postcss.config.js @@ -0,0 +1 @@ +export { default } from '@theguild/tailwind-config/postcss.config'; diff --git a/website/src/components/play-page.tsx b/website/src/components/play-page.tsx index 3d357aa24e6..f2a02b38fc0 100644 --- a/website/src/components/play-page.tsx +++ b/website/src/components/play-page.tsx @@ -101,7 +101,7 @@ export function PlayPage(): ReactElement {
diff --git a/website/src/pages/docs/_meta.ts b/website/src/pages/docs/_meta.ts index f7132724c1e..c11d271f122 100644 --- a/website/src/pages/docs/_meta.ts +++ b/website/src/pages/docs/_meta.ts @@ -1,21 +1,19 @@ export default { index: '', + 'getting-started': '', + 'parser-options': '', usage: '', - '---1': { + _1: { type: 'separator', title: 'Users', }, configs: '', 'disabling-rules': '', vscode: '', - '---2': { + _2: { type: 'separator', title: 'Developers', }, parser: '', 'custom-rules': '', - '---3': { - type: 'separator', - }, - 'getting-started': '', }; diff --git a/website/src/pages/docs/getting-started.mdx b/website/src/pages/docs/getting-started.mdx index 8091d954204..2592f8b9a56 100644 --- a/website/src/pages/docs/getting-started.mdx +++ b/website/src/pages/docs/getting-started.mdx @@ -1,7 +1,13 @@ +--- +sidebarTitle: 🚧 Getting Started +--- + import { Callout } from '@theguild/components' # Getting Started + + ## Configuration To get started, define an override in your ESLint config to apply this plugin to `.graphql` files. diff --git a/website/src/pages/docs/parser-options.mdx b/website/src/pages/docs/parser-options.mdx index 040d1b434db..b99e7a4ee62 100644 --- a/website/src/pages/docs/parser-options.mdx +++ b/website/src/pages/docs/parser-options.mdx @@ -1,7 +1,13 @@ +--- +sidebarTitle: 🚧 Parser Options +--- + import { Callout } from '@theguild/components' # Parser Options + + ## `graphQLParserOptions` With this configuration, you can specify custom configurations for GraphQL's `parse` method. By diff --git a/website/src/pages/docs/usage/_meta.ts b/website/src/pages/docs/usage/_meta.ts index dc3479c27da..7ca12e0d034 100644 --- a/website/src/pages/docs/usage/_meta.ts +++ b/website/src/pages/docs/usage/_meta.ts @@ -1,5 +1,5 @@ export default { - '---1': { + _1: { type: 'separator', title: 'Basic', }, @@ -8,7 +8,7 @@ export default { 'schema-and-documents': '', 'multiple-projects': '', programmatic: '', - '---2': { + _2: { type: 'separator', title: 'Advanced', }, diff --git a/website/src/pages/docs/usage/graphql.mdx b/website/src/pages/docs/usage/graphql.mdx index 9a120511473..a38f3a47836 100644 --- a/website/src/pages/docs/usage/graphql.mdx +++ b/website/src/pages/docs/usage/graphql.mdx @@ -1,6 +1,8 @@ --- title: Usage with `.graphql` files -sidebarTitle: GraphQL Files +sidebarTitle: 🚧 GraphQL Files --- # Usage with `.graphql` files + + diff --git a/website/src/pages/docs/usage/js.mdx b/website/src/pages/docs/usage/js.mdx index e68302f4f9c..df2957670f8 100644 --- a/website/src/pages/docs/usage/js.mdx +++ b/website/src/pages/docs/usage/js.mdx @@ -1,6 +1,8 @@ --- title: Usage with code files `.js/.jsx` -sidebarTitle: Code Files +sidebarTitle: 🚧 Code Files --- # Usage with code files `.js/.jsx` + + diff --git a/website/src/pages/docs/usage/multiple-projects.mdx b/website/src/pages/docs/usage/multiple-projects.mdx index 2322dedc1c2..6c27028889b 100644 --- a/website/src/pages/docs/usage/multiple-projects.mdx +++ b/website/src/pages/docs/usage/multiple-projects.mdx @@ -1 +1,7 @@ +--- +sidebarTitle: 🚧 Multiple Projects +--- + # Usage to lint different schemas + + diff --git a/website/src/pages/docs/usage/prettier.mdx b/website/src/pages/docs/usage/prettier.mdx index e1a039dcd54..4d4a835a6cc 100644 --- a/website/src/pages/docs/usage/prettier.mdx +++ b/website/src/pages/docs/usage/prettier.mdx @@ -1 +1,7 @@ +--- +sidebarTitle: 🚧 Prettier +--- + # Usage with `eslint-plugin-prettier` + + diff --git a/website/src/pages/docs/usage/programmatic.mdx b/website/src/pages/docs/usage/programmatic.mdx index 918d79de959..a9860eb4a41 100644 --- a/website/src/pages/docs/usage/programmatic.mdx +++ b/website/src/pages/docs/usage/programmatic.mdx @@ -1 +1,7 @@ +--- +sidebarTitle: 🚧 Programmatic +--- + # Programmatic usage + + diff --git a/website/src/pages/docs/usage/schema-and-documents.mdx b/website/src/pages/docs/usage/schema-and-documents.mdx index ecddd3785ca..1bb70d930ab 100644 --- a/website/src/pages/docs/usage/schema-and-documents.mdx +++ b/website/src/pages/docs/usage/schema-and-documents.mdx @@ -1 +1,7 @@ +--- +sidebarTitle: 🚧 Schema and Documents +--- + # Usage to lint both schema/documents + + diff --git a/website/src/pages/docs/usage/svelte.mdx b/website/src/pages/docs/usage/svelte.mdx index 8c6ea098c0e..2dfd88d509f 100644 --- a/website/src/pages/docs/usage/svelte.mdx +++ b/website/src/pages/docs/usage/svelte.mdx @@ -1 +1,7 @@ +--- +sidebarTitle: 🚧 Svelte +--- + # Usage with `.svelte` files + + diff --git a/website/src/pages/docs/usage/vue.mdx b/website/src/pages/docs/usage/vue.mdx index e58a8ab3283..2747f33cac2 100644 --- a/website/src/pages/docs/usage/vue.mdx +++ b/website/src/pages/docs/usage/vue.mdx @@ -1,26 +1,28 @@ +import { Callout } from '@theguild/components' + # Usage with `.vue` files -`graphql-eslint` can lint GraphQL documents inside Vue Single-File Components (.vue files). It does -this in two steps: (1) extract the GraphQL documents from the Vue (or js/ts) file, and (2) lint the -extracted GraphQL documents. +`graphql-eslint` can lint GraphQL documents inside Vue Single-File Components (`.vue` files). It +does this in two steps: (1) extract the GraphQL documents from the Vue (or `.js`/`.ts`) file, and +(2) lint the extracted GraphQL documents. If you don't embed GraphQL documents in your Vue files, you can skip this page. Due to [a limitation in - graphql-tag-pluck](https://github.com/dimaMachina/graphql-eslint/issues/2103), lint violations + `graphql-tag-pluck`](https://github.com/dimaMachina/graphql-eslint/issues/2103), lint violations will show up at the top of the Vue document, on the first character, not inline. ## Configuration Add the following configuration to your `eslint.config.js` file to setup `@graphql-eslint` plugin. -The intermediate graphql files always have the .graphql extension. Make sure the second block -matches those files, even if you use another extension for your project's GraphQL (e.g. .gql). +The intermediate graphql files always have the `.graphql` extension. Make sure the second block +matches those files, even if you use another extension for your project's GraphQL (e.g. `.gql`). - Make sure the first section, which extracts GrahpQL from Vue files, comes **before** any other Vue - rules. Otherwise, eslint may incorrectly rewrite all error messages to say only "clear." + Make sure the first section, which extracts GraphQL from Vue files, comes **before** any other Vue + rules. Otherwise, eslint may incorrectly rewrite all error messages to say only "clear". ```js filename="eslint.config.js" @@ -35,7 +37,7 @@ export default [ // Extract GraphQL from files for linting -- this creates .graphql files // that are then linted below // - // graphql-eslint scans all files (using the processor lsited) and outputs + // graphql-eslint scans all files (using the processor listed) and outputs // an intermediate file with the extracted GraphQL. That intermediate file // is then linted, generating the errors we see. The intermediate file has // a fixed .graphql extension, so you need to include that extension below @@ -43,7 +45,7 @@ export default [ files: ['**/*.js', '**/*.ts', '**/*.vue'], processor: graphqlPlugin.processor // NOTE: While you CAN put rules here to affect JS/TS/Vue files, those - // rules won't affect GraphQL. To modify rules that effect GrahpQL inside + // rules won't affect GraphQL. To modify rules that effect GraphQL inside // these files, add those to the block for .graphql files, below. }, // ...other config diff --git a/website/theme.config.tsx b/website/theme.config.tsx index 508e67405d4..fc727dfb429 100644 --- a/website/theme.config.tsx +++ b/website/theme.config.tsx @@ -1,11 +1,15 @@ /* eslint sort-keys: error */ -import { defineConfig, PRODUCTS } from '@theguild/components'; +import { Callout, defineConfig, PRODUCTS } from '@theguild/components'; export default defineConfig({ + backgroundColor: { + dark: '15,17,20', + light: '250,250,250', + }, banner: { content: ( <> - This docs for version 4 of plugin. For version 3 click{' '} + 🚧 This is WIP documentation for v4 of the plugin. For v3 click{' '} ), + dismissible: false, }, - backgroundColor: { - dark: '15,17,20', - light: '250,250,250', + components: { + WIP() { + return ( + + This page is under construction. Help us improve the content by submitting a PR. + + ); + }, }, description: PRODUCTS.ESLINT.title, docsRepositoryBase: 'https://github.com/B2o5T/graphql-eslint/tree/master/website', // base URL for the docs repository - logo: , + logo: , websiteName: 'GraphQL-ESLint', }); diff --git a/website/tsconfig.json b/website/tsconfig.json index 9e2a8d24ff3..000fa475155 100644 --- a/website/tsconfig.json +++ b/website/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "target": "es2019", - "module": "commonjs", + "module": "esnext", "strict": true, "esModuleInterop": true, "skipLibCheck": true, @@ -9,7 +9,7 @@ "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "noEmit": true, - "moduleResolution": "node", + "moduleResolution": "bundler", "resolveJsonModule": true, "isolatedModules": true, "jsx": "preserve",