diff --git a/.eslintrc b/.eslintrc deleted file mode 100755 index acd4a8fc..00000000 --- a/.eslintrc +++ /dev/null @@ -1,29 +0,0 @@ -{ - "plugins": ["simple-import-sort"], - "extends": ["airbnb-base", "airbnb-typescript/base", "prettier"], - "ignorePatterns": [ - "**/*.config.ts", - "**/*.config.js", - "contented.js", - "**/contented-processor/**/*.d.ts", - "**/contented-processor/**/*.js", - "**/.contented", - "**/dist" - ], - "rules": { - "import/no-unresolved": "off", - "class-methods-use-this": "off", - "import/no-extraneous-dependencies": "off", - "import/prefer-default-export": "off", - "import/extensions": "off", - "no-use-before-define": "off", - "consistent-return": "off", - "@typescript-eslint/no-use-before-define": "off", - "no-console": "error", - "simple-import-sort/imports": "error", - "simple-import-sort/exports": "error" - }, - "parserOptions": { - "project": "./tsconfig.json" - } -} diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..1cacb205 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,113 @@ +module.exports = { + plugins: ['simple-import-sort', 'check-file', 'unused-imports', 'no-only-tests'], + extends: ['airbnb-base', 'airbnb-typescript/base', 'prettier'], + ignorePatterns: ['dist', 'node_modules'], + rules: { + 'class-methods-use-this': 'off', + 'max-classes-per-file': 'off', + 'no-use-before-define': 'off', + 'no-console': 'error', + + // https://github.com/airbnb/javascript/issues/1271 + 'no-restricted-syntax': 'off', + + 'no-await-in-loop': 'off', + + // import + 'import/no-extraneous-dependencies': 'off', + 'import/prefer-default-export': 'off', + 'import/no-default-export': 'error', + + // simple-import-sort + 'simple-import-sort/imports': 'error', + 'simple-import-sort/exports': 'error', + + /** + * Enforce PascalCase for filenames. + */ + 'check-file/filename-naming-convention': [ + 'error', + { + 'src/**/*.{js,jsx,tsx,ts}': 'PASCAL_CASE', + }, + { + ignoreMiddleExtensions: true, + }, + ], + + '@typescript-eslint/no-throw-literal': 'warn', + + '@typescript-eslint/no-floating-promises': 'error', + 'no-void': [ + 'error', + { + allowAsStatement: true, + }, + ], + + // @typescript-eslint + '@typescript-eslint/no-use-before-define': 'off', + + /** + * Separates out the `no-unused-vars` rule depending on it being an import statement in the AST and providing + * an auto-fix rule to remove the nodes if they are imports. + * With this, we can now target test files with `'unused-imports/no-unused-vars': 'off'` for testing DX. + */ + '@typescript-eslint/no-unused-vars': 'off', + 'unused-imports/no-unused-imports': 'error', + 'unused-imports/no-unused-vars': 'error', + + /** + * Do not use ambiguous identifiers like `id`, use context identifiers like `userId` or `postId` instead. + * Please do not ignore this rule completely, for scenarios where you need to use `id` as a variable name, + * use `// eslint-disable-next-line no-restricted-properties` to disable this rule for that line. + */ + 'no-restricted-properties': [ + 'error', + { + property: 'id', + message: + 'Do not use ambiguous identifiers like `id`, use context identifiers like `userId` or `postId` instead.', + }, + ], + + /** + * disallow .only to be used in tests + */ + 'no-only-tests/no-only-tests': 'error', + }, + env: { + node: true, + jest: true, + }, + overrides: [ + { + files: ['**/*.unit.ts', '**/*.i9n.ts', '**/*.e2e.ts'], + rules: { + /** + * To cater for complex test scenarios, where we need to scope blocks. This allows variables to be reused, + * so we don't have to create `const getObject` and `const updatedObject` for each scenario. + * We can just use `const object`. + */ + 'no-lone-blocks': 'off', + + /** + * Separates out the `no-unused-vars` rule depending on it being an import statement in the AST and providing + * an auto-fix rule to remove the nodes if they are imports. + * With this, we can now target test files with `'unused-imports/no-unused-vars': 'off'` for testing DX. + */ + 'unused-imports/no-unused-imports': 'error', + 'unused-imports/no-unused-vars': 'off', + }, + }, + { + /** + * Enforce PascalCase for filenames, ignoring common files like `index.ts`, `cli.ts`, `main.ts`. + */ + files: ['**/{index,cli}.ts'], + rules: { + 'check-file/filename-naming-convention': ['off'], + }, + }, + ], +}; diff --git a/.npmrc b/.npmrc index 519ffd9c..8bc3883e 100644 --- a/.npmrc +++ b/.npmrc @@ -1,9 +1,3 @@ # Hosting Dev Tools -public-hoist-pattern[]=husky -public-hoist-pattern[]=lint-staged -public-hoist-pattern[]=typescript -public-hoist-pattern[]=turbo public-hoist-pattern[]=*jest* -public-hoist-pattern[]=*eslint* -public-hoist-pattern[]=*prettier* public-hoist-pattern[]=@types/* diff --git a/package.json b/package.json index bdab2bd9..bce7a020 100644 --- a/package.json +++ b/package.json @@ -19,11 +19,27 @@ "lint-staged": { "*": "prettier --write --ignore-unknown" }, - "prettier": "@stickyjs/prettier", "devDependencies": { - "@stickyjs/eslint-config": "1.3.4", - "@stickyjs/prettier": "1.3.4", - "turbo": "^1.10.16" + "@typescript-eslint/eslint-plugin": "^6.7.0", + "@typescript-eslint/parser": "^6.7.0", + "@workspace/jest-preset": "workspace:*", + "@workspace/tsconfig": "workspace:*", + "eslint": "^8.49.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^17.1.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-check-file": "^2.6.2", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-no-only-tests": "^3.1.0", + "eslint-plugin-simple-import-sort": "^10.0.0", + "eslint-plugin-unused-imports": "^3.0.0", + "husky": "^8.0.3", + "lint-staged": "^14.0.1", + "prettier": "^3.0.3", + "prettier-plugin-packagejson": "^2.4.5", + "prettier-plugin-tailwindcss": "^0.4.1", + "turbo": "^1.10.16", + "typescript": "5.2.2" }, "packageManager": "pnpm@8.9.2", "engines": { diff --git a/packages/contented-example/jest/package.json b/packages/contented-example/jest/package.json index 081780b9..7b818618 100644 --- a/packages/contented-example/jest/package.json +++ b/packages/contented-example/jest/package.json @@ -19,10 +19,7 @@ "eslintConfig": { "parserOptions": { "project": "./tsconfig.json" - }, - "extends": [ - "@stickyjs" - ] + } }, "jest": { "preset": "@workspace/jest-preset", diff --git a/packages/contented-pipeline-jest-md/package.json b/packages/contented-pipeline-jest-md/package.json index 260d2cf7..c84a0799 100644 --- a/packages/contented-pipeline-jest-md/package.json +++ b/packages/contented-pipeline-jest-md/package.json @@ -13,7 +13,7 @@ "dist" ], "scripts": { - "build": "tsc -b ./tsconfig.build.json", + "build": "tsc --project tsconfig.build.json", "clean": "rm -rf dist", "lint": "eslint src", "test": "jest" @@ -30,10 +30,7 @@ "eslintConfig": { "parserOptions": { "project": "./tsconfig.json" - }, - "extends": [ - "@stickyjs" - ] + } }, "jest": { "preset": "@workspace/jest-preset" @@ -47,7 +44,6 @@ "vfile": "^5.3.7" }, "devDependencies": { - "@workspace/jest-preset": "workspace:*", - "typescript": "4.9.5" + "@workspace/jest-preset": "workspace:*" } } diff --git a/packages/contented-pipeline-jest-md/tsconfig.build.json b/packages/contented-pipeline-jest-md/tsconfig.build.json index 0d3d95f0..f53f5828 100644 --- a/packages/contented-pipeline-jest-md/tsconfig.build.json +++ b/packages/contented-pipeline-jest-md/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", + "extends": "@workspace/tsconfig", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src"], "exclude": ["**/*.unit.ts"] } diff --git a/packages/contented-pipeline-jest-md/tsconfig.json b/packages/contented-pipeline-jest-md/tsconfig.json index 6435d433..1799e747 100644 --- a/packages/contented-pipeline-jest-md/tsconfig.json +++ b/packages/contented-pipeline-jest-md/tsconfig.json @@ -1,8 +1,3 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist" - }, - "include": ["src"] + "extends": "@workspace/tsconfig" } diff --git a/packages/contented-pipeline-md/package.json b/packages/contented-pipeline-md/package.json index fdfb51a3..61dcc7ab 100644 --- a/packages/contented-pipeline-md/package.json +++ b/packages/contented-pipeline-md/package.json @@ -13,7 +13,7 @@ "dist" ], "scripts": { - "build": "tsc -b ./tsconfig.build.json", + "build": "tsc --project tsconfig.build.json", "clean": "rm -rf dist", "lint": "eslint src", "test": "jest" @@ -31,9 +31,6 @@ "parserOptions": { "project": "./tsconfig.json" }, - "extends": [ - "@stickyjs" - ], "rules": { "no-param-reassign": "off" } @@ -75,7 +72,6 @@ "@types/hast": "^2.3.6", "@types/js-yaml": "^4.0.6", "@types/lodash": "^4.14.199", - "@workspace/jest-preset": "workspace:*", - "typescript": "4.9.5" + "@workspace/jest-preset": "workspace:*" } } diff --git a/packages/contented-pipeline-md/tsconfig.build.json b/packages/contented-pipeline-md/tsconfig.build.json index 0d3d95f0..f53f5828 100644 --- a/packages/contented-pipeline-md/tsconfig.build.json +++ b/packages/contented-pipeline-md/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", + "extends": "@workspace/tsconfig", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src"], "exclude": ["**/*.unit.ts"] } diff --git a/packages/contented-pipeline-md/tsconfig.json b/packages/contented-pipeline-md/tsconfig.json index 6435d433..1799e747 100644 --- a/packages/contented-pipeline-md/tsconfig.json +++ b/packages/contented-pipeline-md/tsconfig.json @@ -1,8 +1,3 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist" - }, - "include": ["src"] + "extends": "@workspace/tsconfig" } diff --git a/packages/contented-pipeline/package.json b/packages/contented-pipeline/package.json index 9b3e5e75..eadedc33 100644 --- a/packages/contented-pipeline/package.json +++ b/packages/contented-pipeline/package.json @@ -13,9 +13,9 @@ "dist" ], "scripts": { - "build": "tsc -b ./tsconfig.build.json", + "build": "tsc --project tsconfig.build.json", "clean": "rm -rf dist", - "lint": "eslint src", + "lint": "eslint .", "test": "jest" }, "lint-staged": { @@ -31,9 +31,6 @@ "parserOptions": { "project": "./tsconfig.json" }, - "extends": [ - "@stickyjs" - ], "rules": { "no-param-reassign": "off" } @@ -46,7 +43,6 @@ }, "devDependencies": { "@types/unist": "^2.0.8", - "@workspace/jest-preset": "workspace:*", - "typescript": "4.9.5" + "@workspace/jest-preset": "workspace:*" } } diff --git a/packages/contented-pipeline/tsconfig.build.json b/packages/contented-pipeline/tsconfig.build.json index 0d3d95f0..f53f5828 100644 --- a/packages/contented-pipeline/tsconfig.build.json +++ b/packages/contented-pipeline/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", + "extends": "@workspace/tsconfig", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src"], "exclude": ["**/*.unit.ts"] } diff --git a/packages/contented-pipeline/tsconfig.json b/packages/contented-pipeline/tsconfig.json index 6435d433..1799e747 100644 --- a/packages/contented-pipeline/tsconfig.json +++ b/packages/contented-pipeline/tsconfig.json @@ -1,8 +1,3 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist" - }, - "include": ["src"] + "extends": "@workspace/tsconfig" } diff --git a/packages/contented-processor/package.json b/packages/contented-processor/package.json index 6a2d9f34..81183d55 100644 --- a/packages/contented-processor/package.json +++ b/packages/contented-processor/package.json @@ -13,7 +13,7 @@ "dist" ], "scripts": { - "build": "tsc -b ./tsconfig.build.json", + "build": "tsc --project tsconfig.build.json", "clean": "rm -rf dist", "lint": "eslint src", "test": "jest" @@ -31,9 +31,6 @@ "parserOptions": { "project": "./tsconfig.json" }, - "extends": [ - "@stickyjs" - ], "rules": { "no-param-reassign": "off" } @@ -50,7 +47,6 @@ "devDependencies": { "@types/minimatch": "^5.1.2", "@types/node": "^18.16.16", - "@workspace/jest-preset": "workspace:*", - "typescript": "4.9.5" + "@workspace/jest-preset": "workspace:*" } } diff --git a/packages/contented-processor/tsconfig.build.json b/packages/contented-processor/tsconfig.build.json index 0d3d95f0..f53f5828 100644 --- a/packages/contented-processor/tsconfig.build.json +++ b/packages/contented-processor/tsconfig.build.json @@ -1,4 +1,8 @@ { - "extends": "./tsconfig.json", + "extends": "@workspace/tsconfig", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src"], "exclude": ["**/*.unit.ts"] } diff --git a/packages/contented-processor/tsconfig.json b/packages/contented-processor/tsconfig.json index 6435d433..1799e747 100644 --- a/packages/contented-processor/tsconfig.json +++ b/packages/contented-processor/tsconfig.json @@ -1,8 +1,3 @@ { - "extends": "../../tsconfig.json", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist" - }, - "include": ["src"] + "extends": "@workspace/tsconfig" } diff --git a/packages/contented/package.json b/packages/contented/package.json index 0ba0ff9d..65e4ec52 100644 --- a/packages/contented/package.json +++ b/packages/contented/package.json @@ -18,7 +18,7 @@ "cli.js" ], "scripts": { - "build": "tsc -b ./tsconfig.build.json && node build-preview.js", + "build": "tsc --project tsconfig.build.json && node build-preview.js", "clean": "rm -rf dist", "lint": "eslint src" }, @@ -34,10 +34,7 @@ "eslintConfig": { "parserOptions": { "project": "./tsconfig.json" - }, - "extends": [ - "@stickyjs" - ] + } }, "dependencies": { "@contentedjs/contented-pipeline": "workspace:*", @@ -45,8 +42,7 @@ "@parcel/watcher": "^2.2.0", "clipanion": "3.2.1", "debounce": "^1.2.1", - "ignore-walk": "^6.0.3", - "typescript": "4.9.5" + "ignore-walk": "^6.0.3" }, "devDependencies": { "@types/debounce": "^1.2.2", diff --git a/packages/contented/tsconfig.build.json b/packages/contented/tsconfig.build.json index 3f586fb4..f53f5828 100644 --- a/packages/contented/tsconfig.build.json +++ b/packages/contented/tsconfig.build.json @@ -1,4 +1,8 @@ { - "exclude": ["**/*.unit.ts"], - "extends": "./tsconfig.json" + "extends": "@workspace/tsconfig", + "compilerOptions": { + "outDir": "dist" + }, + "include": ["src"], + "exclude": ["**/*.unit.ts"] } diff --git a/packages/contented/tsconfig.json b/packages/contented/tsconfig.json index 4c5e83a0..1799e747 100644 --- a/packages/contented/tsconfig.json +++ b/packages/contented/tsconfig.json @@ -1,8 +1,3 @@ { - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist" - }, - "extends": "../../tsconfig.json", - "include": ["src"] + "extends": "@workspace/tsconfig" } diff --git a/packages/jest-preset/package.json b/packages/jest-preset/package.json index 045921ae..924f3db3 100644 --- a/packages/jest-preset/package.json +++ b/packages/jest-preset/package.json @@ -1,12 +1,6 @@ { "name": "@workspace/jest-preset", - "version": "0.0.0", "private": true, - "lint-staged": { - "*": [ - "prettier --write --ignore-unknown" - ] - }, "dependencies": { "@stickyjs/jest": "1.3.4", "esbuild": "^0.19.4", diff --git a/packages/tsconfig/package.json b/packages/tsconfig/package.json new file mode 100644 index 00000000..8724b1a2 --- /dev/null +++ b/packages/tsconfig/package.json @@ -0,0 +1,4 @@ +{ + "name": "@workspace/tsconfig", + "private": true +} diff --git a/packages/tsconfig/tsconfig.json b/packages/tsconfig/tsconfig.json new file mode 100644 index 00000000..5922d84c --- /dev/null +++ b/packages/tsconfig/tsconfig.json @@ -0,0 +1,24 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Default", + "compilerOptions": { + "lib": ["ES2021"], + "target": "ES2020", + "module": "ES2020", + "allowJs": true, + "composite": false, + "declaration": true, + "declarationMap": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "inlineSources": false, + "isolatedModules": true, + "moduleResolution": "node", + "noUnusedLocals": false, + "noUnusedParameters": false, + "preserveWatchOutput": true, + "skipLibCheck": true, + "strict": true, + "resolveJsonModule": true + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0ca686ba..cedd0aac 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,15 +8,66 @@ importers: .: devDependencies: - '@stickyjs/eslint-config': - specifier: 1.3.4 - version: 1.3.4(typescript@4.9.5) - '@stickyjs/prettier': - specifier: 1.3.4 - version: 1.3.4 + '@typescript-eslint/eslint-plugin': + specifier: ^6.7.0 + version: 6.8.0(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/parser': + specifier: ^6.7.0 + version: 6.8.0(eslint@8.51.0)(typescript@5.2.2) + '@workspace/jest-preset': + specifier: workspace:* + version: link:packages/jest-preset + '@workspace/tsconfig': + specifier: workspace:* + version: link:packages/tsconfig + eslint: + specifier: ^8.49.0 + version: 8.51.0 + eslint-config-airbnb-base: + specifier: ^15.0.0 + version: 15.0.0(eslint-plugin-import@2.28.1)(eslint@8.51.0) + eslint-config-airbnb-typescript: + specifier: ^17.1.0 + version: 17.1.0(@typescript-eslint/eslint-plugin@6.8.0)(@typescript-eslint/parser@6.8.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0) + eslint-config-prettier: + specifier: ^9.0.0 + version: 9.0.0(eslint@8.51.0) + eslint-plugin-check-file: + specifier: ^2.6.2 + version: 2.6.2(eslint@8.51.0) + eslint-plugin-import: + specifier: ^2.28.1 + version: 2.28.1(@typescript-eslint/parser@6.8.0)(eslint@8.51.0) + eslint-plugin-no-only-tests: + specifier: ^3.1.0 + version: 3.1.0 + eslint-plugin-simple-import-sort: + specifier: ^10.0.0 + version: 10.0.0(eslint@8.51.0) + eslint-plugin-unused-imports: + specifier: ^3.0.0 + version: 3.0.0(@typescript-eslint/eslint-plugin@6.8.0)(eslint@8.51.0) + husky: + specifier: ^8.0.3 + version: 8.0.3 + lint-staged: + specifier: ^14.0.1 + version: 14.0.1 + prettier: + specifier: ^3.0.3 + version: 3.0.3 + prettier-plugin-packagejson: + specifier: ^2.4.5 + version: 2.4.6(prettier@3.0.3) + prettier-plugin-tailwindcss: + specifier: ^0.4.1 + version: 0.4.1(prettier@3.0.3) turbo: specifier: ^1.10.16 version: 1.10.16 + typescript: + specifier: 5.2.2 + version: 5.2.2 packages/contented: dependencies: @@ -38,9 +89,6 @@ importers: ignore-walk: specifier: ^6.0.3 version: 6.0.3 - typescript: - specifier: 4.9.5 - version: 4.9.5 devDependencies: '@types/debounce': specifier: ^1.2.2 @@ -88,9 +136,6 @@ importers: '@workspace/jest-preset': specifier: workspace:* version: link:../jest-preset - typescript: - specifier: 4.9.5 - version: 4.9.5 packages/contented-pipeline-jest-md: dependencies: @@ -116,9 +161,6 @@ importers: '@workspace/jest-preset': specifier: workspace:* version: link:../jest-preset - typescript: - specifier: 4.9.5 - version: 4.9.5 packages/contented-pipeline-md: dependencies: @@ -219,9 +261,6 @@ importers: '@workspace/jest-preset': specifier: workspace:* version: link:../jest-preset - typescript: - specifier: 4.9.5 - version: 4.9.5 packages/contented-preview: dependencies: @@ -280,15 +319,14 @@ importers: '@workspace/jest-preset': specifier: workspace:* version: link:../jest-preset - typescript: - specifier: 4.9.5 - version: 4.9.5 + + packages/eslint-config: {} packages/jest-preset: dependencies: '@stickyjs/jest': specifier: 1.3.4 - version: 1.3.4(@babel/core@7.23.2)(esbuild@0.19.5)(typescript@4.9.5) + version: 1.3.4(@babel/core@7.23.2)(esbuild@0.19.5)(typescript@5.2.2) esbuild: specifier: ^0.19.4 version: 0.19.5 @@ -296,6 +334,8 @@ importers: specifier: ^0.5.0 version: 0.5.0(esbuild@0.19.5) + packages/tsconfig: {} + packages: /@aashutoshrathi/word-wrap@1.2.6: @@ -322,6 +362,7 @@ packages: dependencies: '@babel/highlight': 7.22.20 chalk: 2.4.2 + dev: false /@babel/compat-data@7.23.2: resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} @@ -440,6 +481,7 @@ packages: /@babel/helper-validator-identifier@7.22.20: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} + dev: false /@babel/helper-validator-option@7.22.15: resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} @@ -464,6 +506,7 @@ packages: '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 + dev: false /@babel/parser@7.23.0: resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} @@ -1506,35 +1549,13 @@ packages: '@sinonjs/commons': 3.0.0 dev: false - /@stickyjs/eslint-config@1.3.4(typescript@4.9.5): - resolution: {integrity: sha512-MO9t0Cw6okgaV2BTbPOZI2JxKNqpw5ijKrMuKUwI+2tMDiT5nqTG3/zQVTt/MmAjHF9SumHrqgvG5OMuOngiwQ==} - dependencies: - '@typescript-eslint/eslint-plugin': 6.8.0(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@4.9.5) - '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@4.9.5) - eslint: 8.51.0 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.28.1)(eslint@8.51.0) - eslint-config-airbnb-typescript: 17.1.0(@typescript-eslint/eslint-plugin@6.8.0)(@typescript-eslint/parser@6.8.0)(eslint-plugin-import@2.28.1)(eslint@8.51.0) - eslint-config-prettier: 9.0.0(eslint@8.51.0) - eslint-plugin-anti-trojan-source: 1.1.1 - eslint-plugin-check-file: 2.6.2(eslint@8.51.0) - eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.8.0)(eslint@8.51.0) - eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-simple-import-sort: 10.0.0(eslint@8.51.0) - eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.8.0)(eslint@8.51.0) - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - - typescript - dev: true - - /@stickyjs/jest@1.3.4(@babel/core@7.23.2)(esbuild@0.19.5)(typescript@4.9.5): + /@stickyjs/jest@1.3.4(@babel/core@7.23.2)(esbuild@0.19.5)(typescript@5.2.2): resolution: {integrity: sha512-ps0IBJCMvtRbwEMqBARwmqjqMtsCkD4AWtXgWnmtQAR+cFDxKqnVHZQWAVplm25cZ+I/rgjPmRl4ImXtHgfRPA==} dependencies: '@types/jest': 29.5.6 jest: 29.7.0 jest-extended: 4.0.1(jest@29.7.0) - ts-jest: 29.1.1(@babel/core@7.23.2)(esbuild@0.19.5)(jest@29.7.0)(typescript@4.9.5) + ts-jest: 29.1.1(@babel/core@7.23.2)(esbuild@0.19.5)(jest@29.7.0)(typescript@5.2.2) wait-for-expect: 3.0.2 transitivePeerDependencies: - '@babel/core' @@ -1549,34 +1570,6 @@ packages: - typescript dev: false - /@stickyjs/prettier@1.3.4: - resolution: {integrity: sha512-AT70mu1r6dOxz8BBLcGj6VT8GTOVouIxfwneP+3EmS95pPSeyWmn0n/0Rg65mx36LJM82tx6LeYi53U7a2k/ig==} - dependencies: - husky: 8.0.3 - lint-staged: 14.0.1 - prettier: 3.0.3 - prettier-plugin-packagejson: 2.4.6(prettier@3.0.3) - prettier-plugin-tailwindcss: 0.4.1(prettier@3.0.3) - transitivePeerDependencies: - - '@ianvs/prettier-plugin-sort-imports' - - '@prettier/plugin-pug' - - '@shopify/prettier-plugin-liquid' - - '@shufo/prettier-plugin-blade' - - '@trivago/prettier-plugin-sort-imports' - - enquirer - - prettier-plugin-astro - - prettier-plugin-css-order - - prettier-plugin-import-sort - - prettier-plugin-jsdoc - - prettier-plugin-marko - - prettier-plugin-organize-attributes - - prettier-plugin-organize-imports - - prettier-plugin-style-order - - prettier-plugin-svelte - - prettier-plugin-twig-melody - - supports-color - dev: true - /@swc/helpers@0.5.2: resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} dependencies: @@ -1720,10 +1713,6 @@ packages: resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} dev: true - /@types/minimist@1.2.4: - resolution: {integrity: sha512-Kfe/D3hxHTusnPNRbycJE1N77WHDsdS4AjUYIzlDzhDrS47NrwuL3YW4VITxwR7KCVpzwgy4Rbj829KSSQmwXQ==} - dev: true - /@types/ms@0.7.33: resolution: {integrity: sha512-AuHIyzR5Hea7ij0P9q7vx7xu4z0C28ucwjAZC0ja7JhINyCnOw8/DnvAPQQ9TfOlCtZAmCERKQX9+o1mgQhuOQ==} dev: false @@ -1731,10 +1720,6 @@ packages: /@types/node@18.18.6: resolution: {integrity: sha512-wf3Vz+jCmOQ2HV1YUJuCWdL64adYxumkrxtc+H1VUQlnQI04+5HtH+qZCOE21lBE7gIrt+CwX2Wv8Acrw5Ak6w==} - /@types/normalize-package-data@2.4.3: - resolution: {integrity: sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==} - dev: true - /@types/parse5@6.0.3: resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} dev: false @@ -1770,7 +1755,7 @@ packages: '@types/yargs-parser': 21.0.2 dev: false - /@typescript-eslint/eslint-plugin@6.8.0(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@4.9.5): + /@typescript-eslint/eslint-plugin@6.8.0(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2): resolution: {integrity: sha512-GosF4238Tkes2SHPQ1i8f6rMtG6zlKwMEB0abqSJ3Npvos+doIlc/ATG+vX1G9coDF3Ex78zM3heXHLyWEwLUw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1782,10 +1767,10 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.9.1 - '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 6.8.0 - '@typescript-eslint/type-utils': 6.8.0(eslint@8.51.0)(typescript@4.9.5) - '@typescript-eslint/utils': 6.8.0(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/type-utils': 6.8.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.8.0(eslint@8.51.0)(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.8.0 debug: 4.3.4 eslint: 8.51.0 @@ -1793,13 +1778,13 @@ packages: ignore: 5.2.4 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@4.9.5) - typescript: 4.9.5 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.8.0(eslint@8.51.0)(typescript@4.9.5): + /@typescript-eslint/parser@6.8.0(eslint@8.51.0)(typescript@5.2.2): resolution: {integrity: sha512-5tNs6Bw0j6BdWuP8Fx+VH4G9fEPDxnVI7yH1IAPkQH5RUtvKwRoqdecAPdQXv4rSOADAaz1LFBZvZG7VbXivSg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1811,11 +1796,11 @@ packages: dependencies: '@typescript-eslint/scope-manager': 6.8.0 '@typescript-eslint/types': 6.8.0 - '@typescript-eslint/typescript-estree': 6.8.0(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 6.8.0(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.8.0 debug: 4.3.4 eslint: 8.51.0 - typescript: 4.9.5 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true @@ -1828,7 +1813,7 @@ packages: '@typescript-eslint/visitor-keys': 6.8.0 dev: true - /@typescript-eslint/type-utils@6.8.0(eslint@8.51.0)(typescript@4.9.5): + /@typescript-eslint/type-utils@6.8.0(eslint@8.51.0)(typescript@5.2.2): resolution: {integrity: sha512-RYOJdlkTJIXW7GSldUIHqc/Hkto8E+fZN96dMIFhuTJcQwdRoGN2rEWA8U6oXbLo0qufH7NPElUb+MceHtz54g==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1838,12 +1823,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.8.0(typescript@4.9.5) - '@typescript-eslint/utils': 6.8.0(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 6.8.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.8.0(eslint@8.51.0)(typescript@5.2.2) debug: 4.3.4 eslint: 8.51.0 - ts-api-utils: 1.0.3(typescript@4.9.5) - typescript: 4.9.5 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true @@ -1853,7 +1838,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.8.0(typescript@4.9.5): + /@typescript-eslint/typescript-estree@6.8.0(typescript@5.2.2): resolution: {integrity: sha512-ISgV0lQ8XgW+mvv5My/+iTUdRmGspducmQcDw5JxznasXNnZn3SKNrTRuMsEXv+V/O+Lw9AGcQCfVaOPCAk/Zg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1868,13 +1853,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@4.9.5) - typescript: 4.9.5 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.8.0(eslint@8.51.0)(typescript@4.9.5): + /@typescript-eslint/utils@6.8.0(eslint@8.51.0)(typescript@5.2.2): resolution: {integrity: sha512-dKs1itdE2qFG4jr0dlYLQVppqTE+Itt7GmIf/vX6CSvsW+3ov8PbWauVKyyfNngokhIO9sKZeRGCUo1+N7U98Q==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1885,7 +1870,7 @@ packages: '@types/semver': 7.5.4 '@typescript-eslint/scope-manager': 6.8.0 '@typescript-eslint/types': 6.8.0 - '@typescript-eslint/typescript-estree': 6.8.0(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 6.8.0(typescript@5.2.2) eslint: 8.51.0 semver: 7.5.4 transitivePeerDependencies: @@ -1956,6 +1941,7 @@ packages: engines: {node: '>=4'} dependencies: color-convert: 1.9.3 + dev: false /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} @@ -1973,15 +1959,6 @@ packages: engines: {node: '>=12'} dev: true - /anti-trojan-source@1.4.1: - resolution: {integrity: sha512-DruSp30RgiEW36/n5+e2RtJf2W57jBS01YHvH8SL1vSFIpIeArfreTCxelHPMEhGLpk/BZUeA3uWt5AeTCHq9g==} - engines: {node: '>=14.0.0'} - hasBin: true - dependencies: - globby: 12.2.0 - meow: 10.1.5 - dev: true - /any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} dev: false @@ -2054,11 +2031,6 @@ packages: engines: {node: '>=8'} dev: true - /array-union@3.0.1: - resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} - engines: {node: '>=12'} - dev: true - /array-unique@0.3.2: resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} engines: {node: '>=0.10.0'} @@ -2108,11 +2080,6 @@ packages: is-shared-array-buffer: 1.0.2 dev: true - /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: true - /assign-symbols@1.0.0: resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} engines: {node: '>=0.10.0'} @@ -2404,16 +2371,6 @@ packages: engines: {node: '>= 6'} dev: false - /camelcase-keys@7.0.2: - resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} - engines: {node: '>=12'} - dependencies: - camelcase: 6.3.0 - map-obj: 4.3.0 - quick-lru: 5.1.1 - type-fest: 1.4.0 - dev: true - /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -2422,6 +2379,7 @@ packages: /camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} + dev: false /caniuse-lite@1.0.30001551: resolution: {integrity: sha512-vtBAez47BoGMMzlbYhfXrMV1kvRF2WP/lqiMuDu1Sb4EE4LKEgjopFDSRtZfdVnslNRpOqV/woE+Xgrwj6VQlg==} @@ -2445,6 +2403,7 @@ packages: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 + dev: false /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -2579,6 +2538,7 @@ packages: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 + dev: false /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} @@ -2588,6 +2548,7 @@ packages: /color-name@1.1.3: resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: false /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -3040,24 +3001,6 @@ packages: dependencies: ms: 2.1.2 - /decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - dev: true - - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: true - - /decamelize@5.0.1: - resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} - engines: {node: '>=10'} - dev: true - /decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} dependencies: @@ -3266,6 +3209,7 @@ packages: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 + dev: false /es-abstract@1.22.2: resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==} @@ -3387,6 +3331,7 @@ packages: /escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} + dev: false /escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} @@ -3426,8 +3371,8 @@ packages: eslint: ^7.32.0 || ^8.2.0 eslint-plugin-import: ^2.25.3 dependencies: - '@typescript-eslint/eslint-plugin': 6.8.0(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@4.9.5) - '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 6.8.0(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@5.2.2) eslint: 8.51.0 eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.28.1)(eslint@8.51.0) eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.8.0)(eslint@8.51.0) @@ -3473,7 +3418,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@5.2.2) debug: 3.2.7 eslint: 8.51.0 eslint-import-resolver-node: 0.3.9 @@ -3481,12 +3426,6 @@ packages: - supports-color dev: true - /eslint-plugin-anti-trojan-source@1.1.1: - resolution: {integrity: sha512-gWDuG2adNNccwRM+2/Q3UHqV1DgrAUSpSi/Tdnx2Ybr0ndWMSBn7lt4AbxdPuFSEs2OAokX/vdIHbBbTLzWspw==} - dependencies: - anti-trojan-source: 1.4.1 - dev: true - /eslint-plugin-check-file@2.6.2(eslint@8.51.0): resolution: {integrity: sha512-z3Rur4JjOdNH0fia1IH7JQseo9NLuFVtw9j8P6z2c5XmXWemH7/qGpmMB8XbOt9bJBNpmPlNAGJty9b3EervPw==} engines: {node: 14.x || >= 16} @@ -3508,7 +3447,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/parser': 6.8.0(eslint@8.51.0)(typescript@5.2.2) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -3556,7 +3495,7 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.8.0(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 6.8.0(@typescript-eslint/parser@6.8.0)(eslint@8.51.0)(typescript@5.2.2) eslint: 8.51.0 eslint-rule-composer: 0.3.0 dev: true @@ -4055,18 +3994,6 @@ packages: slash: 3.0.0 dev: true - /globby@12.2.0: - resolution: {integrity: sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - array-union: 3.0.1 - dir-glob: 3.0.1 - fast-glob: 3.3.1 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 4.0.0 - dev: true - /globby@13.2.2: resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4092,11 +4019,6 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true - /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: true - /has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true @@ -4104,6 +4026,7 @@ packages: /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} + dev: false /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -4269,13 +4192,6 @@ packages: resolution: {integrity: sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==} dev: false - /hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: true - /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: false @@ -4340,11 +4256,6 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - /indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - dev: true - /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} dependencies: @@ -4412,6 +4323,7 @@ packages: /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: false /is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} @@ -4592,11 +4504,6 @@ packages: engines: {node: '>=8'} dev: true - /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: true - /is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} @@ -5256,6 +5163,7 @@ packages: /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: false /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} @@ -5283,6 +5191,7 @@ packages: /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: false /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} @@ -5341,6 +5250,7 @@ packages: /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} + dev: false /kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} @@ -5379,6 +5289,7 @@ packages: /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: false /lint-staged@14.0.1: resolution: {integrity: sha512-Mw0cL6HXnHN1ag0mN/Dg4g6sr8uf8sn98w2Oc1ECtFto9tvRF7nkXGJRbx8gPlHyoR0pLyBr2lQHbWwmUHe1Sw==} @@ -5510,16 +5421,6 @@ packages: engines: {node: '>=0.10.0'} dev: false - /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: true - - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: true - /map-visit@1.0.0: resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} engines: {node: '>=0.10.0'} @@ -5749,24 +5650,6 @@ packages: deprecated: '`mdast` was renamed to `remark`' dev: false - /meow@10.1.5: - resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - '@types/minimist': 1.2.4 - camelcase-keys: 7.0.2 - decamelize: 5.0.1 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 8.0.0 - redent: 4.0.0 - trim-newlines: 4.1.1 - type-fest: 1.4.0 - yargs-parser: 20.2.9 - dev: true - /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -6290,6 +6173,7 @@ packages: /min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} + dev: false /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -6310,15 +6194,6 @@ packages: brace-expansion: 2.0.1 dev: false - /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - dev: true - /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -6441,16 +6316,6 @@ packages: resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==} dev: false - /normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.13.0 - semver: 7.5.4 - validate-npm-package-license: 3.0.4 - dev: true - /normalize-path@2.1.1: resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} engines: {node: '>=0.10.0'} @@ -6681,6 +6546,7 @@ packages: error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + dev: false /parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} @@ -6962,11 +6828,6 @@ packages: /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - /quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - dev: true - /react-dom@18.2.0(react@18.2.0): resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: @@ -6994,25 +6855,6 @@ packages: pify: 2.3.0 dev: false - /read-pkg-up@8.0.0: - resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} - engines: {node: '>=12'} - dependencies: - find-up: 5.0.0 - read-pkg: 6.0.0 - type-fest: 1.4.0 - dev: true - - /read-pkg@6.0.0: - resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} - engines: {node: '>=12'} - dependencies: - '@types/normalize-package-data': 2.4.3 - normalize-package-data: 3.0.3 - parse-json: 5.2.0 - type-fest: 1.4.0 - dev: true - /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -7020,14 +6862,6 @@ packages: picomatch: 2.3.1 dev: false - /redent@4.0.0: - resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} - engines: {node: '>=12'} - dependencies: - indent-string: 5.0.0 - strip-indent: 4.0.0 - dev: true - /regex-not@1.0.2: resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} engines: {node: '>=0.10.0'} @@ -7524,28 +7358,6 @@ packages: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} dev: false - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.16 - dev: true - - /spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: true - - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.16 - dev: true - - /spdx-license-ids@3.0.16: - resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} - dev: true - /split-string@3.1.0: resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} engines: {node: '>=0.10.0'} @@ -7682,6 +7494,7 @@ packages: engines: {node: '>=12'} dependencies: min-indent: 1.0.1 + dev: false /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} @@ -7727,6 +7540,7 @@ packages: engines: {node: '>=4'} dependencies: has-flag: 3.0.0 + dev: false /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} @@ -7866,22 +7680,17 @@ packages: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} dev: false - /trim-newlines@4.1.1: - resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} - engines: {node: '>=12'} - dev: true - /trough@2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: false - /ts-api-utils@1.0.3(typescript@4.9.5): + /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: 4.9.5 + typescript: 5.2.2 dev: true /ts-dedent@2.2.0: @@ -7893,7 +7702,7 @@ packages: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: false - /ts-jest@29.1.1(@babel/core@7.23.2)(esbuild@0.19.5)(jest@29.7.0)(typescript@4.9.5): + /ts-jest@29.1.1(@babel/core@7.23.2)(esbuild@0.19.5)(jest@29.7.0)(typescript@5.2.2): resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -7924,7 +7733,7 @@ packages: lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.5.4 - typescript: 4.9.5 + typescript: 5.2.2 yargs-parser: 21.1.1 dev: false @@ -8075,9 +7884,9 @@ packages: is-typedarray: 1.0.0 dev: false - /typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + engines: {node: '>=14.17'} hasBin: true /unbox-primitive@1.0.2: @@ -8250,13 +8059,6 @@ packages: convert-source-map: 2.0.0 dev: false - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - dev: true - /vfile-location@4.1.0: resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} dependencies: @@ -8418,11 +8220,6 @@ packages: resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} engines: {node: '>= 14'} - /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true - /yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} diff --git a/prettier.config.mjs b/prettier.config.mjs new file mode 100644 index 00000000..0016d8c4 --- /dev/null +++ b/prettier.config.mjs @@ -0,0 +1,9 @@ +/** @type {import('prettier').Config} */ +const config = { + printWidth: 120, + trailingComma: 'all', + singleQuote: true, + plugins: [import('prettier-plugin-tailwindcss'), import('prettier-plugin-packagejson')], +}; + +export default config;