diff --git a/.agents/.claude-plugin/plugin.json b/.agents/.claude-plugin/plugin.json new file mode 100644 index 0000000..4bd1b21 --- /dev/null +++ b/.agents/.claude-plugin/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "remanso-skills", + "version": "1.0.0", + "description": "Local skills for the Remanso project", + "author": { + "name": "julien" + } +} diff --git a/.agents/skills/migrate-oxlint/SKILL.md b/.agents/skills/migrate-oxlint/SKILL.md new file mode 100644 index 0000000..4f13ec1 --- /dev/null +++ b/.agents/skills/migrate-oxlint/SKILL.md @@ -0,0 +1,196 @@ +--- +name: migrate-oxlint +description: Guide for migrating a project from ESLint to Oxlint. Use when asked to migrate, convert, or switch a JavaScript/TypeScript project's linter from ESLint to Oxlint. +--- + +This skill guides you through migrating a JavaScript/TypeScript project from ESLint to [Oxlint](https://oxc.rs/docs/guide/usage/linter/). + +## Overview + +Oxlint is a high-performance linter that implements many popular ESLint rules natively in Rust. It can be used alongside ESLint or as a full replacement. + +An official migration tool is available, and will be used by this skill: [`@oxlint/migrate`](https://github.com/oxc-project/oxlint-migrate) + +## Step 1: Run Automated Migration + +Run the migration tool in the project root: + +```bash +npx @oxlint/migrate +``` + +This reads your ESLint flat config (`eslint.config.js` for example) and generates a `.oxlintrc.json` file from it. It will find your ESLint config file automatically in most cases. + +See options below for more info. + +### Key Options + +| Option | Description | +| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `--type-aware` | Include type-aware rules from `@typescript-eslint` (will require the `oxlint-tsgolint` package to be installed after migrating) | +| `--with-nursery` | Include experimental rules still under development, may not be fully stable or consistent with ESLint equivalents | +| `--js-plugins [bool]` | Enable/disable ESLint plugin migration via `jsPlugins` (default: enabled) | +| `--details` | List rules that could not be migrated | +| `--replace-eslint-comments` | Convert all `// eslint-disable` comments to `// oxlint-disable` | +| `--output-file ` | Specify a different output path (default: `.oxlintrc.json`) | + +If your ESLint config is not at the default location, pass the path explicitly: + +```bash +npx @oxlint/migrate ./path/to/eslint.config.js +``` + +## Step 2: Review Generated Config + +After migration, review the generated `.oxlintrc.json`. + +### Plugin Mapping + +The migration tool automatically maps ESLint plugins to oxlint's built-in equivalents. The following table is for reference when reviewing the generated config: + +| ESLint Plugin | Oxlint Plugin Name | +| --------------------------------------------------- | ------------------ | +| `@typescript-eslint/eslint-plugin` | `typescript` | +| `eslint-plugin-react` / `eslint-plugin-react-hooks` | `react` | +| `eslint-plugin-import` / `eslint-plugin-import-x` | `import` | +| `eslint-plugin-unicorn` | `unicorn` | +| `eslint-plugin-jsx-a11y` | `jsx-a11y` | +| `eslint-plugin-react-perf` | `react-perf` | +| `eslint-plugin-promise` | `promise` | +| `eslint-plugin-jest` | `jest` | +| `@vitest/eslint-plugin` | `vitest` | +| `eslint-plugin-jsdoc` | `jsdoc` | +| `eslint-plugin-next` | `nextjs` | +| `eslint-plugin-node` | `node` | +| `eslint-plugin-vue` | `vue` | + +Default plugins (enabled when `plugins` field is omitted): `unicorn`, `typescript`, `oxc`. +Setting the `plugins` array explicitly overrides these defaults. + +ESLint core rules are usable in oxlint without needing to configure a plugin in the config file. + +### Rule Categories + +Oxlint groups rules into categories for bulk configuration, though only `correctness` is enabled by default: + +```json +{ + "categories": { + "correctness": "error", + "suspicious": "warn" + } +} +``` + +Available categories: `correctness` (default: enabled), `suspicious`, `pedantic`, `perf`, `style`, `restriction`, `nursery`. + +Individual rule settings in `rules` override category settings. + +`@oxlint/migrate` will turn `correctness` off to avoid enabling additional rules that weren't enabled by your ESLint config. You can choose to enable additional categories after migration if desired. + +### Check Unmigrated Rules + +Run with `--details` to see which ESLint rules could not be migrated: + +```bash +npx @oxlint/migrate --details +``` + +Review the output and decide whether to keep ESLint for those rules or not. Some rules may be mentioned in the output from `--details` as having equivalents in oxlint that were not automatically mapped by the migration tool. In those cases, consider enabling the equivalent oxlint rule manually after migration. + +## Step 3: Install Oxlint + +Install the core oxlint package (use `yarn install`, `pnpm install`, `vp install`, `bun install`, etc. depending on your package manager): + +```bash +npm install -D oxlint +``` + +If you want to add the `oxlint-tsgolint` package, if you intend to use type-aware rules that require TypeScript type information: + +```bash +npm install -D oxlint-tsgolint +``` + +No other packages besides the above are needed by default, though you will need to keep/install any additional ESLint plugins that were migrated into `jsPlugins`. Do not add `@oxlint/migrate` to the package.json, it is meant for one-off usage. + +## Step 4: Handle Unsupported Features + +Some features require manual attention: + +- Local plugins (relative path imports): Must be migrated manually to `jsPlugins` +- `eslint-plugin-prettier`: Supported, but very slow. It is recommended to use [oxfmt](https://oxc.rs/docs/guide/usage/formatter) instead, or switch to `prettier --check` as a separate step alongside oxlint. +- `settings` in override configs: Oxlint does not support `settings` inside `overrides` blocks. +- ESLint v9+ plugins: Not all work with oxlint's JS Plugins API, but the majority will. + +### Local Plugins + +If you have any custom ESLint rules in the project repo itself, you can migrate them manually after running the migration tool by adding them to the `jsPlugins` field in `.oxlintrc.json`: + +```json +{ + "jsPlugins": ["./path/to/my-plugin.js"], + "rules": { + "local-plugin/rule-name": "error" + } +} +``` + +### External ESLint Plugins + +For ESLint plugins without a built-in oxlint equivalent, use the `jsPlugins` field to load them: + +```json +{ + "jsPlugins": ["eslint-plugin-custom"], + "rules": { + "custom/my-rule": "warn" + } +} +``` + +## Step 5: Update CI and Scripts + +Replace ESLint commands with oxlint. Path arguments are optional; oxlint defaults to the current working directory. + +```bash +# Before +npx eslint src/ +npx eslint --fix src/ + +# After +npx oxlint src/ +npx oxlint --fix src/ +``` + +### Common CLI Options + +| ESLint | oxlint equivalent | +| ------------------------- | ---------------------------------------------- | +| `eslint .` | `oxlint` (default: lints the cwd) | +| `eslint src/` | `oxlint src/` | +| `eslint --fix` | `oxlint --fix` | +| `eslint --max-warnings 0` | `oxlint --deny-warnings` or `--max-warnings 0` | +| `eslint --format json` | `oxlint --format json` | + +Additional oxlint options: + +- `--tsconfig `: Specify tsconfig.json path, likely unnecessary unless you have a non-standard name for `tsconfig.json`. + +## Tips + +- You can run alongside ESLint if necessary: Oxlint is designed to complement ESLint during migration, but with JS Plugins many projects can switch over fully without losing many rules. +- Disable comments work: `// eslint-disable` and `// eslint-disable-next-line` comments are supported by oxlint. Use `--replace-eslint-comments` when running @oxlint/migrate to convert them to `// oxlint-disable` equivalents if desired. +- List available rules: Run `npx oxlint --rules` to see all supported rules, or refer to the [rule documentation](https://oxc.rs/docs/guide/usage/linter/rules.html). +- Schema support: Add `"$schema": "./node_modules/oxlint/configuration_schema.json"` to `.oxlintrc.json` for editor autocompletion if the migration tool didn't do it automatically. +- Output formats: `default`, `stylish`, `json`, `github`, `gitlab`, `junit`, `checkstyle`, `unix` +- Ignore files: `.eslintignore` is supported by oxlint if you have it, but it's recommended to move any ignore patterns into the `ignorePatterns` field in `.oxlintrc.json` for consistency and simplicity. All files and paths ignored via a `.gitignore` file will be ignored by oxlint by default as well. +- If you ran the migration tool multiple times, remove the `.oxlintrc.json.bak` backup file created by the migration tool once you've finished migrating. +- If you are not using any JS Plugins and have replaced your ESLint configuration, you can remove all ESLint packages from your project dependencies. +- Ensure your editor is configured to use oxlint instead of ESLint for linting and error reporting. You may want to install the Oxc extension for your preferred editor. See https://oxc.rs/docs/guide/usage/linter/editors.html for more details. + +## References + +- [CLI Reference](https://oxc.rs/docs/guide/usage/linter/cli.html) +- [Config File Reference](https://oxc.rs/docs/guide/usage/linter/config-file-reference.html) +- [Complete Oxlint rule list and docs](https://oxc.rs/docs/guide/usage/linter/rules.html) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 0000000..b342b8b --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,14 @@ +{ + "name": "remanso-local", + "description": "Local plugins for the Remanso project", + "owner": { + "name": "julien" + }, + "plugins": [ + { + "name": "remanso-skills", + "description": "Local skills for the Remanso project (migrate-oxlint, etc.)", + "source": "./.agents" + } + ] +} diff --git a/.claude/settings.json b/.claude/settings.json new file mode 100644 index 0000000..af8ed8f --- /dev/null +++ b/.claude/settings.json @@ -0,0 +1,13 @@ +{ + "extraKnownMarketplaces": { + "remanso-local": { + "source": { + "source": "directory", + "path": "." + } + } + }, + "enabledPlugins": { + "remanso-skills@remanso-local": true + } +} diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 6b4f261..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,53 +0,0 @@ -require("@rushstack/eslint-patch/modern-module-resolution") - -const DEV_TOOL_ACTIVATED = - process.env.NODE_ENV === "production" ? "warn" : "off" - -module.exports = { - root: true, - env: { - node: true, - es2022: true, - }, - extends: ["plugin:vue/vue3-essential", "@vue/eslint-config-typescript"], - plugins: ["simple-import-sort", "unused-imports"], - rules: { - "no-console": DEV_TOOL_ACTIVATED, - "no-debugger": DEV_TOOL_ACTIVATED, - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/camelcase": "off", - "prettier-vue/prettier": [ - "error", - { - semi: false, - singleQuote: true, - trailingComma: "none", - arrowParens: "always", - }, - ], - "vue/no-v-html": "off", - "no-restricted-imports": [ - "error", - { - paths: [ - { - name: "vue-demi", - importNames: ["computed"], - message: "Please use computed from vue instead.", - }, - ], - }, - ], - "simple-import-sort/imports": "error", - "simple-import-sort/exports": "error", - "unused-imports/no-unused-imports": "error", - }, - overrides: [ - { - files: [ - "**/__tests__/*.{j,t}s?(x)", - "**/tests/unit/**/*.spec.{j,t}s?(x)", - ], - }, - ], -} diff --git a/.oxfmtrc.json b/.oxfmtrc.json new file mode 100644 index 0000000..62ace94 --- /dev/null +++ b/.oxfmtrc.json @@ -0,0 +1,9 @@ +{ + "$schema": "./node_modules/oxfmt/configuration_schema.json", + "semi": false, + "singleQuote": false, + "trailingComma": "none", + "printWidth": 80, + "sortPackageJson": false, + "ignorePatterns": [] +} diff --git a/.oxlintrc.json b/.oxlintrc.json new file mode 100644 index 0000000..dcf57e3 --- /dev/null +++ b/.oxlintrc.json @@ -0,0 +1,40 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": ["typescript"], + "jsPlugins": [ + "eslint-plugin-prettier-vue", + "eslint-plugin-simple-import-sort", + "eslint-plugin-unused-imports" + ], + "categories": { + "correctness": "off" + }, + "env": { + "builtin": true + }, + "rules": { + "no-restricted-imports": [ + "error", + { + "paths": [ + { + "name": "vue-demi", + "importNames": ["computed"], + "message": "Please use computed from vue instead." + } + ] + } + ], + "simple-import-sort/imports": "error", + "simple-import-sort/exports": "error", + "unused-imports/no-unused-imports": "error" + }, + "overrides": [ + { + "files": ["**/*.vue"], + "rules": { + "unused-imports/no-unused-imports": "off" + } + } + ] +} diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index cce9d3c..0000000 --- a/.prettierrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "semi": false -} diff --git a/_scripts/change-theme-dark.ts b/_scripts/change-theme-dark.ts index 2fd2d4b..65ce595 100644 --- a/_scripts/change-theme-dark.ts +++ b/_scripts/change-theme-dark.ts @@ -5,6 +5,7 @@ import { readFileSync, writeFileSync } from "fs" import { join } from "path" + import { commitTheme } from "./change-theme" // Chemins vers les fichiers @@ -28,7 +29,7 @@ let themeConfigContent = readFileSync(themeConfigPath, "utf8") // Remplacer la valeur du thème sombre themeConfigContent = themeConfigContent.replace( /dark:\s*['"][^'"]*['"],/, - `dark: '${newTheme}',`, + `dark: '${newTheme}',` ) // Écrire le contenu mis à jour dans le fichier @@ -38,7 +39,7 @@ writeFileSync(themeConfigPath, themeConfigContent) let appCssContent = readFileSync(appCssPath, "utf8") appCssContent = appCssContent.replace( /(\s+)([a-zA-Z0-9-]+)(\s+--prefersdark;)/, - `$1${newTheme}$3`, + `$1${newTheme}$3` ) writeFileSync(appCssPath, appCssContent) diff --git a/_scripts/change-theme-light.ts b/_scripts/change-theme-light.ts index f21f21d..6f9fcb8 100644 --- a/_scripts/change-theme-light.ts +++ b/_scripts/change-theme-light.ts @@ -5,6 +5,7 @@ import { readFileSync, writeFileSync } from "fs" import { join } from "path" + import { commitTheme } from "./change-theme" // Chemins vers les fichiers @@ -29,7 +30,7 @@ let themeConfigContent = readFileSync(themeConfigPath, "utf8") // Remplacer la valeur du thème clair themeConfigContent = themeConfigContent.replace( /light:\s*['"][^'"]*['"],/, - `light: '${newTheme}',`, + `light: '${newTheme}',` ) // Écrire le contenu mis à jour dans le fichier @@ -39,7 +40,7 @@ writeFileSync(themeConfigPath, themeConfigContent) let indexContent = readFileSync(indexPath, "utf8") indexContent = indexContent.replace( /data-theme="[^"]*"/, - `data-theme="${newTheme}"`, + `data-theme="${newTheme}"` ) writeFileSync(indexPath, indexContent) @@ -47,7 +48,7 @@ writeFileSync(indexPath, indexContent) let appCssContent = readFileSync(appCssPath, "utf8") appCssContent = appCssContent.replace( /(\s+)([a-zA-Z0-9-]+)(\s+--default,)/, - `$1${newTheme}$3`, + `$1${newTheme}$3` ) writeFileSync(appCssPath, appCssContent) diff --git a/babel.config.js b/babel.config.js index 716b023..db68ff1 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,3 +1,3 @@ module.exports = { - presets: ['@vue/cli-plugin-babel/preset'] + presets: ["@vue/cli-plugin-babel/preset"] } diff --git a/docs/bugs/rolldown-while-in-globalThis.md b/docs/bugs/rolldown-while-in-globalThis.md index 084142e..b0b2dd4 100644 --- a/docs/bugs/rolldown-while-in-globalThis.md +++ b/docs/bugs/rolldown-while-in-globalThis.md @@ -26,11 +26,10 @@ Rolldown's minifier drops the `while(`/`for(;` keyword when a `while (x in globa File: `node_modules/@ark/schema/out/shared/registry.js` ```js -let _registryName = "$ark"; -let suffix = 2; -while (_registryName in globalThis) - _registryName = `$ark${suffix++}`; -export const registryName = _registryName; +let _registryName = "$ark" +let suffix = 2 +while (_registryName in globalThis) _registryName = `$ark${suffix++}` +export const registryName = _registryName ``` ## Actual minified output @@ -44,7 +43,10 @@ The `while(` keyword is missing. The orphaned `)` is a syntax error. ## Expected output ```js -var dn=`$ark`,fn=2;for(;dn in globalThis;)dn=`$ark${fn++}`;var pn=dn; +var dn = `$ark`, + fn = 2 +for (; dn in globalThis; ) dn = `$ark${fn++}` +var pn = dn ``` ## Impact diff --git a/netlify.toml b/netlify.toml index 3cd2705..b3fa18b 100644 --- a/netlify.toml +++ b/netlify.toml @@ -9,9 +9,9 @@ status = 200 [[headers]] for = "/client-metadata.json" - [headers.values] - Access-Control-Allow-Origin = "*" - Content-Type = "application/json" +[headers.values] +Access-Control-Allow-Origin = "*" +Content-Type = "application/json" [[redirects]] from = "/client-metadata.json" diff --git a/package.json b/package.json index 6c86eca..8159355 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,10 @@ "serve": "vite preview", "test": "vitest", "types": "tsc --noEmit", - "lint": "eslint --ext .ts,.js,.vue --ignore-path .gitignore --fix src", + "lint": "oxlint", + "lint:fix": "oxlint --fix", + "fmt": "oxfmt", + "fmt:check": "oxfmt --check", "prepare": "husky", "theme:light": "esno _scripts/change-theme-light.ts", "theme:dark": "esno _scripts/change-theme-dark.ts", @@ -60,31 +63,25 @@ }, "devDependencies": { "@babel/core": "^7.28.5", - "@rushstack/eslint-patch": "^1.14.1", "@tailwindcss/typography": "^0.5.19", "@types/fontfaceobserver": "^2.1.3", "@types/markdown-it": "^14.1.2", "@types/node": "^22.15.24", "@types/pouchdb-browser": "^6.1.5", "@types/sanitize-html": "^2.16.0", - "@typescript-eslint/eslint-plugin": "^8.46.2", - "@typescript-eslint/parser": "^8.46.2", "@vite-pwa/assets-generator": "^1.0.2", "@vitejs/plugin-vue": "^5.2.4", "@vue/compiler-sfc": "^3.5.28", - "@vue/eslint-config-prettier": "^10.2.0", - "@vue/eslint-config-typescript": "^14.6.0", "autoprefixer": "^10.4.24", "daisyui": "^5.5.18", "dotenv": "^17.2.3", - "eslint": "^8.57.1", - "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier-vue": "^5.0.0", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-unused-imports": "^4.4.1", - "eslint-plugin-vue": "^10.8.0", "esno": "^4.8.0", "husky": "^9.1.7", + "oxfmt": "^0.42.0", + "oxlint": "^1.57.0", "prettier": "^3.8.1", "prettier-vue": "^1.1.2", "sass": "^1.98.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 618a17c..4c3a6cd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -138,9 +138,6 @@ importers: '@babel/core': specifier: ^7.28.5 version: 7.28.5 - '@rushstack/eslint-patch': - specifier: ^1.14.1 - version: 1.14.1 '@tailwindcss/typography': specifier: ^0.5.19 version: 0.5.19(tailwindcss@4.2.2) @@ -159,12 +156,6 @@ importers: '@types/sanitize-html': specifier: ^2.16.0 version: 2.16.0 - '@typescript-eslint/eslint-plugin': - specifier: ^8.46.2 - version: 8.46.2(@typescript-eslint/parser@8.46.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/parser': - specifier: ^8.46.2 - version: 8.46.2(eslint@8.57.1)(typescript@5.9.3) '@vite-pwa/assets-generator': specifier: ^1.0.2 version: 1.0.2 @@ -174,12 +165,6 @@ importers: '@vue/compiler-sfc': specifier: ^3.5.28 version: 3.5.28 - '@vue/eslint-config-prettier': - specifier: ^10.2.0 - version: 10.2.0(@types/eslint@8.44.0)(eslint@8.57.1)(prettier@3.8.1) - '@vue/eslint-config-typescript': - specifier: ^14.6.0 - version: 14.6.0(eslint-plugin-vue@10.8.0(@typescript-eslint/parser@8.46.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(vue-eslint-parser@10.2.0(eslint@8.57.1)))(eslint@8.57.1)(typescript@5.9.3) autoprefixer: specifier: ^10.4.24 version: 10.4.24(postcss@8.5.6) @@ -189,12 +174,6 @@ importers: dotenv: specifier: ^17.2.3 version: 17.2.3 - eslint: - specifier: ^8.57.1 - version: 8.57.1 - eslint-config-prettier: - specifier: ^9.1.0 - version: 9.1.0(eslint@8.57.1) eslint-plugin-prettier-vue: specifier: ^5.0.0 version: 5.0.0 @@ -204,15 +183,18 @@ importers: eslint-plugin-unused-imports: specifier: ^4.4.1 version: 4.4.1(@typescript-eslint/eslint-plugin@8.46.2(@typescript-eslint/parser@8.46.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) - eslint-plugin-vue: - specifier: ^10.8.0 - version: 10.8.0(@typescript-eslint/parser@8.46.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(vue-eslint-parser@10.2.0(eslint@8.57.1)) esno: specifier: ^4.8.0 version: 4.8.0 husky: specifier: ^9.1.7 version: 9.1.7 + oxfmt: + specifier: ^0.42.0 + version: 0.42.0 + oxlint: + specifier: ^1.57.0 + version: 1.57.0 prettier: specifier: ^3.8.1 version: 3.8.1 @@ -1405,6 +1387,250 @@ packages: '@oxc-project/types@0.120.0': resolution: {integrity: sha512-k1YNu55DuvAip/MGE1FTsIuU3FUCn6v/ujG9V7Nq5Df/kX2CWb13hhwD0lmJGMGqE+bE1MXvv9SZVnMzEXlWcg==} + '@oxfmt/binding-android-arm-eabi@0.42.0': + resolution: {integrity: sha512-dsqPTYsozeokRjlrt/b4E7Pj0z3eS3Eg74TWQuuKbjY4VttBmA88rB7d50Xrd+TZ986qdXCNeZRPEzZHAe+jow==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxfmt/binding-android-arm64@0.42.0': + resolution: {integrity: sha512-t+aAjHxcr5eOBphFHdg1ouQU9qmZZoRxnX7UOJSaTwSoKsb6TYezNKO0YbWytGXCECObRqNcUxPoPr0KaraAIg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxfmt/binding-darwin-arm64@0.42.0': + resolution: {integrity: sha512-ulpSEYMKg61C5bRMZinFHrKJYRoKGVbvMEXA5zM1puX3O9T6Q4XXDbft20yrDijpYWeuG59z3Nabt+npeTsM1A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxfmt/binding-darwin-x64@0.42.0': + resolution: {integrity: sha512-ttxLKhQYPdFiM8I/Ri37cvqChE4Xa562nNOsZFcv1CKTVLeEozXjKuYClNvxkXmNlcF55nzM80P+CQkdFBu+uQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxfmt/binding-freebsd-x64@0.42.0': + resolution: {integrity: sha512-Og7QS3yI3tdIKYZ58SXik0rADxIk2jmd+/YvuHRyKULWpG4V2fR5V4hvKm624Mc0cQET35waPXiCQWvjQEjwYQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxfmt/binding-linux-arm-gnueabihf@0.42.0': + resolution: {integrity: sha512-jwLOw/3CW4H6Vxcry4/buQHk7zm9Ne2YsidzTL1kpiMe4qqrRCwev3dkyWe2YkFmP+iZCQ7zku4KwjcLRoh8ew==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxfmt/binding-linux-arm-musleabihf@0.42.0': + resolution: {integrity: sha512-XwXu2vkMtiq2h7tfvN+WA/9/5/1IoGAVCFPiiQUvcAuG3efR97KNcRGM8BetmbYouFotQ2bDal3yyjUx6IPsTg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxfmt/binding-linux-arm64-gnu@0.42.0': + resolution: {integrity: sha512-ea7s/XUJoT7ENAtUQDudFe3nkSM3e3Qpz4nJFRdzO2wbgXEcjnchKLEsV3+t4ev3r8nWxIYr9NRjPWtnyIFJVA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-arm64-musl@0.42.0': + resolution: {integrity: sha512-+JA0YMlSdDqmacygGi2REp57c3fN+tzARD8nwsukx9pkCHK+6DkbAA9ojS4lNKsiBjIW8WWa0pBrBWhdZEqfuw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxfmt/binding-linux-ppc64-gnu@0.42.0': + resolution: {integrity: sha512-VfnET0j4Y5mdfCzh5gBt0NK28lgn5DKx+8WgSMLYYeSooHhohdbzwAStLki9pNuGy51y4I7IoW8bqwAaCMiJQg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-riscv64-gnu@0.42.0': + resolution: {integrity: sha512-gVlCbmBkB0fxBWbhBj9rcxezPydsQHf4MFKeHoTSPicOQ+8oGeTQgQ8EeesSybWeiFPVRx3bgdt4IJnH6nOjAA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-riscv64-musl@0.42.0': + resolution: {integrity: sha512-zN5OfstL0avgt/IgvRu0zjQzVh/EPkcLzs33E9LMAzpqlLWiPWeMDZyMGFlSRGOdDjuNmlZBCgj0pFnK5u32TQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxfmt/binding-linux-s390x-gnu@0.42.0': + resolution: {integrity: sha512-9X6+H2L0qMc2sCAgO9HS03bkGLMKvOFjmEdchaFlany3vNZOjnVui//D8k/xZAtQv2vaCs1reD5KAgPoIU4msA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-x64-gnu@0.42.0': + resolution: {integrity: sha512-BajxJ6KQvMMdpXGPWhBGyjb2Jvx4uec0w+wi6TJZ6Tv7+MzPwe0pO8g5h1U0jyFgoaF7mDl6yKPW3ykWcbUJRw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-x64-musl@0.42.0': + resolution: {integrity: sha512-0wV284I6vc5f0AqAhgAbHU2935B4bVpncPoe5n/WzVZY/KnHgqxC8iSFGeSyLWEgstFboIcWkOPck7tqbdHkzA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxfmt/binding-openharmony-arm64@0.42.0': + resolution: {integrity: sha512-p4BG6HpGnhfgHk1rzZfyR6zcWkE7iLrWxyehHfXUy4Qa5j3e0roglFOdP/Nj5cJJ58MA3isQ5dlfkW2nNEpolw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxfmt/binding-win32-arm64-msvc@0.42.0': + resolution: {integrity: sha512-mn//WV60A+IetORDxYieYGAoQso4KnVRRjORDewMcod4irlRe0OSC7YPhhwaexYNPQz/GCFk+v9iUcZ2W22yxQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxfmt/binding-win32-ia32-msvc@0.42.0': + resolution: {integrity: sha512-3gWltUrvuz4LPJXWivoAxZ28Of2O4N7OGuM5/X3ubPXCEV8hmgECLZzjz7UYvSDUS3grfdccQwmjynm+51EFpw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxfmt/binding-win32-x64-msvc@0.42.0': + resolution: {integrity: sha512-Wg4TMAfQRL9J9AZevJ/ZNy3uyyDztDYQtGr4P8UyyzIhLhFrdSmz1J/9JT+rv0fiCDLaFOBQnj3f3K3+a5PzDQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@oxlint/binding-android-arm-eabi@1.57.0': + resolution: {integrity: sha512-C7EiyfAJG4B70496eV543nKiq5cH0o/xIh/ufbjQz3SIvHhlDDsyn+mRFh+aW8KskTyUpyH2LGWL8p2oN6bl1A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxlint/binding-android-arm64@1.57.0': + resolution: {integrity: sha512-9i80AresjZ/FZf5xK8tKFbhQnijD4s1eOZw6/FHUwD59HEZbVLRc2C88ADYJfLZrF5XofWDiRX/Ja9KefCLy7w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxlint/binding-darwin-arm64@1.57.0': + resolution: {integrity: sha512-0eUfhRz5L2yKa9I8k3qpyl37XK3oBS5BvrgdVIx599WZK63P8sMbg+0s4IuxmIiZuBK68Ek+Z+gcKgeYf0otsg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxlint/binding-darwin-x64@1.57.0': + resolution: {integrity: sha512-UvrSuzBaYOue+QMAcuDITe0k/Vhj6KZGjfnI6x+NkxBTke/VoM7ZisaxgNY0LWuBkTnd1OmeQfEQdQ48fRjkQg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxlint/binding-freebsd-x64@1.57.0': + resolution: {integrity: sha512-wtQq0dCoiw4bUwlsNVDJJ3pxJA218fOezpgtLKrbQqUtQJcM9yP8z+I9fu14aHg0uyAxIY+99toL6uBa2r7nxA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxlint/binding-linux-arm-gnueabihf@1.57.0': + resolution: {integrity: sha512-qxFWl2BBBFcT4djKa+OtMdnLgoHEJXpqjyGwz8OhW35ImoCwR5qtAGqApNYce5260FQqoAHW8S8eZTjiX67Tsg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm-musleabihf@1.57.0': + resolution: {integrity: sha512-SQoIsBU7J0bDW15/f0/RvxHfY3Y0+eB/caKBQtNFbuerTiA6JCYx9P1MrrFTwY2dTm/lMgTSgskvCEYk2AtG/Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm64-gnu@1.57.0': + resolution: {integrity: sha512-jqxYd1W6WMeozsCmqe9Rzbu3SRrGTyGDAipRlRggetyYbUksJqJKvUNTQtZR/KFoJPb+grnSm5SHhdWrywv3RQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-arm64-musl@1.57.0': + resolution: {integrity: sha512-i66WyEPVEvq9bxRUCJ/MP5EBfnTDN3nhwEdFZFTO5MmLLvzngfWEG3NSdXQzTT3vk5B9i6C2XSIYBh+aG6uqyg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxlint/binding-linux-ppc64-gnu@1.57.0': + resolution: {integrity: sha512-oMZDCwz4NobclZU3pH+V1/upVlJZiZvne4jQP+zhJwt+lmio4XXr4qG47CehvrW1Lx2YZiIHuxM2D4YpkG3KVA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-riscv64-gnu@1.57.0': + resolution: {integrity: sha512-uoBnjJ3MMEBbfnWC1jSFr7/nSCkcQYa72NYoNtLl1imshDnWSolYCjzb8LVCwYCCfLJXD+0gBLD7fyC14c0+0g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-riscv64-musl@1.57.0': + resolution: {integrity: sha512-BdrwD7haPZ8a9KrZhKJRSj6jwCor+Z8tHFZ3PT89Y3Jq5v3LfMfEePeAmD0LOTWpiTmzSzdmyw9ijneapiVHKQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxlint/binding-linux-s390x-gnu@1.57.0': + resolution: {integrity: sha512-BNs+7ZNsRstVg2tpNxAXfMX/Iv5oZh204dVyb8Z37+/gCh+yZqNTlg6YwCLIMPSk5wLWIGOaQjT0GUOahKYImw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-x64-gnu@1.57.0': + resolution: {integrity: sha512-AghS18w+XcENcAX0+BQGLiqjpqpaxKJa4cWWP0OWNLacs27vHBxu7TYkv9LUSGe5w8lOJHeMxcYfZNOAPqw2bg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-x64-musl@1.57.0': + resolution: {integrity: sha512-E/FV3GB8phu/Rpkhz5T96hAiJlGzn91qX5yj5gU754P5cmVGXY1Jw/VSjDSlZBCY3VHjsVLdzgdkJaomEmcNOg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxlint/binding-openharmony-arm64@1.57.0': + resolution: {integrity: sha512-xvZ2yZt0nUVfU14iuGv3V25jpr9pov5N0Wr28RXnHFxHCRxNDMtYPHV61gGLhN9IlXM96gI4pyYpLSJC5ClLCQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxlint/binding-win32-arm64-msvc@1.57.0': + resolution: {integrity: sha512-Z4D8Pd0AyHBKeazhdIXeUUy5sIS3Mo0veOlzlDECg6PhRRKgEsBJCCV1n+keUZtQ04OP+i7+itS3kOykUyNhDg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxlint/binding-win32-ia32-msvc@1.57.0': + resolution: {integrity: sha512-StOZ9nFMVKvevicbQfql6Pouu9pgbeQnu60Fvhz2S6yfMaii+wnueLnqQ5I1JPgNF0Syew4voBlAaHD13wH6tw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxlint/binding-win32-x64-msvc@1.57.0': + resolution: {integrity: sha512-6PuxhYgth8TuW0+ABPOIkGdBYw+qYGxgIdXPHSVpiCDm+hqTTWCmC739St1Xni0DJBt8HnSHTG67i1y6gr8qrA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@parcel/watcher-android-arm64@2.5.0': resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==} engines: {node: '>= 10.0.0'} @@ -1493,10 +1719,6 @@ packages: resolution: {integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==} engines: {node: '>= 10.0.0'} - '@pkgr/core@0.2.4': - resolution: {integrity: sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@pkgr/utils@2.4.2': resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -1778,9 +2000,6 @@ packages: '@rrweb/utils@2.0.0-alpha.20': resolution: {integrity: sha512-MTQOmhPRe39C0fYaCnnVYOufQsyGzwNXpUStKiyFSfGLUJrzuwhbRoUAKR5w6W2j5XuA0bIz3ZDIBztkquOhLw==} - '@rushstack/eslint-patch@1.14.1': - resolution: {integrity: sha512-jGTk8UD/RdjsNZW8qq10r0RBvxL8OWtoT+kImlzPDFilmozzM+9QmIJsmze9UiSBrFU45ZxhTYBypn9q9z/VfQ==} - '@surma/rollup-plugin-off-main-thread@2.2.3': resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} @@ -2008,9 +2227,6 @@ packages: '@types/deep-eql@4.0.2': resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} - '@types/eslint@8.44.0': - resolution: {integrity: sha512-gsF+c/0XOguWgaOgvFs+xnnRqt9GwgTvIks36WpE6ueeI4KCEHHd8K/CKHqhOqrJKsYH8m27kRzQEvWXAwXUTw==} - '@types/estree@0.0.39': resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} @@ -2026,9 +2242,6 @@ packages: '@types/geojson@7946.0.16': resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/linkify-it@5.0.0': resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} @@ -2080,14 +2293,6 @@ packages: '@types/web-bluetooth@0.0.21': resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} - '@typescript-eslint/eslint-plugin@8.38.0': - resolution: {integrity: sha512-CPoznzpuAnIOl4nhj4tRr4gIPj5AfKgkiJmGQDaq+fQnRJTYlcBjbX3wbciGmpoPf8DREufuPRe1tNMZnGdanA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.38.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/eslint-plugin@8.46.2': resolution: {integrity: sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2096,13 +2301,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.38.0': - resolution: {integrity: sha512-Zhy8HCvBUEfBECzIl1PKqF4p11+d0aUJS1GeUiuqK9WmOug8YCmC4h4bjyBvMyAMI9sbRczmrYL5lKg/YMbrcQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.46.2': resolution: {integrity: sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2142,13 +2340,6 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.38.0': - resolution: {integrity: sha512-c7jAvGEZVf0ao2z+nnz8BUaHZD09Agbh+DY7qvBQqLiz8uJzRgVPj5YvOh8I8uEiH8oIUGIfHzMwUcGVco/SJg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.46.2': resolution: {integrity: sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2176,13 +2367,6 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.38.0': - resolution: {integrity: sha512-hHcMA86Hgt+ijJlrD8fX0j1j8w4C92zue/8LOPAFioIno+W0+L7KqE8QZKCcPGc/92Vs9x36w/4MPTJhqXdyvg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.46.2': resolution: {integrity: sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2272,23 +2456,6 @@ packages: '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} - '@vue/eslint-config-prettier@10.2.0': - resolution: {integrity: sha512-GL3YBLwv/+b86yHcNNfPJxOTtVFJ4Mbc9UU3zR+KVoG7SwGTjPT+32fXamscNumElhcpXW3mT0DgzS9w32S7Bw==} - peerDependencies: - eslint: '>= 8.21.0' - prettier: '>= 3.0.0' - - '@vue/eslint-config-typescript@14.6.0': - resolution: {integrity: sha512-UpiRY/7go4Yps4mYCjkvlIbVWmn9YvPGQDxTAlcKLphyaD77LjIu3plH4Y9zNT0GB4f3K5tMmhhtRhPOgrQ/bQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^9.10.0 - eslint-plugin-vue: ^9.28.0 || ^10.0.0 - typescript: '>=4.8.4' - peerDependenciesMeta: - typescript: - optional: true - '@vue/reactivity@3.5.18': resolution: {integrity: sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg==} @@ -2637,9 +2804,6 @@ packages: bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - bplist-parser@0.2.0: resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} engines: {node: '>= 5.10.0'} @@ -3343,36 +3507,10 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-prettier@10.1.5: - resolution: {integrity: sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - eslint-plugin-prettier-vue@5.0.0: resolution: {integrity: sha512-VsWmk/fftpjHBM7QFci0jZDLsc6Fh7jhenDHJ7Mbd/V0EMolcbezJRhtidE//3Liy5vEaVeX+U3skCQduWlmGA==} engines: {node: '>=16'} - eslint-plugin-prettier@5.4.0: - resolution: {integrity: sha512-BvQOvUhkVQM1i63iMETK9Hjud9QhqBnbtT1Zc642p9ynzBuCe5pybkOnvqZIBypXmMlsGcnU4HZ8sCTPfpAexA==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true - eslint-plugin-simple-import-sort@12.1.1: resolution: {integrity: sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==} peerDependencies: @@ -3387,36 +3525,14 @@ packages: '@typescript-eslint/eslint-plugin': optional: true - eslint-plugin-vue@10.8.0: - resolution: {integrity: sha512-f1J/tcbnrpgC8suPN5AtdJ5MQjuXbSU9pGRSSYAuF3SHoiYCOdEX6O22pLaRyLHXvDcOe+O5ENgc1owQ587agA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - '@typescript-eslint/parser': ^7.0.0 || ^8.0.0 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - vue-eslint-parser: ^10.0.0 - peerDependenciesMeta: - '@stylistic/eslint-plugin': - optional: true - '@typescript-eslint/parser': - optional: true - eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-scope@8.3.0: - resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-visitor-keys@4.2.1: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3431,10 +3547,6 @@ packages: resolution: {integrity: sha512-acMtooReAQGzLU0zcuEDHa8S62meh5aIyi8jboYxyvAePdmuWx2Mpwmt0xjwO0bs9/SXf+dvXJ0QJoDWw814Iw==} hasBin: true - espree@10.3.0: - resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3448,10 +3560,6 @@ packages: resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -4933,9 +5041,6 @@ packages: resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - number-is-nan@1.0.1: resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} engines: {node: '>=0.10.0'} @@ -5017,6 +5122,21 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} + oxfmt@0.42.0: + resolution: {integrity: sha512-QhejGErLSMReNuZ6vxgFHDyGoPbjTRNi6uGHjy0cvIjOQFqD6xmr/T+3L41ixR3NIgzcNiJ6ylQKpvShTgDfqg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + + oxlint@1.57.0: + resolution: {integrity: sha512-DGFsuBX5MFZX9yiDdtKjTrYPq45CZ8Fft6qCltJITYZxfwYjVdGf/6wycGYTACloauwIPxUnYhBVeZbHvleGhw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + oxlint-tsgolint: '>=0.15.0' + peerDependenciesMeta: + oxlint-tsgolint: + optional: true + p-cancelable@0.3.0: resolution: {integrity: sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==} engines: {node: '>=4'} @@ -5202,10 +5322,6 @@ packages: resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} engines: {node: '>=4'} - postcss-selector-parser@7.1.1: - resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} - engines: {node: '>=4'} - postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -5846,10 +5962,6 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - synckit@0.11.6: - resolution: {integrity: sha512-2pR2ubZSV64f/vqm9eLPz/KOvR9Dm+Co/5ChLgeHl0yEDRc6h5hXHoxEQH8Y5Ljycozd3p1k5TTSVdzYGkPvLw==} - engines: {node: ^14.18.0 || >=16.0.0} - synckit@0.8.5: resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} engines: {node: ^14.18.0 || >=16.0.0} @@ -5907,6 +6019,10 @@ packages: resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} engines: {node: ^18.0.0 || >=20.0.0} + tinypool@2.1.0: + resolution: {integrity: sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==} + engines: {node: ^20.0.0 || >=22.0.0} + tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} @@ -6018,13 +6134,6 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.38.0: - resolution: {integrity: sha512-FsZlrYK6bPDGoLeZRuvx2v6qrM03I0U0SnfCLPs/XCCPCFD80xU9Pg09H/K+XFa68uJuZo7l/Xhs+eDRg2l3hg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -6314,12 +6423,6 @@ packages: '@vue/composition-api': optional: true - vue-eslint-parser@10.2.0: - resolution: {integrity: sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - vue-i18n@11.1.11: resolution: {integrity: sha512-LvyteQoXeQiuILbzqv13LbyBna/TEv2Ha+4ZWK2AwGHUzZ8+IBaZS0TJkCgn5izSPLcgZwXy9yyTrewCb2u/MA==} engines: {node: '>= 16'} @@ -6484,10 +6587,6 @@ packages: xml-name-validator@2.0.1: resolution: {integrity: sha512-jRKe/iQYMyVJpzPH+3HL97Lgu5HrCfii+qSo+TfjKHtOnvbnvdVfMYrn9Q34YV81M2e5sviJlI6Ko9y+nByzvA==} - xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - y18n@3.2.2: resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==} @@ -7553,7 +7652,8 @@ snapshots: eslint: 8.57.1 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.12.1': {} + '@eslint-community/regexpp@4.12.1': + optional: true '@eslint-community/regexpp@4.6.2': {} @@ -7872,6 +7972,120 @@ snapshots: '@oxc-project/types@0.120.0': {} + '@oxfmt/binding-android-arm-eabi@0.42.0': + optional: true + + '@oxfmt/binding-android-arm64@0.42.0': + optional: true + + '@oxfmt/binding-darwin-arm64@0.42.0': + optional: true + + '@oxfmt/binding-darwin-x64@0.42.0': + optional: true + + '@oxfmt/binding-freebsd-x64@0.42.0': + optional: true + + '@oxfmt/binding-linux-arm-gnueabihf@0.42.0': + optional: true + + '@oxfmt/binding-linux-arm-musleabihf@0.42.0': + optional: true + + '@oxfmt/binding-linux-arm64-gnu@0.42.0': + optional: true + + '@oxfmt/binding-linux-arm64-musl@0.42.0': + optional: true + + '@oxfmt/binding-linux-ppc64-gnu@0.42.0': + optional: true + + '@oxfmt/binding-linux-riscv64-gnu@0.42.0': + optional: true + + '@oxfmt/binding-linux-riscv64-musl@0.42.0': + optional: true + + '@oxfmt/binding-linux-s390x-gnu@0.42.0': + optional: true + + '@oxfmt/binding-linux-x64-gnu@0.42.0': + optional: true + + '@oxfmt/binding-linux-x64-musl@0.42.0': + optional: true + + '@oxfmt/binding-openharmony-arm64@0.42.0': + optional: true + + '@oxfmt/binding-win32-arm64-msvc@0.42.0': + optional: true + + '@oxfmt/binding-win32-ia32-msvc@0.42.0': + optional: true + + '@oxfmt/binding-win32-x64-msvc@0.42.0': + optional: true + + '@oxlint/binding-android-arm-eabi@1.57.0': + optional: true + + '@oxlint/binding-android-arm64@1.57.0': + optional: true + + '@oxlint/binding-darwin-arm64@1.57.0': + optional: true + + '@oxlint/binding-darwin-x64@1.57.0': + optional: true + + '@oxlint/binding-freebsd-x64@1.57.0': + optional: true + + '@oxlint/binding-linux-arm-gnueabihf@1.57.0': + optional: true + + '@oxlint/binding-linux-arm-musleabihf@1.57.0': + optional: true + + '@oxlint/binding-linux-arm64-gnu@1.57.0': + optional: true + + '@oxlint/binding-linux-arm64-musl@1.57.0': + optional: true + + '@oxlint/binding-linux-ppc64-gnu@1.57.0': + optional: true + + '@oxlint/binding-linux-riscv64-gnu@1.57.0': + optional: true + + '@oxlint/binding-linux-riscv64-musl@1.57.0': + optional: true + + '@oxlint/binding-linux-s390x-gnu@1.57.0': + optional: true + + '@oxlint/binding-linux-x64-gnu@1.57.0': + optional: true + + '@oxlint/binding-linux-x64-musl@1.57.0': + optional: true + + '@oxlint/binding-openharmony-arm64@1.57.0': + optional: true + + '@oxlint/binding-win32-arm64-msvc@1.57.0': + optional: true + + '@oxlint/binding-win32-ia32-msvc@1.57.0': + optional: true + + '@oxlint/binding-win32-x64-msvc@1.57.0': + optional: true + '@parcel/watcher-android-arm64@2.5.0': optional: true @@ -7933,8 +8147,6 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.0 optional: true - '@pkgr/core@0.2.4': {} - '@pkgr/utils@2.4.2': dependencies: cross-spawn: 7.0.3 @@ -8115,8 +8327,6 @@ snapshots: '@rrweb/utils@2.0.0-alpha.20': {} - '@rushstack/eslint-patch@1.14.1': {} - '@surma/rollup-plugin-off-main-thread@2.2.3': dependencies: ejs: 3.1.10 @@ -8348,12 +8558,6 @@ snapshots: '@types/deep-eql@4.0.2': {} - '@types/eslint@8.44.0': - dependencies: - '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 - optional: true - '@types/estree@0.0.39': {} '@types/estree@1.0.7': {} @@ -8364,9 +8568,6 @@ snapshots: '@types/geojson@7946.0.16': {} - '@types/json-schema@7.0.15': - optional: true - '@types/linkify-it@5.0.0': {} '@types/markdown-it@14.1.2': @@ -8431,23 +8632,6 @@ snapshots: '@types/web-bluetooth@0.0.21': {} - '@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.38.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.38.0 - '@typescript-eslint/type-utils': 8.38.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/utils': 8.38.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.38.0 - eslint: 8.57.1 - graphemer: 1.4.0 - ignore: 7.0.4 - natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/eslint-plugin@8.46.2(@typescript-eslint/parser@8.46.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 @@ -8464,18 +8648,7 @@ snapshots: typescript: 5.9.3 transitivePeerDependencies: - supports-color - - '@typescript-eslint/parser@8.38.0(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.38.0 - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.38.0 - debug: 4.4.1 - eslint: 8.57.1 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + optional: true '@typescript-eslint/parser@8.46.2(eslint@8.57.1)(typescript@5.9.3)': dependencies: @@ -8488,6 +8661,7 @@ snapshots: typescript: 5.9.3 transitivePeerDependencies: - supports-color + optional: true '@typescript-eslint/project-service@8.38.0(typescript@5.9.3)': dependencies: @@ -8506,6 +8680,7 @@ snapshots: typescript: 5.9.3 transitivePeerDependencies: - supports-color + optional: true '@typescript-eslint/scope-manager@8.38.0': dependencies: @@ -8516,6 +8691,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.46.2 '@typescript-eslint/visitor-keys': 8.46.2 + optional: true '@typescript-eslint/tsconfig-utils@8.38.0(typescript@5.9.3)': dependencies: @@ -8524,18 +8700,7 @@ snapshots: '@typescript-eslint/tsconfig-utils@8.46.2(typescript@5.9.3)': dependencies: typescript: 5.9.3 - - '@typescript-eslint/type-utils@8.38.0(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.38.0(eslint@8.57.1)(typescript@5.9.3) - debug: 4.4.3 - eslint: 8.57.1 - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + optional: true '@typescript-eslint/type-utils@8.46.2(eslint@8.57.1)(typescript@5.9.3)': dependencies: @@ -8548,10 +8713,12 @@ snapshots: typescript: 5.9.3 transitivePeerDependencies: - supports-color + optional: true '@typescript-eslint/types@8.38.0': {} - '@typescript-eslint/types@8.46.2': {} + '@typescript-eslint/types@8.46.2': + optional: true '@typescript-eslint/typescript-estree@8.38.0(typescript@5.9.3)': dependencies: @@ -8584,17 +8751,7 @@ snapshots: typescript: 5.9.3 transitivePeerDependencies: - supports-color - - '@typescript-eslint/utils@8.38.0(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.38.0 - '@typescript-eslint/types': 8.38.0 - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.3) - eslint: 8.57.1 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + optional: true '@typescript-eslint/utils@8.46.2(eslint@8.57.1)(typescript@5.9.3)': dependencies: @@ -8606,6 +8763,7 @@ snapshots: typescript: 5.9.3 transitivePeerDependencies: - supports-color + optional: true '@typescript-eslint/visitor-keys@8.38.0': dependencies: @@ -8616,6 +8774,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.46.2 eslint-visitor-keys: 4.2.1 + optional: true '@ungap/structured-clone@1.2.0': {} @@ -8741,28 +8900,6 @@ snapshots: '@vue/devtools-api@6.6.4': {} - '@vue/eslint-config-prettier@10.2.0(@types/eslint@8.44.0)(eslint@8.57.1)(prettier@3.8.1)': - dependencies: - eslint: 8.57.1 - eslint-config-prettier: 10.1.5(eslint@8.57.1) - eslint-plugin-prettier: 5.4.0(@types/eslint@8.44.0)(eslint-config-prettier@10.1.5(eslint@8.57.1))(eslint@8.57.1)(prettier@3.8.1) - prettier: 3.8.1 - transitivePeerDependencies: - - '@types/eslint' - - '@vue/eslint-config-typescript@14.6.0(eslint-plugin-vue@10.8.0(@typescript-eslint/parser@8.46.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(vue-eslint-parser@10.2.0(eslint@8.57.1)))(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@typescript-eslint/utils': 8.38.0(eslint@8.57.1)(typescript@5.9.3) - eslint: 8.57.1 - eslint-plugin-vue: 10.8.0(@typescript-eslint/parser@8.46.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(vue-eslint-parser@10.2.0(eslint@8.57.1)) - fast-glob: 3.3.3 - typescript-eslint: 8.38.0(eslint@8.57.1)(typescript@5.9.3) - vue-eslint-parser: 10.2.0(eslint@8.57.1) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@vue/reactivity@3.5.18': dependencies: '@vue/shared': 3.5.18 @@ -8839,10 +8976,6 @@ snapshots: dependencies: acorn: 8.11.3 - acorn-jsx@5.3.2(acorn@8.14.0): - dependencies: - acorn: 8.14.0 - acorn@4.0.13: {} acorn@8.11.3: {} @@ -9176,8 +9309,6 @@ snapshots: file-uri-to-path: 1.0.0 optional: true - boolbase@1.0.0: {} - bplist-parser@0.2.0: dependencies: big-integer: 1.6.51 @@ -9995,14 +10126,6 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-prettier@10.1.5(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - - eslint-config-prettier@9.1.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-plugin-prettier-vue@5.0.0: dependencies: '@vue/compiler-sfc': 3.5.28 @@ -10011,16 +10134,6 @@ snapshots: prettier-linter-helpers: 1.0.0 synckit: 0.8.5 - eslint-plugin-prettier@5.4.0(@types/eslint@8.44.0)(eslint-config-prettier@10.1.5(eslint@8.57.1))(eslint@8.57.1)(prettier@3.8.1): - dependencies: - eslint: 8.57.1 - prettier: 3.8.1 - prettier-linter-helpers: 1.0.0 - synckit: 0.11.6 - optionalDependencies: - '@types/eslint': 8.44.0 - eslint-config-prettier: 10.1.5(eslint@8.57.1) - eslint-plugin-simple-import-sort@12.1.1(eslint@8.57.1): dependencies: eslint: 8.57.1 @@ -10031,33 +10144,13 @@ snapshots: optionalDependencies: '@typescript-eslint/eslint-plugin': 8.46.2(@typescript-eslint/parser@8.46.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - eslint-plugin-vue@10.8.0(@typescript-eslint/parser@8.46.2(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(vue-eslint-parser@10.2.0(eslint@8.57.1)): - dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1) - eslint: 8.57.1 - natural-compare: 1.4.0 - nth-check: 2.1.1 - postcss-selector-parser: 7.1.1 - semver: 7.6.3 - vue-eslint-parser: 10.2.0(eslint@8.57.1) - xml-name-validator: 4.0.0 - optionalDependencies: - '@typescript-eslint/parser': 8.46.2(eslint@8.57.1)(typescript@5.9.3) - eslint-scope@7.2.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-scope@8.3.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.0: {} - eslint-visitor-keys@4.2.1: {} eslint@8.57.1: @@ -10107,12 +10200,6 @@ snapshots: dependencies: tsx: 4.20.3 - espree@10.3.0: - dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 4.2.0 - espree@9.6.1: dependencies: acorn: 8.11.3 @@ -10125,10 +10212,6 @@ snapshots: dependencies: estraverse: 5.3.0 - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - esrecurse@4.3.0: dependencies: estraverse: 5.3.0 @@ -10631,7 +10714,8 @@ snapshots: ignore@5.2.4: {} - ignore@7.0.4: {} + ignore@7.0.4: + optional: true immutable@5.1.5: {} @@ -11742,10 +11826,6 @@ snapshots: dependencies: path-key: 4.0.0 - nth-check@2.1.1: - dependencies: - boolbase: 1.0.0 - number-is-nan@1.0.1: {} nwmatcher@1.4.4: {} @@ -11839,6 +11919,52 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 + oxfmt@0.42.0: + dependencies: + tinypool: 2.1.0 + optionalDependencies: + '@oxfmt/binding-android-arm-eabi': 0.42.0 + '@oxfmt/binding-android-arm64': 0.42.0 + '@oxfmt/binding-darwin-arm64': 0.42.0 + '@oxfmt/binding-darwin-x64': 0.42.0 + '@oxfmt/binding-freebsd-x64': 0.42.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.42.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.42.0 + '@oxfmt/binding-linux-arm64-gnu': 0.42.0 + '@oxfmt/binding-linux-arm64-musl': 0.42.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.42.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.42.0 + '@oxfmt/binding-linux-riscv64-musl': 0.42.0 + '@oxfmt/binding-linux-s390x-gnu': 0.42.0 + '@oxfmt/binding-linux-x64-gnu': 0.42.0 + '@oxfmt/binding-linux-x64-musl': 0.42.0 + '@oxfmt/binding-openharmony-arm64': 0.42.0 + '@oxfmt/binding-win32-arm64-msvc': 0.42.0 + '@oxfmt/binding-win32-ia32-msvc': 0.42.0 + '@oxfmt/binding-win32-x64-msvc': 0.42.0 + + oxlint@1.57.0: + optionalDependencies: + '@oxlint/binding-android-arm-eabi': 1.57.0 + '@oxlint/binding-android-arm64': 1.57.0 + '@oxlint/binding-darwin-arm64': 1.57.0 + '@oxlint/binding-darwin-x64': 1.57.0 + '@oxlint/binding-freebsd-x64': 1.57.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.57.0 + '@oxlint/binding-linux-arm-musleabihf': 1.57.0 + '@oxlint/binding-linux-arm64-gnu': 1.57.0 + '@oxlint/binding-linux-arm64-musl': 1.57.0 + '@oxlint/binding-linux-ppc64-gnu': 1.57.0 + '@oxlint/binding-linux-riscv64-gnu': 1.57.0 + '@oxlint/binding-linux-riscv64-musl': 1.57.0 + '@oxlint/binding-linux-s390x-gnu': 1.57.0 + '@oxlint/binding-linux-x64-gnu': 1.57.0 + '@oxlint/binding-linux-x64-musl': 1.57.0 + '@oxlint/binding-openharmony-arm64': 1.57.0 + '@oxlint/binding-win32-arm64-msvc': 1.57.0 + '@oxlint/binding-win32-ia32-msvc': 1.57.0 + '@oxlint/binding-win32-x64-msvc': 1.57.0 + p-cancelable@0.3.0: {} p-finally@1.0.0: {} @@ -11989,11 +12115,6 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@7.1.1: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - postcss-value-parser@4.2.0: {} postcss@8.5.6: @@ -12775,10 +12896,6 @@ snapshots: symbol-tree@3.2.4: {} - synckit@0.11.6: - dependencies: - '@pkgr/core': 0.2.4 - synckit@0.8.5: dependencies: '@pkgr/utils': 2.4.2 @@ -12836,6 +12953,8 @@ snapshots: tinypool@1.1.1: {} + tinypool@2.1.0: {} + tinyrainbow@2.0.0: {} tinyspy@4.0.3: {} @@ -12949,17 +13068,6 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.38.0(eslint@8.57.1)(typescript@5.9.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/parser': 8.38.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.38.0(eslint@8.57.1)(typescript@5.9.3) - eslint: 8.57.1 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - typescript@5.9.3: {} uc.micro@2.1.0: {} @@ -13209,18 +13317,6 @@ snapshots: dependencies: vue: 3.5.18(typescript@5.9.3) - vue-eslint-parser@10.2.0(eslint@8.57.1): - dependencies: - debug: 4.4.1 - eslint: 8.57.1 - eslint-scope: 8.3.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 - esquery: 1.6.0 - semver: 7.6.3 - transitivePeerDependencies: - - supports-color - vue-i18n@11.1.11(vue@3.5.18(typescript@5.9.3)): dependencies: '@intlify/core-base': 11.1.11 @@ -13476,8 +13572,6 @@ snapshots: xml-name-validator@2.0.1: {} - xml-name-validator@4.0.0: {} - y18n@3.2.2: {} yallist@2.1.2: {} diff --git a/postcss.config.js b/postcss.config.js index bd887d4..586b12c 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,3 +1,3 @@ module.exports = { - plugins: { "@tailwindcss/postcss": {}, autoprefixer: {} }, + plugins: { "@tailwindcss/postcss": {}, autoprefixer: {} } } diff --git a/public/client-metadata.json b/public/client-metadata.json index 76718e8..b495432 100644 --- a/public/client-metadata.json +++ b/public/client-metadata.json @@ -2,9 +2,7 @@ "client_id": "https://remanso.space/client-metadata.json", "client_name": "Remanso", "client_uri": "https://remanso.space", - "redirect_uris": [ - "https://remanso.space/" - ], + "redirect_uris": ["https://remanso.space/"], "scope": "atproto transition:generic", "grant_types": ["authorization_code", "refresh_token"], "response_types": ["code"], diff --git a/pwa-assets.config.ts b/pwa-assets.config.ts index 440aa7a..d661d2a 100644 --- a/pwa-assets.config.ts +++ b/pwa-assets.config.ts @@ -1,9 +1,9 @@ import { defineConfig, - minimal2023Preset as preset, + minimal2023Preset as preset } from "@vite-pwa/assets-generator/config" export default defineConfig({ preset, - images: ["public/favicon.png"], + images: ["public/favicon.png"] }) diff --git a/skills-lock.json b/skills-lock.json new file mode 100644 index 0000000..c705162 --- /dev/null +++ b/skills-lock.json @@ -0,0 +1,10 @@ +{ + "version": 1, + "skills": { + "migrate-oxlint": { + "source": "oxc-project/oxc", + "sourceType": "github", + "computedHash": "80ce5201b1ef52d6cabe553a4cacfd6e1db97bad99618216b9cf9318d11d7e64" + } + } +} diff --git a/src/analytics/openpanel.ts b/src/analytics/openpanel.ts index 241f100..2470997 100644 --- a/src/analytics/openpanel.ts +++ b/src/analytics/openpanel.ts @@ -5,5 +5,5 @@ export const op = new OpenPanel({ clientId: "038a6aac-19bb-4a7f-9aae-2d0201fead5b", trackScreenViews: true, trackOutgoingLinks: true, - trackAttributes: true, + trackAttributes: true }) diff --git a/src/bus/backlinkEventBus.ts b/src/bus/backlinkEventBus.ts index 94b1133..6de6873 100644 --- a/src/bus/backlinkEventBus.ts +++ b/src/bus/backlinkEventBus.ts @@ -1,4 +1,4 @@ -import { createEventBus } from 'retrobus' +import { createEventBus } from "retrobus" interface EventBusParams { fileSha: string diff --git a/src/bus/noteEventBus.ts b/src/bus/noteEventBus.ts index 0cd507a..62698a4 100644 --- a/src/bus/noteEventBus.ts +++ b/src/bus/noteEventBus.ts @@ -1,4 +1,4 @@ -import { createEventBus } from 'retrobus' +import { createEventBus } from "retrobus" interface EventBusParams { user: string diff --git a/src/components/AuthorizeUser.vue b/src/components/AuthorizeUser.vue index f46a861..2aed7f0 100644 --- a/src/components/AuthorizeUser.vue +++ b/src/components/AuthorizeUser.vue @@ -1,9 +1,9 @@ diff --git a/src/components/BackButton.vue b/src/components/BackButton.vue index d8e3471..22a385f 100644 --- a/src/components/BackButton.vue +++ b/src/components/BackButton.vue @@ -1,9 +1,9 @@ diff --git a/src/components/GoBack.vue b/src/components/GoBack.vue index 507b691..2ed98c5 100644 --- a/src/components/GoBack.vue +++ b/src/components/GoBack.vue @@ -1,11 +1,11 @@ diff --git a/src/components/LoginGithub.vue b/src/components/LoginGithub.vue index 7fb0371..3ab8551 100644 --- a/src/components/LoginGithub.vue +++ b/src/components/LoginGithub.vue @@ -1,8 +1,8 @@