diff --git a/.deployignore b/.deployignore new file mode 100644 index 0000000..1c5b828 --- /dev/null +++ b/.deployignore @@ -0,0 +1,36 @@ +# ================ +# specific ignores +# ================ +.git/ +.ddev/ +.github/ +.vscode/ +node_modules/ +scripts/ +src/ +storage/ +tools/ +.env.example +pnpm-* +pnpm-* +package.json +README.md +readme.md +CHANGELOG.md +changelog.md +.cspell.json +composer.* + +# =============== +# ignore patterns +# =============== +# any config files that don't have an extension (.editorconfig) +*config +# any config files that have an extension (eslint.config.js, tsconfig.json, vite.config.ts) +*config.* +# any config files using rc format (.npmrc) +.*rc +# any config files using rc format with an extension (.mdatrc.ts) +.*rc.* +# any ignore files (.deployignore, .gitignore, .prettierignore) +.*ignore diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..b864323 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +# editorconfig.org +root = true + +[*] +charset = utf-8 +indent_size = 2 +indent_style = space +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.{php,yaml,yml}] +indent_size = 4 + +[*.{diff,md}] +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore index e224d55..5464a6e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,19 +2,46 @@ # Also used by CSpell and Stylelint # @envsa/repo-config boilerplate -.DS_Store -.ddev/ +# ===== +# Craft +# ===== .env .env.* !.env.example -node_modules/ vendor/ -build/ -coverage/ -dist/ +/web/assets/* + +# ====== +# Builds +# ====== +node_modules/ **/*.min.js +dist/ +build/ + +# ===== +# Tests +# ===== +/test-results/ +/playwright-report/ +/playwright/.cache/ + +# ==== +# Misc +# ==== +.cache +.DS_Store +_junk/ tmp/ temp/ -_junk/ +.project +.settings +*.esproj +*.sublime-workspace +*.sublime-project +*.tmproj +*.tmproject +config.codekit3 +prepros-6.config # Customizations diff --git a/.npmrc b/.npmrc index 373ef61..abbdc72 100644 --- a/.npmrc +++ b/.npmrc @@ -1,6 +1,7 @@ publish-branch=main # Required for using @envsa/shared-config with pnpm +public-hoist-pattern[]=@envsa/browserslist-config public-hoist-pattern[]=@envsa/repo-config public-hoist-pattern[]=*cspell* public-hoist-pattern[]=*eslint* diff --git a/.prettierignore b/.prettierignore index e676370..a19a693 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,24 +2,56 @@ # Does not inherit from .gitignore # @envsa/repo-config boilerplate -.DS_Store -.ddev/ +# ===== +# Craft +# ===== .env .env.* !.env.example -node_modules/ vendor/ -build/ -coverage/ -dist/ +/web/assets/* + +# ====== +# Builds +# ====== +node_modules/ **/*.min.js +dist/ +build/ + +# ===== +# Tests +# ===== +/test-results/ +/playwright-report/ +/playwright/.cache/ + +# ==== +# Misc +# ==== +.cache +.DS_Store +_junk/ tmp/ temp/ -_junk/ +.project +.settings +*.esproj +*.sublime-workspace +*.sublime-project +*.tmproj +*.tmproject +config.codekit3 +prepros-6.config # @envsa/prettier-config boilerplate pnpm-lock.yaml package-lock.json +composer.lock +config/project/**/* +storage/**/* +web/cpresources/**/* +.ddev/ # Customizations bin/ diff --git a/.stylelintrc.cjs b/.stylelintrc.cjs deleted file mode 100644 index 544a83c..0000000 --- a/.stylelintrc.cjs +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - extends: ['@envsa/stylelint-config'], - // Overrides -}; diff --git a/.vscode/extensions.json b/.vscode/extensions.json index fbe4433..04e2de2 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,13 +1,17 @@ { "recommendations": [ "dbaeumer.vscode-eslint", - "svelte.svelte-vscode", - "streetsidesoftware.code-spell-checker", "esbenp.prettier-vscode", + "github.vscode-github-actions", + "johnsoncodehk.vscode-tsconfig-helper", + "streetsidesoftware.code-spell-checker", "stylelint.vscode-stylelint", + "svelte.svelte-vscode", + "unifiedjs.vscode-mdx", "usernamehw.errorlens", - "johnsoncodehk.vscode-tsconfig-helper", - "github.vscode-github-actions", - "yoavbls.pretty-ts-errors" + "yoavbls.pretty-ts-errors", + "bradlc.vscode-tailwindcss", + "EditorConfig.EditorConfig", + "moetelo.twiggy" ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 4426353..e7f308f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -16,13 +16,22 @@ "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, "eslint.enable": true, - "eslint.workingDirectories": ["./"], // Make sure vscode is getting config from root dir - "eslint.validate": ["javascript", "typescript", "svelte", "markdown", "html", "twig"], + "eslint.workingDirectories": [ + "./" + ], + "eslint.validate": [ + "javascript", + "typescript", + "svelte", + "markdown", + "html", + "twig" + ], "explorer.fileNesting.enabled": true, "explorer.fileNesting.expand": false, "explorer.fileNesting.patterns": { ".env": ".env.*", - "package.json": ".*.cjs, .*.js, .*.json, .*.mjs, .*.toml, .*.ts, .*.yaml, .*.yml, .*ignore, .*rc, *config.cjs, *config.js, *config.json, *config.mjs, *config.toml, *config.ts, *config.yaml, *config.yml, lerna.json, netlify.toml, package-lock.json, , pnpm*, turbo.json, vercel.json, workspace*, wrangler.toml, yarn.lock, yarn*", + "package.json": ".*.cjs, .*.js, .*.json, .*.mjs, .*.toml, .*.ts, .*.yaml, .*.yml, .*ignore, .*rc, *config.cjs, *config.js, *config.json, *config.mjs, *config.toml, *config.ts, *config.yaml, *config.yml, .editorconfig, lerna.json, netlify.toml, package-lock.json, , pnpm*, turbo.json, vercel.json, workspace*, wrangler.toml, yarn.lock, yarn*", "readme.md": "authors*, backers*, changelog*, citation*, code_of_conduct*, contributing*, contributors*, copying*, credits*, governance*, history*, license*, maintainers*, release_notes*, security*, sponsors*" }, "prettier.documentSelectors": [ @@ -34,7 +43,28 @@ ], "prettier.enable": true, "stylelint.enable": true, - "stylelint.validate": ["css", "html", "svelte"], + "stylelint.validate": [ + "scss", + "css", + "html", + "svelte" + ], "typescript.tsdk": "node_modules/typescript/lib", - "eslint.useFlatConfig": true + "eslint.useFlatConfig": true, + "css.validate": false, + "less.validate": false, + "scss.validate": false, + "tailwindCSS.experimental.classRegex": [ + [ + "compDefaults = \\{([^%]*) %\\}", + ":\\s*?[\"'`]([^\"'`]*).*?,?" + ], + [ + "[\\w]+\\.classList\\.(?:add|remove|replace|toggle)\\([\"'`]([^\"'`]*)[\"'`]\\)" + ] + ], + "tailwindCSS.classAttributes": [ + ".*Class.*" + ], + "twiggy.framework": "craft" } diff --git a/eslint.config.js b/eslint.config.js index 60ad046..0fac2a8 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -6,16 +6,4 @@ export default [ { ignores: ['**/bin/cli.js'], }, - { - settings: { - 'import/resolver': { - alias: { - map: [['$root', './']], - }, - }, - }, - rules: { - 'import-x/no-extraneous-dependencies': 'off', - }, - }, ]; diff --git a/package.json b/package.json index 66941b6..a12b712 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "root", - "version": "0.0.1", + "version": "1.0.0-beta.27", "type": "module", "description": "A single dependency and single command to configure and run various code linters and tools.", "repository": { @@ -29,6 +29,7 @@ "eslint-config", "stylelint-config", "prettier-config", + "browserslist-config", "github-actions", "cspell", "mdat", @@ -51,6 +52,7 @@ "release": "pnpm bumpp -r --commit 'release: %s' --tag 'v%s' && pnpm -r publish --otp $(op read 'op://Personal/NPM/one-time password?attribute=otp')" }, "devDependencies": { + "@envsa/browserslist-config": "workspace:*", "@envsa/cspell-config": "workspace:*", "@envsa/eslint-config": "workspace:*", "@envsa/mdat-config": "workspace:*", diff --git a/packages/remark-config/bin/cli.js b/packages/browserslist-config/bin/cli.js similarity index 100% rename from packages/remark-config/bin/cli.js rename to packages/browserslist-config/bin/cli.js diff --git a/packages/browserslist-config/index.cjs b/packages/browserslist-config/index.cjs new file mode 100644 index 0000000..feaedbf --- /dev/null +++ b/packages/browserslist-config/index.cjs @@ -0,0 +1 @@ +module.exports = ['> 0.5% in AU', 'last 3 years', 'iOS >= 7', 'ie >= 11']; diff --git a/packages/browserslist-config/license.txt b/packages/browserslist-config/license.txt new file mode 100644 index 0000000..7320558 --- /dev/null +++ b/packages/browserslist-config/license.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Liam Rella + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/browserslist-config/package.json b/packages/browserslist-config/package.json new file mode 100644 index 0000000..5ff06dc --- /dev/null +++ b/packages/browserslist-config/package.json @@ -0,0 +1,49 @@ +{ + "name": "@envsa/browserslist-config", + "version": "1.0.0-beta.27", + "type": "module", + "description": "Browserslist configuration for @envsa/shared-config.", + "repository": { + "type": "git", + "url": "git@github.com:envsa/shared-config.git", + "directory": "packages/browserslist-config" + }, + "bugs": { + "url": "https://github.com/envsa/shared-config/issues", + "email": "DEW.ICTWebServices@sa.gov.au" + }, + "author": { + "name": "Liam Rella", + "email": "DEW.ICTWebServices@sa.gov.au", + "url": "https://github.com/rellafella" + }, + "license": "MIT", + "engines": { + "node": ">=18.0.0", + "pnpm": ">=8.0.0" + }, + "bin": { + "browserslist-config": "bin/cli.js" + }, + "main": "./index.cjs", + "keywords": [ + "shared-config", + "browserslist-config", + "browserslist", + "cli" + ], + "scripts": { + "build": "../../scripts/build.ts && mdat readme", + "cli": "node ./bin/cli.js", + "prepublishOnly": "pnpm run build" + }, + "dependencies": { + "@pinojs/json-colorizer": "^4.0.0", + "cosmiconfig": "^9.0.0", + "execa": "^8.0.1", + "fs-extra": "^11.2.0" + }, + "publishConfig": { + "access": "public" + } +} diff --git a/packages/browserslist-config/readme.md b/packages/browserslist-config/readme.md new file mode 100644 index 0000000..af5e163 --- /dev/null +++ b/packages/browserslist-config/readme.md @@ -0,0 +1,80 @@ + + + + +# @envsa/browserslist-config + + + + + +[![NPM Package @envsa/browserslist-config](https://img.shields.io/npm/v/@envsa/browserslist-config.svg)](https://npmjs.com/package/@envsa/browserslist-config) +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) + + + + + +**Browserslist configuration for @envsa/shared-config.** + + + +## Overview + +It's a shared [Browserslist](https://browsersl.ist) config. + +**See [`@envsa/shared-config`](https://www.npmjs.com/package/@envsa/shared-config) for the recommended single-package approach.** + +## Setup + +To use just this browserslist config in isolation: + +1. Install the `.npmrc` in your project root. This is required for correct PNPM behavior: + + ```sh + pnpm dlx @envsa/repo-config --init + ``` + +2. Add the package: + + ```sh + pnpm add -D @envsa/browserslist-config + ``` + +## Usage + +Integrate with your `package.json` scripts as you see fit, for example: + +```json +"browserslist": ["extends @envsa/browserslist-config"] +``` + +or use the cli + +### CLI + + + +```txt + + Browserslist configuration for @envsa/shared-config. + + Usage + $ browserslist-config --init + + Options + --init, -i Add browserslist key to `package.json`. + --help, -h Print this help info. + --version, -v Print the package version. + +``` + + + + + +## License + +[MIT](license.txt) © Liam Rella + + diff --git a/packages/browserslist-config/src/cli.ts b/packages/browserslist-config/src/cli.ts new file mode 100644 index 0000000..5820ea7 --- /dev/null +++ b/packages/browserslist-config/src/cli.ts @@ -0,0 +1,9 @@ +#!/usr/bin/env node +import { buildCommands } from '$root/src/command-builder.ts'; + +await buildCommands('browserslist-config', '[Browserslist]', 'white', { + init: { + command: 'pnpm', + defaultArguments: ['pkg', 'set', 'browserslist[0]=extends @envsa/browserslist-config'], + }, +}); diff --git a/packages/cspell-config/cspell.config.json b/packages/cspell-config/cspell.config.json index 325d485..130065c 100644 --- a/packages/cspell-config/cspell.config.json +++ b/packages/cspell-config/cspell.config.json @@ -2,6 +2,7 @@ "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json", "enabled": true, "enableGlobDot": false, + "enableFiletypes": ["twig", "md", "svelte"], "dictionaryDefinitions": [ { "name": "envsa-acronyms", @@ -17,16 +18,6 @@ "name": "envsa-misc", "path": "./dictionaries/envsa-misc.txt", "addWords": true - }, - { - "name": "envsa-names", - "path": "./dictionaries/envsa-names.txt", - "addWords": true - }, - { - "name": "envsa-tech", - "path": "./dictionaries/envsa-tech.txt", - "addWords": true } ], "dictionaries": [ @@ -48,6 +39,10 @@ "ignoreRegExpList": [ "/^```(?:.|\\s)+?^```/mig" // Code fences ] + }, + { + "languageId": "twig", + "ignoreRegExpList": ["/\\{\\%\\sset\\s\\w+Id\\s=\\s\"[^\"]+\"\\s\\%\\}/"] } ], "globRoot": "/", @@ -83,8 +78,8 @@ "patches/", "pnpm-lock.yaml" ], - "ignoreRegExpList": ["tp-.+", "tweakpane-plugin-.+", "v2_c_\\w{21}"], - "language": "en,en-AU", + "ignoreRegExpList": ["tp-.+", "tweakpane-plugin-.+", "v2_c_\\w{21}", "\\\\\\\"id"], + "language": "en,en-GB,en-AU", "useGitignore": true, "version": "0.2" } diff --git a/packages/cspell-config/dictionaries/envsa-acronyms.txt b/packages/cspell-config/dictionaries/envsa-acronyms.txt index 8985a39..c7edbbb 100644 --- a/packages/cspell-config/dictionaries/envsa-acronyms.txt +++ b/packages/cspell-config/dictionaries/envsa-acronyms.txt @@ -1,4 +1,10 @@ +BGSA DEW +FOUC +GOSA +LBSA NPSA NPWS NPWSSA +SAAL +SAMDB diff --git a/packages/cspell-config/dictionaries/envsa-misc.txt b/packages/cspell-config/dictionaries/envsa-misc.txt index e87495c..97761fb 100644 --- a/packages/cspell-config/dictionaries/envsa-misc.txt +++ b/packages/cspell-config/dictionaries/envsa-misc.txt @@ -1,28 +1,253 @@ +activeusers adelaidegaol adelaidenationalparkcity -Autophagic +alinytjara +alnum +alpinejs +assetbundles +assetusage +autocommit +autoload +autoloader +autophagic +autoplay +aṉangu +bgcolor bgset +blackbaud +blanchetown +blitzhints +blockless +bodyclass +bookeasy botanicgardens +bullrich +buttonbox camelcase +cantarell carbonneutraladelaide +cellspacing +chihuly +chihulybg +classbanner clelandwildlifepark +codemonauts +consolas contentmigrations +cooldown +cpresources +craftcms +craftpulse +craftquest +creativecommons +creds +darkmode +ddev +deepmerge defaultstatus +dewnrger dogandcatboard +drawnoxima +eflora +emptycoalesce +endapply +endcache +endcss +endifchildren +endjs +endmacro +endminify +endnav +endset +endswitch +endverbatim envsa +erusev +evenodd +execa +extralight +factsheet +factsheets +favicons +figcaption +fira +fleurieu +flipboxfactory +fontawesome +formie +freeforms +fullscreen +fullwidth +getenv +glightbox +globalmeta +goldinteractive +goodliving +grecaptcha greenadelaide +groundcovers +harron +haspopup +headlinks +hellip +hideadmin +ifchildren +iframe +imageoptimize +imageoptimizesharp +imagetransforms +imagick +inlinejs +instagramfeed +itemprop +jalendport +kbrashears +keydown +kint kitschpatrol koalalife +labelledby +landcare lazyload +lazyloaded +lazyloading +lazysizes +lgcursor +linecap +linejoin +linkfield +linkfields +linkfields +linklist +mapbox marineparks -Mergeable +matrixcontent +matrixmate +mdat +mdatrc +menlo +mergeable +merriweather metabundles +mika +mmikkel +modestbranding +mousedown +mozallowfullscreen +mstile +murraylands +mysqldump +neue +nomster nonconstructor +noopener +noreferrer +nounderline +novalidate +nunito +nystudio +onclick +ontouchstart +openforms +ostark outfile +pagebreak +parsedown +pcss +percipioglobal +pgsql +phpdotenv +picturefill +pinojs +Plantify +playsinline +polyline +poweroff +preheader preid +premailer productname +putyourlightson +quckstart +readmore +redactoranchors +relatedsub +rella +rellafella +remarklint +renmark +renxt +retcon +retour +revegetation +reverserelations +revindex +rezdy +richvariables +riverland +rlike +robuust +rsquo +rsynced +sagovau scpt +sebastianlenz +segoe +seomatic +servertype +showinfo +simplemap +sitemodule +sitewide +slugified +snapform +socialwall +softprops +solspace +southaustralia +spicyweb startdate stateflora +striptags +studioespresso +stylelintrc +stylesheet +sublicensable +tablemaker +tablespaces +tagembed +tailwindcss +templatecachecriteria +templatecacheelements +templatecachequeries +templatecaches tldr +topshelfcraft +touchevents +transportadapters +trivago +tseslint +tsup +twigextensions +typogrify +unshift +userway +utakka +vaersaagod +vardump +verbb +videoseries +viewbox +vlucas +waivable +waterconnect +waymouth +wbrowar +webkitallowfullscreen webroot +wiluṟara +wittunga +wolispace +xlink +yiisoft +yorke diff --git a/packages/cspell-config/dictionaries/envsa-names.txt b/packages/cspell-config/dictionaries/envsa-names.txt deleted file mode 100644 index 0c25009..0000000 --- a/packages/cspell-config/dictionaries/envsa-names.txt +++ /dev/null @@ -1,4 +0,0 @@ -Mika -Rella -rellafella -wolispace diff --git a/packages/cspell-config/dictionaries/envsa-tech.txt b/packages/cspell-config/dictionaries/envsa-tech.txt deleted file mode 100644 index 71e6ed9..0000000 --- a/packages/cspell-config/dictionaries/envsa-tech.txt +++ /dev/null @@ -1,25 +0,0 @@ -bullrich -ddev -deepmerge -dewnrger -drawnoxima -execa -formie -glightbox -grecaptcha -kbrashears -lazysizes -mdat -mdatrc -openforms -pcss -pinojs -redactoranchors -seomatic -softprops -solspace -stylelintrc -tailwindcss -trivago -tseslint -tsup diff --git a/packages/cspell-config/package.json b/packages/cspell-config/package.json index 55dc818..363de8b 100644 --- a/packages/cspell-config/package.json +++ b/packages/cspell-config/package.json @@ -1,6 +1,6 @@ { "name": "@envsa/cspell-config", - "version": "1.0.0", + "version": "1.0.0-beta.27", "type": "module", "description": "CSpell configuration for @envsa/shared-config.", "repository": { diff --git a/packages/eslint-config/eslint.config.js b/packages/eslint-config/eslint.config.js index 9a468d5..88aa38c 100644 --- a/packages/eslint-config/eslint.config.js +++ b/packages/eslint-config/eslint.config.js @@ -1,7 +1,6 @@ import pluginCspell from '@cspell/eslint-plugin'; import { includeIgnoreFile } from '@eslint/compat'; import eslint from '@eslint/js'; -import pluginImportX from 'eslint-plugin-import-x'; import pluginPrettierRecommended from 'eslint-plugin-prettier/recommended'; import pluginUnicorn from 'eslint-plugin-unicorn'; import globals from 'globals'; @@ -10,18 +9,17 @@ import path from 'node:path'; import typescriptEslint from 'typescript-eslint'; const gitignorePath = path.join(process.cwd(), '.gitignore'); +const baseIgnore = fs.existsSync(gitignorePath) ? includeIgnoreFile(gitignorePath)?.ignores : []; export default typescriptEslint.config( // Use project .gitignore file for a basis of ignored files { - ignores: fs.existsSync(gitignorePath) ? includeIgnoreFile(gitignorePath)?.ignores : [], + ignores: [...baseIgnore, '**/cpresources/**'], }, // 1st party eslint config eslint.configs.recommended, // Unicorn config pluginUnicorn.configs['flat/recommended'], - // ImportX config - pluginImportX.flatConfigs.recommended, // Enable cspell plugin { name: 'CSpell config', @@ -39,7 +37,6 @@ export default typescriptEslint.config( extends: [ ...typescriptEslint.configs.recommendedTypeChecked, ...typescriptEslint.configs.stylisticTypeChecked, - pluginImportX.flatConfigs.typescript, ], languageOptions: { parserOptions: { @@ -62,44 +59,7 @@ export default typescriptEslint.config( ...globals.node, }, }, - settings: { - 'import-x/resolver': { - node: { - extensions: ['.js', '.mjs', '.cjs', '.ts'], - }, - typescript: { - alwaysTryTypes: true, - }, - }, - }, rules: { - // ImportX rule overrides - 'import-x/exports-last': 'error', - 'import-x/first': 'error', - 'import-x/extensions': ['error', 'ignorePackages'], - 'import-x/newline-after-import': 'error', - 'import-x/no-extraneous-dependencies': [ - 'error', - { - devDependencies: [ - './*.{mjs,cjs,js,ts}', // Any root project files - '**/dev/**/', // Any files in a 'dev/' dir - '**/dev.{mjs,cjs,js,ts}', // Any file named dev - '**/*.{test}.{mjs,cjs,js,ts}', // Any test files - '**/{test,tests,__tests__}/**/', // Any files in common test dirs - ], - }, - ], - 'import-x/no-absolute-path': 'error', - 'import-x/no-amd': 'error', - 'import-x/no-dynamic-require': 'error', - 'import-x/no-import-module-exports': 'error', - 'import-x/no-mutable-exports': 'error', - 'import-x/no-named-default': 'error', - 'import-x/no-relative-packages': 'error', - 'import-x/no-self-import': 'error', - 'import-x/no-useless-path-segments': 'error', - 'import-x/no-webpack-loader-syntax': 'error', // Unicorn rule overrides 'unicorn/no-array-reduce': 'off', 'unicorn/no-object-as-default-parameter': 'off', diff --git a/packages/eslint-config/init/tsconfig.eslint.json b/packages/eslint-config/init/tsconfig.eslint.json index 12ae9b0..7356c33 100644 --- a/packages/eslint-config/init/tsconfig.eslint.json +++ b/packages/eslint-config/init/tsconfig.eslint.json @@ -1,7 +1,6 @@ { "compilerOptions": { - "noEmit": true, - "allowJs": true + "noEmit": true }, "extends": "./tsconfig.json", diff --git a/packages/eslint-config/init/tsconfig.json b/packages/eslint-config/init/tsconfig.json index 88e17bb..1c69ca0 100644 --- a/packages/eslint-config/init/tsconfig.json +++ b/packages/eslint-config/init/tsconfig.json @@ -7,6 +7,7 @@ "skipLibCheck": true, "noEmit": true, "noErrorTruncation": true, + "allowJs": true, /* Bundler mode */ "moduleResolution": "bundler", diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index 52f598e..85f7229 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@envsa/eslint-config", - "version": "1.0.0", + "version": "1.0.0-beta.27", "type": "module", "description": "ESLint configuration for @envsa/shared-config.", "repository": { @@ -53,7 +53,6 @@ "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-alias": "^1.1.2", "eslint-import-resolver-typescript": "^3.6.3", - "eslint-plugin-import-x": "^4.2.1", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-svelte": "^2.43.0", "eslint-plugin-unicorn": "^55.0.0", diff --git a/packages/eslint-config/src/cli.ts b/packages/eslint-config/src/cli.ts index 83833f4..8979320 100755 --- a/packages/eslint-config/src/cli.ts +++ b/packages/eslint-config/src/cli.ts @@ -1,5 +1,5 @@ #!/usr/bin/env node -// eslint-disable-next-line import-x/no-relative-packages + import { buildCommands, executeJsonOutput } from '$root/src/command-builder.ts'; await buildCommands('eslint-config', `[ESLint]`, 'magenta', { diff --git a/packages/mdat-config/package.json b/packages/mdat-config/package.json index 26da9f5..5cc1b47 100644 --- a/packages/mdat-config/package.json +++ b/packages/mdat-config/package.json @@ -1,6 +1,6 @@ { "name": "@envsa/mdat-config", - "version": "1.0.0", + "version": "1.0.0-beta.27", "type": "module", "description": "MDAT configuration for @envsa/shared-config.", "repository": { diff --git a/packages/mdat-config/src/cli.ts b/packages/mdat-config/src/cli.ts index 82702b4..1184be3 100644 --- a/packages/mdat-config/src/cli.ts +++ b/packages/mdat-config/src/cli.ts @@ -1,5 +1,4 @@ #!/usr/bin/env node -// eslint-disable-next-line import-x/extensions, import-x/no-relative-packages import { buildCommands } from '../../../src/command-builder.js'; await buildCommands('mdat-config', '[Mdat Config]', 'green', { diff --git a/packages/prettier-config/init/.prettierignore b/packages/prettier-config/init/.prettierignore index cf355c0..2cb745f 100644 --- a/packages/prettier-config/init/.prettierignore +++ b/packages/prettier-config/init/.prettierignore @@ -2,23 +2,56 @@ # Does not inherit from .gitignore # @envsa/repo-config boilerplate -.DS_Store -.ddev/ +# ===== +# Craft +# ===== .env .env.* !.env.example -node_modules/ vendor/ -build/ -coverage/ -dist/ +/web/assets/* + +# ====== +# Builds +# ====== +node_modules/ **/*.min.js +dist/ +build/ + +# ===== +# Tests +# ===== +/test-results/ +/playwright-report/ +/playwright/.cache/ + +# ==== +# Misc +# ==== +.cache +.DS_Store +_junk/ tmp/ temp/ -_junk/ +.project +.settings +*.esproj +*.sublime-workspace +*.sublime-project +*.tmproj +*.tmproject +config.codekit3 +prepros-6.config # @envsa/prettier-config boilerplate pnpm-lock.yaml package-lock.json +composer.lock +config/project/**/* +storage/config-deltas/**/* +storage/**/* +web/cpresources/**/* +.ddev/ # Customizations diff --git a/packages/prettier-config/package.json b/packages/prettier-config/package.json index 1245147..c39461c 100644 --- a/packages/prettier-config/package.json +++ b/packages/prettier-config/package.json @@ -1,6 +1,6 @@ { "name": "@envsa/prettier-config", - "version": "1.0.0", + "version": "1.0.0-beta.27", "type": "module", "description": "Prettier configuration for @envsa/shared-config.", "repository": { diff --git a/packages/repo-config/init/.deployignore b/packages/repo-config/init/.deployignore new file mode 100644 index 0000000..1c5b828 --- /dev/null +++ b/packages/repo-config/init/.deployignore @@ -0,0 +1,36 @@ +# ================ +# specific ignores +# ================ +.git/ +.ddev/ +.github/ +.vscode/ +node_modules/ +scripts/ +src/ +storage/ +tools/ +.env.example +pnpm-* +pnpm-* +package.json +README.md +readme.md +CHANGELOG.md +changelog.md +.cspell.json +composer.* + +# =============== +# ignore patterns +# =============== +# any config files that don't have an extension (.editorconfig) +*config +# any config files that have an extension (eslint.config.js, tsconfig.json, vite.config.ts) +*config.* +# any config files using rc format (.npmrc) +.*rc +# any config files using rc format with an extension (.mdatrc.ts) +.*rc.* +# any ignore files (.deployignore, .gitignore, .prettierignore) +.*ignore diff --git a/packages/repo-config/init/.editorconfig b/packages/repo-config/init/.editorconfig new file mode 100644 index 0000000..b864323 --- /dev/null +++ b/packages/repo-config/init/.editorconfig @@ -0,0 +1,16 @@ +# editorconfig.org +root = true + +[*] +charset = utf-8 +indent_size = 2 +indent_style = space +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.{php,yaml,yml}] +indent_size = 4 + +[*.{diff,md}] +trim_trailing_whitespace = false diff --git a/packages/repo-config/init/.gitignore b/packages/repo-config/init/.gitignore index e224d55..5464a6e 100644 --- a/packages/repo-config/init/.gitignore +++ b/packages/repo-config/init/.gitignore @@ -2,19 +2,46 @@ # Also used by CSpell and Stylelint # @envsa/repo-config boilerplate -.DS_Store -.ddev/ +# ===== +# Craft +# ===== .env .env.* !.env.example -node_modules/ vendor/ -build/ -coverage/ -dist/ +/web/assets/* + +# ====== +# Builds +# ====== +node_modules/ **/*.min.js +dist/ +build/ + +# ===== +# Tests +# ===== +/test-results/ +/playwright-report/ +/playwright/.cache/ + +# ==== +# Misc +# ==== +.cache +.DS_Store +_junk/ tmp/ temp/ -_junk/ +.project +.settings +*.esproj +*.sublime-workspace +*.sublime-project +*.tmproj +*.tmproject +config.codekit3 +prepros-6.config # Customizations diff --git a/packages/repo-config/init/.npmrc b/packages/repo-config/init/.npmrc index 373ef61..abbdc72 100644 --- a/packages/repo-config/init/.npmrc +++ b/packages/repo-config/init/.npmrc @@ -1,6 +1,7 @@ publish-branch=main # Required for using @envsa/shared-config with pnpm +public-hoist-pattern[]=@envsa/browserslist-config public-hoist-pattern[]=@envsa/repo-config public-hoist-pattern[]=*cspell* public-hoist-pattern[]=*eslint* diff --git a/packages/repo-config/init/.vscode/extensions.json b/packages/repo-config/init/.vscode/extensions.json index bdef820..577453c 100644 --- a/packages/repo-config/init/.vscode/extensions.json +++ b/packages/repo-config/init/.vscode/extensions.json @@ -1,3 +1,8 @@ { - "recommendations": ["svelte.svelte-vscode"] + "recommendations": [ + "svelte.svelte-vscode", + "bradlc.vscode-tailwindcss", + "EditorConfig.EditorConfig", + "moetelo.twiggy" + ] } diff --git a/packages/repo-config/init/.vscode/settings.json b/packages/repo-config/init/.vscode/settings.json index 5c98c49..1199c87 100644 --- a/packages/repo-config/init/.vscode/settings.json +++ b/packages/repo-config/init/.vscode/settings.json @@ -3,7 +3,13 @@ "explorer.fileNesting.expand": false, "explorer.fileNesting.patterns": { ".env": ".env.*", - "package.json": ".*.cjs, .*.js, .*.json, .*.mjs, .*.toml, .*.ts, .*.yaml, .*.yml, .*ignore, .*rc, *config.cjs, *config.js, *config.json, *config.mjs, *config.toml, *config.ts, *config.yaml, *config.yml, lerna.json, netlify.toml, package-lock.json, , pnpm*, turbo.json, vercel.json, workspace*, wrangler.toml, yarn.lock, yarn*", + "package.json": ".*.cjs, .*.js, .*.json, .*.mjs, .*.toml, .*.ts, .*.yaml, .*.yml, .*ignore, .*rc, *config.cjs, *config.js, *config.json, *config.mjs, *config.toml, *config.ts, *config.yaml, *config.yml, .editorconfig, lerna.json, netlify.toml, package-lock.json, , pnpm*, turbo.json, vercel.json, workspace*, wrangler.toml, yarn.lock, yarn*", "readme.md": "authors*, backers*, changelog*, citation*, code_of_conduct*, contributing*, contributors*, copying*, credits*, governance*, history*, license*, maintainers*, release_notes*, security*, sponsors*" - } + }, + "tailwindCSS.experimental.classRegex": [ + ["compDefaults = \\{([^%]*) %\\}", ":\\s*?[\"'`]([^\"'`]*).*?,?"], + ["[\\w]+\\.classList\\.(?:add|remove|replace|toggle)\\([\"'`]([^\"'`]*)[\"'`]\\)"] + ], + "tailwindCSS.classAttributes": [".*Class.*"], + "twiggy.framework": "craft" } diff --git a/packages/repo-config/package.json b/packages/repo-config/package.json index b948d9d..aa70629 100644 --- a/packages/repo-config/package.json +++ b/packages/repo-config/package.json @@ -1,6 +1,6 @@ { "name": "@envsa/repo-config", - "version": "1.0.0", + "version": "1.0.0-beta.27", "type": "module", "description": "Repository configuration and GitHub workflows for @envsa/shared-config.", "repository": { diff --git a/packages/repo-config/readme.md b/packages/repo-config/readme.md index 23b8135..81f049b 100644 --- a/packages/repo-config/readme.md +++ b/packages/repo-config/readme.md @@ -27,6 +27,7 @@ This includes the following: - [`.npmrc`](https://pnpm.io/npmrc) with hoisting patterns for `shared-config` tool access - `.gitignore` with typical patterns +- `.editorconfig` for basic code style settings - `.vscode` extension recommendations (additional settings and recommendations come from other `shared-config` packages) - `.github` folder with workflows: - `github-release.yml` Automates turning turning vX.X.X tags on main into GitHub releases with changelogs diff --git a/packages/repo-config/src/cli.ts b/packages/repo-config/src/cli.ts index 3d13771..2e68ae4 100644 --- a/packages/repo-config/src/cli.ts +++ b/packages/repo-config/src/cli.ts @@ -1,6 +1,6 @@ #!/usr/bin/env node import { buildCommands } from '$root/src/command-builder.ts'; -import * as fse from 'fs-extra'; +import fse from 'fs-extra'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; import { packageUp } from 'package-up'; diff --git a/packages/shared-config/package.json b/packages/shared-config/package.json index 3ff57ad..c15b113 100644 --- a/packages/shared-config/package.json +++ b/packages/shared-config/package.json @@ -1,6 +1,6 @@ { "name": "@envsa/shared-config", - "version": "1.0.0", + "version": "1.0.0-beta.27", "type": "module", "description": "A collection of shared configurations for various linters and formatting tools. All managed as a single dependency, and invoked via a single command.", "repository": { @@ -33,6 +33,7 @@ "eslint-config", "stylelint-config", "prettier-config", + "browserslist-config", "github-actions", "cspell", "mdat", @@ -45,6 +46,7 @@ "prepublishOnly": "pnpm run build" }, "dependencies": { + "@envsa/browserslist-config": "workspace:*", "@envsa/cspell-config": "workspace:*", "@envsa/eslint-config": "workspace:*", "@envsa/mdat-config": "workspace:*", diff --git a/packages/shared-config/readme.md b/packages/shared-config/readme.md index c452349..890a81d 100644 --- a/packages/shared-config/readme.md +++ b/packages/shared-config/readme.md @@ -149,8 +149,8 @@ shared-config [ ...] | Option | Argument | Description | | ------------------------ | -------- | ---------------------------------------------------------------- | -| `--check`
`-c` | | Check for and report issues. Same as `shared-config`. | | `--init`
`-i` | | Initialize by copying starter config files to your project root. | +| `--check`
`-c` | | Check for and report issues. Same as `shared-config`. | | `--print-config`
`-p` | `` | Print the effective configuration at a certain path. | | `--fix`
`-f` | | Fix all auto-fixable issues, and report the un-fixable. | | `--help`
`-h` | | Print this help info. | diff --git a/packages/shared-config/scripts/capability-generator.ts b/packages/shared-config/scripts/capability-generator.ts index 92441da..0214ebc 100755 --- a/packages/shared-config/scripts/capability-generator.ts +++ b/packages/shared-config/scripts/capability-generator.ts @@ -1,8 +1,6 @@ #!/usr/bin/env tsx -/* eslint-disable import-x/no-named-as-default-member */ import camelCase from 'camelcase'; import { execa } from 'execa'; -// eslint-disable-next-line import-x/default import fse from 'fs-extra'; import { globby } from 'globby'; diff --git a/packages/stylelint-config/init/.vscode/settings.json b/packages/stylelint-config/init/.vscode/settings.json index f160be7..e15a814 100644 --- a/packages/stylelint-config/init/.vscode/settings.json +++ b/packages/stylelint-config/init/.vscode/settings.json @@ -1,7 +1,10 @@ { "stylelint.enable": true, - "stylelint.validate": ["css", "html", "svelte"], + "stylelint.validate": ["scss", "css", "html", "svelte"], "editor.codeActionsOnSave": { "source.fixAll": "explicit" - } + }, + "css.validate": false, + "less.validate": false, + "scss.validate": false } diff --git a/packages/stylelint-config/package.json b/packages/stylelint-config/package.json index 6d29f85..df7f6a2 100644 --- a/packages/stylelint-config/package.json +++ b/packages/stylelint-config/package.json @@ -1,6 +1,6 @@ { "name": "@envsa/stylelint-config", - "version": "1.0.0", + "version": "1.0.0-beta.27", "type": "module", "description": "Stylelint configuration for @envsa/shared-config.", "repository": { @@ -25,7 +25,7 @@ "bin": { "stylelint-config": "bin/cli.js" }, - "main": "stylelint.config.cjs", + "main": "stylelint.config.js", "files": [ "bin/*", "init/*" diff --git a/packages/stylelint-config/stylelint.config.js b/packages/stylelint-config/stylelint.config.js index 27452d7..860f3c7 100644 --- a/packages/stylelint-config/stylelint.config.js +++ b/packages/stylelint-config/stylelint.config.js @@ -9,8 +9,7 @@ const propertiesOrder = propertyGroups.map((properties) => ({ /** @type {import("stylelint").Config} */ export default { - extends: ['stylelint-config-standard-scss'], - ignoreFiles: ['./vendor/**/*'], + extends: ['stylelint-config-standard-scss', 'stylelint-config-clean-order'], rules: { 'at-rule-empty-line-before': [ 'always', @@ -43,21 +42,19 @@ export default { }, ], 'value-keyword-case': ['lower', { camelCaseSvgKeywords: true }], + 'scss/at-rule-no-unknown': [ + true, + { + ignoreAtRules: [ + /* Tailwind */ + 'tailwind', + 'apply', + 'variants', + 'responsive', + 'screen', + ], + }, + ], + 'scss/load-partial-extension': 'never', }, - 'scss/at-rule-no-unknown': [ - true, - { - ignoreAtRules: [ - /* Tailwind */ - 'tailwind', - 'apply', - 'layer', - 'config', - 'variants', - 'responsive', - 'screen', - ], - }, - ], - 'scss/load-partial-extension': 'never', }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 355a27e..4de1a02 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: devDependencies: + '@envsa/browserslist-config': + specifier: workspace:* + version: link:packages/browserslist-config '@envsa/cspell-config': specifier: workspace:* version: link:packages/cspell-config @@ -64,7 +67,7 @@ importers: version: 4.0.0 mdat: specifier: ^0.7.4 - version: 0.7.4(typescript@5.5.4) + version: 0.7.5(typescript@5.5.4) meow: specifier: ^13.2.0 version: 13.2.0 @@ -73,11 +76,26 @@ importers: version: 5.0.0 tsx: specifier: ^4.19.0 - version: 4.19.0 + version: 4.19.1 typescript: specifier: ~5.5.4 version: 5.5.4 + packages/browserslist-config: + dependencies: + '@pinojs/json-colorizer': + specifier: ^4.0.0 + version: 4.0.0 + cosmiconfig: + specifier: ^9.0.0 + version: 9.0.0(typescript@5.5.4) + execa: + specifier: ^8.0.1 + version: 8.0.1 + fs-extra: + specifier: ^11.2.0 + version: 11.2.0 + packages/cspell-config: dependencies: '@pinojs/json-colorizer': @@ -100,7 +118,7 @@ importers: dependencies: '@cspell/eslint-plugin': specifier: ^8.14.2 - version: 8.14.2(eslint@8.57.0) + version: 8.14.2(eslint@8.57.1) '@eslint/compat': specifier: ^1.1.1 version: 1.1.1 @@ -115,28 +133,25 @@ importers: version: 9.0.0(typescript@5.5.4) eslint: specifier: ^8.0.0 - version: 8.57.0 + version: 8.57.1 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.57.0) + version: 9.1.0(eslint@8.57.1) eslint-import-resolver-alias: specifier: ^1.1.2 - version: 1.1.2(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)) + version: 1.1.2(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)) eslint-import-resolver-typescript: specifier: ^3.6.3 - version: 3.6.3(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import-x@4.2.1(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0) - eslint-plugin-import-x: - specifier: ^4.2.1 - version: 4.2.1(eslint@8.57.0)(typescript@5.5.4) + version: 3.6.3(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.1) eslint-plugin-prettier: specifier: ^5.2.1 - version: 5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.3) + version: 5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.3.3) eslint-plugin-svelte: specifier: ^2.43.0 - version: 2.43.0(eslint@8.57.0)(svelte@4.2.19) + version: 2.44.0(eslint@8.57.1)(svelte@4.2.19) eslint-plugin-unicorn: specifier: ^55.0.0 - version: 55.0.0(eslint@8.57.0) + version: 55.0.0(eslint@8.57.1) execa: specifier: ^8.0.1 version: 8.0.1 @@ -148,7 +163,7 @@ importers: version: 15.9.0 typescript-eslint: specifier: ^8.4.0 - version: 8.5.0(eslint@8.57.0)(typescript@5.5.4) + version: 8.6.0(eslint@8.57.1)(typescript@5.5.4) packages/mdat-config: dependencies: @@ -166,7 +181,7 @@ importers: version: 11.2.0 mdat: specifier: ^0.7.1 - version: 0.7.4(typescript@5.5.4) + version: 0.7.5(typescript@5.5.4) packages/prettier-config: dependencies: @@ -221,6 +236,9 @@ importers: packages/shared-config: dependencies: + '@envsa/browserslist-config': + specifier: workspace:* + version: link:../browserslist-config '@envsa/cspell-config': specifier: workspace:* version: link:../cspell-config @@ -287,7 +305,7 @@ importers: version: 36.0.1(stylelint@16.9.0(typescript@5.5.4)) stylelint-config-standard-scss: specifier: ^13.1.0 - version: 13.1.0(postcss@8.4.45)(stylelint@16.9.0(typescript@5.5.4)) + version: 13.1.0(postcss@8.4.47)(stylelint@16.9.0(typescript@5.5.4)) packages: @@ -696,8 +714,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.11.0': - resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + '@eslint-community/regexpp@4.11.1': + resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/compat@1.1.1': @@ -708,19 +726,19 @@ packages: resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} '@eslint/js@9.10.0': resolution: {integrity: sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@fontsource/inter@5.0.21': - resolution: {integrity: sha512-Y4Ph0bYD5IfW8r9PSeiNjLvM6D/Bh5+YT9jOKiBqW3YS+AEBlmy8v74TpTNeZAvL3zHmikHCnzaKw7ob8LZiKQ==} + '@fontsource/inter@5.1.0': + resolution: {integrity: sha512-zKZR3kf1G0noIes1frLfOHP5EXVVm0M7sV/l9f/AaYf+M/DId35FO4LkigWjqWYjTJZGgplhdv4cB+ssvCqr5A==} - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} deprecated: Use @eslint/config-array instead @@ -754,8 +772,8 @@ packages: resolution: {integrity: sha512-f5DRIOZf7wxogefH03RjMPMdBF7ADTWUMoOs9kaJo06EfwF+aFhMZMDZxHg/Xe12hptN9xoZjGso2fdjapBRIA==} engines: {node: '>=10'} - '@kitschpatrol/tldraw-cli@4.6.14': - resolution: {integrity: sha512-ln3O8w/0ePXMZO9c2/fdepDbiYf3ZPdk8e+F9l4V77NA8tIH9z5IjEeRtwPrZwO8iE+RvsjOyTAsGvhB5GxbCQ==} + '@kitschpatrol/tldraw-cli@4.6.16': + resolution: {integrity: sha512-BtOpcuwhK/iek4MhiCsRXrLTcqdvU79kzZYVXzAlOo8Ez7Bhr/+dDaMl8tNzLMumZI9weWeVU5w+RVRIxR/sNw==} engines: {node: '>=18.0.0', pnpm: '>=9.0.0'} hasBin: true @@ -853,8 +871,8 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.5.0': - resolution: {integrity: sha512-lHS5hvz33iUFQKuPFGheAB84LwcJ60G8vKnEhnfcK1l8kGVLro2SFYW6K0/tj8FUhRJ0VHyg1oAfg50QGbPPHw==} + '@typescript-eslint/eslint-plugin@8.6.0': + resolution: {integrity: sha512-UOaz/wFowmoh2G6Mr9gw60B1mm0MzUtm6Ic8G2yM1Le6gyj5Loi/N+O5mocugRGY+8OeeKmkMmbxNqUCq3B4Sg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -864,8 +882,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.5.0': - resolution: {integrity: sha512-gF77eNv0Xz2UJg/NbpWJ0kqAm35UMsvZf1GHj8D9MRFTj/V3tAciIWXfmPLsAAF/vUlpWPvUDyH1jjsr0cMVWw==} + '@typescript-eslint/parser@8.6.0': + resolution: {integrity: sha512-eQcbCuA2Vmw45iGfcyG4y6rS7BhWfz9MQuk409WD47qMM+bKCGQWXxvoOs1DUp+T7UBMTtRTVT+kXr7Sh4O9Ow==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -874,12 +892,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@8.5.0': - resolution: {integrity: sha512-06JOQ9Qgj33yvBEx6tpC8ecP9o860rsR22hWMEd12WcTRrfaFgHr2RB/CA/B+7BMhHkXT4chg2MyboGdFGawYg==} + '@typescript-eslint/scope-manager@8.6.0': + resolution: {integrity: sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.5.0': - resolution: {integrity: sha512-N1K8Ix+lUM+cIDhL2uekVn/ZD7TZW+9/rwz8DclQpcQ9rk4sIL5CAlBC0CugWKREmDjBzI/kQqU4wkg46jWLYA==} + '@typescript-eslint/type-utils@8.6.0': + resolution: {integrity: sha512-dtePl4gsuenXVwC7dVNlb4mGDcKjDT/Ropsk4za/ouMBPplCLyznIaR+W65mvCvsyS97dymoBRrioEXI7k0XIg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -887,12 +905,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@8.5.0': - resolution: {integrity: sha512-qjkormnQS5wF9pjSi6q60bKUHH44j2APxfh9TQRXK8wbYVeDYYdYJGIROL87LGZZ2gz3Rbmjc736qyL8deVtdw==} + '@typescript-eslint/types@8.6.0': + resolution: {integrity: sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.5.0': - resolution: {integrity: sha512-vEG2Sf9P8BPQ+d0pxdfndw3xIXaoSjliG0/Ejk7UggByZPKXmJmw3GW5jV2gHNQNawBUyfahoSiCFVov0Ruf7Q==} + '@typescript-eslint/typescript-estree@8.6.0': + resolution: {integrity: sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -900,14 +918,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.5.0': - resolution: {integrity: sha512-6yyGYVL0e+VzGYp60wvkBHiqDWOpT63pdMV2CVG4LVDd5uR6q1qQN/7LafBZtAtNIn/mqXjsSeS5ggv/P0iECw==} + '@typescript-eslint/utils@8.6.0': + resolution: {integrity: sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@8.5.0': - resolution: {integrity: sha512-yTPqMnbAZJNy2Xq2XU8AdtOW9tJIr+UQb64aXB9f3B1498Zx9JorVgFJcZpEc9UBuCCrdzKID2RGAMkYcDtZOw==} + '@typescript-eslint/visitor-keys@8.6.0': + resolution: {integrity: sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.0': @@ -963,8 +981,9 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + aria-query@5.3.1: + resolution: {integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==} + engines: {node: '>= 0.4'} array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} @@ -1028,11 +1047,11 @@ packages: bare-events@2.4.2: resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} - bare-fs@2.3.4: - resolution: {integrity: sha512-7YyxitZEq0ey5loOF5gdo1fZQFF7290GziT+VbAJ+JbYTJYaPZwuEz2r/Nq23sm4fjyTgUf2uJI2gkT3xAuSYA==} + bare-fs@2.3.5: + resolution: {integrity: sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==} - bare-os@2.4.3: - resolution: {integrity: sha512-FjkNiU3AwTQNQkcxFOmDcCfoN1LjjtU+ofGJh5DymZZLTqdw2i/CzV7G0h3snvh6G8jrWtdmNSgZPH4L2VOAsQ==} + bare-os@2.4.4: + resolution: {integrity: sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==} bare-path@2.1.3: resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} @@ -1371,10 +1390,6 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - destr@2.0.3: resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} @@ -1404,8 +1419,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.20: - resolution: {integrity: sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==} + electron-to-chromium@1.5.24: + resolution: {integrity: sha512-0x0wLCmpdKFCi9ulhvYZebgcPmHTkFVUfU2wzDykadkslKwT4oAmDTHEKLnlrDsMGZe4B+ksn8quZfZjYsBetA==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1543,12 +1558,6 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-import-x@4.2.1: - resolution: {integrity: sha512-WWi2GedccIJa0zXxx3WDnTgouGQTtdYK1nhXMwywbqqAgB0Ov+p1pYBsWh3VaB0bvBOwLse6OfVII7jZD9xo5Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - eslint-plugin-import@2.30.0: resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==} engines: {node: '>=4'} @@ -1573,8 +1582,8 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-svelte@2.43.0: - resolution: {integrity: sha512-REkxQWvg2pp7QVLxQNa+dJ97xUqRe7Y2JJbSWkHSuszu0VcblZtXkPBPckkivk99y5CdLw4slqfPylL2d/X4jQ==} + eslint-plugin-svelte@2.44.0: + resolution: {integrity: sha512-wav4MOs02vBb1WjvTCYItwJCxMkuk2Z4p+K/eyjL0N/z7ahXLP+0LtQQjiKc2ezuif7GnZLbD1F3o1VHzSvdVg==} engines: {node: ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 @@ -1597,8 +1606,8 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true @@ -1638,8 +1647,8 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} - execa@9.3.1: - resolution: {integrity: sha512-gdhefCCNy/8tpH/2+ajP9IQc14vXchNdd0weyzSJEFURhRMGncQ+zKFxwjAufIewPEJm9BPOaJnvg2UtlH2gPQ==} + execa@9.4.0: + resolution: {integrity: sha512-yKHlle2YGxZE842MERVIplWwNH5VYmqqcPFgtnlU//K8gxuFFXu0pwd/CrfXTumFpeEiufsP7+opT/bPJa1yVw==} engines: {node: ^18.19.0 || >=20.5.0} express@4.21.0: @@ -1799,8 +1808,8 @@ packages: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} - get-tsconfig@4.8.0: - resolution: {integrity: sha512-Pgba6TExTZ0FJAn1qkJAjIeKoDJ3CsI2ChuLohJnZl/tTU8MVrq3b+2t5UOPfRa4RMsorClBjJALkJUMjG1PAw==} + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} get-uri@6.0.3: resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} @@ -2221,8 +2230,8 @@ packages: mathml-tag-names@2.1.3: resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} - mdat@0.7.4: - resolution: {integrity: sha512-CFfBLoKIUWO4yg69l/+dEMcMMBbSsPkNbmKhRNhaYHjhws9EtmSOTstFE8lxzPrRDvkf2ixdJ08tm2fVCZmG/w==} + mdat@0.7.5: + resolution: {integrity: sha512-TQLJPbyDFCroc9K0EZuZYK+pzL11TajvwI0n8FvvON/ExvGu3YinP127o3cgm/tNK+75vBT68WhzA+A4MtBdDA==} engines: {node: ^18.19.0 || >=20.5.0, pnpm: '>=9.0.0'} hasBin: true @@ -2355,6 +2364,10 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + npm-run-path@6.0.0: + resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} + engines: {node: '>=18'} + nypm@0.3.11: resolution: {integrity: sha512-E5GqaAYSnbb6n1qZyik2wjPDZON43FqOJO59+3OkWrnmQtjggrMOVnsyzfjxp/tS6nlYJBA4zRA5jSM2YaadMg==} engines: {node: ^14.16.0 || >=16.10.0} @@ -2384,8 +2397,8 @@ packages: resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} - ohash@1.1.3: - resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==} + ohash@1.1.4: + resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} @@ -2569,8 +2582,8 @@ packages: postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.45: - resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -2689,12 +2702,12 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - puppeteer-core@23.3.0: - resolution: {integrity: sha512-sB2SsVMFs4gKad5OCdv6w5vocvtEUrRl0zQqSyRPbo/cj1Ktbarmhxy02Zyb9R9HrssBcJDZbkrvBnbaesPyYg==} + puppeteer-core@23.3.1: + resolution: {integrity: sha512-m5gTpITEqqpSgAvPUI/Ch9igh5sNJV+BVVbqQMzqirRDVHDCkLGHaydEQZx2NZvSXdwCFrIV///cpSlX/uD0Sg==} engines: {node: '>=18'} - puppeteer@23.3.0: - resolution: {integrity: sha512-e2jY8cdWSUGsrLxqGm3hIbJq/UIk1uOY8XY7SM51leXkH7shrIyE91lK90Q9byX6tte+cyL3HKqlWBEd6TjWTA==} + puppeteer@23.3.1: + resolution: {integrity: sha512-BxkuJyCv46ZKW8KEHiVMHgHEC89jKK9FffReWjbw1IfBUmNx+6JIZyqOtaJeSwyolTdVqqb5fiPiXflKeH3dKQ==} engines: {node: '>=18'} hasBin: true @@ -2905,15 +2918,12 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - stable-hash@0.0.4: - resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} - statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - streamx@2.20.0: - resolution: {integrity: sha512-ZGd1LhDeGFucr1CUCTBOS58ZhEendd0ttpGT3usTvosS4ntIwKN9LJFp+OeCSprsCPL14BXVRZlHGRY1V9PVzQ==} + streamx@2.20.1: + resolution: {integrity: sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==} string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} @@ -3004,8 +3014,8 @@ packages: peerDependencies: stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1 - stylelint-scss@6.5.1: - resolution: {integrity: sha512-ZLqdqihm6uDYkrsOeD6YWb+stZI8Wn92kUNDhE4M+g9g1aCnRv0JlOrttFiAJJwaNzpdQgX3YJb5vDQXVuO9Ww==} + stylelint-scss@6.6.0: + resolution: {integrity: sha512-aK2Rdt41Jt9Gv/ClMN5BYhP7xR3IEoRMDKpJkIDI9frZQ6KkxeLishusxs2JtEGZdJWXvPoBOhswNxj3gx8L/g==} engines: {node: '>=18.12.0'} peerDependencies: stylelint: ^16.0.2 @@ -3031,8 +3041,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svelte-eslint-parser@0.41.0: - resolution: {integrity: sha512-L6f4hOL+AbgfBIB52Z310pg1d2QjRqm7wy3kI1W6hhdhX5bvu7+f0R6w4ykp5HoDdzq+vGhIJmsisaiJDGmVfA==} + svelte-eslint-parser@0.41.1: + resolution: {integrity: sha512-08ndI6zTghzI8SuJAFpvMbA/haPSGn3xz19pjre19yYMw8Nw/wQJ2PrZBI/L8ijGTgtkWCQQiLLy+Z1tfaCwNA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.191 @@ -3069,8 +3079,8 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} - text-decoder@1.1.1: - resolution: {integrity: sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==} + text-decoder@1.2.0: + resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==} text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -3098,8 +3108,8 @@ packages: tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - tsx@4.19.0: - resolution: {integrity: sha512-bV30kM7bsLZKZIOCHeMNVMJ32/LuJzLVajkQI/qf92J2Qr08ueLQvW00PUZGiuLPP760UINwupgUj8qrSCPUKg==} + tsx@4.19.1: + resolution: {integrity: sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==} engines: {node: '>=18.0.0'} hasBin: true @@ -3150,8 +3160,8 @@ packages: typed-query-selector@2.12.0: resolution: {integrity: sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==} - typescript-eslint@8.5.0: - resolution: {integrity: sha512-uD+XxEoSIvqtm4KE97etm32Tn5MfaZWgWfMMREStLxR6JzvHkc2Tkj7zhTEK5XmtpTmKHNnG8Sot6qDfhHtR1Q==} + typescript-eslint@8.6.0: + resolution: {integrity: sha512-eEhhlxCEpCd4helh3AO1hk0UP2MvbRi9CtIAJTVPQjuSXOOO2jsEacNi4UdcJzZJbeuVg1gMhtZ8UYb+NFYPrA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -3187,6 +3197,10 @@ packages: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -3530,12 +3544,12 @@ snapshots: dependencies: import-meta-resolve: 4.1.0 - '@cspell/eslint-plugin@8.14.2(eslint@8.57.0)': + '@cspell/eslint-plugin@8.14.2(eslint@8.57.1)': dependencies: '@cspell/cspell-types': 8.14.2 '@cspell/url': 8.14.2 cspell-lib: 8.14.2 - eslint: 8.57.0 + eslint: 8.57.1 synckit: 0.9.1 '@cspell/filetypes@8.14.2': {} @@ -3633,12 +3647,12 @@ snapshots: '@esbuild/win32-x64@0.23.1': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)': dependencies: - eslint: 8.57.0 + eslint: 8.57.1 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.11.0': {} + '@eslint-community/regexpp@4.11.1': {} '@eslint/compat@1.1.1': {} @@ -3656,13 +3670,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.0': {} + '@eslint/js@8.57.1': {} '@eslint/js@9.10.0': {} - '@fontsource/inter@5.0.21': {} + '@fontsource/inter@5.1.0': {} - '@humanwhocodes/config-array@0.11.14': + '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 debug: 4.3.7 @@ -3698,11 +3712,11 @@ snapshots: string-argv: 0.3.2 type-detect: 4.1.0 - '@kitschpatrol/tldraw-cli@4.6.14(typescript@5.5.4)': + '@kitschpatrol/tldraw-cli@4.6.16(typescript@5.5.4)': dependencies: - '@fontsource/inter': 5.0.21 + '@fontsource/inter': 5.1.0 express: 4.21.0 - puppeteer: 23.3.0(typescript@5.5.4) + puppeteer: 23.3.1(typescript@5.5.4) uint8array-extras: 1.4.0 yargs: 17.7.2 transitivePeerDependencies: @@ -3807,15 +3821,15 @@ snapshots: '@types/node': 20.16.5 optional: true - '@typescript-eslint/eslint-plugin@8.5.0(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4)': dependencies: - '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.5.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/type-utils': 8.5.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/utils': 8.5.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.5.0 - eslint: 8.57.0 + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 8.6.0(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.6.0 + '@typescript-eslint/type-utils': 8.6.0(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/utils': 8.6.0(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.6.0 + eslint: 8.57.1 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -3825,28 +3839,28 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4)': dependencies: - '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.5.0 + '@typescript-eslint/scope-manager': 8.6.0 + '@typescript-eslint/types': 8.6.0 + '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.6.0 debug: 4.3.7 - eslint: 8.57.0 + eslint: 8.57.1 optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.5.0': + '@typescript-eslint/scope-manager@8.6.0': dependencies: - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/visitor-keys': 8.5.0 + '@typescript-eslint/types': 8.6.0 + '@typescript-eslint/visitor-keys': 8.6.0 - '@typescript-eslint/type-utils@8.5.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/type-utils@8.6.0(eslint@8.57.1)(typescript@5.5.4)': dependencies: - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.5.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.6.0(eslint@8.57.1)(typescript@5.5.4) debug: 4.3.7 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -3855,12 +3869,12 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@8.5.0': {} + '@typescript-eslint/types@8.6.0': {} - '@typescript-eslint/typescript-estree@8.5.0(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@8.6.0(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/visitor-keys': 8.5.0 + '@typescript-eslint/types': 8.6.0 + '@typescript-eslint/visitor-keys': 8.6.0 debug: 4.3.7 fast-glob: 3.3.2 is-glob: 4.0.3 @@ -3872,20 +3886,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.5.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/utils@8.6.0(eslint@8.57.1)(typescript@5.5.4)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 8.5.0 - '@typescript-eslint/types': 8.5.0 - '@typescript-eslint/typescript-estree': 8.5.0(typescript@5.5.4) - eslint: 8.57.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) + '@typescript-eslint/scope-manager': 8.6.0 + '@typescript-eslint/types': 8.6.0 + '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.5.4) + eslint: 8.57.1 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@8.5.0': + '@typescript-eslint/visitor-keys@8.6.0': dependencies: - '@typescript-eslint/types': 8.5.0 + '@typescript-eslint/types': 8.6.0 eslint-visitor-keys: 3.4.3 '@ungap/structured-clone@1.2.0': {} @@ -3944,9 +3958,7 @@ snapshots: argparse@2.0.1: {} - aria-query@5.3.0: - dependencies: - dequal: 2.0.3 + aria-query@5.3.1: {} array-buffer-byte-length@1.0.1: dependencies: @@ -4023,25 +4035,25 @@ snapshots: bare-events@2.4.2: optional: true - bare-fs@2.3.4: + bare-fs@2.3.5: dependencies: bare-events: 2.4.2 bare-path: 2.1.3 bare-stream: 2.3.0 optional: true - bare-os@2.4.3: + bare-os@2.4.4: optional: true bare-path@2.1.3: dependencies: - bare-os: 2.4.3 + bare-os: 2.4.4 optional: true bare-stream@2.3.0: dependencies: b4a: 1.6.6 - streamx: 2.20.0 + streamx: 2.20.1 optional: true base64-js@1.5.1: {} @@ -4083,7 +4095,7 @@ snapshots: browserslist@4.23.3: dependencies: caniuse-lite: 1.0.30001660 - electron-to-chromium: 1.5.20 + electron-to-chromium: 1.5.24 node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) @@ -4121,7 +4133,7 @@ snapshots: giget: 1.2.3 jiti: 1.21.6 mlly: 1.7.1 - ohash: 1.1.3 + ohash: 1.1.4 pathe: 1.1.2 perfect-debounce: 1.0.0 pkg-types: 1.2.0 @@ -4443,8 +4455,6 @@ snapshots: depd@2.0.0: {} - dequal@2.0.3: {} - destr@2.0.3: {} destroy@1.2.0: {} @@ -4467,7 +4477,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.20: {} + electron-to-chromium@1.5.24: {} emoji-regex@8.0.0: {} @@ -4610,18 +4620,18 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.1(eslint@8.57.0): + eslint-compat-utils@0.5.1(eslint@8.57.1): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 semver: 7.6.3 - eslint-config-prettier@9.1.0(eslint@8.57.0): + eslint-config-prettier@9.1.0(eslint@8.57.1): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 - eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0)): + eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1)): dependencies: - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) eslint-import-resolver-node@0.3.9: dependencies: @@ -4631,55 +4641,37 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import-x@4.2.1(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.1): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7 enhanced-resolve: 5.17.1 - eslint: 8.57.0 - eslint-module-utils: 2.11.0(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import-x@4.2.1(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0) + eslint: 8.57.1 + eslint-module-utils: 2.11.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1) fast-glob: 3.3.2 - get-tsconfig: 4.8.0 + get-tsconfig: 4.8.1 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) - eslint-plugin-import-x: 4.2.1(eslint@8.57.0)(typescript@5.5.4) + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.11.0(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import-x@4.2.1(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0): + eslint-module-utils@2.11.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.5.0(eslint@8.57.0)(typescript@5.5.4) - eslint: 8.57.0 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import-x@4.2.1(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0) - transitivePeerDependencies: - - supports-color - - eslint-plugin-import-x@4.2.1(eslint@8.57.0)(typescript@5.5.4): - dependencies: - '@typescript-eslint/utils': 8.5.0(eslint@8.57.0)(typescript@5.5.4) - debug: 4.3.7 - doctrine: 3.0.0 - eslint: 8.57.0 + '@typescript-eslint/parser': 8.6.0(eslint@8.57.1)(typescript@5.5.4) + eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - get-tsconfig: 4.8.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - stable-hash: 0.0.4 - tslib: 2.7.0 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.1) transitivePeerDependencies: - supports-color - - typescript - eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0): + eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -4688,9 +4680,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.57.0 + eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.11.0(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import-x@4.2.1(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.0))(eslint@8.57.0) + eslint-module-utils: 2.11.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint-plugin-import@2.30.0)(eslint@8.57.1))(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -4701,48 +4693,48 @@ snapshots: semver: 6.3.1 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.5.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 8.6.0(eslint@8.57.1)(typescript@5.5.4) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.3): + eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.3.3): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 prettier: 3.3.3 prettier-linter-helpers: 1.0.0 synckit: 0.9.1 optionalDependencies: - eslint-config-prettier: 9.1.0(eslint@8.57.0) + eslint-config-prettier: 9.1.0(eslint@8.57.1) - eslint-plugin-svelte@2.43.0(eslint@8.57.0)(svelte@4.2.19): + eslint-plugin-svelte@2.44.0(eslint@8.57.1)(svelte@4.2.19): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) '@jridgewell/sourcemap-codec': 1.5.0 - eslint: 8.57.0 - eslint-compat-utils: 0.5.1(eslint@8.57.0) + eslint: 8.57.1 + eslint-compat-utils: 0.5.1(eslint@8.57.1) esutils: 2.0.3 known-css-properties: 0.34.0 - postcss: 8.4.45 - postcss-load-config: 3.1.4(postcss@8.4.45) - postcss-safe-parser: 6.0.0(postcss@8.4.45) + postcss: 8.4.47 + postcss-load-config: 3.1.4(postcss@8.4.47) + postcss-safe-parser: 6.0.0(postcss@8.4.47) postcss-selector-parser: 6.1.2 semver: 7.6.3 - svelte-eslint-parser: 0.41.0(svelte@4.2.19) + svelte-eslint-parser: 0.41.1(svelte@4.2.19) optionalDependencies: svelte: 4.2.19 transitivePeerDependencies: - ts-node - eslint-plugin-unicorn@55.0.0(eslint@8.57.0): + eslint-plugin-unicorn@55.0.0(eslint@8.57.1): dependencies: '@babel/helper-validator-identifier': 7.24.7 - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.38.1 - eslint: 8.57.0 + eslint: 8.57.1 esquery: 1.6.0 globals: 15.9.0 indent-string: 4.0.0 @@ -4762,13 +4754,13 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint@8.57.0: + eslint@8.57.1: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.1) + '@eslint-community/regexpp': 4.11.1 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 '@ungap/structured-clone': 1.2.0 @@ -4843,7 +4835,7 @@ snapshots: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - execa@9.3.1: + execa@9.4.0: dependencies: '@sindresorhus/merge-streams': 4.0.0 cross-spawn: 7.0.3 @@ -4852,7 +4844,7 @@ snapshots: human-signals: 8.0.0 is-plain-obj: 4.1.0 is-stream: 4.0.1 - npm-run-path: 5.3.0 + npm-run-path: 6.0.0 pretty-ms: 9.1.0 signal-exit: 4.1.0 strip-final-newline: 4.0.0 @@ -5054,7 +5046,7 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 - get-tsconfig@4.8.0: + get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 @@ -5074,7 +5066,7 @@ snapshots: defu: 6.1.4 node-fetch-native: 1.6.4 nypm: 0.3.11 - ohash: 1.1.3 + ohash: 1.1.4 pathe: 1.1.2 tar: 6.2.1 @@ -5439,10 +5431,10 @@ snapshots: mathml-tag-names@2.1.3: {} - mdat@0.7.4(typescript@5.5.4): + mdat@0.7.5(typescript@5.5.4): dependencies: '@clack/prompts': 0.7.0 - '@kitschpatrol/tldraw-cli': 4.6.14(typescript@5.5.4) + '@kitschpatrol/tldraw-cli': 4.6.16(typescript@5.5.4) '@types/mdast': 4.0.4 '@types/node': 18.19.0 '@types/unist': 3.0.3 @@ -5450,7 +5442,7 @@ snapshots: '@types/yargs': 17.0.33 cosmiconfig: 9.0.0(typescript@5.5.4) cosmiconfig-typescript-loader: 5.0.0(@types/node@18.19.0)(cosmiconfig@9.0.0(typescript@5.5.4))(typescript@5.5.4) - execa: 9.3.1 + execa: 9.4.0 globby: 14.0.2 read-pkg: 9.0.1 which: 4.0.0 @@ -5560,6 +5552,11 @@ snapshots: dependencies: path-key: 4.0.0 + npm-run-path@6.0.0: + dependencies: + path-key: 4.0.0 + unicorn-magic: 0.3.0 + nypm@0.3.11: dependencies: citty: 0.1.6 @@ -5599,7 +5596,7 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 - ohash@1.1.3: {} + ohash@1.1.4: {} on-finished@2.4.1: dependencies: @@ -5731,41 +5728,41 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-load-config@3.1.4(postcss@8.4.45): + postcss-load-config@3.1.4(postcss@8.4.47): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: - postcss: 8.4.45 + postcss: 8.4.47 postcss-media-query-parser@0.2.3: {} postcss-resolve-nested-selector@0.1.6: {} - postcss-safe-parser@6.0.0(postcss@8.4.45): + postcss-safe-parser@6.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.45 + postcss: 8.4.47 - postcss-safe-parser@7.0.0(postcss@8.4.45): + postcss-safe-parser@7.0.0(postcss@8.4.47): dependencies: - postcss: 8.4.45 + postcss: 8.4.47 - postcss-scss@4.0.9(postcss@8.4.45): + postcss-scss@4.0.9(postcss@8.4.47): dependencies: - postcss: 8.4.45 + postcss: 8.4.47 postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-sorting@8.0.2(postcss@8.4.45): + postcss-sorting@8.0.2(postcss@8.4.47): dependencies: - postcss: 8.4.45 + postcss: 8.4.47 postcss-value-parser@4.2.0: {} - postcss@8.4.45: + postcss@8.4.47: dependencies: nanoid: 3.3.7 picocolors: 1.1.0 @@ -5838,7 +5835,7 @@ snapshots: punycode@2.3.1: {} - puppeteer-core@23.3.0: + puppeteer-core@23.3.1: dependencies: '@puppeteer/browsers': 2.4.0 chromium-bidi: 0.6.5(devtools-protocol@0.0.1330662) @@ -5851,13 +5848,13 @@ snapshots: - supports-color - utf-8-validate - puppeteer@23.3.0(typescript@5.5.4): + puppeteer@23.3.1(typescript@5.5.4): dependencies: '@puppeteer/browsers': 2.4.0 chromium-bidi: 0.6.5(devtools-protocol@0.0.1330662) cosmiconfig: 9.0.0(typescript@5.5.4) devtools-protocol: 0.0.1330662 - puppeteer-core: 23.3.0 + puppeteer-core: 23.3.1 typed-query-selector: 2.12.0 transitivePeerDependencies: - bufferutil @@ -6090,15 +6087,13 @@ snapshots: sprintf-js@1.1.3: {} - stable-hash@0.0.4: {} - statuses@2.0.1: {} - streamx@2.20.0: + streamx@2.20.1: dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 - text-decoder: 1.1.1 + text-decoder: 1.2.0 optionalDependencies: bare-events: 2.4.2 @@ -6154,26 +6149,26 @@ snapshots: stylelint: 16.9.0(typescript@5.5.4) stylelint-order: 6.0.4(stylelint@16.9.0(typescript@5.5.4)) - stylelint-config-recommended-scss@14.1.0(postcss@8.4.45)(stylelint@16.9.0(typescript@5.5.4)): + stylelint-config-recommended-scss@14.1.0(postcss@8.4.47)(stylelint@16.9.0(typescript@5.5.4)): dependencies: - postcss-scss: 4.0.9(postcss@8.4.45) + postcss-scss: 4.0.9(postcss@8.4.47) stylelint: 16.9.0(typescript@5.5.4) stylelint-config-recommended: 14.0.1(stylelint@16.9.0(typescript@5.5.4)) - stylelint-scss: 6.5.1(stylelint@16.9.0(typescript@5.5.4)) + stylelint-scss: 6.6.0(stylelint@16.9.0(typescript@5.5.4)) optionalDependencies: - postcss: 8.4.45 + postcss: 8.4.47 stylelint-config-recommended@14.0.1(stylelint@16.9.0(typescript@5.5.4)): dependencies: stylelint: 16.9.0(typescript@5.5.4) - stylelint-config-standard-scss@13.1.0(postcss@8.4.45)(stylelint@16.9.0(typescript@5.5.4)): + stylelint-config-standard-scss@13.1.0(postcss@8.4.47)(stylelint@16.9.0(typescript@5.5.4)): dependencies: stylelint: 16.9.0(typescript@5.5.4) - stylelint-config-recommended-scss: 14.1.0(postcss@8.4.45)(stylelint@16.9.0(typescript@5.5.4)) + stylelint-config-recommended-scss: 14.1.0(postcss@8.4.47)(stylelint@16.9.0(typescript@5.5.4)) stylelint-config-standard: 36.0.1(stylelint@16.9.0(typescript@5.5.4)) optionalDependencies: - postcss: 8.4.45 + postcss: 8.4.47 stylelint-config-standard@36.0.1(stylelint@16.9.0(typescript@5.5.4)): dependencies: @@ -6182,11 +6177,11 @@ snapshots: stylelint-order@6.0.4(stylelint@16.9.0(typescript@5.5.4)): dependencies: - postcss: 8.4.45 - postcss-sorting: 8.0.2(postcss@8.4.45) + postcss: 8.4.47 + postcss-sorting: 8.0.2(postcss@8.4.47) stylelint: 16.9.0(typescript@5.5.4) - stylelint-scss@6.5.1(stylelint@16.9.0(typescript@5.5.4)): + stylelint-scss@6.6.0(stylelint@16.9.0(typescript@5.5.4)): dependencies: css-tree: 2.3.1 is-plain-object: 5.0.0 @@ -6226,9 +6221,9 @@ snapshots: micromatch: 4.0.8 normalize-path: 3.0.0 picocolors: 1.1.0 - postcss: 8.4.45 + postcss: 8.4.47 postcss-resolve-nested-selector: 0.1.6 - postcss-safe-parser: 7.0.0(postcss@8.4.45) + postcss-safe-parser: 7.0.0(postcss@8.4.47) postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 resolve-from: 5.0.0 @@ -6257,13 +6252,13 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - svelte-eslint-parser@0.41.0(svelte@4.2.19): + svelte-eslint-parser@0.41.1(svelte@4.2.19): dependencies: eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - postcss: 8.4.45 - postcss-scss: 4.0.9(postcss@8.4.45) + postcss: 8.4.47 + postcss-scss: 4.0.9(postcss@8.4.47) optionalDependencies: svelte: 4.2.19 @@ -6274,7 +6269,7 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 '@types/estree': 1.0.5 acorn: 8.12.1 - aria-query: 5.3.0 + aria-query: 5.3.1 axobject-query: 4.1.0 code-red: 1.0.4 css-tree: 2.3.1 @@ -6306,14 +6301,14 @@ snapshots: pump: 3.0.2 tar-stream: 3.1.7 optionalDependencies: - bare-fs: 2.3.4 + bare-fs: 2.3.5 bare-path: 2.1.3 tar-stream@3.1.7: dependencies: b4a: 1.6.6 fast-fifo: 1.3.2 - streamx: 2.20.0 + streamx: 2.20.1 tar@6.2.1: dependencies: @@ -6324,7 +6319,7 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - text-decoder@1.1.1: + text-decoder@1.2.0: dependencies: b4a: 1.6.6 @@ -6351,10 +6346,10 @@ snapshots: tslib@2.7.0: {} - tsx@4.19.0: + tsx@4.19.1: dependencies: esbuild: 0.23.1 - get-tsconfig: 4.8.0 + get-tsconfig: 4.8.1 optionalDependencies: fsevents: 2.3.3 @@ -6411,11 +6406,11 @@ snapshots: typed-query-selector@2.12.0: {} - typescript-eslint@8.5.0(eslint@8.57.0)(typescript@5.5.4): + typescript-eslint@8.6.0(eslint@8.57.1)(typescript@5.5.4): dependencies: - '@typescript-eslint/eslint-plugin': 8.5.0(@typescript-eslint/parser@8.5.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/parser': 8.5.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/utils': 8.5.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.6.0(@typescript-eslint/parser@8.6.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/parser': 8.6.0(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/utils': 8.6.0(eslint@8.57.1)(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -6446,6 +6441,8 @@ snapshots: unicorn-magic@0.1.0: {} + unicorn-magic@0.3.0: {} + universalify@2.0.1: {} unpipe@1.0.0: {} diff --git a/.prettierrc.js b/prettier.config.js similarity index 100% rename from .prettierrc.js rename to prettier.config.js diff --git a/readme.md b/readme.md index c452349..890a81d 100644 --- a/readme.md +++ b/readme.md @@ -149,8 +149,8 @@ shared-config [ ...] | Option | Argument | Description | | ------------------------ | -------- | ---------------------------------------------------------------- | -| `--check`
`-c` | | Check for and report issues. Same as `shared-config`. | | `--init`
`-i` | | Initialize by copying starter config files to your project root. | +| `--check`
`-c` | | Check for and report issues. Same as `shared-config`. | | `--print-config`
`-p` | `` | Print the effective configuration at a certain path. | | `--fix`
`-f` | | Fix all auto-fixable issues, and report the un-fixable. | | `--help`
`-h` | | Print this help info. | diff --git a/src/command-builder.ts b/src/command-builder.ts index df3a083..e1e8f9b 100644 --- a/src/command-builder.ts +++ b/src/command-builder.ts @@ -1,5 +1,4 @@ #!/usr/bin/env node -/* eslint-disable import-x/namespace */ /* eslint-disable complexity */ // Creates cli bin files for each package @@ -10,7 +9,7 @@ import type { Flag } from 'meow'; import chalk, { type foregroundColorNames } from 'chalk'; import { cosmiconfig } from 'cosmiconfig'; import { execa, type ExecaError } from 'execa'; -import * as fse from 'fs-extra'; +import fse from 'fs-extra'; import meow from 'meow'; import path from 'node:path'; import { PassThrough, Transform, type Stream } from 'node:stream'; @@ -74,6 +73,13 @@ function generateHelpText(command: string, options: OptionCommands): string { $ ${command} [ ...] `; + if (command === 'browserslist-config') { + helpText = ` + Usage + $ ${command} --init + `; + } + helpText += '\n Options'; if (Object.keys(options).length > 0) { @@ -81,7 +87,9 @@ function generateHelpText(command: string, options: OptionCommands): string { switch (name) { case 'init': { helpText += - '\n --init, -i Initialize by copying starter config files to your project root.'; + command === 'browserslist-config' + ? '\n --init, -i Add browserslist key to `package.json`.' + : '\n --init, -i Initialize by copying starter config files to your project root.'; break; } diff --git a/stylelint.config.js b/stylelint.config.js new file mode 100644 index 0000000..8fa52d1 --- /dev/null +++ b/stylelint.config.js @@ -0,0 +1,5 @@ +/** @type {import("stylelint").Config} */ +export default { + extends: ['@envsa/stylelint-config'], + // Overrides +}; diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json index 12ae9b0..7356c33 100644 --- a/tsconfig.eslint.json +++ b/tsconfig.eslint.json @@ -1,7 +1,6 @@ { "compilerOptions": { - "noEmit": true, - "allowJs": true + "noEmit": true }, "extends": "./tsconfig.json", diff --git a/tsconfig.json b/tsconfig.json index e194ff8..8f28a18 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,6 +7,7 @@ "skipLibCheck": true, "noEmit": true, "noErrorTruncation": true, + "allowJs": true, /* Bundler mode */ "moduleResolution": "bundler",