From 8dc75d8fe6e64e70a4fb91d2a3b4be324dab76cc Mon Sep 17 00:00:00 2001 From: Jeff Jacobson Date: Mon, 30 Sep 2024 12:37:03 -0700 Subject: [PATCH] Update (#29) * build: Migrated from npm to bun * build: :arrow_up: upgrade dependencies * Updated ArcGIS version number in CSS * chore: :truck: Renamed eslint config file * chore: :wrench: Updated eslint & prettier configs chore: :wrench: Updated eslint config to modern flat format * chore: :fire: Removed gh-pages deployment script & dependency Deploying via GitHub actions is now recommended over using the gh-pages tool. * style: Ran prettier to format files * style: :rotating_light: Fix linter warnings --- .eslintrc.cjs | 26 - .gitattributes | 347 +++ .gitignore | 4 +- .prettierignore | 5 +- .prettierrc.js | 9 + .vscode/settings.json | 4 + .vscode/tasks.json | 146 +- README.md | 12 +- bun.lockb | Bin 0 -> 162070 bytes bunfig.toml | 0 cspell.json | 47 +- eslint.config.js | 66 + index.html | 17 +- package-lock.json | 3917 ----------------------------- package.json | 39 +- src/arcgis/featureServiceQuery.ts | 30 +- src/arcgis/field-aliases.json | 8 +- src/arcgis/identify.ts | 14 +- src/arcgis/layer-defs.json | 32 +- src/arcgis/typesAndInterfaces.ts | 27 +- {tools => src}/github-utils.mts | 29 +- src/index.css | 12 +- src/main.ts | 2 +- src/utils/Github-Link.ts | 29 +- src/utils/LatLng.ts | 2 +- src/utils/NotImplementedError.ts | 8 +- src/utils/geohack.ts | 3 +- src/widgets/expandGroups.ts | 41 +- src/widgets/setupSearch.ts | 2 +- tools/deploy.mts | 21 - tools/tsconfig.json | 9 - vite.config.ts | 32 +- 32 files changed, 706 insertions(+), 4234 deletions(-) delete mode 100644 .eslintrc.cjs create mode 100644 .gitattributes create mode 100644 .prettierrc.js create mode 100644 .vscode/settings.json create mode 100644 bun.lockb create mode 100644 bunfig.toml create mode 100644 eslint.config.js delete mode 100644 package-lock.json rename {tools => src}/github-utils.mts (80%) delete mode 100644 tools/deploy.mts delete mode 100644 tools/tsconfig.json diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index 8af734d..0000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,26 +0,0 @@ -/* eslint-env node */ - -/** - * @type {import("eslint").ESLint.ConfigData} - */ -module.exports = { - extends: [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:@typescript-eslint/recommended-type-checked", - "prettier", - ], - ignorePatterns: ["*.cjs", "*.js", "*.d.ts", "vite.config.ts", "*.test.ts"], - parser: "@typescript-eslint/parser", - parserOptions: { - tsconfigRootDir: __dirname, - project: ["./tsconfig.json", "./tools/tsconfig.json"], - }, - plugins: ["@typescript-eslint"], - root: true, - rules: { - "require-await": "error", - "no-return-await": "warn", - }, - }; - \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..3323939 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,347 @@ +# Common settings that generally should always be used with your language specific settings + +# Auto detect text files and perform LF normalization +* text=auto + +# +# The above will handle all files NOT found below +# + +# Documents +*.bibtex text diff=bibtex +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain +*.md text diff=markdown +*.mdx text diff=markdown +*.tex text diff=tex +*.adoc text +*.textile text +*.mustache text +*.csv text eol=crlf +*.tab text +*.tsv text +*.txt text +*.sql text +*.epub diff=astextplain + +# Graphics +*.png binary +*.jpg binary +*.jpeg binary +*.gif binary +*.tif binary +*.tiff binary +*.ico binary +# SVG treated as text by default. +*.svg text +# If you want to treat it as binary, +# use the following line instead. +# *.svg binary +*.eps binary + +# Scripts +*.bash text eol=lf +*.fish text eol=lf +*.ksh text eol=lf +*.sh text eol=lf +*.zsh text eol=lf +# These are explicitly windows files and should use crlf +*.bat text eol=crlf +*.cmd text eol=crlf +*.ps1 text eol=crlf + +# Serialisation +*.json text +*.toml text +*.xml text +*.yaml text +*.yml text + +# Archives +*.7z binary +*.bz binary +*.bz2 binary +*.bzip2 binary +*.gz binary +*.lz binary +*.lzma binary +*.rar binary +*.tar binary +*.taz binary +*.tbz binary +*.tbz2 binary +*.tgz binary +*.tlz binary +*.txz binary +*.xz binary +*.Z binary +*.zip binary +*.zst binary + +# Text files where line endings should be preserved +*.patch -text + +# +# Exclude files from exporting +# + +.gitattributes export-ignore +.gitignore export-ignore +.gitkeep export-ignore + +# Apply override to all files in the directory +*.md linguist-detectable + + +# Basic .gitattributes for a Microsoft Shell repo. + +# Source files +# ============ +*.msh text eol=crlf +*.msh1 text eol=crlf +*.msh2 text eol=crlf +*.mshxml text eol=crlf +*.msh1xml text eol=crlf +*.msh2xml text eol=crlf +*.mcf text eol=crlf + +# Basic .gitattributes for a PowerShell repo. + +# Source files +# ============ +*.ps1 text eol=crlf +*.ps1x text eol=crlf +*.psm1 text eol=crlf +*.psd1 text eol=crlf +*.ps1xml text eol=crlf +*.pssc text eol=crlf +*.psrc text eol=crlf +*.cdxml text eol=crlf + +## GITATTRIBUTES FOR WEB PROJECTS +# +# These settings are for any web project. +# +# Details per file setting: +# text These files should be normalized (i.e. convert CRLF to LF). +# binary These files are binary and should be left untouched. +# +# Note that binary is a macro for -text -diff. +###################################################################### + +# Auto detect +## Handle line endings automatically for files detected as +## text and leave all files detected as binary untouched. +## This will handle all files NOT defined below. +* text=auto + +# Source code +*.bash text eol=lf +*.bat text eol=crlf +*.cmd text eol=crlf +*.coffee text +*.css text diff=css +*.htm text diff=html +*.html text diff=html +*.inc text +*.ini text +*.js text +*.mjs text +*.cjs text +*.json text +*.jsx text +*.less text +*.ls text +*.map text -diff +*.od text +*.onlydata text +*.php text diff=php +*.pl text +*.ps1 text eol=crlf +*.py text diff=python +*.rb text diff=ruby +*.sass text +*.scm text +*.scss text diff=css +*.sh text eol=lf +.husky/* text eol=lf +*.sql text +*.styl text +*.tag text +*.ts text +*.tsx text +*.xml text +*.xhtml text diff=html + +# Docker +Dockerfile text + +# Documentation +*.ipynb text eol=lf +*.markdown text diff=markdown +*.md text diff=markdown +*.mdwn text diff=markdown +*.mdown text diff=markdown +*.mkd text diff=markdown +*.mkdn text diff=markdown +*.mdtxt text +*.mdtext text +*.txt text +AUTHORS text +CHANGELOG text +CHANGES text +CONTRIBUTING text +COPYING text +copyright text +*COPYRIGHT* text +INSTALL text +license text +LICENSE text +NEWS text +readme text +*README* text +TODO text + +# Templates +*.dot text +*.ejs text +*.erb text +*.haml text +*.handlebars text +*.hbs text +*.hbt text +*.jade text +*.latte text +*.mustache text +*.njk text +*.phtml text +*.svelte text +*.tmpl text +*.tpl text +*.twig text +*.vue text + +# Configs +*.cnf text +*.conf text +*.config text +.editorconfig text +.env text +.gitattributes text +.gitconfig text +.htaccess text +*.lock text -diff +package.json text eol=lf +package-lock.json text eol=lf -diff +pnpm-lock.yaml text eol=lf -diff +.prettierrc text +yarn.lock text -diff +*.toml text +*.yaml text +*.yml text +browserslist text +Makefile text +makefile text +# Fixes syntax highlighting on GitHub to allow comments +tsconfig.json linguist-language=JSON-with-Comments + +# Heroku +Procfile text + +# Graphics +*.ai binary +*.bmp binary +*.eps binary +*.gif binary +*.gifv binary +*.ico binary +*.jng binary +*.jp2 binary +*.jpg binary +*.jpeg binary +*.jpx binary +*.jxr binary +*.pdf binary +*.png binary +*.psb binary +*.psd binary +# SVG treated as an asset (binary) by default. +*.svg text +# If you want to treat it as binary, +# use the following line instead. +# *.svg binary +*.svgz binary +*.tif binary +*.tiff binary +*.wbmp binary +*.webp binary + +# Audio +*.kar binary +*.m4a binary +*.mid binary +*.midi binary +*.mp3 binary +*.ogg binary +*.ra binary + +# Video +*.3gpp binary +*.3gp binary +*.as binary +*.asf binary +*.asx binary +*.avi binary +*.fla binary +*.flv binary +*.m4v binary +*.mng binary +*.mov binary +*.mp4 binary +*.mpeg binary +*.mpg binary +*.ogv binary +*.swc binary +*.swf binary +*.webm binary + +# Archives +*.7z binary +*.gz binary +*.jar binary +*.rar binary +*.tar binary +*.zip binary + +# Fonts +*.ttf binary +*.eot binary +*.otf binary +*.woff binary +*.woff2 binary + +# Executables +*.exe binary +*.pyc binary +# Prevents massive diffs caused by vendored, minified files +**/.yarn/releases/** binary +**/.yarn/plugins/** binary + +# RC files (like .babelrc or .eslintrc) +*.*rc text + +# Ignore files (like .npmignore or .gitignore) +*.*ignore text + +# Prevents massive diffs from built files +dist/* binary + +*.lockb binary diff=lockb diff --git a/.gitignore b/.gitignore index be3dbd8..c48a591 100644 --- a/.gitignore +++ b/.gitignore @@ -192,4 +192,6 @@ $RECYCLE.BIN/ # Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option) deleteme* -*.mjs \ No newline at end of file +*.mjs + +.gitattributes.new \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index e383372..fa1fea8 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,4 +1,7 @@ package.json package-lock.json +*.lockb .prettierignore -.eslintrc.json \ No newline at end of file +.eslintrc.json +tsconfig.json +tsconfig.*.json diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..0b6f3c7 --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,9 @@ +// prettier.config.js, .prettierrc.js, prettier.config.mjs, or .prettierrc.mjs + +/** @type {import("prettier").Config} */ +const config = { + plugins: ["@trivago/prettier-plugin-sort-imports"], + endOfLine: "auto", +}; + +export default config; diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..d954c6a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,4 @@ +{ + "eslint.useFlatConfig": true, + "eslint.useESLintClass": true +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 6e077c8..38ef955 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,78 +1,70 @@ { - "version": "2.0.0", - "tasks": [ - { - "type": "npm", - "script": "build", - "group": { - "kind": "build", - "isDefault": true - }, - "icon": { - "id": "tools", - "color": "terminal.ansiGreen" - }, - "problemMatcher": [ - "$tsc" - ], - "label": "Build", - "detail": "Builds the project for production" - }, - { - "type": "npm", - "script": "dev", - "problemMatcher": [ - "$tsc-watch" - ], - "icon": { - "id": "eye-watch", - "color": "terminal.ansiCyan" - }, - "group": "build", - "label": "Watch using Vite dev mode", - "detail": "vite" - }, - { - "type": "npm", - "script": "deploy", - "label": "Deploy", - "detail": "Deploys the page to GitHub Pages of this repository.", - "icon": { - "id": "github-inverted", - "color": "terminal.ansiRed" - }, - "problemMatcher": [], - "presentation": { - "echo": true, - "reveal": "always", - "focus": false, - "panel": "dedicated", - "showReuseMessage": true, - "clear": true - } - }, - { - "type": "npm", - "script": "preview", - "group": "build", - "icon": { - "id": "preview", - "color": "terminal.ansiGreen" - }, - "problemMatcher": [ - "$tsc" - ], - "label": "Preview production", - "detail": "Perform Vite production build and then preview it." - }, - { - "type": "npm", - "script": "lint:eslint", - "problemMatcher": [ - "$eslint-compact" - ], - "label": "npm: lint:eslint", - "detail": "eslint . --fix" - } - ] -} \ No newline at end of file + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "build", + "group": { + "kind": "build", + "isDefault": true + }, + "icon": { + "id": "tools", + "color": "terminal.ansiGreen" + }, + "problemMatcher": ["$tsc"], + "label": "Build", + "detail": "Builds the project for production" + }, + { + "type": "npm", + "script": "dev", + "problemMatcher": ["$tsc-watch"], + "icon": { + "id": "eye-watch", + "color": "terminal.ansiCyan" + }, + "group": "build", + "label": "Watch using Vite dev mode", + "detail": "vite" + }, + { + "type": "npm", + "script": "deploy", + "label": "Deploy", + "detail": "Deploys the page to GitHub Pages of this repository.", + "icon": { + "id": "github-inverted", + "color": "terminal.ansiRed" + }, + "problemMatcher": [], + "presentation": { + "echo": true, + "reveal": "always", + "focus": false, + "panel": "dedicated", + "showReuseMessage": true, + "clear": true + } + }, + { + "type": "npm", + "script": "preview", + "group": "build", + "icon": { + "id": "preview", + "color": "terminal.ansiGreen" + }, + "problemMatcher": ["$tsc"], + "label": "Preview production", + "detail": "Perform Vite production build and then preview it." + }, + { + "type": "npm", + "script": "lint:eslint", + "problemMatcher": ["$eslint-compact"], + "label": "npm: lint:eslint", + "detail": "eslint . --fix" + } + ] +} diff --git a/README.md b/README.md index aeab8b9..bb82291 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ This is a starter application for creating a single page map application using the [ArcGIS Maps SDK for JavaScript], which is built using [Vite] and [TypeScript]. -[Vite]:https://vitejs.dev/ -[TypeScript]:https://www.typescriptlang.org/ -[ArcGIS Maps SDK for JavaScript]:https://developers.arcgis.com/javascript/latest/ +[Vite]: https://vitejs.dev/ +[TypeScript]: https://www.typescriptlang.org/ +[ArcGIS Maps SDK for JavaScript]: https://developers.arcgis.com/javascript/latest/ ## Use @@ -19,9 +19,9 @@ More information about templates can be found in this [GitHub blog: Generate new 1. Clone this repository to your computer's hard drive. 2. Remove the remote repository - ```cmd - git remote remove origin - ``` + ```cmd + git remote remove origin + ``` 3. Update the information in the `package.json` file with your own project's information. 4. Add your remote using the `git remote` command. diff --git a/bun.lockb b/bun.lockb new file mode 100644 index 0000000000000000000000000000000000000000..bbcacf31db341f6c70fc1a35c90fcbd4c53e6cf5 GIT binary patch literal 162070 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 z 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 GfBy#ut*2%H literal 0 HcmV?d00001 diff --git a/bunfig.toml b/bunfig.toml new file mode 100644 index 0000000..e69de29 diff --git a/cspell.json b/cspell.json index 35f9660..a80dc27 100644 --- a/cspell.json +++ b/cspell.json @@ -1,28 +1,23 @@ { - "version": "0.2", - "allowCompoundWords": true, - "useGitignore": true, - "ignorePaths": [ - "**/tsconfig.json" - ], - "dictionaryDefinitions": [ - { - "name": "custom-dictionary", - "path": "./.cspell/custom-dictionary.txt", - "addWords": true - }, - { - "name": "field-names-dictionary", - "path": "./.cspell/field-names-dictionary.txt", - "addWords": true, - "description": "This dictionary is used for map service field names." - } - ], - "dictionaries": [ - "custom-dictionary", - "field-names-dictionary" - ], - "words": [], - "ignoreWords": [], - "import": [] + "version": "0.2", + "allowCompoundWords": true, + "useGitignore": true, + "ignorePaths": ["**/tsconfig.json"], + "dictionaryDefinitions": [ + { + "name": "custom-dictionary", + "path": "./.cspell/custom-dictionary.txt", + "addWords": true + }, + { + "name": "field-names-dictionary", + "path": "./.cspell/field-names-dictionary.txt", + "addWords": true, + "description": "This dictionary is used for map service field names." + } + ], + "dictionaries": ["custom-dictionary", "field-names-dictionary"], + "words": [], + "ignoreWords": [], + "import": [] } diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..884f544 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,66 @@ +// @ts-check +import eslint from "@eslint/js"; +import gitignore from "eslint-config-flat-gitignore"; +import eslintConfigPrettier from "eslint-config-prettier"; +import jsdoc from "eslint-plugin-jsdoc"; +import tseslint from "typescript-eslint"; + +export default tseslint.config( + gitignore({ + root: true, + }), + { + files: ["{src,tests,tools}/**/*.{ts,tsx,mts}"], + ignores: ["vite.config.ts"], + plugins: { + "@typescript-eslint": tseslint.plugin, + jsdoc, + }, + extends: [ + gitignore(), + eslint.configs.recommended, + ...tseslint.configs.strictTypeChecked, + ...tseslint.configs.stylisticTypeChecked, + jsdoc.configs["flat/recommended-typescript"], + eslintConfigPrettier, + ], + languageOptions: { + parserOptions: { + project: true, + tsconfigRootDir: import.meta.dirname, + }, + }, + rules: { + "jsdoc/require-jsdoc": [ + "warn", + { + enableFixer: false, + publicOnly: true, + }, + ], + "@typescript-eslint/no-unnecessary-condition": "warn", + "@typescript-eslint/restrict-template-expressions": [ + "error", + { + allowAny: false, + allowBoolean: true, + allowNullish: true, + allowNumber: true, + allowRegExp: true, + }, + ], + }, + }, + { + files: ["{src,tests,tools}/**/*.{js,jsx,mjs}"], + extends: [tseslint.configs.disableTypeChecked], + rules: { + // turn off other type-aware rules + "deprecation/deprecation": "off", + "@typescript-eslint/internal/no-poorly-typed-ts-props": "off", + + // turn off rules that don't apply to JS code + "@typescript-eslint/explicit-function-return-type": "off", + }, + }, +); diff --git a/index.html b/index.html index 1a29134..3309fee 100644 --- a/index.html +++ b/index.html @@ -1,13 +1,16 @@ - + - - - + + + 👷‍♂️Add your title here!👷‍♀️ -

- +
+ - \ No newline at end of file + diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 011a194..0000000 --- a/package-lock.json +++ /dev/null @@ -1,3917 +0,0 @@ -{ - "name": "arcgis-2d-spa-template", - "version": "0.0.2", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "arcgis-2d-spa-template", - "version": "0.0.2", - "license": "Unlicense", - "devDependencies": { - "@arcgis/core": "^4.27.6", - "@esri/arcgis-rest-request": "^4.2.0", - "@tsconfig/esm": "^1.0.4", - "@tsconfig/node-lts": "^18.12.3", - "@types/arcgis-rest-api": "^10.4.5", - "@types/gh-pages": "^3.2.1", - "@types/node": "^20.4.5", - "@typescript-eslint/eslint-plugin": "^6.2.1", - "@typescript-eslint/parser": "^6.2.1", - "cspell": "^6.31.2", - "eslint": "^8.46.0", - "eslint-config-prettier": "^8.9.0", - "gh-pages": "^5.0.0", - "prettier": "^3.0.0", - "typescript": "^5.1.6", - "vite": "^4.5.5" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@arcgis/core": { - "version": "4.27.6", - "resolved": "https://registry.npmjs.org/@arcgis/core/-/core-4.27.6.tgz", - "integrity": "sha512-Pdz8Y1hHpQm2LKkJUGNrag2o2pQ9Pe8KHjywWb+TOJcfqM8L2UQBLmtUGY26VmfMwT/FfnUfNJ7HhYzHi5ef0w==", - "dev": true, - "dependencies": { - "@esri/arcgis-html-sanitizer": "~3.0.1", - "@esri/calcite-colors": "~6.1.0", - "@esri/calcite-components": "^1.4.2", - "@popperjs/core": "~2.11.7", - "focus-trap": "~7.4.3", - "luxon": "~3.3.0", - "sortablejs": "~1.15.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", - "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@cspell/cspell-bundled-dicts": { - "version": "6.31.2", - "resolved": "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-6.31.2.tgz", - "integrity": "sha512-rQ5y/U1Ah5AaduIh3NU2z371hRrOr1cmNdhhP8oiuz2E4VqmcoVHflXIct9DgY8uIJpwsSCdR6ypOQWZYXYnwA==", - "dev": true, - "dependencies": { - "@cspell/dict-ada": "^4.0.1", - "@cspell/dict-aws": "^3.0.0", - "@cspell/dict-bash": "^4.1.1", - "@cspell/dict-companies": "^3.0.9", - "@cspell/dict-cpp": "^5.0.2", - "@cspell/dict-cryptocurrencies": "^3.0.1", - "@cspell/dict-csharp": "^4.0.2", - "@cspell/dict-css": "^4.0.5", - "@cspell/dict-dart": "^2.0.2", - "@cspell/dict-django": "^4.0.2", - "@cspell/dict-docker": "^1.1.6", - "@cspell/dict-dotnet": "^5.0.0", - "@cspell/dict-elixir": "^4.0.2", - "@cspell/dict-en_us": "^4.3.2", - "@cspell/dict-en-common-misspellings": "^1.0.2", - "@cspell/dict-en-gb": "1.1.33", - "@cspell/dict-filetypes": "^3.0.0", - "@cspell/dict-fonts": "^3.0.2", - "@cspell/dict-fullstack": "^3.1.5", - "@cspell/dict-gaming-terms": "^1.0.4", - "@cspell/dict-git": "^2.0.0", - "@cspell/dict-golang": "^6.0.1", - "@cspell/dict-haskell": "^4.0.1", - "@cspell/dict-html": "^4.0.3", - "@cspell/dict-html-symbol-entities": "^4.0.0", - "@cspell/dict-java": "^5.0.5", - "@cspell/dict-k8s": "^1.0.1", - "@cspell/dict-latex": "^4.0.0", - "@cspell/dict-lorem-ipsum": "^3.0.0", - "@cspell/dict-lua": "^4.0.1", - "@cspell/dict-node": "^4.0.2", - "@cspell/dict-npm": "^5.0.5", - "@cspell/dict-php": "^4.0.1", - "@cspell/dict-powershell": "^5.0.1", - "@cspell/dict-public-licenses": "^2.0.2", - "@cspell/dict-python": "^4.0.2", - "@cspell/dict-r": "^2.0.1", - "@cspell/dict-ruby": "^5.0.0", - "@cspell/dict-rust": "^4.0.1", - "@cspell/dict-scala": "^5.0.0", - "@cspell/dict-software-terms": "^3.1.6", - "@cspell/dict-sql": "^2.1.0", - "@cspell/dict-svelte": "^1.0.2", - "@cspell/dict-swift": "^2.0.1", - "@cspell/dict-typescript": "^3.1.1", - "@cspell/dict-vue": "^3.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@cspell/cspell-pipe": { - "version": "6.31.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-6.31.1.tgz", - "integrity": "sha512-zk1olZi4dr6GLm5PAjvsiZ01HURNSruUYFl1qSicGnTwYN8GaN4RhAwannAytcJ7zJPIcyXlid0YsB58nJf3wQ==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@cspell/cspell-service-bus": { - "version": "6.31.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-service-bus/-/cspell-service-bus-6.31.1.tgz", - "integrity": "sha512-YyBicmJyZ1uwKVxujXw7sgs9x+Eps43OkWmCtDZmZlnq489HdTSuhF1kTbVi2yeFSeaXIS87+uHo12z97KkQpg==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@cspell/cspell-types": { - "version": "6.31.1", - "resolved": "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-6.31.1.tgz", - "integrity": "sha512-1KeTQFiHMssW1eRoF2NZIEg4gPVIfXLsL2+VSD/AV6YN7lBcuf6gRRgV5KWYarhxtEfjxhDdDTmu26l/iJEUtw==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@cspell/dict-ada": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-ada/-/dict-ada-4.0.2.tgz", - "integrity": "sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA==", - "dev": true - }, - "node_modules/@cspell/dict-aws": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-aws/-/dict-aws-3.0.0.tgz", - "integrity": "sha512-O1W6nd5y3Z00AMXQMzfiYrIJ1sTd9fB1oLr+xf/UD7b3xeHeMeYE2OtcWbt9uyeHim4tk+vkSTcmYEBKJgS5bQ==", - "dev": true - }, - "node_modules/@cspell/dict-bash": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-bash/-/dict-bash-4.1.1.tgz", - "integrity": "sha512-8czAa/Mh96wu2xr0RXQEGMTBUGkTvYn/Pb0o+gqOO1YW+poXGQc3gx0YPqILDryP/KCERrNvkWUJz3iGbvwC2A==", - "dev": true - }, - "node_modules/@cspell/dict-companies": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.0.17.tgz", - "integrity": "sha512-vo1jbozgZWSzz2evIL26kLd35tVb+5kW/UTvTzAwaWutSWRloRyKx38nj2CaLJ2IFxBdiATteCFGTzKCvJJl6A==", - "dev": true - }, - "node_modules/@cspell/dict-cpp": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-cpp/-/dict-cpp-5.0.4.tgz", - "integrity": "sha512-Vmz/CCb2d91ES5juaO8+CFWeTa2AFsbpR8bkCPJq+P8cRP16+37tY0zNXEBSK/1ur4MakaRf76jeQBijpZxw0Q==", - "dev": true - }, - "node_modules/@cspell/dict-cryptocurrencies": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-3.0.1.tgz", - "integrity": "sha512-Tdlr0Ahpp5yxtwM0ukC13V6+uYCI0p9fCRGMGZt36rWv8JQZHIuHfehNl7FB/Qc09NCF7p5ep0GXbL+sVTd/+w==", - "dev": true - }, - "node_modules/@cspell/dict-csharp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-csharp/-/dict-csharp-4.0.2.tgz", - "integrity": "sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g==", - "dev": true - }, - "node_modules/@cspell/dict-css": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@cspell/dict-css/-/dict-css-4.0.6.tgz", - "integrity": "sha512-2Lo8W2ezHmGgY8cWFr4RUwnjbndna5mokpCK/DuxGILQnuajR0J31ANQOXj/8iZM2phFB93ZzMNk/0c04TDfSQ==", - "dev": true - }, - "node_modules/@cspell/dict-dart": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-dart/-/dict-dart-2.0.3.tgz", - "integrity": "sha512-cLkwo1KT5CJY5N5RJVHks2genFkNCl/WLfj+0fFjqNR+tk3tBI1LY7ldr9piCtSFSm4x9pO1x6IV3kRUY1lLiw==", - "dev": true - }, - "node_modules/@cspell/dict-data-science": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@cspell/dict-data-science/-/dict-data-science-1.0.8.tgz", - "integrity": "sha512-uGx0rd3BftfZ5mvXtPxvLNkQ33y0ylNw4GpBAAfF3hgGtifKdvLSmphOGuNgDYUPpJ0+e025bsvtN0/ZZCzWTg==", - "dev": true - }, - "node_modules/@cspell/dict-django": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-django/-/dict-django-4.1.0.tgz", - "integrity": "sha512-bKJ4gPyrf+1c78Z0Oc4trEB9MuhcB+Yg+uTTWsvhY6O2ncFYbB/LbEZfqhfmmuK/XJJixXfI1laF2zicyf+l0w==", - "dev": true - }, - "node_modules/@cspell/dict-docker": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.7.tgz", - "integrity": "sha512-XlXHAr822euV36GGsl2J1CkBIVg3fZ6879ZOg5dxTIssuhUOCiV2BuzKZmt6aIFmcdPmR14+9i9Xq+3zuxeX0A==", - "dev": true - }, - "node_modules/@cspell/dict-dotnet": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-dotnet/-/dict-dotnet-5.0.0.tgz", - "integrity": "sha512-EOwGd533v47aP5QYV8GlSSKkmM9Eq8P3G/eBzSpH3Nl2+IneDOYOBLEUraHuiCtnOkNsz0xtZHArYhAB2bHWAw==", - "dev": true - }, - "node_modules/@cspell/dict-elixir": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-elixir/-/dict-elixir-4.0.3.tgz", - "integrity": "sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q==", - "dev": true - }, - "node_modules/@cspell/dict-en_us": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.3.6.tgz", - "integrity": "sha512-odhgsjNZI9BtEOJdvqfAuv/3yz5aB1ngfBNaph7WSnYVt//9e3fhrElZ6/pIIkoyuGgeQPwz1fXt+tMgcnLSEQ==", - "dev": true - }, - "node_modules/@cspell/dict-en-common-misspellings": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-1.0.2.tgz", - "integrity": "sha512-jg7ZQZpZH7+aAxNBlcAG4tGhYF6Ksy+QS5Df73Oo+XyckBjC9QS+PrRwLTeYoFIgXy5j3ICParK5r3MSSoL4gw==", - "dev": true - }, - "node_modules/@cspell/dict-en-gb": { - "version": "1.1.33", - "resolved": "https://registry.npmjs.org/@cspell/dict-en-gb/-/dict-en-gb-1.1.33.tgz", - "integrity": "sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==", - "dev": true - }, - "node_modules/@cspell/dict-filetypes": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-3.0.1.tgz", - "integrity": "sha512-8z8mY1IbrTyTRumx2vvD9yzRhNMk9SajM/GtI5hdMM2pPpNSp25bnuauzjRf300eqlqPY2MNb5MmhBFO014DJw==", - "dev": true - }, - "node_modules/@cspell/dict-fonts": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-fonts/-/dict-fonts-3.0.2.tgz", - "integrity": "sha512-Z5QdbgEI7DV+KPXrAeDA6dDm/vTzyaW53SGlKqz6PI5VhkOjgkBXv3YtZjnxMZ4dY2ZIqq+RUK6qa9Pi8rQdGQ==", - "dev": true - }, - "node_modules/@cspell/dict-fullstack": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@cspell/dict-fullstack/-/dict-fullstack-3.1.5.tgz", - "integrity": "sha512-6ppvo1dkXUZ3fbYn/wwzERxCa76RtDDl5Afzv2lijLoijGGUw5yYdLBKJnx8PJBGNLh829X352ftE7BElG4leA==", - "dev": true - }, - "node_modules/@cspell/dict-gaming-terms": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.0.4.tgz", - "integrity": "sha512-hbDduNXlk4AOY0wFxcDMWBPpm34rpqJBeqaySeoUH70eKxpxm+dvjpoRLJgyu0TmymEICCQSl6lAHTHSDiWKZg==", - "dev": true - }, - "node_modules/@cspell/dict-git": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-git/-/dict-git-2.0.0.tgz", - "integrity": "sha512-n1AxyX5Kgxij/sZFkxFJlzn3K9y/sCcgVPg/vz4WNJ4K9YeTsUmyGLA2OQI7d10GJeiuAo2AP1iZf2A8j9aj2w==", - "dev": true - }, - "node_modules/@cspell/dict-golang": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-golang/-/dict-golang-6.0.2.tgz", - "integrity": "sha512-5pyZn4AAiYukAW+gVMIMVmUSkIERFrDX2vtPDjg8PLQUhAHWiVeQSDjuOhq9/C5GCCEZU/zWSONkGiwLBBvV9A==", - "dev": true - }, - "node_modules/@cspell/dict-haskell": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-haskell/-/dict-haskell-4.0.1.tgz", - "integrity": "sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ==", - "dev": true - }, - "node_modules/@cspell/dict-html": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-4.0.3.tgz", - "integrity": "sha512-Gae8i8rrArT0UyG1I6DHDK62b7Be6QEcBSIeWOm4VIIW1CASkN9B0qFgSVnkmfvnu1Y3H7SSaaEynKjdj3cs8w==", - "dev": true - }, - "node_modules/@cspell/dict-html-symbol-entities": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.0.tgz", - "integrity": "sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==", - "dev": true - }, - "node_modules/@cspell/dict-java": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-5.0.5.tgz", - "integrity": "sha512-X19AoJgWIBwJBSWGFqSgHaBR/FEykBHTMjL6EqOnhIGEyE9nvuo32tsSHjXNJ230fQxQptEvRZoaldNLtKxsRg==", - "dev": true - }, - "node_modules/@cspell/dict-k8s": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-k8s/-/dict-k8s-1.0.1.tgz", - "integrity": "sha512-gc5y4Nm3hVdMZNBZfU2M1AsAmObZsRWjCUk01NFPfGhFBXyVne41T7E62rpnzu5330FV/6b/TnFcPgRmak9lLw==", - "dev": true - }, - "node_modules/@cspell/dict-latex": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-4.0.0.tgz", - "integrity": "sha512-LPY4y6D5oI7D3d+5JMJHK/wxYTQa2lJMSNxps2JtuF8hbAnBQb3igoWEjEbIbRRH1XBM0X8dQqemnjQNCiAtxQ==", - "dev": true - }, - "node_modules/@cspell/dict-lorem-ipsum": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-3.0.0.tgz", - "integrity": "sha512-msEV24qEpzWZs2kcEicqYlhyBpR0amfDkJOs+iffC07si9ftqtQ+yP3lf1VFLpgqw3SQh1M1vtU7RD4sPrNlcQ==", - "dev": true - }, - "node_modules/@cspell/dict-lua": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-lua/-/dict-lua-4.0.1.tgz", - "integrity": "sha512-j0MFmeCouSoC6EdZTbvGe1sJ9V+ruwKSeF+zRkNNNload7R72Co5kX1haW2xLHGdlq0kqSy1ODRZKdVl0e+7hg==", - "dev": true - }, - "node_modules/@cspell/dict-node": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-node/-/dict-node-4.0.2.tgz", - "integrity": "sha512-FEQJ4TnMcXEFslqBQkXa5HposMoCGsiBv2ux4IZuIXgadXeHKHUHk60iarWpjhzNzQLyN2GD7NoRMd12bK3Llw==", - "dev": true - }, - "node_modules/@cspell/dict-npm": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.0.7.tgz", - "integrity": "sha512-6SegF0HsVaBTl6PlHjeErG8Av+tRYkUG1yaXUQIGWXU0A8oxhI0o4PuL65UWH5lkCKhJyGai69Cd0iytL0oVFg==", - "dev": true - }, - "node_modules/@cspell/dict-php": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-php/-/dict-php-4.0.1.tgz", - "integrity": "sha512-XaQ/JkSyq2c07MfRG54DjLi2CV+HHwS99DDCAao9Fq2JfkWroTQsUeek7wYZXJATrJVOULoV3HKih12x905AtQ==", - "dev": true - }, - "node_modules/@cspell/dict-powershell": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-powershell/-/dict-powershell-5.0.2.tgz", - "integrity": "sha512-IHfWLme3FXE7vnOmMncSBxOsMTdNWd1Vcyhag03WS8oANSgX8IZ+4lMI00mF0ptlgchf16/OU8WsV4pZfikEFw==", - "dev": true - }, - "node_modules/@cspell/dict-public-licenses": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.3.tgz", - "integrity": "sha512-JSLEdpEYufQ1H+93UHi+axlqQm1fhgK6kpdLHp6uPHu//CsvETcqNVawjB+qOdI/g38JTMw5fBqSd0aGNxa6Dw==", - "dev": true - }, - "node_modules/@cspell/dict-python": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@cspell/dict-python/-/dict-python-4.1.4.tgz", - "integrity": "sha512-4JJ6MjIyuZN4h2VkSxZxiQ55lVh6NccW/0H6rdu0aDz+E3uyFVFtlBp5kTY5jIA11PZqSZZpyowzGnwrJX6w0g==", - "dev": true, - "dependencies": { - "@cspell/dict-data-science": "^1.0.0" - } - }, - "node_modules/@cspell/dict-r": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-r/-/dict-r-2.0.1.tgz", - "integrity": "sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA==", - "dev": true - }, - "node_modules/@cspell/dict-ruby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-ruby/-/dict-ruby-5.0.0.tgz", - "integrity": "sha512-ssb96QxLZ76yPqFrikWxItnCbUKhYXJ2owkoIYzUGNFl2CHSoHCb5a6Zetum9mQ/oUA3gNeUhd28ZUlXs0la2A==", - "dev": true - }, - "node_modules/@cspell/dict-rust": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-4.0.1.tgz", - "integrity": "sha512-xJSSzHDK2z6lSVaOmMxl3PTOtfoffaxMo7fTcbZUF+SCJzfKbO6vnN9TCGX2sx1RHFDz66Js6goz6SAZQdOwaw==", - "dev": true - }, - "node_modules/@cspell/dict-scala": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-scala/-/dict-scala-5.0.0.tgz", - "integrity": "sha512-ph0twaRoV+ylui022clEO1dZ35QbeEQaKTaV2sPOsdwIokABPIiK09oWwGK9qg7jRGQwVaRPEq0Vp+IG1GpqSQ==", - "dev": true - }, - "node_modules/@cspell/dict-software-terms": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-software-terms/-/dict-software-terms-3.2.0.tgz", - "integrity": "sha512-RI6sv4Bc4i42YH/ofVelv8lXpJRhCyS9IhI2BtejUoMXKhKA9gC01ATXOylx+oaQmj3t5ark4R50xKFRvC7ENA==", - "dev": true - }, - "node_modules/@cspell/dict-sql": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-sql/-/dict-sql-2.1.1.tgz", - "integrity": "sha512-v1mswi9NF40+UDUMuI148YQPEQvWjac72P6ZsjlRdLjEiQEEMEsTQ+zlkIdnzC9QCNyJaqD5Liq9Mn78/8Zxtw==", - "dev": true - }, - "node_modules/@cspell/dict-svelte": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@cspell/dict-svelte/-/dict-svelte-1.0.2.tgz", - "integrity": "sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q==", - "dev": true - }, - "node_modules/@cspell/dict-swift": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-swift/-/dict-swift-2.0.1.tgz", - "integrity": "sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==", - "dev": true - }, - "node_modules/@cspell/dict-typescript": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@cspell/dict-typescript/-/dict-typescript-3.1.1.tgz", - "integrity": "sha512-N9vNJZoOXmmrFPR4ir3rGvnqqwmQGgOYoL1+y6D4oIhyr7FhaYiyF/d7QT61RmjZQcATMa6PSL+ZisCeRLx9+A==", - "dev": true - }, - "node_modules/@cspell/dict-vue": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@cspell/dict-vue/-/dict-vue-3.0.0.tgz", - "integrity": "sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==", - "dev": true - }, - "node_modules/@cspell/dynamic-import": { - "version": "6.31.1", - "resolved": "https://registry.npmjs.org/@cspell/dynamic-import/-/dynamic-import-6.31.1.tgz", - "integrity": "sha512-uliIUv9uZlnyYmjUlcw/Dm3p0xJOEnWJNczHAfqAl4Ytg6QZktw0GtUA9b1umbRXLv0KRTPtSC6nMq3cR7rRmQ==", - "dev": true, - "dependencies": { - "import-meta-resolve": "^2.2.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@cspell/strong-weak-map": { - "version": "6.31.1", - "resolved": "https://registry.npmjs.org/@cspell/strong-weak-map/-/strong-weak-map-6.31.1.tgz", - "integrity": "sha512-z8AuWvUuSnugFKJOA9Ke0aiFuehcqLFqia9bk8XaQNEWr44ahPVn3sEWnAncTxPbpWuUw5UajoJa0egRAE1CCg==", - "dev": true, - "engines": { - "node": ">=14.6" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.17.tgz", - "integrity": "sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz", - "integrity": "sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.17.tgz", - "integrity": "sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz", - "integrity": "sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz", - "integrity": "sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz", - "integrity": "sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz", - "integrity": "sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz", - "integrity": "sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz", - "integrity": "sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz", - "integrity": "sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz", - "integrity": "sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz", - "integrity": "sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz", - "integrity": "sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz", - "integrity": "sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz", - "integrity": "sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", - "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz", - "integrity": "sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz", - "integrity": "sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz", - "integrity": "sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz", - "integrity": "sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz", - "integrity": "sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz", - "integrity": "sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", - "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.1.tgz", - "integrity": "sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.46.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.46.0.tgz", - "integrity": "sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@esri/arcgis-html-sanitizer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@esri/arcgis-html-sanitizer/-/arcgis-html-sanitizer-3.0.1.tgz", - "integrity": "sha512-cwZJwsYCJZwtBQU2AmaiIVFg5nZcVwInPYja1/OgC9iKYO+ytZRoc5h+0S9/ygbFNoS8Nd0RX9A85stLX/BgiA==", - "dev": true, - "dependencies": { - "xss": "1.0.13" - } - }, - "node_modules/@esri/arcgis-rest-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-fetch/-/arcgis-rest-fetch-4.0.0.tgz", - "integrity": "sha512-ybsMO2L4cxx0IaIx0jv6/VbXidZmQIiGD3bvPF1/n1Y1ljHIhCvX+ti54cQSfg/HW2+VAVVnt8EPD/omVhNAyg==", - "dev": true, - "dependencies": { - "node-fetch": "^3.0.0" - } - }, - "node_modules/@esri/arcgis-rest-fetch/node_modules/node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", - "dev": true, - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/@esri/arcgis-rest-form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-form-data/-/arcgis-rest-form-data-4.0.0.tgz", - "integrity": "sha512-cAS9HONIJgseCDdgRCIHBR4CE/OQXZIRP3FoNx/w+XyjVqK6yQiwCeXpYLfHeEZ6GEQqrA9XUBxifWG9UaJyXA==", - "dev": true, - "dependencies": { - "formdata-node": "^4.1.0" - } - }, - "node_modules/@esri/arcgis-rest-request": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@esri/arcgis-rest-request/-/arcgis-rest-request-4.2.0.tgz", - "integrity": "sha512-2XLy0Ivar3BIr4ehe/5hYottIqiHnC8LDqhMPglufoLcsX9LFOr81X74aPXX0Ad3xVMaSy2HLLVNoNOkhwFGqQ==", - "dev": true, - "dependencies": { - "@esri/arcgis-rest-fetch": "^4.0.0", - "@esri/arcgis-rest-form-data": "^4.0.0", - "mitt": "^3.0.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/@esri/arcgis-rest-request/node_modules/tslib": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", - "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==", - "dev": true - }, - "node_modules/@esri/calcite-colors": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@esri/calcite-colors/-/calcite-colors-6.1.0.tgz", - "integrity": "sha512-wHQYWFtDa6c328EraXEVZvgOiaQyYr0yuaaZ0G3cB4C3lSkWefW34L/e5TLAhtuG3zJ/wR6pl5X1YYNfBc0/4Q==", - "dev": true - }, - "node_modules/@esri/calcite-components": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@esri/calcite-components/-/calcite-components-1.4.3.tgz", - "integrity": "sha512-3Yj0ZBOPBCIEp+YPJTM0C6cBmbxFXXsG9a6yv0DKxkaERj7te+hb3DQ1fVbG/lQsMLOdrQHiE70zdXSzMKvKCg==", - "dev": true, - "dependencies": { - "@floating-ui/dom": "1.4.1", - "@stencil/core": "2.22.3", - "@types/color": "3.0.3", - "color": "4.2.3", - "composed-offset-position": "0.0.4", - "dayjs": "1.11.8", - "focus-trap": "7.4.3", - "form-request-submit-polyfill": "2.0.0", - "lodash-es": "4.17.21", - "sortablejs": "1.15.0" - } - }, - "node_modules/@floating-ui/core": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.3.1.tgz", - "integrity": "sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==", - "dev": true - }, - "node_modules/@floating-ui/dom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.4.1.tgz", - "integrity": "sha512-loCXUOLzIC3jp50RFOKXZ/kQjjz26ryr/23M+FWG9jrmAv8lRf3DUfC2AiVZ3+K316GOhB08CR+Povwz8e9mDw==", - "dev": true, - "dependencies": { - "@floating-ui/core": "^1.3.1" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@stencil/core": { - "version": "2.22.3", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.22.3.tgz", - "integrity": "sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==", - "dev": true, - "bin": { - "stencil": "bin/stencil" - }, - "engines": { - "node": ">=12.10.0", - "npm": ">=6.0.0" - } - }, - "node_modules/@tsconfig/esm": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/esm/-/esm-1.0.4.tgz", - "integrity": "sha512-bix9CWljCxyD06nGQRDYdmTw0wevvEDyrLKjbDocGV31JQYbfqqgMV1yFeJ9aDgorKQ9yDLrak8poiggsB5Liw==", - "dev": true - }, - "node_modules/@tsconfig/node-lts": { - "version": "18.12.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node-lts/-/node-lts-18.12.3.tgz", - "integrity": "sha512-a8FraAjwaGKERCO5PowJeeCE/0Kv1whqegfNwJRIPG08Z5QDr6Kl1CgRrdIjGQtUCpSm+/BDCGeRKfAF1mg+ZQ==", - "dev": true - }, - "node_modules/@types/arcgis-rest-api": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/@types/arcgis-rest-api/-/arcgis-rest-api-10.4.5.tgz", - "integrity": "sha512-MhpTj3aaURIFhK6pBRF50yCHW5TpbeuC1E81juovfNesSOshsQnCzludhpBhIr2pNzplTBlfzrT7RKiLZ5F3Tw==", - "dev": true - }, - "node_modules/@types/color": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/color/-/color-3.0.3.tgz", - "integrity": "sha512-X//qzJ3d3Zj82J9sC/C18ZY5f43utPbAJ6PhYt/M7uG6etcF6MRpKdN880KBy43B0BMzSfeT96MzrsNjFI3GbA==", - "dev": true, - "dependencies": { - "@types/color-convert": "*" - } - }, - "node_modules/@types/color-convert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.0.tgz", - "integrity": "sha512-m7GG7IKKGuJUXvkZ1qqG3ChccdIM/qBBo913z+Xft0nKCX4hAU/IxKwZBU4cpRZ7GS5kV4vOblUkILtSShCPXQ==", - "dev": true, - "dependencies": { - "@types/color-name": "*" - } - }, - "node_modules/@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "node_modules/@types/gh-pages": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@types/gh-pages/-/gh-pages-3.2.1.tgz", - "integrity": "sha512-y5ULkwfoOEUa6sp2te+iEODv2S//DRiKmxpeXboXhhv+s758rSSxLUiBd6NnlR7aAY4nw1X4FGovLrSWEXWLow==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.4.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.5.tgz", - "integrity": "sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==", - "dev": true - }, - "node_modules/@types/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.2.1.tgz", - "integrity": "sha512-iZVM/ALid9kO0+I81pnp1xmYiFyqibAHzrqX4q5YvvVEyJqY+e6rfTXSCsc2jUxGNqJqTfFSSij/NFkZBiBzLw==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.2.1", - "@typescript-eslint/type-utils": "6.2.1", - "@typescript-eslint/utils": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.2.1.tgz", - "integrity": "sha512-Ld+uL1kYFU8e6btqBFpsHkwQ35rw30IWpdQxgOqOh4NfxSDH6uCkah1ks8R/RgQqI5hHPXMaLy9fbFseIe+dIg==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "6.2.1", - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/typescript-estree": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1", - "debug": "^4.3.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.2.1.tgz", - "integrity": "sha512-UCqBF9WFqv64xNsIEPfBtenbfodPXsJ3nPAr55mGPkQIkiQvgoWNo+astj9ZUfJfVKiYgAZDMnM6dIpsxUMp3Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.2.1.tgz", - "integrity": "sha512-fTfCgomBMIgu2Dh2Or3gMYgoNAnQm3RLtRp+jP7A8fY+LJ2+9PNpi5p6QB5C4RSP+U3cjI0vDlI3mspAkpPVbQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "6.2.1", - "@typescript-eslint/utils": "6.2.1", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.2.1.tgz", - "integrity": "sha512-528bGcoelrpw+sETlyM91k51Arl2ajbNT9L4JwoXE2dvRe1yd8Q64E4OL7vHYw31mlnVsf+BeeLyAZUEQtqahQ==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.2.1.tgz", - "integrity": "sha512-G+UJeQx9AKBHRQBpmvr8T/3K5bJa485eu+4tQBxFq0KoT22+jJyzo1B50JDT9QdC1DEmWQfdKsa8ybiNWYsi0Q==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/visitor-keys": "6.2.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.2.1.tgz", - "integrity": "sha512-eBIXQeupYmxVB6S7x+B9SdBeB6qIdXKjgQBge2J+Ouv8h9Cxm5dHf/gfAZA6dkMaag+03HdbVInuXMmqFB/lKQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.2.1", - "@typescript-eslint/types": "6.2.1", - "@typescript-eslint/typescript-estree": "6.2.1", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.2.1.tgz", - "integrity": "sha512-iTN6w3k2JEZ7cyVdZJTVJx2Lv7t6zFA8DCrJEHD2mwfc16AEvvBWVhbFh34XyG2NORCd0viIgQY1+u7kPI0WpA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.2.1", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-timsort": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", - "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/clear-module": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/clear-module/-/clear-module-4.1.2.tgz", - "integrity": "sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==", - "dev": true, - "dependencies": { - "parent-module": "^2.0.0", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, - "engines": { - "node": ">=12.5.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "dev": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/comment-json": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", - "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", - "dev": true, - "dependencies": { - "array-timsort": "^1.0.3", - "core-util-is": "^1.0.3", - "esprima": "^4.0.1", - "has-own-prop": "^2.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/composed-offset-position": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/composed-offset-position/-/composed-offset-position-0.0.4.tgz", - "integrity": "sha512-vMlvu1RuNegVE0YsCDSV/X4X10j56mq7PCIyOKK74FxkXzGLwhOUmdkJLSdOBOMwWycobGUMgft2lp+YgTe8hw==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", - "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", - "dev": true, - "dependencies": { - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cspell": { - "version": "6.31.2", - "resolved": "https://registry.npmjs.org/cspell/-/cspell-6.31.2.tgz", - "integrity": "sha512-HJcQ8jqL/1N3Mj5dufFnIZCX3ACuRoFTSVY6h3Bo5wBqd2iiJTyeQ1SY9Zymlxtb2KyJ6jQRiFmkWeFx2HVs7w==", - "dev": true, - "dependencies": { - "@cspell/cspell-pipe": "6.31.1", - "@cspell/cspell-types": "6.31.1", - "@cspell/dynamic-import": "6.31.1", - "chalk": "^4.1.2", - "commander": "^10.0.0", - "cspell-gitignore": "6.31.2", - "cspell-glob": "6.31.2", - "cspell-io": "6.31.2", - "cspell-lib": "6.31.2", - "fast-glob": "^3.2.12", - "fast-json-stable-stringify": "^2.1.0", - "file-entry-cache": "^6.0.1", - "get-stdin": "^8.0.0", - "imurmurhash": "^0.1.4", - "semver": "^7.3.8", - "strip-ansi": "^6.0.1", - "vscode-uri": "^3.0.7" - }, - "bin": { - "cspell": "bin.js", - "cspell-esm": "bin.mjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/streetsidesoftware/cspell?sponsor=1" - } - }, - "node_modules/cspell-dictionary": { - "version": "6.31.1", - "resolved": "https://registry.npmjs.org/cspell-dictionary/-/cspell-dictionary-6.31.1.tgz", - "integrity": "sha512-7+K7aQGarqbpucky26wled7QSCJeg6VkLUWS+hLjyf0Cqc9Zew5xsLa4QjReExWUJx+a97jbiflITZNuWxgMrg==", - "dev": true, - "dependencies": { - "@cspell/cspell-pipe": "6.31.1", - "@cspell/cspell-types": "6.31.1", - "cspell-trie-lib": "6.31.1", - "fast-equals": "^4.0.3", - "gensequence": "^5.0.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/cspell-gitignore": { - "version": "6.31.2", - "resolved": "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-6.31.2.tgz", - "integrity": "sha512-B1i8aiXCIbb/08u0K3xnDyXtg0qD+lb5B2itOOXi7KXlPkKvIuN4hWyXxhVDweWyYWEzyXD5wBpPrqICVrStHQ==", - "dev": true, - "dependencies": { - "cspell-glob": "6.31.2", - "find-up": "^5.0.0" - }, - "bin": { - "cspell-gitignore": "bin.mjs" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/cspell-glob": { - "version": "6.31.2", - "resolved": "https://registry.npmjs.org/cspell-glob/-/cspell-glob-6.31.2.tgz", - "integrity": "sha512-ceTjHM4HaBgvG5S3oiB+PTPYq58EQYG6MmYpycDHzpR5I2H1NurK9lxWHfANmLbi0DsHn58tIZNDMUnnQj19Jw==", - "dev": true, - "dependencies": { - "micromatch": "^4.0.5" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/cspell-grammar": { - "version": "6.31.1", - "resolved": "https://registry.npmjs.org/cspell-grammar/-/cspell-grammar-6.31.1.tgz", - "integrity": "sha512-AsRVP0idcNFVSb9+p9XjMumFj3BUV67WIPWApaAzJl/dYyiIygQObRE+si0/QtFWGNw873b7hNhWZiKjqIdoaQ==", - "dev": true, - "dependencies": { - "@cspell/cspell-pipe": "6.31.1", - "@cspell/cspell-types": "6.31.1" - }, - "bin": { - "cspell-grammar": "bin.mjs" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/cspell-io": { - "version": "6.31.2", - "resolved": "https://registry.npmjs.org/cspell-io/-/cspell-io-6.31.2.tgz", - "integrity": "sha512-Lp7LsF/f35LaOneROb/9mWiprShz2ONxjYFAt3bYP7gIxq41lWi8QhO+SN6spoqPp/wQXjSqJ7MuTZsemxPRnA==", - "dev": true, - "dependencies": { - "@cspell/cspell-service-bus": "6.31.1", - "node-fetch": "^2.6.9" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/cspell-lib": { - "version": "6.31.2", - "resolved": "https://registry.npmjs.org/cspell-lib/-/cspell-lib-6.31.2.tgz", - "integrity": "sha512-LqaB2ZfVfQHKL5aZzYoKU6/UxxAtWeXAYwpC9l+satXmajYyXtAh4kWmuW+y7kKRH2jA79rJQS3QE6ToeSqgQQ==", - "dev": true, - "dependencies": { - "@cspell/cspell-bundled-dicts": "6.31.2", - "@cspell/cspell-pipe": "6.31.1", - "@cspell/cspell-types": "6.31.1", - "@cspell/strong-weak-map": "6.31.1", - "clear-module": "^4.1.2", - "comment-json": "^4.2.3", - "configstore": "^5.0.1", - "cosmiconfig": "8.0.0", - "cspell-dictionary": "6.31.1", - "cspell-glob": "6.31.2", - "cspell-grammar": "6.31.1", - "cspell-io": "6.31.2", - "cspell-trie-lib": "6.31.1", - "fast-equals": "^4.0.3", - "find-up": "^5.0.0", - "gensequence": "^5.0.2", - "import-fresh": "^3.3.0", - "resolve-from": "^5.0.0", - "resolve-global": "^1.0.0", - "vscode-languageserver-textdocument": "^1.0.8", - "vscode-uri": "^3.0.7" - }, - "engines": { - "node": ">=14.6" - } - }, - "node_modules/cspell-trie-lib": { - "version": "6.31.1", - "resolved": "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-6.31.1.tgz", - "integrity": "sha512-MtYh7s4Sbr1rKT31P2BK6KY+YfOy3dWsuusq9HnqCXmq6aZ1HyFgjH/9p9uvqGi/TboMqn1KOV8nifhXK3l3jg==", - "dev": true, - "dependencies": { - "@cspell/cspell-pipe": "6.31.1", - "@cspell/cspell-types": "6.31.1", - "gensequence": "^5.0.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/cspell/node_modules/commander": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.0.tgz", - "integrity": "sha512-zS5PnTI22FIRM6ylNW8G4Ap0IEOyk62fhLSD0+uHRT9McRCLGpkVNvao4bjimpK/GShynyQkFFxHhwMcETmduA==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/cssfilter": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", - "integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==", - "dev": true - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/dayjs": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.8.tgz", - "integrity": "sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/email-addresses": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz", - "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==", - "dev": true - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-ex/node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/esbuild": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", - "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.18.17", - "@esbuild/android-arm64": "0.18.17", - "@esbuild/android-x64": "0.18.17", - "@esbuild/darwin-arm64": "0.18.17", - "@esbuild/darwin-x64": "0.18.17", - "@esbuild/freebsd-arm64": "0.18.17", - "@esbuild/freebsd-x64": "0.18.17", - "@esbuild/linux-arm": "0.18.17", - "@esbuild/linux-arm64": "0.18.17", - "@esbuild/linux-ia32": "0.18.17", - "@esbuild/linux-loong64": "0.18.17", - "@esbuild/linux-mips64el": "0.18.17", - "@esbuild/linux-ppc64": "0.18.17", - "@esbuild/linux-riscv64": "0.18.17", - "@esbuild/linux-s390x": "0.18.17", - "@esbuild/linux-x64": "0.18.17", - "@esbuild/netbsd-x64": "0.18.17", - "@esbuild/openbsd-x64": "0.18.17", - "@esbuild/sunos-x64": "0.18.17", - "@esbuild/win32-arm64": "0.18.17", - "@esbuild/win32-ia32": "0.18.17", - "@esbuild/win32-x64": "0.18.17" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.46.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.46.0.tgz", - "integrity": "sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.1", - "@eslint/js": "^8.46.0", - "@humanwhocodes/config-array": "^0.11.10", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.2", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.9.0.tgz", - "integrity": "sha512-+sbni7NfVXnOpnRadUA8S28AUlsZt9GjgFvABIRL9Hkn8KqNzOp+7Lw4QWtrwn20KzU3wqu1QoOj2m+7rKRqkA==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz", - "integrity": "sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-equals": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz", - "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/fetch-blob/node_modules/web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/filename-reserved-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/filenamify": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", - "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", - "dev": true, - "dependencies": { - "filename-reserved-regex": "^2.0.0", - "strip-outer": "^1.0.1", - "trim-repeated": "^1.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/focus-trap": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.4.3.tgz", - "integrity": "sha512-BgSSbK4GPnS2VbtZ50VtOv1Sti6DIkj3+LkVjiWMNjLeAp1SH1UlLx3ULu/DCu4vq5R4/uvTm+zrvsMsuYmGLg==", - "dev": true, - "dependencies": { - "tabbable": "^6.1.2" - } - }, - "node_modules/form-request-submit-polyfill": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/form-request-submit-polyfill/-/form-request-submit-polyfill-2.0.0.tgz", - "integrity": "sha512-p0+M92y2gFnP0AuuL8VJ0GYVzAT0bYp3GsSkmPFhvUopdnfDLP/9xplQTBBc4w8qOjKRzdK7GaFcdL9IhlXdTQ==", - "dev": true - }, - "node_modules/formdata-node": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", - "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", - "dev": true, - "dependencies": { - "node-domexception": "1.0.0", - "web-streams-polyfill": "4.0.0-beta.3" - }, - "engines": { - "node": ">= 12.20" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dev": true, - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/gensequence": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-5.0.2.tgz", - "integrity": "sha512-JlKEZnFc6neaeSVlkzBGGgkIoIaSxMgvdamRoPN8r3ozm2r9dusqxeKqYQ7lhzmj2UhFQP8nkyfCaiLQxiLrDA==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gh-pages": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-5.0.0.tgz", - "integrity": "sha512-Nqp1SjkPIB94Xw/3yYNTUL+G2dxlhjvv1zeN/4kMC1jfViTEqhtVz/Ba1zSXHuvXCN9ADNS1dN4r5/J/nZWEQQ==", - "dev": true, - "dependencies": { - "async": "^3.2.4", - "commander": "^2.18.0", - "email-addresses": "^5.0.0", - "filenamify": "^4.3.0", - "find-cache-dir": "^3.3.1", - "fs-extra": "^8.1.0", - "globby": "^6.1.0" - }, - "bin": { - "gh-pages": "bin/gh-pages.js", - "gh-pages-clean": "bin/gh-pages-clean.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gh-pages/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gh-pages/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", - "dev": true, - "dependencies": { - "ini": "^1.3.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-own-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", - "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-fresh/node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-meta-resolve": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.2.tgz", - "integrity": "sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/luxon": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.3.0.tgz", - "integrity": "sha512-An0UCfG/rSiqtAIiBPO0Y9/zAnHUZxAMiCpTd5h2smgsj7GGmcenvrvww2cqNA8/4A5ZrD1gJpHN2mIHZQF+Mg==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mitt": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", - "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==", - "dev": true - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", - "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-2.0.0.tgz", - "integrity": "sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==", - "dev": true, - "dependencies": { - "callsites": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz", - "integrity": "sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-global": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", - "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", - "dev": true, - "dependencies": { - "global-dirs": "^0.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "3.29.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", - "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/sortablejs": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz", - "integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==", - "dev": true - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-outer/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tabbable": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", - "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", - "dev": true - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/trim-repeated/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ts-api-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz", - "integrity": "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==", - "dev": true, - "engines": { - "node": ">=16.13.0" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", - "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/vite": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.5.tgz", - "integrity": "sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==", - "dev": true, - "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vscode-languageserver-textdocument": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.8.tgz", - "integrity": "sha512-1bonkGqQs5/fxGT5UchTgjGVnfysL0O8v1AYMBjqTbWQTFn721zaPGDYFkOKtfDgFiSgXM3KwaG3FMGfW4Ed9Q==", - "dev": true - }, - "node_modules/vscode-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.7.tgz", - "integrity": "sha512-eOpPHogvorZRobNqJGhapa0JdwaxpjVvyBp0QIUMRMSf8ZAlqOdEquKuRmw9Qwu0qXtJIWqFtMkmvJjUZmMjVA==", - "dev": true - }, - "node_modules/web-streams-polyfill": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", - "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/xss": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.13.tgz", - "integrity": "sha512-clu7dxTm1e8Mo5fz3n/oW3UCXBfV89xZ72jM8yzo1vR/pIS0w3sgB3XV2H8Vm6zfGnHL0FzvLJPJEBhd86/z4Q==", - "dev": true, - "dependencies": { - "commander": "^2.20.3", - "cssfilter": "0.0.10" - }, - "bin": { - "xss": "bin/xss" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/package.json b/package.json index e927bc3..17a84d7 100644 --- a/package.json +++ b/package.json @@ -28,22 +28,21 @@ "private": true, "license": "Unlicense", "devDependencies": { - "@arcgis/core": "^4.27.6", - "@esri/arcgis-rest-request": "^4.2.0", - "@tsconfig/esm": "^1.0.4", - "@tsconfig/node-lts": "^18.12.3", - "@types/arcgis-rest-api": "^10.4.5", - "@types/gh-pages": "^3.2.1", - "@types/node": "^20.4.5", - "@typescript-eslint/eslint-plugin": "^6.2.1", - "@typescript-eslint/parser": "^6.2.1", - "cspell": "^6.31.2", - "eslint": "^8.46.0", - "eslint-config-prettier": "^8.9.0", - "gh-pages": "^5.0.0", - "prettier": "^3.0.0", - "typescript": "^5.1.6", - "vite": "^4.5.5" + "@arcgis/core": "^4.30.9", + "@esri/arcgis-rest-request": "^4.2.3", + "@tsconfig/esm": "^1.0.5", + "@tsconfig/node-lts": "^20.1.3", + "@types/arcgis-rest-api": "^10.4.8", + "@types/gh-pages": "^6.1.0", + "@types/node": "^22.7.4", + "@typescript-eslint/eslint-plugin": "^8.8.0", + "@typescript-eslint/parser": "^8.8.0", + "cspell": "^8.14.4", + "eslint": "^9.11.1", + "eslint-config-prettier": "^9.1.0", + "prettier": "^3.3.3", + "typescript": "^5.6.2", + "vite": "^5.4.8" }, "keywords": [ "arcgis", @@ -52,5 +51,11 @@ "map", "spa", "single-page-app" - ] + ], + "dependencies": { + "@trivago/prettier-plugin-sort-imports": "^4.3.0", + "eslint-config-flat-gitignore": "^0.3.0", + "eslint-plugin-jsdoc": "^50.3.0", + "typescript-eslint": "^8.8.0" + } } \ No newline at end of file diff --git a/src/arcgis/featureServiceQuery.ts b/src/arcgis/featureServiceQuery.ts index 143c82a..efcd4be 100644 --- a/src/arcgis/featureServiceQuery.ts +++ b/src/arcgis/featureServiceQuery.ts @@ -1,14 +1,14 @@ -import { IRequestOptions, request } from "@esri/arcgis-rest-request"; +// aliasArrays will be an array where each element in the array +// will be an array of two strings. +import aliasArrays from "./field-aliases.json"; +// Layer definitions for the query are defined in this JSON file. +import layerDefObject from "./layer-defs.json"; import type { AttributeValue, FeatureServiceQueryResponse, QueryResponseLayer, } from "./typesAndInterfaces"; -// Layer definitions for the query are defined in this JSON file. -import layerDefObject from "./layer-defs.json"; -// aliasArrays will be an array where each element in the array -// will be an array of two strings. -import aliasArrays from "./field-aliases.json"; +import { IRequestOptions, request } from "@esri/arcgis-rest-request"; export const defaultUrl = "https://data.wsdot.wa.gov/arcgis/rest/services/DataLibrary/DataLibrary/FeatureServer/"; @@ -18,7 +18,9 @@ const layerDefs = JSON.stringify(layerDefObject); export type FieldAliasMap = Map; -const aliasMap = Array.isArray(aliasArrays) ? new Map(aliasArrays as [string, string][]) : undefined; +const aliasMap = Array.isArray(aliasArrays) + ? new Map(aliasArrays as [string, string][]) + : undefined; /** * Query a feature service for features that intersect with @@ -29,7 +31,7 @@ const aliasMap = Array.isArray(aliasArrays) ? new Map(aliasArrays as [string, st */ export async function query( xy: [number, number], - featureServiceUrl: string = defaultUrl + featureServiceUrl: string = defaultUrl, ) { const queryUrl = new URL("query", featureServiceUrl); const queryParams: IRequestOptions = { @@ -46,19 +48,18 @@ export async function query( console.debug("query params", queryParams); const response = (await request( queryUrl.toString(), - queryParams + queryParams, )) as FeatureServiceQueryResponse; return response; } - /** * Enumerates all of the fields and returns field name and alias * pairs. The output can be used to construct a Map. * @param layer - An element of the query response "layers" array. * @param aliasOverrides - If the feature service's aliases are not to your liking, - * you can override them with this mapping, with your desired aliases mapped to + * you can override them with this mapping, with your desired aliases mapped to * the corresponding field names. * @yields Two-element arrays containing fields' name and alias, * respectively. If there is no alias then both elements in the @@ -66,7 +67,10 @@ export async function query( * @example * const aliasMap = new Map(enumerateFieldAliases(layer)); */ -function* enumerateFieldAliases(layer: QueryResponseLayer, aliasOverrides?: FieldAliasMap) { +function* enumerateFieldAliases( + layer: QueryResponseLayer, + aliasOverrides?: FieldAliasMap, +) { if (layer.fields) { for (const field of layer.fields) { const { name } = field; @@ -115,7 +119,7 @@ function createRegex(...items: string[]) { export function* enumerateQueryResponseAttributes( response: FeatureServiceQueryResponse, fieldsToOmit: string[] = ["OBJECTID"], - aliasOverrides = aliasMap + aliasOverrides = aliasMap, ) { // Create a regular expression that will match the names of fields // that will be omitted from being yielded. diff --git a/src/arcgis/field-aliases.json b/src/arcgis/field-aliases.json index 528253a..b6006ae 100644 --- a/src/arcgis/field-aliases.json +++ b/src/arcgis/field-aliases.json @@ -1,5 +1,5 @@ [ - ["LDNM", "Township Subdivision"], - ["JURLBL", "County"], - ["CityName", "City"] -] \ No newline at end of file + ["LDNM", "Township Subdivision"], + ["JURLBL", "County"], + ["CityName", "City"] +] diff --git a/src/arcgis/identify.ts b/src/arcgis/identify.ts index 1df4753..aa7f874 100644 --- a/src/arcgis/identify.ts +++ b/src/arcgis/identify.ts @@ -1,10 +1,13 @@ /** * @see https://developers.arcgis.com/rest/services-reference/enterprise/identify-map-service-.htm */ - -import type { Point, Geometry, esriGeometryType, Position2D } from "arcgis-rest-api"; - import { request } from "@esri/arcgis-rest-request"; +import type { + Point, + Geometry, + esriGeometryType, + Position2D, +} from "arcgis-rest-api"; export const enum LayerSpecifier { all = "all", @@ -70,7 +73,7 @@ export interface IdentifyParametersConstruction } function createIdentifyParameters( - options: IdentifyParametersConstruction + options: IdentifyParametersConstruction, ): IdentifyParameters { const output: IdentifyParameters = { geometry: options.geometry.join(",") as XYString, @@ -143,7 +146,7 @@ const idUrl = export async function identify( idOptions: IdentifyParametersConstruction, - url: string | URL = idUrl + url: string | URL = idUrl, ) { const idParams = createIdentifyParameters(idOptions); @@ -156,6 +159,5 @@ export async function identify( params: idParams, }); - return response; } diff --git a/src/arcgis/layer-defs.json b/src/arcgis/layer-defs.json index f97dc4c..8be5336 100644 --- a/src/arcgis/layer-defs.json +++ b/src/arcgis/layer-defs.json @@ -1,17 +1,17 @@ [ - { - "layerId": 3, - "where": "JURLBL is not NULL", - "outFields": "JURLBL" - }, - { - "layerId": 5, - "where": "CityName is not NULL", - "outFields": "CityName" - }, - { - "layerId": 2, - "where": "LDNM is not NULL", - "outFields": "LDNM" - } -] \ No newline at end of file + { + "layerId": 3, + "where": "JURLBL is not NULL", + "outFields": "JURLBL" + }, + { + "layerId": 5, + "where": "CityName is not NULL", + "outFields": "CityName" + }, + { + "layerId": 2, + "where": "LDNM is not NULL", + "outFields": "LDNM" + } +] diff --git a/src/arcgis/typesAndInterfaces.ts b/src/arcgis/typesAndInterfaces.ts index 6b85cb9..2743fcd 100644 --- a/src/arcgis/typesAndInterfaces.ts +++ b/src/arcgis/typesAndInterfaces.ts @@ -1,4 +1,9 @@ -import type { esriGeometryType, Feature, Field, SpatialReference } from "arcgis-rest-api"; +import type { + esriGeometryType, + Feature, + Field, + SpatialReference, +} from "arcgis-rest-api"; export type AttributeValue = string | number | boolean | null; @@ -12,20 +17,20 @@ export class LayerDef { constructor( public layerId: number, public where: W, - public outFields?: F[] + public outFields?: F[], ) {} } export interface QueryResponseLayer { - id: number; - objectIdFieldName?: string; - globalIdFieldName?: string; - geometryType?: esriGeometryType; - spatialReference?: SpatialReference; - fields?: Field[]; - features: Feature[] + id: number; + objectIdFieldName?: string; + globalIdFieldName?: string; + geometryType?: esriGeometryType; + spatialReference?: SpatialReference; + fields?: Field[]; + features: Feature[]; } export interface FeatureServiceQueryResponse { - layers: QueryResponseLayer[]; -} \ No newline at end of file + layers: QueryResponseLayer[]; +} diff --git a/tools/github-utils.mts b/src/github-utils.mts similarity index 80% rename from tools/github-utils.mts rename to src/github-utils.mts index 95cf4f3..435fc19 100644 --- a/tools/github-utils.mts +++ b/src/github-utils.mts @@ -1,28 +1,26 @@ -import { promisify } from "node:util"; import { exec } from "node:child_process"; +import { promisify } from "node:util"; interface RemoteMatchGroups { [key: string]: string; remote: string; url: string; direction: string; -}; +} interface RemoteMatch extends RegExpMatchArray { - groups: RemoteMatchGroups + groups: RemoteMatchGroups; } /** * Detects if a {@link RegExpMatchArray}'s - * {@link RegExpMatchArray.groups|groups property} + * {@link RegExpMatchArray.groups|groups property} * has the properties defined by {@link RemoteMatchGroups} - * @param match + * @param match * @returns Returns true if {@link match} is a * {@link RemoteMatch}, false otherwise. */ -function hasExpectedGroups( - match: RegExpMatchArray -): match is RemoteMatch { +function hasExpectedGroups(match: RegExpMatchArray): match is RemoteMatch { const { groups } = match; // If the match doesn't have groups defined then it // is not a RemoteMatch. @@ -44,13 +42,13 @@ export interface RepoInfo { /** * Parses the owner and repo name from a GitHub URL. - * @param url - * @returns + * @param url + * @returns */ function parseGitHubUrl(url: string): RepoInfo { - const githubUrlRe = /https:\/\/github\.com/i + const githubUrlRe = /https:\/\/github\.com/i; if (!githubUrlRe.test(url)) { - throw new Error(`Not a GitHub URL: ${url}`) + throw new Error(`Not a GitHub URL: ${url}`); } const parts = url .split(/[/]+/) @@ -63,7 +61,7 @@ function parseGitHubUrl(url: string): RepoInfo { /** * Retrieves GitHub repo information by executing * `git remote --verbose` and parsing the response. - * @returns + * @returns Github repo information */ export async function getGithubRepoInfo() { // Execute `git remote --verbose`, then parse @@ -73,10 +71,11 @@ export async function getGithubRepoInfo() { }); const matches = result.stdout.matchAll(re); - const groups = [...matches].filter(hasExpectedGroups).map((m) => m.groups); + const groups = [...matches] + .filter(hasExpectedGroups) + .map((m) => (m as RemoteMatch).groups); // Remove duplicate URLs. const urls = [...new Set(groups.map((g) => g.url))].map(parseGitHubUrl); console.groupEnd(); return urls.length === 1 ? urls[0] : urls; } - diff --git a/src/index.css b/src/index.css index 7b3b0dc..dea345f 100644 --- a/src/index.css +++ b/src/index.css @@ -1,10 +1,10 @@ -@import url('https://js.arcgis.com/4.27/esri/themes/light/main.css'); +@import url("https://js.arcgis.com/4.30/esri/themes/light/main.css"); html, body, #viewDiv { - padding: 0; - margin: 0; - height: 100%; - width: 100%; -} \ No newline at end of file + padding: 0; + margin: 0; + height: 100%; + width: 100%; +} diff --git a/src/main.ts b/src/main.ts index 7db1da9..a9c8f6a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -37,7 +37,7 @@ void import("@arcgis/core/Map").then(async ({ default: EsriMap }) => { void import("./widgets/expandGroups").then(({ setupWidgets }) => { void setupWidgets(view, "top-trailing", { - group: "top-trailing" + group: "top-trailing", }); }); }); diff --git a/src/utils/Github-Link.ts b/src/utils/Github-Link.ts index 5a1503c..bed1535 100644 --- a/src/utils/Github-Link.ts +++ b/src/utils/Github-Link.ts @@ -8,26 +8,29 @@ export const githubPagesUrlRe = export type GithubRepoUrl = `https://www.github.com/${string}/${string}`; export type GithubPagesUrl = `https://${string}.github.io/${string}`; -/** - * Get the source URL of a Github Pages page. - * @param throwErrorOnMismatch - If true, throw an error if URL can't - * be parsed. Otherwise, null will be returned. - * @returns A URL - */ + export function getGithubUrlFromGithubPages( throwErrorOnMismatch: true, - githubPagesUrl?: GithubPagesUrl + githubPagesUrl?: GithubPagesUrl, ): GithubRepoUrl; export function getGithubUrlFromGithubPages( throwErrorOnMismatch?: false, - githubPagesUrl?: GithubPagesUrl + githubPagesUrl?: GithubPagesUrl, ): GithubRepoUrl | null; +/** + * Get the source URL of a Github Pages page. + * @param throwErrorOnMismatch - If true, throw an error if URL can't + * @param githubPagesUrl - Specify the GitHub Pages URL if you don't + * want to use the default of location.href. + * be parsed. Otherwise, null will be returned. + * @returns A URL + */ export function getGithubUrlFromGithubPages( throwErrorOnMismatch?: boolean, - githubPagesUrl?: GithubPagesUrl + githubPagesUrl?: GithubPagesUrl, ) { const currentUrl = githubPagesUrl ?? location.href; - const match = currentUrl.match(githubPagesUrlRe); + const match = githubPagesUrlRe.exec(currentUrl); if (!match) { if (throwErrorOnMismatch) { throw new Error("Could not parse source URL from this page"); @@ -35,7 +38,7 @@ export function getGithubUrlFromGithubPages( return null; } } - const [org, repo] = [...match].slice(1).map(s => s.toLowerCase()); + const [org, repo] = [...match].slice(1).map((s) => s.toLowerCase()); return `https://github.com/${org}/${repo}` as GithubRepoUrl; } @@ -46,13 +49,13 @@ export function getGithubUrlFromGithubPages( * @returns An HTML anchor linking to app source code. */ export function createGithubLink( - fallbackUrl = "https://github.com/wsdot-gis/wsdot-mp-map" + fallbackUrl = "https://github.com/wsdot-gis/wsdot-mp-map", ) { // const githubSvg = convertSimpleIconToSvgElement(siGithub); const a = document.createElement("a"); // a.append(githubSvg); a.textContent = "Source code"; - a.href = getGithubUrlFromGithubPages() || fallbackUrl; + a.href = getGithubUrlFromGithubPages() ?? fallbackUrl; a.target = "_blank"; return a; } diff --git a/src/utils/LatLng.ts b/src/utils/LatLng.ts index d903325..6f73a7f 100644 --- a/src/utils/LatLng.ts +++ b/src/utils/LatLng.ts @@ -1,2 +1,2 @@ export type LatLngTuple = [number, number]; -export type LatLngExpression = LatLngTuple | { lat: number; lng: number }; \ No newline at end of file +export type LatLngExpression = LatLngTuple | { lat: number; lng: number }; diff --git a/src/utils/NotImplementedError.ts b/src/utils/NotImplementedError.ts index 7b76e23..55dbf5a 100644 --- a/src/utils/NotImplementedError.ts +++ b/src/utils/NotImplementedError.ts @@ -1,5 +1,5 @@ export default class NotImplementedError extends Error { - constructor(message?: string) { - super(message ?? "This function has not yet been implemented."); - } -} \ No newline at end of file + constructor(message?: string) { + super(message ?? "This function has not yet been implemented."); + } +} diff --git a/src/utils/geohack.ts b/src/utils/geohack.ts index fa1f3e7..dfd3619 100644 --- a/src/utils/geohack.ts +++ b/src/utils/geohack.ts @@ -1,7 +1,6 @@ /** * Used for working with [GeoHack](https://www.mediawiki.org/wiki/GeoHack) URLs. */ - import type { LatLngExpression, LatLngTuple } from "./LatLng"; // import type { LatLngExpression, LatLngTuple } from "leaflet"; @@ -30,7 +29,7 @@ function isLatLngTuple(latLng: LatLngExpression): latLng is LatLngTuple { */ export function createGeoHackUrl( latLng: LatLngExpression, - geohackUrl = "https://geohack.toolforge.org/geohack.php" + geohackUrl = "https://geohack.toolforge.org/geohack.php", ) { let lat: number; let lng: number; diff --git a/src/widgets/expandGroups.ts b/src/widgets/expandGroups.ts index 83c0730..68723e3 100644 --- a/src/widgets/expandGroups.ts +++ b/src/widgets/expandGroups.ts @@ -74,8 +74,8 @@ export async function setupExpandGroup( view, viewAddOptions, expandOptions, - widgets - }) + widgets, + }); try { // Throw error if no widgets were specified. if (widgets.length < 1) { @@ -87,9 +87,11 @@ export async function setupExpandGroup( // Create expand options if not already specified. if (!expandOptions) { - console.debug("expandOptions was null or undefined. Creating new object."); + console.debug( + "expandOptions was null or undefined. Creating new object.", + ); expandOptions = {}; - console.debug({expandOptions}) + console.debug({ expandOptions }); } // If view add options is just the UIPosition, convert to object @@ -104,11 +106,10 @@ export async function setupExpandGroup( expandOptions.group = viewAddOptions.position as string; } if (!expandOptions.group) { - const message = "There was no group specified. Expands will not be grouped"; + const message = + "There was no group specified. Expands will not be grouped"; console.error(message); - throw new TypeError( - message - ); + throw new TypeError(message); } // Create an Expand for each of the widgets. @@ -118,7 +119,7 @@ export async function setupExpandGroup( : {}; currentOptions.content = widget; - console.debug(`Expand constructor options`, currentOptions) + console.debug(`Expand constructor options`, currentOptions); const expand = new Expand(currentOptions); return { component: expand, @@ -127,7 +128,7 @@ export async function setupExpandGroup( } as __esri.UIAddComponent; }); - console.debug("expand objects", expands) + console.debug("expand objects", expands); // Add the newly-created Expands to the view. view.ui.add(expands, viewAddOptions); @@ -154,7 +155,7 @@ function hasListItem(event: unknown): event is LayerListItemCreateEvent { const setupLayerListItems: __esri.LayerListListItemCreatedHandler = (event) => { if (!hasListItem(event)) { throw new TypeError( - `Expected event object to have an item property with a ListItem value` + `Expected event object to have an item property with a ListItem value`, ); } // Add a legend to the list item panel @@ -166,7 +167,7 @@ const setupLayerListItems: __esri.LayerListListItemCreatedHandler = (event) => { type LayerListOptions = NonNullable[0]>; async function setupLayerList( - properties: LayerListOptions & Required> + properties: LayerListOptions & Required>, ) { const LayerList = (await import("@arcgis/core/widgets/LayerList")).default; @@ -195,14 +196,14 @@ type ExpandGroupSetupParams = Parameters; export async function setupWidgets( view: MapView | SceneView, viewAddOptions: ExpandGroupSetupParams[1], - expandOptions: ExpandGroupSetupParams[2] + expandOptions: ExpandGroupSetupParams[2], ) { console.group(setupWidgets.name); console.debug(`${setupWidgets.name} constructor`, { view, viewAddOptions, - expandOptions - }) + expandOptions, + }); try { const [gallery, layerList] = await Promise.all([ setupBasemapGallery({ @@ -217,8 +218,14 @@ export async function setupWidgets( view, }), ]); - - void setupExpandGroup(view, viewAddOptions, expandOptions, gallery, layerList); + + void setupExpandGroup( + view, + viewAddOptions, + expandOptions, + gallery, + layerList, + ); } finally { console.groupEnd(); } diff --git a/src/widgets/setupSearch.ts b/src/widgets/setupSearch.ts index 21a9645..09f4530 100644 --- a/src/widgets/setupSearch.ts +++ b/src/widgets/setupSearch.ts @@ -32,7 +32,7 @@ async function getSearchSources() { */ export async function setupSearch(view: MapView | SceneView) { const Search = await import("@arcgis/core/widgets/Search").then( - (i) => i.default + (i) => i.default, ); const search = new Search({ diff --git a/tools/deploy.mts b/tools/deploy.mts deleted file mode 100644 index 7c6f3b7..0000000 --- a/tools/deploy.mts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * This script publishes the page built with Vite to GitHub Pages - * via the [gh-pages package](https://www.npmjs.com/package/gh-pages). - */ - -import {publish} from "gh-pages"; - -/** - * @see https://www.npmjs.com/package/gh-pages - */ -publish("dist", { - // This needs to be specified so that the .nojekyll file is included. - dotfiles: true -}, (error) => { - if (error) { - const message = error instanceof Error ? error.message : null ?? "An error occurred while attempting to publish to Github Pages"; - console.error(message, error); - } -}); - - diff --git a/tools/tsconfig.json b/tools/tsconfig.json deleted file mode 100644 index 2349b9c..0000000 --- a/tools/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "buildOptions": { - "incremental": true - }, - "extends": [ - "@tsconfig/node-lts/tsconfig.json", - "@tsconfig/esm/tsconfig.json" - ] -} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts index 6438070..b561660 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,26 +1,26 @@ +import { getGithubRepoInfo } from "./src/github-utils.mjs"; import { defineConfig } from "vite"; -import { getGithubRepoInfo } from "./tools/github-utils.mjs" /** * Gets the name of the repository. */ async function getRepoName(): Promise { - let repoInfo = await getGithubRepoInfo() - if (Array.isArray(repoInfo)) { - if (repoInfo.length < 1) { - throw new TypeError("Repo info was an empty array."); - } - repoInfo = repoInfo[0]; + let repoInfo = await getGithubRepoInfo(); + if (Array.isArray(repoInfo)) { + if (repoInfo.length < 1) { + throw new TypeError("Repo info was an empty array."); } - const { repo } = repoInfo - return repo; + repoInfo = repoInfo[0]; + } + const { repo } = repoInfo; + return repo; } export default defineConfig(async (/*{command, mode, ssrBuild}*/) => { - // Get the name of the repository. - const repo = await getRepoName(); - return { - // Set the URL base to the name of the repository. - base: `/${repo}/` - } -}) \ No newline at end of file + // Get the name of the repository. + const repo = await getRepoName(); + return { + // Set the URL base to the name of the repository. + base: `/${repo}/`, + }; +});